Maya透明白炽表面材质

2015-10-14 16:04:51来源:作者:人点击

来源:网络(本文仅为提供更多信息)

PS:本篇教程没有图片,不是故意为之,实在是作者厌恶截图过程。不过,换种思维,这不正好给大家提供了一个自由发挥,想象空间广大的氛围吗!而且,同样的方法,因人而异,可以做出很多种效果,大家一起努力吧。

  在Maya术语中,火焰很像一个透明的白炽表面,而非由数千粒子组成的雾状表面。火焰有羽化也有硬性边界,一个非常光滑转变的内部,变化的透明度和流动性,更类似与液体或织物而非气体。

  基于以上观察,一种能较好创建单独火焰的技术是softbody,这种技术包括两个阶段:怎样使火焰运动和怎样渲染。申明一下,我们的焦点不是创建火,就是那个在壁炉/营火/火球出现的大火, 只是一个小小的烛焰。这些效果在maya中意味更多的粒子而不是几何体。理想的做法是联合两种技术—在粒子群中创建ISO表面,这也许在maya4.5中利用流体动力学是可行的,PDI等工作室写出了类似软件,在影片“Shrek”中用于火龙喷出的火球。不过我们仍需等待。因为我想保证教程的精简,所以这是在假定你拥有一定的软件知识上写的。我们会选择如下技术 :modling,softbody,goals,springs,fields,lights,hypershade,render utilities,the connerction editor,shader glow。

  (1)用你选择的的技术为烛焰建模,要注意烛焰的UV坐标。如果是多边形表面,干净的规划UVs,以使color ramp能光滑的结合到表面,在我的例子,我创建了一条Nurbs曲线然后旋转,因为我们要把它转为softbody,保证有足够多的顶点以得到光滑的动态变形。

  (2)把烛焰模型转为softbody然后设计行为。选择模型,打开“Create Softbodys”对话框然后选择如下操作:Duplicate make copy soft,hide original,make non-soft a goal,设置设置weight value为1,此时softbody particles是不会移动的,除非目标移动因为goalPP以及goalweight的值为1。

  (3) 使用component editor来设置goalPP值以使环绕灯芯的粒子拥有一个较高的goalPP,比如.8,但剩余部分应该有一个较低的值,比如.2

  (4)为粒子加入一个turbulence field,此时烛焰会在。8到.2的粒子中产生“眼泪”。

  (5)为softbody加上一根弹簧使其具有流动和布料特性。在创建对话框中选择值为2的“wireframe”。你现在可以开始实验turbulence field的强度,频率,相位以及弹簧的硬度及阻尼。就像使用任何弹簧,如果你的弹簧由于高属性值而爆炸,记住增加场景的“over sampling”。

  设计完了烛焰的动画,现在我们把目光聚焦到渲染上。我们应该特别注意烛焰的亮度,色彩,透明度以及边界质量。烛焰的颜色在底部趋于蓝色,但顶部趋于橘红,有时是红色。通过对表面进行ramp贴图,我们很容易达到目的。另外烛焰在中心更加明亮,这可以通过变化材质透明度达到。烛焰在中心比边界更透明。现在设置透明度。

  以上我们看到了六个不同的shader,每个shader在不同方面控制透明度,每个shader都是lambert,表面颜色白色。折射关闭。

  (A)不透明

  (B)透明度被设置为50%灰度,这就是maya缺省计算透明度方式,当透明度逼近白色,表面均匀褪色。

  (C)透明度直接被sample info的facing ratio控制。

  (D)透明度被set driven key关联控制,facing ratio为driver。

  (E)透明度直接被ramp控制。  (F)透明度被ramp和set drivern key曲线(facing ratio为driver)的乘积(multiplication)所控制。也可以直接连一个ramp到透明度,再把facing ratio曲线连到ramp的color gain。因为缺少教材,渲染程序节点看起来有些神秘,但它们的确可以达到很多目的。在本例中我们使用“sample info utility”……不要和名称相近但完全不同的“partical sample utilitky” 混淆.sample info utility(SIU)拥有好几个属性,其中之一便是“facing ratio”。它的属性值从 0变化到1,取决于表面法线相对于摄象机的位置。法线正对摄象机值为1,垂直为0。通过connection editor连接SIU的“浮点”facing ratio output到材质的“向量”transparency,我们在透明度和面对比率之间得到一个线性关系。  以上我们看到hypershade中连接后的结果。缺点是缺少灵活的变化。与你努力相对的是,边界更透明了,你需要更生动的衰减,如下图。

  接下来就是不仅要让烛焰中心比边界透明,而且底部要比顶部透明。为了达到目的,一旦SDK/SIU关系建立,打断SDK曲线输出和材质的连接。然后创建一个ramp和multiply/divide utility。连接ramp的‘color output’到multiply的节点‘input one’,再连接SDK曲线到‘input two’,最后连接multiply节点的output到材质的transparency。如果你愿意,可以不使用multiply节点,而把SDK曲线连到ramp的‘color gain’。

  最后一步就是指定shader glow,从上图可以看出加入glow后的进步。最左端的图象没有glow,但基于SIU的透明是显然的。一旦glow生效,我们可以选择是否保留几何体。通过勾选‘hide source’,实际的几何体不会被渲染,只有发光。这就是令烛焰表现完美的伟大技术,但并不仅限于此。当然,通过类似的流程就算是幽灵也可以轻松完成。当glow生效后,我们还需要知道一些关于shader glow节点的知识。在multilister/hypershader中有一个shader glow节点,它控制着所有材质的glow。如果你需要不同物体表现不同的glow,就必须分遍渲染。此外,还有很多属性可以用来设计glow的外观,其中之一便是threshold(初始值)。上图中,右边三幅图的threhold值分别是0,.08和.04。threshold环型修剪glow的亮度值,的确是一个设计glow外观的好工具。另一个需要改变的重要属性是auto exposure(自动暴光),缺省为打开。这会使glow在动画中闪烁,最好把它关闭。这样做会使glow爆裂,因此你要在shader glow节点,中降低glow和halo(光晕)的强度。另一个需要提出的问题是我们通过给表面颜色贴图而不是给白炽(incandecance)贴图来创建烛焰。这是因为亮度是基于透明度的。如果你需要使用incandecance,记住一旦此区域有一较高的 incandecance值,则透明部分会渲染的更亮,所以你需要用SIU来控制incandecance,并且有一个反转值。

  PS:图就是我们用incandecance来定义烛焰亮度的结果,同样的SIU SDK曲线被同时用于transparency和incandecance,但对于incandecance,SDK曲线首先要经过reverse utility(反转节点)。

  本文仅为提供更多信息,不代表火星时代同意其观点或描述,如需转载请注明出处。

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台