渐变纹理是 2D 纹理,其中颜色或灰度值在图像范围内由一个值更改为另一个值。您可以使用渐变控制每粒子属性作为粒子年龄。还可以将渐变纹理连接到粒子的任何其他每粒子属性。通常,使用具有“rgbPP”、“opacityPP”和“radiusPP”属性的渐变纹理。对于大多数每粒子属性,在使用渐变控制其值之前,必须将该属性添加到粒子对象中。
若要在滴状曲面粒子对象的寿命期间设定它的颜色、透明度或白炽度,请参见使用粒子采样器信息节点的示例。
您可以使用颜色渐变将向量数组(每粒子)属性更改为粒子年龄。在为向量数组(每粒子)属性创建渐变时,会将该属性连接到颜色渐变。
有关渐变属性的信息,请参见渐变。
“属性编辑器”(Attribute Editor)显示控制属性的默认颜色渐变。在粒子的整个寿命中,将该属性的三个组件值设定为渐变垂直组件 (V) 的 RGB 值。在寿命的开始阶段使用渐变底部的值,在寿命的结束阶段使用渐变顶部的值。
默认情况下,在每个粒子寿命的开始阶段,属性的左侧、中间和右侧向量组件等于 1、0、0,这是因为渐变底部的 RGB 值为红色 (1, 0, 0)。
在寿命的中间阶段,向量组件等于 0、1、0,因为 RGB 值为绿色 (0, 1, 0)。在寿命的结束阶段,向量组件等于 0、0、1,因为 RGB 值为蓝色 (0, 0, 1)。Maya 对这三个点之间的向量组件插值。
在编辑渐变值时,可以在“颜色编辑器”(Color Editor)中将任何数值用于 R、G 和 B。虽然 0 到 1 范围之外的值有效,但是它们在“纹理示例”(Texture Sample)样例的显示中不存在任何有意义的等效颜色。不要编辑 HSV 值,否则将有可能得到不正确的结果。
样例中的颜色需要代表属性组件值的属性包括“rgbPP”和“incandescencePP”。对于不具有等效颜色的其他属性,可以通过在 R、G 和 B 框中输入值(而不是直接单击颜色),在“颜色编辑器”(Color Editor)中编辑颜色值。
例如,通过将渐变中相应点的 R、G 和 B 值设定为 100、0、0,您可以在“寿命”(lifespan)中的某点将“rampAcceleration”设定为 100、0、0。这些值会在等于 1、0、0 的渐变中创建红色。但是,将使用 100、0、0(而不是 1、0、0)对样例中的相邻点插值。
还可以通过更改“属性编辑器”(Attribute Editor)中的其他渐变属性(例如,“噪波”(Noise)和“噪波频率”(Noise Frequency))来更改颜色序列。有关渐变属性的详细信息,请参见“渲染”。
请记住,默认情况下,渐变的水平组件 (U) 对属性没有任何影响。更准确地说,渐变的控制组件是“属性编辑器”(Attribute Editor)中“纹理示例”(Texture Sample)最左边的垂直边。要使用水平组件,请参见使用渐变自定义每粒子属性控制。
您可以使用灰度渐变来更改浮点数组属性作为粒子年龄。为浮点数组(每粒子)属性创建渐变时,会将该属性连接到灰度渐变。在灰度渐变中,黑色代表值为 0,白色代表值为 1。
有关高级渐变功能的信息,请参见手册中的“着色”部分的下列主题:
如果正在使用 emitterNameRatePP,则将“寿命”(Lifespan)设定为希望发射器存在的秒数。在指定“寿命”(Lifespan)值之后,发射粒子对象将消失。
“属性编辑器”(Attribute Editor)将显示控制属性的默认灰度渐变。在粒子的整个寿命期间,在渐变垂直组件 (V) 中,属性的值设定为 R 颜色值。在寿命的开始阶段使用渐变底部的值,在寿命的结束阶段使用渐变顶部的值。
默认情况下,在每个粒子寿命的开始阶段,属性的值等于 1,这是因为渐变底部的 R 组件为 1(颜色为白色,RGB 值为 1、1、1)。
在寿命的中间阶段,属性的值等于 0.5,因为渐变底部的 R 组件为 0.5。(颜色为灰色,RGB 值为 0.5、0.5、0.5。)
在编辑渐变值时,可以在“颜色编辑器”(Color Editor)中将任何数值用于 R。虽然 0 到 1 范围之外的值有效,但是它们在“纹理示例”(Texture Sample)样例的显示中不存在任何有意义的等效颜色。不要编辑 HSV 值,否则将有可能将不正确的值应用于该属性。
通常,“opacityPP”是样例中颜色代表属性中的值的唯一属性。对于不具有等效颜色的其他属性,可以通过在 R 框中输入值(而不是直接单击颜色),在“颜色编辑器”(Color Editor)中编辑颜色值。
还可以通过更改“属性编辑器”(Attribute Editor)中的其他渐变属性(例如,“噪波”(Noise)和“噪波频率”(Noise Frequency))来更改颜色序列。有关渐变属性的详细信息,请参见“渲染”。
请记住,渐变的水平组件对属性没有任何影响。要也使用水平组件,请参见下面的使用渐变自定义每粒子属性控制。
渐变具有两个输入 - U(水平方向)和 V(垂直方向)。默认情况下,数组映射器的 V 向输入连接到粒子的年龄,而 U 向输入未连接。在创建渐变时,可以更改这些输入连接。
其他渐变选项,例如,两个轴上的圆形、对角或长方体更改。您可以在渐变“属性编辑器”(Attribute Editor)中选择这些选项。
对于以上默认渐变,将“粒子的年龄”(Particle’s Age)同时用于“输入 U”(Input U)和“输入 V”(Input V)没有任何好处,因为渐变颜色不会在 U(水平)方向更改。
如果编辑渐变属性来创建渐变(如以下示例),则为“输入 U”(Input U)和“输入 V”(Input V)选择“粒子的年龄”(Particle’s Age)时会将通用性添加到属性的控制中:
您甚至可以将纹理用作渐变的颜色的输入。例如,您可以按如下所示将 2D 棋盘格纹理映射到颜色渐变上:
在“颜色编辑器”(Color Editor)中编辑 RGB(或 R)的渐变值时,虽然 0 到 1 范围之外的值有效,但是它们在“纹理示例”(Texture Sample)样例的显示中不存在任何有意义的等效颜色}。可以按如下所示创建有意义的等效颜色:
默认情况下,“最小值”(Min Value)设定属性在其寿命开始阶段具有的最小值 - 渐变底部的值。默认情况下,“最大值”(Max Value)设定属性在其寿命结束阶段具有的最大值 - 渐变顶部的值。
在该示例中,我们将根据粒子与原点的距离,使用渐变的 V 坐标系来设置粒子的颜色。该示例使用发射器和场,以下章节有所介绍。在执行该示例之前,您可能希望阅读有关发射器和场的信息。或者,您可以将 MEL 节点剪切并粘贴到“脚本编辑器”(Script Editor)中来创建发射器和场。
要执行此操作,您可以从“Maya 帮助”(Maya Help)复制以下 MEL 命令,并将这些命令粘贴到“脚本编辑器”(Script Editor):
emitter -pos 0 0 0 -type volume -r 100 -sro 0 -nuv 0 -cye none -cyi 1 -spd 1 -srn 0 -nsp 1 -tsp 0 -mxd 0 -mnd 0 -dx 1 -dy 0 -dz 0 -sp 0 -vsh sphere -vof 0 0 0 -vsw 360 -tsr 0.5 -afc 1 -afx 1 -arx 0 -alx 0 -rnd 0 -drs 0 -ssz 0 ; scale 10 10 10; particle; connectDynamic -em emitter1 particle1;
要执行此操作,您可以从“Maya 帮助”(Maya Help)复制以下 MEL 命令,并将这些命令粘贴到“脚本编辑器”(Script Editor):
radial -pos 0 0 0 -name pushIn -m -2 -att 0 -typ 0 -mxd -1 -vsh sphere -vex 1-vof 0 0 0 -vsw 360 -tsr 0.5 ; scale 10 10 10; connectDynamic -f pushIn particle1;
要执行此操作,您可以从“Maya 帮助”(Maya Help)复制以下 MEL 命令,并将该命令粘贴到“脚本编辑器”(Script Editor):
addAttr -ln "rgbPP" -dt vectorArray particleShape1;
rgbVPP = mag( position ) / 10;
要执行该操作,您可以从“Maya 帮助”(Maya Help)剪切以下 MEL 命令,然后将这些命令粘贴到“脚本编辑器”(Script Editor)中:
addAttr -is true -ln "pointSize" -at long -min 1 -max 60 -dv 2 particleShape1; setAttr "particleShape1.pointSize" 4;