搜索文章:

首页  |  Java技术  |  Asp.net  |  Asp编程  |  VC/C++  |  Delphi  |  VB编程

3ds max材质的制作与运用实例:冰块

  在3DSMAX设计中,材质的制作与运用是一个非常重要的环节,也是相当困难的环节之一。因为材质的制作不像建模工具那样直观,那样立竿见影。各种材质类型、贴图类型、贴图通道类型以及程序贴图那些让人晕头转向的设置参数常常让我们如坠五里雾中。本系列教程就将试图通过一系列的实例将3DSMAX材质制作的各个环节串联起来,让读者不仅学会怎么做(HOW),更掌握为什么这样做(WHY),当然,在此期间,熟悉材质制作过程中各种工具、贴图、通道究为何物(WHAT)也是必要的。文章末尾提供原文件供大家下载参考。

  1.效果分析和实现方法

  

  上图就是本节教程将要完成的最终效果图,仔细观察这幅图片,我们至少可以总结出冰材质必须具有的四个特征,分别是

  投影,光线照射冰块留下的阴影是非常浅的,而且有一个很明显的特点就是,阴影的边缘区域比中心区域颜色深,勾画出阴影的淡淡轮廓。在Transparency贴图通道中贴入FallOff贴图可以实现这种效果。

  折射,周围的景物会由于光线透过冰块时发生折射而进入渲染视野,这个效果的形成主要靠Raytrace类型材质自身的特性来实现。

  高光和表面效果,玻璃材质的高光和玻璃的有些类似,比较亮,边缘清晰,但是冰块表面的高光的外形是不规则的(因为其表面不会很光滑),另外,冰块是一种比较脆弱的物质,表面容易出现较深、槽口锐利的凹痕。这些表面效果可以通过将Dent、Smoke两种程序贴图混合用于Bump贴图通道来实现。

  透明,从摄影机的角度看过去,正对着摄影机的表面(也就是法线方向和摄影机的指向平行的面)显得更加透明,和摄影机夹角较大的边缘区域的透明度则明显下降,呈现为乳白色。这种效果是绝大多数透明物体(玻璃、冰块等)都具有的特性,Transparency和Luminosity贴图通道中使用FallOff贴图可以实现这种效果。

  2.Raytrace材质

  1)设置材质类型

  首先,我们来启动材质编辑器(快捷键M),选择一个样本球,单击Standard按钮,从弹出的材质/贴图浏览器中选择Raytrace,然后单击OK按钮。

  这时如果进行渲染可以看到这样的效果,好像和普通材质没有什么区别?别着急,我们来调整Raytrace的参数。

  

背景知识:为什么用Raytrace类型材质?

  Raytrace材质比较适合于制作表面有反光效果的或者具有折射特性的材质,最典型的就是算玻璃、水、冰块了。Raytrace材质类型所能实现的效果通常有可以通过在Standard材质类型的贴图通道中添加Reflect/Refract类型的贴图来实现。不过使用Raytrace材质的效果更加准确,当然渲染速度也较慢。?

  2)设置Shader

  进入Raytrace的参数面板,首先将Shading(着色器)设置为Metal,设置为Metal可以让物体表面产生连续的、片状的、边缘清晰的高光,表面光滑的物体表面都会有这种效果,以金属最为典型,因此得名,但是我们不仅仅可以将其用于制作金属效果,比如本例中的冰块。Diffuse(散射)颜色设置为白色,Index Of Rate(折射率)为1.3,取消Reflect(反射)后面的复选框,然后设置Specular Level为110左右,Glossiness为90左右。

  

  这时的渲染效果是这样的。

  

 背景知识:关于Shader

  Shading用来设置材质对光线作用的反应,只有Standard和Raytrace类型材质可以设置Shading类型。那不同的Shading到底有什么区别呢?

  3DSMAX材质编辑器中的默认的Shader是Blinn,Blinn是属于“万金油”型的Shader,几乎所有的材质都能使用使用这种Shader。但是如果你对效果比较挑剔,或者需要制作的材质比较特殊,修改Shader就是必要的了。比方说,人的皮肤在正常情况下是不会有太强的反光作用的,也就是是说不会“油亮油亮”的,它的反光总是比较柔和的,制作这种材质时应当使用Oren-Nayar-Blinn。这个Shader是Blinn的变体,柔化了高光,不要被它的名字搞晕,它是以作者的名字命名的。再比如,拉丝金属表面会有一种非常独特的反光效果,呈交错的带状,这种高光是由于物体表面极其微小的平行排列的条纹形成的(CD盘产生的五彩反光也是这样形成的),它有一个专门的名字叫“各向异性”高光,即Anisotropic。3DSMAX提供了这种Shader,直接使用这种Shader可以大大简化此类材质的制作。


   3.Transparency贴图通道

  前面分析效果的时候已经提及,从一定的视角来看,玻璃的透明效果总是中心大于边缘的。透明,我们自然应当想到Transparency贴图通道,那么“中心大于边缘”应该用什么贴图呢?你可能会想到Gradient或者Gradient Ramp这样的贴图,这种贴图确实具有我们需要实现的效果的某些特征,但是并不完全符合,最大的不足就在于,它们的过渡方式比较呆板,只能是线形、球形等等。而我们需要的实际上是一种可以根据物体表面凸凹不平的变化以及物体表面和摄影机之间的夹角来进行过渡的效果,要制作这种效果,只能是非FallOff贴图莫属了。

 1)添加FallOff贴图

  在Raytrace的基本参数面板中,单击Transparency后面的方形按钮,从弹出的贴图/材质浏览器中选择FallOff,不要修改它的默认参数。

  

  我们来渲染一下,可以看到这样的效果。

  

  这个效果和我们需要的恰恰相反,不是中心比边缘透明,而是边缘比中间透明,修改得方法很简单。

  2)设置FallOff贴图

  在FallOff贴图的参数面板中,拖放上面黑色调色框到下面的白色调色框上释放,从弹出的对话框中选择“Swap”(交换)。

  

  现在再进行渲染,效果就大不一样了。你会发现我们仅仅设置了一下Transparency透明通道就让物体具有了折射光线的效果,这也是Raytrace类型材质自身的特点之一——只要有哪个地方透光,就会自然产生折射效果。如果对于普通的Standard材质,我们还需要设置Refraction贴图通道,才能得到这样的效果。

  

  4.Lumiosity贴图通道

  现在的问题是,物体边缘有一个黑圈,要想消除这个黑圈,我们可以考虑使用Lumiosity贴图通道。单击Luminosity贴图通道后面的方形按钮,从弹出的材质/贴图浏览器中选择FallOff贴图,不要修改默认的参数。然后渲染一下可以得到这样的效果。Raytrace类型材质具有一个Luminosity贴图通道,它和普通材质的Self-Illumination贴图通道类似,如果你清除Luminosity前面的复选框就可以发现它的名称变成了Self-Illumination。

  

  这里要说明一下,Luminosity的设置是比较灵活的。你也可以不在里面贴入FallOff贴图,而是清除前面的复选框将其转换成Self-Illumination,然后设置自发光参数为100。这样物体表面会以Diffuse颜色为基准具有自发光的特性。参数设置和渲染效果如下图,这种方法的特点是物体的透明度会因为表面均衡无变化的自发光导致其透明度下降。你也可以使用这种方法来消除上一步中出现的黑边,不过这样的效果是不是更加接近真实冰块就是见仁见智的问题了。

  

相关文章:
© 2006   www.java-asp.net