先簡單的了解一下什么是全局照明。
全局照明英文叫GI是Global illumination的縮寫。
下面搭建一個簡單的場景來說明問題,為什么要開啟全局照明?
灰色地面,紅色背景墻,綠色茶壺,一個VR太陽燈。

在沒有啟用GI的時候渲染,我們可以看到茶壺的一側(cè)被直接照亮了。能把物體直接照亮的是直接照明。而茶壺的另一側(cè)是漆黑的,這是由于他接收不到直接照明,而間接照明又沒有打開。

那么,什么是間接照明呢?在生活當(dāng)中如下圖光源會先照射到墻上再反射到茶壺上,這種照明由于并不是直接照在茶壺上,而是照到別的物體上反射到茶壺上,所以叫做間接照明。

可以看到由于墻面是紅色,間接照明導(dǎo)致了茶壺的暗部受到了紅色的影響

從左側(cè)渲染時間上我們可以看到渲染間接照明會更耗時。因?yàn)橛?jì)算了更多的信息。

全局照明就是把物體的直接和間接照明都進(jìn)行計(jì)算,下圖的對比中啟用全局照明后渲染出了更好的光照信息。
問題來了
我們知道生活中光源會發(fā)射無數(shù)條光線,而光線會根據(jù)物體的平坦程度產(chǎn)生漫反射,照射到茶壺的后面。

由于光線數(shù)量龐大,會有很多次的漫反射就像下面一樣

這樣無數(shù)條光線,先照射到墻體上反射到茶壺上,再反射到地面上,再反射到墻面上。這樣無數(shù)次反射,直到能量消失。這種接近無窮盡的情況在V-Ray中你永遠(yuǎn)也渲染不完。

現(xiàn)在我們看下V-Ray全局照明的首次引擎和二次引擎是如何計(jì)算這種問題的。

燈光照射到墻面上會反彈一下,V-Ray會計(jì)算一下光線直接照射到這個點(diǎn)上會反射多少光線到其他物體上,具體反射多少是由粗糙度來決定,如果是鏡子就反射的就多,粗糙的木頭、泥土反射的就少。根據(jù)這個道理來運(yùn)算出到底反射多少光線。這種第一次的反彈,叫首次反彈。

第一次反彈后,光線還會反彈到地板或者墻面上。這里,我們統(tǒng)稱第一次反彈后的所有反彈都為二次反彈

而V-ray里面反彈的計(jì)算時相反的,即反向計(jì)算。
什么是反向計(jì)算呢,如下圖現(xiàn)實(shí)生活中光源照射到物體上后再反射到我們的眼睛上,我們才能感受到物體的亮度,顏色和材質(zhì)等信息。這是一種正常的運(yùn)算方式。

而V-Ray的算法恰恰是相反的,如下圖他先從攝像機(jī)發(fā)出射線,這個射線不是光線。我們一般稱之為搜尋光線(eye rays),利用這種射線來辨別能看見什么東西,比如他看見了茶壺然后再看是誰照亮了茶壺。

V-Ray不論首次還是二次共四種運(yùn)算方式,這四種除了光子圖有些特殊之外,都是反向運(yùn)算,而光子圖的首次也是反向運(yùn)算,但是他略有不同,正是這種反向運(yùn)算的方式,讓我們減少了很多的渲染時間。