当前位置: 主页 > 平面设计 > Maya 硬件渲染粒子与软件渲染元素结合

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

  • 2022-02-06
  • 来源/作者: PS.ONEGREEN.ORG    / 佚名    
  • 7 次浏览

  I 、创建一个 Sprite 图像

  用一个简单的点发射器和软件渲染粒子云,创建一系列用作 sprite 纹理的图像,粒子产生和消失的动画——结合软件渲染粒子云的动画和体积纹理——能够制作出变化多端的动画纹理。

  1 、设置 Timeline Range :从 1 到 60

  2 、创建一个点发射器

  3 、第 30 帧, rate 关键帧为 100

  4 、第 31 帧, rate 关键帧为 0

  5 、设置粒子 lifespan 为 lifespanRandom

  6 、设置 lifespanRandom 为 0.3

  7 、设置 lifespan 为 1

  回放动画,注意:第 60

帧粒子的生成和消失。

  1 、设置 conserve 为 0.9

  2 、增加一个紊乱场

  3 、设置 magnitude 为 25

  4 、设置 attenuation 为 0

  5 、设置 frequency 为 2

  6 、第 1 帧,关键帧 TranslateY 为 0

  7 、第 60 关键帧,关键帧 TranslateY 为 5

  回放动画,注意:粒子现在更随机自由地运动并夹在一起。这些团块在软件渲染里有更大的密度,给最终的精灵影像添加了更多的变换。

  1 、创建一个粒子云 shader

  2 、设置颜色为 100% 的白色

  3 、创建一个 Volume Noise 3D Texture

  4 、将 3D Texture Placement 做为动画紊乱场的父物体

  5 、将 Volume Noise 连接到粒子云材质的 Blob Map 属性

  6 、打开 Volume Noi

se 纹理属性编辑器

  7 、设置 Threshold 为 0

  8 、设置 Amplitude 为 1

  9 、设置 Ratio 为 0.4

  10 、设置 Frequency Ratio 为 0.2

  11 、设置 Depth Max 为 5

[NextPage]

  12 、设置 Scale 为 3.0,3.0,3.0

  13 、设置 Noise Type 为 Wispy

  不同的气体要求不同的图像,从壶里发出的蒸汽更细弱一点,但从烟囱里出来的烟雾更浓密更“圆”一点。云层是浓密的,但却有一个纤细的边,你就要为你的图像复制这样的边。一旦增加了不同的扭曲和缩放值到你的 sprite 粒子,而且还有成打的粒子彼此重叠,那它们都将混合并创建理想的外观。

  1 、打开粒子物体属性编辑器

  2 、设置粒子渲染类型为 cloud

  3 、点击的

Add Attibutes 后的 Current Render Type

  4 、打开 Better Illumination

  5 、为 OpacityPP 创建一个 ramp

  6 、 ramp 底部和顶部设置为黑色,中间为白色

  7 、设置 Interpolation 为 Smooth

  8 、增加一个预粒子 radiusPP 属性

  9 、创建表达式类型里:

  radiusPP=rand(0.3,1.3)

  从顶部摄影机观看场景,设置视口大小,确保这样粒子到了窗口的边却不会跑出边外。

  1 、 打开全局渲染窗口

  2 、 设置理想的文件名

  cg/image/ 的粒子系统在为 sprite 图像命名方面是非常特别的, cg/image/ 倾

向于用 Name.# 这样的命名格式,例如: cloudTex.1, cloudTex.20 等等。

  1 、 设置 Frame/Animation Ext 为 name.#

  2 、 设置 Frame Range 为 1-60

  3 、 设置 camera 为 Top

  4 、 打开 RGB 和 Alpha 通道

  一个 Sprite 图像应该始终是正方形的,比如 1 : 1 的比例。即使图像分辨率非常高,但其大小也不应该超过 512 Χ 512 。因为图像在硬件里渲染,所以需要图形卡里的纹理储存器。每个 sprite 图像被载入纹理储存器,所以,如果你有 100 个不同的图像,它们都是 512 Χ 512 分辨率,那多数图形卡将没有足够的内存有效地回放场景,并会“卡壳”。在帧里一个 sp

rite 应该是多大,这才是获得分辨率的真正决定性因素。考虑到一旦你运用了运动模糊 sprite ,任何像素都趋向于完全消失,你可以用更低分辨率的图像操作。

