Niagara—— 发射器常见Module

Wan2.2-I2V-A14B

Wan2.2-I2V-A14B

图生视频
Wan2.2

Wan2.2是由通义万相开源高效文本到视频生成模型,是有​50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力

Emitter Update

Spawn Particles in Grid

        基于用户定义的网格精度设置来生成粒子,与 Grid Location 一起使用;


Particle Spawn

 Grid Location

        基于Spawn Particles in Grid生成的粒子将该粒子均匀的分布在网格上;

        模块输出变量 Normalized Array Location 可用于 Sample Texture 模块采样;

Initial Mesh Orientation

        设置Mesh初始方向,即设置属性MeshOrientation;这与Rotational Force/Velocity模块不同,后者建立了一种更基于物理的旋转方法,旋转力需一个额外的求解器,使其成本更高;

对Mesh进行旋转:

对mesh进行定向:

  • Random 随机方向

  • System 系统本身实例的旋转方向

  • Orient to Vector 定向到指定矢量
    • Orientation,通过将Mesh的轴对齐到指定的方向;
      • Orientation Vector 指定的方向;
      • Mesh Axis To Orient 指定哪个轴对象到指定的方向;

  • Orient to Matrix 定向到指定矩阵

  • Orient to Quaternion 定向到指定四元数

Calculate Size and Rotational Inertia by Mass

        根据设定的质量和密度,计算Particles.Scale或Particles.SpriteSize和旋转惯性Particles.RotationalInertia;

不勾选Calculate Mesh Scale,针对的是Sprite的Particles.SpriteSize;

勾选Calculate Mesh Scale,针对的是Mesh的Particles.Scale;

Initialize Mesh Reproduction Sprite

        在Skeletal Mesh表面生成粒子,且粒子大小参考三角面面积,朝向对齐法线;

        该模块首先在Skeletal Mesh上选择一个随机坐标位置,然后使用选择的三角面,计算一个理想的SpriteSize,UVscale、Spritealignment;为正确的将粒子对齐到mesh表面,应设置Custom Alignment、Custom Facing Vector;

        如Mesh没有动画,可勾选"Overwrite Intrinsic Variables",设置所有粒子系统固有参数(Position、Velocity等);如要更新,则不应选中该复选框,应在粒子更新阶段添加"update mesh repropduction sprite"模块;

        在材质内,使用"Niagara_MeshReproductionSpriteUVs"去采样Mesh的UV;

注:这些模块假定Skeletal Mesh的uvs是正方形的,并且没有在一个轴上压缩;

Move to Nearest Distance Field Surface GPU

        将粒子移动到最近距离场的表面,仅适用于GPU且项目已开启Generate Mesh Distance Fields;

  • Vector To Nearest Surface Normal,表示粒子指向表面的单位向量;


Particle Update

Find Kinetic and Potential Energy 

        求动能和势能,重映射总能量默认是0~1;

  • Kinetic Energy = len(v)^2*mass*0.5
  • Total Energy = Kinetic Energy + Potential Energy

Update Mesh Orientation

        随时间更新Mesh方向,即直接设置属性MeshOrientation;这与Rotational Force/Velocity模块不同,后者建立了一种更基于物理的旋转方法,旋转力需一个额外的求解器,使其成本更高;

Rotation Rate 旋转率

Orient To Vector(s)

Orient to Position

Sprite Facing and Alignment

        无论模拟坐标空间如何,Particles.SpriteFacing和Particles.SpriteAlignment均为世界空间向量;

Rotate Around Point

        围绕指定点旋转;

IncrementingCounter += Rate*DeltaTime;
Position = RotationCenter + Radius * Normalize(Cos(IncrementingCounter + Phase) * XAxis + Sin(IncrementingCounter + Phase) * YAxis) 

Collision

GPU

  • GPU Depth Buffer,与任何不透明的on-screen表面碰撞;
  • GPU Distance Fields,非常高效且合理稳定,但仅与足以被低精度距离场捕获的厚度表面碰撞;需已经有距离场的对象,且已在项目设置中激活Generate Mesh Distance;
  • Analytical Planes,是用户定义的无限平面,是最经济便宜的选项;

CPU

  • Ray Traced,非常昂贵,每个粒子通过沿其规矩进行光线追踪的方式查找附近的碰撞表面,使用"WorldDynamic"追踪通道;可读取场景的物理材质特性,如摩擦力和弹性系数;
  • Analytical Planes,是用户定义的无限平面,是最经济便宜的选项;

