这篇教程向朋友们介绍用Maya打造香水瓶玻璃材质的方法和具体的制作过程。教程制作的效果堪称照片级。本教程主要是关于材质(shaders)(在Maya中创建玻璃容器中的液体)的教程,对于创建香水瓶(用于印刷设计),酒杯中的水,以及其它一些和玻璃、液体有关的东西(与mentalray无关)都有帮助。先看看最终的效果图:
在开始本篇教程之前,你必须要知道以下几点:1.液体的反射是如何影响玻璃表面的。2.玻璃的各个表面和液体/水之间的反射和折射。3.环境的反射也影响了玻璃表面。4.为什么倒角对于玻璃的制作很重要。
1.液体的反射影响着玻璃的表面。
如果有一个光亮的玻璃瓶,里面盛着有色的液体或者水,那么它就一定包含着以下3个反射的区域。
-外表面反射
-内表面反射
-内部液体反射
这就意味着每个表面都有它自己的材质。
液体的颜色反射在玻璃瓶的内外表面上,这些反射后的形状叫做折射。当光经过水、玻璃、望远镜、塑料、放大镜以及其它一些凸起的东西时,光线弯曲,就会产生折射。
2.玻璃的各个表面和液体/水之间的反射和折射。
水是对于光的反射很强(和玻璃一样),同时光从玻璃表面到水时,也会发生反射和折射。
3.环境的反射也影响了玻璃表面。玻璃会反射周围的物体。
4.为什么倒角对于玻璃的制作很重要。
很重要的是,有倒角的玻璃会产生高光,因为倒角有凸起的表面,所以它会折射所有的反射光、环境光和光源射来的光。
ramp1的作用:从samplerinfo1获得表面上与摄影机法线方向相对应的每个点的facingratio值(范围是0至1之间),将此值与ramp1(类型(type)为v ramp)vcoord相连接,这样每个facingratio值就对应了一个ramp1中的selected position值,通过调整selected position所对应的颜色,就可以使每个表面上与摄影机法线方向相对应的点有一个确定的颜色值。而ramp1又与透明度相连接,所以,就可以通过调整ramp1的selected position及其相对应的颜色,来控制表面上与摄影机法线方向相对应的每个点的透明度。
假设表面上的某一点通过samplerinfo1的采样得到了一个facingratio值为0.003【这个点的法线应该是与摄影机的方向几乎垂直(比如摄影机视图中一个球体边缘上的点)】,ramp1中的selected position为0.005的位置的颜色是r 0.137/g 0.137/b 0.137,而0.005以下的位置其颜色均为r 0.137/g 0.137/b 0.137,所以表面上这个点的透明度为r 0.137/g 0.137/b 0.137。以此类推,表面上facingratio值越大的点(即法线与摄影机方向越接近平行的点),其透明度越接近白色。当点的facingratio值大于等于0.61后,其透明度就为白色(因为上图的白色的标记点的selected position为0.61)。
place2dtexture与ramp1相连接,为最终的透明度(transparency)过滤表面的uv方向。
ramp2 的作用: 同ramp1类似,只是连接到材质的反射率上。
envchrome1的作用:用来给blinn材质反射增加格状反射环境,如果你愿意,你也可以使用envshpere。
注意:如果你想得到更柔和反光,你也可以使用phong,在这个例子里,我使用了有尖锐反射的blinn。
反射体的材质
下一步,我们需要一个主玻璃材质的副本来为内反射面新建一个材质,对于这个内表面反射体的材质,你可以将specular color上连接的贴图节点(file3)断开,用一个单独的颜色替代(在这里我使用了亮橙色)。
这样我们就有了3个材质:主玻璃材质,内反射面材质和液体材质。
好了,正如我在教程一开始就说的,这个盛着有色液体或者水的光亮的玻璃瓶包括3个反射区域,因此建模时也就包括3个表面:
紫色=外表面
白色=内表面
绿色=液体表面
重要的是:要在物体的属性编辑器中的render stats项里将玻璃内表面和水表面的cast shadows和receive shadows关掉,因为它们只会接收或产生反射和折射。
小技巧:
1.在给玻璃瓶和液体建模时,可以复制一份主玻璃物体,并使用isoparm(分离(detach)表面)来创建液体,然后使用planar制作液体的上表面。
2.你可以使用layered shader或者单独的透明材质来制作香水标志。
3.在玻璃瓶的周围放置更多东西以增强反射和折射效果。
现在指定材质 外表面使用主玻璃材质 内表面使用反射体材质 液体/水表面使用液体材质
最后在渲染之前检查一下:确保在render globals中打开raytracing模式,然后将quality设置为production quality。