本教程是原来的老教程了,由于制作出来的效果非常好,教程也不太复杂,所以拿出来分享,希望对大家有所帮助。 如果你有足够的想象力和分析能力,你可以得到更多更好的效果。
1.石头材质,与以往项目不同的是,这个片头不是在电视,而是在影院播放的,所以要求片子渲染精度达到2K。原始模型是用Polygon方式建立的。 (图01)
图01
2.大家知道,通常多边形模型在赋材质前都要进行分UV的操作,UV分得不仔细就会造成贴图的拉伸。不过,像上图这样的模型恐怕没有人会愿意去给它分UV。而且,此次不止渲染尺寸大,镜头距模型也非常近。在这样的情况下,任何一点点的拉伸都会严重影响渲染的真实感。在这种情况下,似乎只有一种方案:使用3D程序纹理。3D程序纹理的特性是不依赖分UV就可以在模型上产生没有任何拉伸的纹理。同时,它的缺点也很明显:在某种意义上不够真实。那么,怎样才能使它看起来更真实一些呢。一个办法是建立多个不同的3D程序纹理,然后用layeredTexture将它们叠加在一起混合。在这个石头的材质中,我用了两个3D程序纹理:solidFractal和cloud。另外,为了使整体的渲染效果多一些变化,我还对材质做了一些局部的做旧。 (图02)
图02
3.首先我先在正视图渲染了一张场景的GI图片。这里说GI不太准确,其实是ambient occlusion,或简称AO 。具体如何生成这张图,很多方法,比如用MAYA自带的Mental Ray;用新推出的MAYA外挂渲染器turtle。甚至大家常用的GI_Joe等等都可以。具体我这里用的是turtle(只是生成这张图时用的turtle,最后渲染依然是MAYA默认的渲染器)。生成此图时,我的参数开得不够高,一方面是考虑到速度会快一点。另一方面,参数开得不够高会导致算出来的图会有一些斑点污迹(见图02下半部分)。而这种污迹在这里其实正是求之不得的。如果太平滑了,反而会使效果缺乏真实感了。一举两得。那么,生成的这张图有什么具体用处呢? 用来做遮罩! (图03)
图03
[page]
4.下面用一个简单的场景来说明它的用法。下图所示,就是这个简单场景的默认渲染。 (图04)
图04
5.建立一个layeredTexture(层贴图),并连接到材质的Color属性.点击建立两个空层,分别改变它们的颜色为红色和绿色。(图05)
图05
6.将刚才渲染的AO,贴在绿色层的Alpha属性上。注意,贴图的方式要选则投影方式,并且在方向上要与模型对整齐,渲染。(图06)
图06
7.现在,你已经看到效果了。我所做的其实就是用这张纹理做为红色层与绿色层的一个遮罩。那么,按照这个思路,只要分别把绿色与红色贴上相应的纹理,那么我们所要的效果也就出来了。下图是石头材质的节点网。 (图07)
图07
8.下面(图08)为完成的渲染图,(图09)为原始的1:1尺寸时的局部截图。大家可以清楚看到其中的细节。
图08
图09
[page]
9.琉璃材质,通过观察及查找一些图片资料,基本上可以通过两层材质来制作琉璃,低层的瓦,和表层的釉。这看起来有些类似于通常制作车漆的方法。我用了layeredShader(层材质),注意它与前面所用到的layeredTexture(层贴图)是不同的。底层的瓦用了lambert材质来表现。表层的釉使用了Blinn材质,由于这一层是透明的,所以将材质的Transparency值打得很高,几乎完全透明。只取它的高光和反射。用图更容易看得明白。 (图10)
图10
10.值得注意的是,无论是上面的石头材质还是琉璃材质,在它们的节点网中都出现了一个小组合,我想有必要对其简单介绍一下,以使大家能更清晰的了解这两个材质节点网。
将这个小组合抽离出来,并简化成最简单的状态。 (图11)
图11
11.samplerInfo:是MAYA材质系统中最常用的节点了,几乎每一个材质都会用到它。
surfaceLuminance:可能不如samplerInfo用得多,但也非常有用。
multiplyDivide:在这里的作用是将samplerInfo与surfaceLuminance的效果结合到一起。
ramp:再常用不过的程序纹理。
用文字描述可能很麻烦,所以我做了下面这张图。 (图12)
图12
12.第一种效果在很多MAYA教材中都有介绍,它利用samplerInfo节点的特性来制作类似X光效果。
第二种效果有点儿不一样,surfaceLuminance节点的作用是依照灯光方向的不同而产生变化。
第三种是通过一个multiplyDivide节点来结合两种效果。上边的石头材质和琉璃材质都用到了这个组合。当然,这里列出的是最简化的连接方法,比如你还可以在中间加入clamp节点来限制输出值的范围。这样,当场景中灯光的亮度值超过1时,也不会出现不正常的现象。
琉璃石壁最终效果! (图13)
图13