全局光照_光子映射GI引擎

除光子貼圖引擎外,所有GI引擎均通過攝相機發(fā)出的光線來工作。但是,光子貼圖通過從燈光中發(fā)射光子來工作。對于某些種類的效果(如焦散),這具有重要的質量優(yōu)勢。下圖顯示了它是如何工作的。


這樣相比而言就有了一定的優(yōu)勢,當我們渲染一張成圖后,如果想要對場景的攝像機位置進行修改,那么可以直接調用之前渲染好的光子緩存進行渲染,因為光線計算受燈光影響,只動攝像機是沒有任何影響的。同時如果之渲染攝像機動畫,那么我們可以用一幀的光子緩存渲染多幀的攝像機動畫,便達到加速的效果。
光子貼圖的好處:
提供很好的控制度
對于合理數量的光子,它可以快速渲染
光子貼圖的缺點:
光子貼圖是一種過時的技術,優(yōu)化比較少
光子必須存儲在GPU內存中,因此太多的光子在顯存使用方面可能會占用較多
參數設計較多,調節(jié)稍微麻煩
由于是燈光發(fā)射光子,因此有一些設想看不到的地方也會有光子進行計算,這會大大降低渲染速度
如何使用光子貼圖GI引擎?
場景中需要有燈光光源,開啟對應想要的光子計算,如下方Caustics(焦散光子)GI(全局光照光子)之后可以調整光子的(Intensity Multiplier)強度,或者(Number of Photons to Emit)光子發(fā)射的數量。

? 2.GI引擎,首次GI引擎或者二次GI引擎需要有一個為光子貼圖。

3.由于光子貼圖的特殊性,再IPR交互渲染是看不到最終的結果的。如果想要看到渲染的結果需要開啟(Bucket Rendering)區(qū)塊渲染/最終渲染。(下面是首次引擎和二次引擎都啟用光子貼圖的渲染效果)

我們會發(fā)現圖中有很多的斑塊,這由于光子貼圖計算的原因導致的。
光子貼圖引擎現在場景光線能夠照射反彈的的位置生成光子緩存,之后再利用光子緩存進行渲染。我們成圖的每一個像素都是又很多個光子計算而來。
我們先來看一下光子貼圖GI引擎的參數。

Enable GI:光子貼圖是否對GI起作用
Enable Caustics:光子貼圖是否對焦散起作用。
這里設立兩個開關的意義在于,Redshift渲染器可以在不使用光子貼圖作為GI引擎的情況下進行焦散的單獨計算。
Mode:存儲光子緩存文件的模式/Filename:文件名稱
Rebuild:構建光子緩存文件,并保存緩存文件,之后再渲染成圖
Load:加載已有的光子緩存文件,渲染成圖
Rebuild(Prepass Pnly):構建光子文件并保存,但是不會最終渲染。
Rebuild(Don`t Save):構建光子緩存文件,不保存,渲染最終成圖
Reflection Tracing Depth:反射光線跟蹤深度
Refraction Tracing Depth:折射光線跟蹤深度
Combined racing Depth:綜合光線跟蹤深度。
綜合光線計算深度≠反射光線跟蹤深度+折射光線跟蹤深度。綜合光線跟蹤深度類似于一個總的開關,控制其他的百分比。實際效果控制著場景的明暗。如果或有焦散,折射光線跟蹤深度必須≥2次。
Max Num GI Photons:最多光子數量。指的是在最終渲染輸出時,每一個像素能夠采用周邊搜索距離內多少的光子用于渲染。
GI search Radius:搜索距離,指每一個像素,能夠搜索周圍多遠的光子。單位是工程的單位。
Max Num Caustics Photons/Caustics search Radius:和上面同理,只不過上面針對于GI。這里針對于焦散
具體在最終渲染的表現如下圖(最多光子數量和燈光能發(fā)射的光子數量控制整體質量精度)


搜索半徑類似于一個模糊的效果。但是如果要完全消除光斑現象,需要增加發(fā)射的光子數量和最大光子數量。
Fast Irradiance:快速光子輻照,在上面我們已經講解了最終像素的計算是通過獲取周邊的光子信息,但是有時候某些地方的光子很難獲取,需要花費一定的時間,因此我們可以打開這個開關用于快速模糊的獲取光子,以提升渲染速度,但是代價可能會造成計算不準確。