
这是我大概两年前些的一篇帖子。最早是发在maya贴吧,当时还没有使用博客。因为帖子的内容确实写得非常好,最近博客看的人多了一些,所以就把这篇教程重新发在博客里。因为当时也没有开始录视频教程,所以这篇教程只有文字。
这篇帖子讲述的内容主要使用maya 软件,以及mental ray渲染器。当时maya版的vray好像才出,都还不太好用呢。时间过得很快~
一:能量守恒。
在光线照射到某个物体表面的时候,总体上会出现三种反应:吸收,反射以及折射。其中反射又分为漫反射和镜面反射。
而所谓的能量守恒法则说的则是,能量不可能凭空产生也不可能凭空消失,只可能发生转换。
用在光线传播过程中则可以得到这样一个公式:入射能量=吸收能量+反射能量+折射能量。
其中,吸收的能量一般转换为热能,是我们不需要考虑的部分,将这一部分掠去,得到公式:入射能量>=反射能量+折射能量。其中,反射能量可以分为漫反射和镜面反射,而漫反射在我们cg中,一般为diffuse,而镜面反射一般为specular,而折射一般为refraction,令入射能量为100%,即为1。则可以得到最终我们可以使用的公式:1>=diffuse+specular+refraction.
二:所有反射都具有菲涅尔效应。
引用下mentalray官方帮助文档的图。
菲涅尔就是你的视线和你看的面的夹角越垂直,则看到的反射越低,你的视线与你看的面的夹角越接近0度,则反射越高。
另外,决定菲涅尔效应的主要是折射率这个属性。当折射率越靠近1的时候,90度视角与0度视角的反射率之间的差别越大,当折射率数值越高的时候,90度视角与0度视角的反射率越接近1。
一般透明物体的折射率在1.3-1.9之间,塑料、橡胶、烤漆也是这个范围左右。金属则是4-10,甚至更高。
这里使用大家最熟悉的blinn材质,运用前面讲的基本原理来制作玻璃。
首先是设置场景,对于高反射的金属或者玻璃等物体来说,基本上可以说不存在自身的固有色,这些物体之所以被看见,是因为反射或者折射周围的环境,于是,环境对于玻璃的制作来说是万分重要的。没有环境就没有效果。
这个场景使用hdr来进行照明。在mentalray中则是使用IBL节点。
关键设置如下:
开启IBL节点,如果FG没有自动开启,请手动开启。
关闭场景的默认灯光,在common标签的最后。
启用色彩管理,如下设置,开启线性工作流。

渲染得到的结果。
给模型一个blinn材质,并且调节transparency到全透明。
并且在raytracingoption标签下开启折射,refraction,将折射率调节到1.7或者类似的一个数值。
得到一个很黑的结果。
这是因为反射折射次数在默认情况下都设置得非常小。
为了讲解反射和折射次数,我做了一个简单的场景来说明。
两面相对的镜子,中间有个小球。
镜子给的是高反射的材质。
按照我们的生活经验,两面相向而立的镜子应该是无限次反射才对,但是在我们的软件渲染出来的图可以看到,从一面镜子里面只能看到对面的镜子和小球,并且对面的镜子里的反射是没有的,反复对面的镜子不会反射一样。但其实这两面镜子我给了同样的材质。问题在哪里呢,就在反射与折射次数的限制。
当我们在渲染的时候,如果遇到像我现在使用的这个案例的时候,计算机如果按照生活里的经验去计算,那么就要无限地计算两面镜子之间的反射,那么渲染便永远不会终止。为了避免这种情况的产生,软件中引入了反射与折射次数限制来提高性能。
而这个限制则是由两部分构成的:全局设置以及单个材质的设置。当你打开mentalray的quality标签,下面有个raytracing,reflection和refraction的值则分别对应会计算的反射和折射次数,而maxtracedepth则是这两个值相加的最大限制。比如两个值都设为10,但是maxtracedepth也设为10,那么折射和反射次数则不会达到20,而是不会超过10.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-48247-1.html
在中国你不和政府好好关系
让他随便摸
是中国人应该的