CGArt-中国CGer中的绿色家园
首页 信息动态 原创排行 互动教程 资源千寻 CG人才 CGArt杂志 艺术设计 CG画廊 CG论坛 酷站欣赏 CG搜索 会员中心
CCTV纪录片《郑和下西洋》特效详解
来源:视觉同盟 作者:十月数码 编辑:浪漫的季节 发布时间:2007年02月08日 13:02:33

[ 1 ]  [ 2 ]  [ 3 ]  

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 ]  

新闻标题 发布 时间
CCTV纪录片《郑和下西洋》渲染合成 2007年02月08日 12:59:59
CCTV纪录片《郑和下西洋》材质与灯光 2007年02月08日 12:56:55
共有评论0条
更多评论..
作者信息 详细信息
评论人:
验证码:
内容:
 
about us advertisement publish conformity service cooperate associate link site map contact us help jump to the top of page