Collision Radius 每帧计算碰撞半径

  • Sprite,利用Particles.SpriteSize计算碰撞半径;Mesh,使用用户定义的mesh尺寸向量和Particles.Scale变量计算碰撞半径;Custom,直接输入半径值;
  • Bounds,中心到边角的长度;Maximum Axis,最长轴长度/2;Minimum Axis,最短轴长度/2;

Bounce

  • Restitution,控制粒子的反弹系数,1保持所有能量;
  • Restitution Cofficient Blending,碰撞对象的物理材质反弹系数与粒子反弹系数如何融合;

Friction

  • Simple Friction,简单摩擦,较少的控制摩擦参数,大多数情况下已足够用;
  • CPU Friction Blending,碰撞对象的摩擦系数与粒子摩擦系数如何融合;
  • Friction During a Bounce,在碰撞的瞬间对物体施加的摩擦系数;

Static Mesh Location

在指定的Static Mesh位置生成粒子;

Sample Texture

       目前仅支持GPU模拟; 在指定的UV位置采样纹理,并返回颜色;

Mesh Rotational Force

        根据作用在yaw、pitch、roll轴上力的大小添加旋转力,并累加到Transient.PhysicsRotationForce;注意,这是一种基于物理的旋转力,会考虑mass/drag/inertia,会要额外要求旋转解算,比直接设置方向要昂贵的多,不同质量的粒子会对旋转力产生不同反应;

Fade Over Time

        如目标值随时间增加使用目标值,如随时间减少会衰减该值;会输出Particles.FadOverTime.CurrentValue,此值可用于控制其他参数,如材质颜色等;

  • 当目标值 >= 当前值时,使用目标值;
  • 当目标值 < 当前值时,随时间降低当前值;
//Initialize the fader value
if IsFirstFrame
    CurrentValue = TargetValue
else
    CurrentValue = CurrentValue
//Fade the value
if Use Min Delta
    Bool = TargetValue>=CurrentValue and (TargetValue-CurrentValue)>=MinValueDifference
else 
    Bool = TargetValue>=CurrentValue

if Bool
    TempVal = Max(TargetValue,CurrentValue)
else
    if Linear
        TempVal = CurrentValue-FadeRate*DeltaTime
    if Percentage
        TempVal = Max(FadeRate*(CurrentValue-MinValue),MinStepSize)*DeltaTime
        TempVal = CurrentValue-TempVal
TempVal = Max(TempVal,MinValue)

if Active
    CurrentValue = TempVal
else
    CurrentValue = CurrentValue

Update Mesh Reproduction Sprite

         更新在Skeletal Mesh表面生成的粒子属性,包括Position,Velocity等;与Initialize Mesh Reproduction Sprite模块配合使用;

 

Lerp Particle Attributes

        对粒子属性插值;SpriteFacing默认是(0,0,1);

Calculate Accurate Velocity

        从先前位置和现在位置计算精确的速度;对于改变了解算器预期的位置时是有用的‘;

Ray Trace Distance Field GPU

        光线追踪距离场(球型追踪),沿光线迭代采样全局距离场以查找isosurface;

 

Avoid Cone

        避开锥体,一样使粒子偏离聚光灯或锥形区域,约束条件避免粒子穿透临近表面(沿物体表面,即将速度投射到表面);

Time Based State Machine

        表示粒子的状态是开(1)还是关(0);

  • On Duration,从0到指定数值的持续时间;
  • Off Duration,从0到指定数值的持续时间;
  • On Off Percentage,先是1~0持续时间(Lerp Time To Off),在是0~1持续时间(Lerp Time To On);
    • Lerp Time To Off/On,可以是0,这样就是0和1之间切换;

 

Interpolate Over Time

        以用户定义的速率,随时间向目标值插值过渡;

 

Pendulum Setup

        钟摆设置,非物理正确的钟摆约束,能很好地与力相互作用,如Gravity/ Acceleration/drag;原理即在解算完力和速度后,在方向上(粒子到Pendulum Pivot)仍保持指定的钟摆长度(粒子位置到Pendulum Pivot的距离),并更新速度;

  • 不超过Pendulum Length时,无影响不约束,但勾选Rigid Pendulum时,无论超过不超过均约束到该长度;
  • 超过Pendulum Length时,将粒子直接约束到该长度;

Pendulum Constraint

        应用Pendulum Setup模块的设置,应放置在Solve Forces and Velocity后;

您可能感兴趣的与本文相关的镜像

Wan2.2-I2V-A14B

Wan2.2-I2V-A14B

图生视频
Wan2.2

Wan2.2是由通义万相开源高效文本到视频生成模型,是有​50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值