全局照明英文叫GI是Global illumination的缩写。下面搭建一个简单的场景来说明问题,为什么要开启全局照明?灰色地面,红色背景墙,绿色茶壶,一个VR太阳灯。
在没有启用GI的时候渲染,我们可以看到茶壶的一侧被直接照亮了。能把物体直接照亮的是直接照明。而茶壶的另一侧是漆黑的,这是由于他接收不到直接照明,而间接照明又没有打开。
那么,什么是间接照明呢?在生活当中如下图光源会先照射到墙上再反射到茶壶上,这种照明由于并不是直接照在茶壶上,而是照到别的物体上反射到茶壶上,所以叫做间接照明。
可以看到由于墙面是红色,间接照明导致了茶壶的暗部受到了红色的影响
从左侧渲染时间上我们可以看到渲染间接照明会更耗时。因为计算了更多的信息。
全局照明就是把物体的直接和间接照明都进行计算,下图的对比中启用全局照明后渲染出了更好的光照信息。
问题来了
我们知道生活中光源会发射无数条光线,而光线会根据物体的平坦程度产生漫反射,照射到茶壶的后面。
由于光线数量庞大,会有很多次的漫反射就像下面一样
这样无数条光线,先照射到墙体上反射到茶壶上,再反射到地面上,再反射到墙面上。这样无数次反射,直到能量消失。这种接近无穷尽的情况在V-Ray中你永远也渲染不完。
现在我们看下V-Ray全局照明的首次引擎和二次引擎是如何计算这种问题的。
灯光照射到墙面上会反弹一下,V-Ray会计算一下光线直接照射到这个点上会反射多少光线到其他物体上,具体反射多少是由粗糙度来决定,如果是镜子就反射的就多,粗糙的木头、泥土反射的就少。根据这个道理来运算出到底反射多少光线。这种第一次的反弹,叫首次反弹。
第一次反弹后,光线还会反弹到地板或者墙面上。这里,我们统称第一次反弹后的所有反弹都为二次反弹
而V-ray里面反弹的计算时相反的,即反向计算。什么是反向计算呢,如下图现实生活中光源照射到物体上后再反射到我们的眼睛上,我们才能感受到物体的亮度,颜色和材质等信息。这是一种正常的运算方式。
而V-Ray的算法恰恰是相反的,如下图他先从摄像机发出射线,这个射线不是光线。我们一般称之为搜寻光线(eye rays),利用这种射线来辨别能看见什么东西,比如他看见了茶壶然后再看是谁照亮了茶壶。
V-Ray不论首次还是二次共四种运算方式,这四种除了光子图有些特殊之外,都是反向运算,而光子图的首次也是反向运算,但是他略有不同,正是这种反向运算的方式,让我们减少了很多的渲染时间。
上一篇 下一篇
全部评论