CCTV大型纪录片《1405-郑和下西洋》建模篇 CCTV大型纪录片《1405-郑和下西洋》材质与灯光篇 CCTV大型纪录片《1405-郑和下西洋》特效篇 CCTV大型纪录片《1405-郑和下西洋》渲染合成篇
有了上面的基础我们来制作一段暴风雨镜头。
1、首先生成一个海面,摆一个比较舒服的机位,见图11。
图11(点击上图浏览大图)
细心调解oceanShader,在这里给出我的调节参数仅供大家做参考,见图12。
图12
然后就是制作波涛汹涌的波浪,这里我们用到了粒子系统,众所周知MAYA的粒子系统是十分强大的,下面看看我们是如何实现的。
首先我们先做一个NUBRSplane这个物体将作为粒子的发射面,见图13。
图13(点击上图浏览大图)
2、选择从物体发射粒子;
3、对单位时间粒子的发射数量,和粒子的发射速度进行调节,见图14-15。
图14(点击上图浏览大图)
图15(点击上图浏览大图)
粒子出现了,但是位置好象不对,浪花应该出现在浪尖上才对,那么这里我们需要用表达式对粒子的位置进行控制,见图16。
//creation expression floats partcles vector $ppos = spray_particleShape.position; float $pu = $ppos.x; float $pv = $ppos.z; float $samp[] = `colorAtPoint -o RGBA -u $pu -v $pv oceanShader1`; float $py = $samp[3];
//set initial particle position on ocean surface spray_particleShape.position = <<$pu, $py, $pv>>;
图16(点击上图浏览大图)
我们还要对粒子的寿命进行控制,见图17。
spray_particleShape.lifespanPP = rand(0.5, 2);
图17(点击上图浏览大图)
对粒子的速度进行控制,见图18。
//runtime expression for ocean spray
//check wave surface height vector $ppos = spray_particleShape.position; float $pu = $ppos.x; float $pv = $ppos.z; float $samp[] = `colorAtPoint -o A -u $pu -v $pv oceanShader1`; float $py = $samp[0];
//clamp lower particle altitude to wave height if($ppos.y <= $py) { spray_particleShape.position = <<$pu, $py, $pv>>; } //drive particle down when it's too high else if($ppos.y > $py + ocean_emitterPlane.sprayHeight) { vector $pvel = spray_particleShape.velocity; spray_particleShape.velocity = <<$pvel.x, $pvel.y - ocean_emitterPlane.sprayPull, $pvel.z>>; };
图18(点击上图浏览大图)
注意这里,见图19。
图19
加入重力场、空气场、扰乱场,使粒子变的运动更加真实,见图20。
图20(点击上图浏览大图)
开启硬件渲染预览一下效果,马上要成功了,见下一页。
上一页 1 2 3 下一页
|