效果图:
1.液体的反射影响着玻璃的表面。
如果有一个光亮的玻璃瓶,里面盛着有色的液体或者水,那么它就一定包含着3个反射的区域。
-外表面反射
-内表面反射
-内部液体反射
这就意味着每个表面都有它自己的材质。
液体的颜色反射在玻璃瓶的内外表面上,这些反射后的形状叫做折射。当光经过水、玻璃、望远镜、塑料、放大镜以及其它一些凸起的东西时,光线弯曲,就会产生折射。
2.玻璃的各个表面和液体/水之间的反射和折射。
水是对于光的反射很强(和玻璃一样),同时光从玻璃表面到水时,也会发生反射和折射。
3.环境的反射也影响了玻璃表面。
玻璃会反射周围的物体。
4.倒角对于玻璃的制作很重要。
有倒角的玻璃会产生高光,因为倒角有凸起的表面,所以它会折射所有的反射光、环境光和光源射来的光。
水和液体的材质(shader)
创建一个Phong材质,将颜色(Color)设为黑色,再将Transparency设成水/液体的原色。
将Cosine Power设到8-11之间,Cosine Power的设置取决于场景光,如果用了很多光,可以增加Cosine Power的值,使余弦值更小一些。
将Specular Color设为V=0.800左右(灰色),如果想得到更有光泽的玻璃效果,就将它设成纯白色。将反射率(Reflectivity)设为0。
进行光线追踪的设置,打开Refractions复选框,将折射率(Refraction Index)设为1.2到1.4之间。
将折射限定(Refraction Limit)设为10。将反射限定(Reflection limit)设为5到6之间。
主玻璃物体的材质
用于透明的ramp,采样工具(samplerInfo),用于反射的ramp,以及用于产生随机反射图案的贴图。
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后,其透明度就为白色。
place2dTexture与Ramp1相连接,为最终的透明度(transparency)过滤表面的UV方向。
Ramp2 的作用:同Ramp1类似,只是连接到材质的反射率上。
EnvChrome1的作用:用来给Blinn材质反射增加格状反射环境。
反射体的材质
需要一个主玻璃材质的副本来为内反射面新建一个材质,对于这个内表面反射体的材质,你可以将Specular Color上连接的贴图节点(file3)断开,用一个单独的颜色替代。
有了3个材质:主玻璃材质,内反射面材质和液体材质。
盛着有色液体或者水的光亮的玻璃瓶包括3个反射区域,因此建模时也就包括3个表面:
紫色=外表面
白色=内表面为
绿色=液体表面
在物体的属性编辑器中的Render Stats项里将玻璃内表面和水表面的Cast Shadows和Receive Shadows关掉,因为它们只会接收或产生反射和折射。
给玻璃瓶和液体建模时,可以复制一份主玻璃物体,并使用Isoparm(分离(Detach)表面)来创建液体,然后使用Planar制作液体的上表面。
使用Layered Shader或者单独的透明材质来制作香水标志。在玻璃瓶的周围放置更多东西以增强反射和折射效果。
现在指定材质外表面使用主玻璃材质,内表面使用反射体材质,液体/水表面使用液体材质。
最后在渲染之前检查一下:确保在Render Globals中打开Raytracing模式,然后将Quality设置为Production Quality。