行业关键字
CG·动画专题 → 正文
CCTV纪录片《郑和下西洋》特效详解(2)
作者: 十月数码供稿 来源: 视觉同盟 时间: 2006年11月27日

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  下一页

(责任编辑:  

作品欣赏

欢迎关注视觉同盟微信公众号:
微信公众平台:搜索“vudn2004”或扫描下面二维码:
English | 关于我们 | 站点地图 | 联系热线 | 合作伙伴 | 艺术顾问 | 订阅 | 手机版
版权所有 © 2004-2024 视觉同盟 visionUnion.com)
Copyright © 2004-2024 VisionUnion.com Incorporated. All rights reserved
京ICP备09005192号
视觉同盟旗下子站:品牌专区 | 创意设计人才网 | 视觉同盟社区 | 视觉同盟论坛 | 英文版