Maya 硬件渲染粒子与软件渲染元素结合(6)

时间:2007-02-14 00:00:00  来源:  作者:
Maya 硬件渲染粒子与软件渲染元素结合
V. 创建尘土粒子外观

  选择使用 rgbPP

  添加下面的到 creation 表示式:

//rgbPP

//

float $intensity=rand(0.6,1.0);

intensityPP=$intensity

  对于 rgbPP ,我们将用一个 HSV 模式确定尘土的颜色,不用传统的红绿蓝模型。每个粒子有各自的值或亮度,粒子在一个简单的阴影技术基础上获得颜色,粒子是否改变颜色要看是否被阴影,并将保留一个完整的密度值。该信息被合成器用来单独扭曲粒子(从粒子密度)阴影。

  添加下面东西到 runtime 表达式:

//opacityPP

//

opacityPP= opacityMultPP* opacityOrgPP* opacity;

  利用通道盒里的透明度属性,使用者现在可以全部调整所有粒子物体的透明度,同时保持每个粒子的独特的 opacityOrgPP 。并修改粒子生命周期的透明度(使用连接到 opacityMultPP 的 ramp )。

体积阴影

  体积阴影是获得真实云和尘土效果的关键因素。体积阴影是通过粒子投射阴影到每个粒子身上而获得的(通过透明度)。不幸的是,这种技术只有在软件云粒子渲染中可以有效,而且耗时之多,令人难以置信。有成打的技术可以模仿这类效果,而且只花很少的时间。

  你要用到的技术是我的一个同事 Eyal Erez 教我的,他和我一起合作制作 The Kolektiv 。将现在粒子所在位置和粒子“出生”的位置 birthWorldPosition 相比较,看现在粒子增加了多少高度,你就可以计算出一个值,粒子越低,值就越低。该技术对粒子系统来说很不错,从相对等高的高度发射的粒子不会升或者降太多(和粒子最初位置相比较)。

LEGO 投射方面的“领头羊”合成器 ----Gary Jackamuk 需要一个粒子路径,这样就可以调整颜色,以和 CG 背景元素的阴影及灯光匹配。通常,当软件为合成渲染一个元素时候,你可以输出一个单独的 shadow pass ,它可以被合成器单独调整。 Gray 要给粒子上多少色,这要看粒子获得的阴影数量。

  我们可以提供一个给粒子上色和阴影的解决办法,使它效果更好。

  在 Add Dynamic Attributes 栏里点击 General 按钮,到 Particle 栏。

1 、创建 birthWorldPosition 属性

2 、添加下面东西到 runtime 表达式:

//rgbPP

//

vector $pos=position;

vector $birthPos=birthWorldPosition;

float $hue=(240+120*smoothstep(-1,1, $pos.Y-$birthPos.y))/360;

rgbPP=hsr_to_rgb(<<$hue,1.0,intensityPP>>);

  为了控制粒子颜色,我们规格化粒子所在位置和粒子产生位置之间的差数,该规格发生在 -1 和 1 之间,这意味着如果一个粒子比它产生的位置低于 1 个单位,我们就会得到一个 0 的值;如果高于 1 个单位,则会得到一个 1 的值,然后,这些值要被调整为沿着色轮 ----100% 蓝色和 100% 红色之间,或者 240 和 360 之间。参考颜色选择窗口,找到其它颜色的色彩值。

  粒子物体的 rgbPP 属性读取 rgb 值,而不是 hsv 值,所以,你需要利用 hsv_to_rgb 函数将 hsv 转换成 rgb 。该功能视一个矢量为输入,那也是为什么我们用 <<>> 来为色彩、饱和度、密度压缩这些值的原因。色彩值最好为 0-1 ,而不是 0-360 ,所以我们要用 360 来除 hue 值。饱和度仍为 1.0 ,但是,你有个机会:通过修改饱和度(在你决定的值的基础上),添加路径附加消息到合成器上,最后,粒子的亮度都被考进 hsv 的 value 中。

  在这一点上,仍然可以对各种各样的 rumps 贴图和场做大量的扭曲,以此获得你想要的外观。

  打开 wheeOnPath_Part6.ma 文件,看看我拿出的结果。





文章评论

共有 0人发表了评论 查看完整内容

推荐教程

最新教程