ParticleBlinkScript属性和参数

在ParticleBlinkScript内核中可以使用以下粒子属性:

float3 p_position

粒子的当前位置。

float3 p_initialPosition

粒子的起始位置。

float3 p_lastPosition

粒子的先前位置。

float3 p_velocity

粒子的速度。

float4 p_color

粒子的颜色。

float3 p_size

粒子的大小。

float4 p_orientation

粒子的方向。

float3 p_rotationAxis

粒子的旋转轴。

浮动p_rotationAngle

粒子的旋转角度。

float p_rotationVelocity

粒子的旋转速度。

浮动p_mass

粒子的质量。

浮动p_life

粒子的寿命。

浮动p_startTime

粒子的开始时间。

所有粒子属性数组都是系统中粒子数量的大小,因此您可以根据需要传递尽可能多的粒子,并且它将同时遍历所有粒子。这样,您就可以编写内核,例如,可以根据速度和位置更改粒子颜色,或者编写新的力。

在ParticleBlinkScript中创建旋钮

参数也可以在内核中声明。使用BlinkScript节点时,会自动创建参数旋钮。ParticleBlinkScript节点的工作方式有所不同。自动创建旋钮的缺点是,您无法选择要为给定参数创建哪种类型的旋钮,也无法设置滑块或工具提示的范围。一种float3属性可能需要一个Color_knobXYZ_knob。自动生成旋钮也意味着您无法控制控制面板中的布局。

相反,ParticleBlinkScript使用User Knobs并通过将其名称与参数匹配来绑定它们。如果您的内核有一个float4参数称为pa_color,然后将RGBA颜色用户旋钮称为 pa_color还必须创建将绑定到 float4 参数。

ParticleBlinkScript方法可能会花费更多时间,但更易于控制。

注意:  如果您没有为参数创建用户旋钮,则将其设置为默认值。的Create Knobs按钮为尚无参数的任何参数创建旋钮。这些可以根据需要进行删除,替换和编辑。

魔术属性

在内核中,拥有一些额外的信息(例如当前帧)可能会很有用。如果使用某些魔术名称定义了属性,ParticleBlinkScript将提供此功能。这些是:

浮动_frame

当前帧Nuke正在渲染。

float _systemTime

粒子系统的当前时间。

浮点数_dt

此帧的时间增量。

float _startTime

时间步的开始。

float _endTime

时间步的结束。

所有这些都以下划线开头_区别于_ 内核属性。最常用的是_开始时间 _时间结束 _dt

这些属性可以一起使用以获取各种信息,例如:

_systemTime-p_startTime()

粒子的年龄。

(_systemTime-p_startTime())/ life()

粒子的年龄占其寿命的比例。

float _dt = max(0.0f,min(_dt,float(_endTime-p_startTime())));

施加力的正确时间增量。

注意:  有关为ParticleBlinkScript节点编写内核的更多信息,请参阅Nuke开发人员指南

影像输入

除了粒子输入外,还可以将图像输入提供给ParticleBlinkScript节点,该节点可以连接到生成图像的节点。这些必须以名称开头图片_, 与eAccessRandom,否则它们将在粒子的迭代空间中迭代。

例如,声明一个名为image_texture创建一个名为texture

带有额外图像输入的示例ParticleBlinkScript节点

额外的图像输入可用于将更多数据传递到内核,例如流图或高度图,并可用于各种目的,例如通过粒子在场景中的位置着色。