[NextPage]

  设置分辨率为 128*128

  附加 tweaks 到渲染图像序列,比如添加模糊,调整对比度,用一个合成包修改 alpha 通道。

  最后,渲染图像序列。

  II 、粒子发射

  重新设置 frame range 为 1-100

  当一辆汽车踢起灰尘的时候,从轮胎下半部分会发出像一团云样的东西。刻化这个发射形状的简单方法就是用一个体积发射器。

  打开 wheelsOnPath.ma 文件 .

  在这个场景里,沿着凹凸表面的一条运动路径有

一个简单的汽车装备。车轮通过一个 closestPiontOnSurface 约束粘附在地面。

  现在从轮胎发射粒子。

  1 、创建一个发射器

  2 、设置 Emitter Type 为 Volume

  3 、设置 Volume shape 为 sphere

  尘埃没有特定的运动方向,其运动源自汽车周围的空气运动,因此,你不用在体积形状基础上给与尘埃任何速度。

  1 、设置 Away From Center 为 0

  2 、设置 Away From Axis 为 0

  3 、设置 Along Axis 为 0

  4 、设置 Around Axis 为 0

  但是,尘埃的运动基于汽车运动的基础上,所以,汽车踢起的尘埃要稍微随着汽车的向前运动而向前运动。

  1 、打开 outliner

  2 、选择 Fitire 和你刚才创建的发射器: Emitter1

  3 、点约束和方向约束发射器到轮胎

  4

、缩放发射器,大概有轮胎的 1/3 高,长于和宽于轮胎大约 1/4 。

  5 、调整发射器的 VolumeOffsetZ 属性,重新定位发射器,低于轮胎 1/3 。

  回放时,你会看见左前轮胎后面有粒子轨迹。

[NextPage]

  1 、复制 Emitter1 三次

  2 、删除复制品潜在的点约束和方向约束节点

  3 、点约束、方向约束每个发射器到每个轮胎,这样,每个轮胎都有了一个发射器。

  4 、重新命名这些发射器为: IEmitter,frEmitter,blEmitter,brEmitter

  5 、用动力学关系编辑器,连接粒子物体到每个发射器。

  回放,你会看见所有轮胎左后方都留下了一道粒子轨迹。

  当一辆汽车奔跑在一条满是灰尘的溪谷时,它会碰到各种各样的凹凸地,水沟,岩石和沙地,每次碰撞的结果就是:汽车不仅改变一点点方向,而且汽车踢起的尘土和碎片数量都会不同,利用 noise 和 rand 功能,你可以很容易地模拟这种随意的变化。

  1 、选择 flEmitter

  2 、在通道盒里,右键点击任何属性并选择 Expressions ……

  3 、在 Expression Editor 中键入:

  float $rate=100.0
float $rateRand=0.5
flEmitter.rate=$rate+$rateRand*$rate*noise(frame)

  这个表达式运用了 noise 功能,可以依据不同的帧在 -1

到 1 之间取一个值。这个值将与 rate 的百分数相乘再相加。

  FlEmitter 发射器的 rate 的最终结果是围绕着 $rate 大概成平均状,但是,这个参数可以低到 0.5 ,也可以高到 1.5 ,主要看 noise 值的回馈。

  不是随便用一个数字发生器就可以得到声音功能的值,将声音功能视为一个预定的曲线,可以无限延伸,这个曲线在它的值里有各种各样的声音,但声音平滑插入,声音功能回到什么样的值依赖于你在曲线哪里取样。如果你给声音功能取 10 的值:

[NextPage]

  print(noise(10));

  … cg/image/ 回到 -0.465903 的值

  如果你给声音功能取 10.01 的值 :

  p

rint(noise(10.01));

  … cg/image/ 回到 -0.474992 的值

  参数表达式里:

  flEmitter.rate=$rate+$rateRand*$rate*noise(frame)

  …我们用“帧”作为声音输入,所以,每个帧的声音功能回到一个新的值。

  既然帧以每帧的整数增加,来自声音功能的结果可能变化很大。如果你想从声音功能那里获得一个更加平滑的数字流,那就用“ time ”来代替 “ frame ”。

  一样的输入值,声音功能返回的值也一样,所以,每个发射器需要用不同的输入值。

  在表达式编辑器里,增加:

  frEmitter.rate=$rate+$rateRand*$rate*noise(frame+100)
blEmitter.rate=$rate+$rateRand*$rate*noise(frame+20

 << 上一页  [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]  ... 下一页  >>