3d光子圖是什么原理?3d為什么要出光子圖?
在使用渲染100(邀請碼1a12)渲染時會渲染光子圖,光子圖渲完后才會開始渲大圖,比如下面這樣,
那么為什么要渲光子圖呢?光子圖又是什么原理?今天我們就來了解下吧。
光子圖的原理涉及到Vray的發(fā)光圖和燈光緩存兩項技術,發(fā)光圖會計算場景中光線對物體表面的照射效果,而燈光緩存與此相反,是對照射物體表面的光線進行追蹤和計算,兩者互相配合才生成了光子圖,下面我分別介紹下它們。
一、發(fā)光圖
發(fā)光圖通常又稱為發(fā)光貼圖,它會計算場景中任何物體的任意一點在光線照射下形成的效果,當光線照射到物體表面時,Vray會在發(fā)光貼圖中查找與當前計算點類似的點,并從已計算的點中提取信息,根據(jù)這些信息將這些相似點進行內(nèi)差值替換計算,但如果這個點與其他任何被計算過的點不同,就會重新計算并保存到內(nèi)存中。
由于上述原因,發(fā)光貼圖是自適應的,它會根據(jù)我們給定的參數(shù)對場景中物體邊界、物體交叉部分以及陰影等重要部分進行高精度的光照計算,而在大量平坦區(qū)域低精度計算。
理論上發(fā)光貼圖需要計算每個像素點的光線,然后再根據(jù)計算結果去渲染大圖,但這會耗費大量時間,而實際上很多時候我們并不需要如此精確,所以一般我們會選擇多個像素計算一次,而這就通過控制最小速率和最大速率來完成,這個控制有幾個維度。
首先最小和最大速率中的數(shù)字代表有多少像素被一次性采樣計算,0代表1個像素計算一次,-1代表4個像素計算一次,-2是16個,-3是64,-4是256,以此類推,都是4的冪函數(shù)。
其次,如果最小速率是-1,最大速率是-3,就意味著光子圖會計算3次,第1次是64個像素為一組進行一次計算,第2次是16個像素進行一次計算,第3次是4個像素計算一次,然后采用算法對三次計算結果進行疊加,以達到更高精度。
最后,疊加方式比較特殊,它并不是簡單的疊加計算,而是以最小速率控制場景中平坦區(qū)域的采樣數(shù)量,而以最大速率控制物體的細節(jié)部分,比如邊線、角落、模型轉(zhuǎn)折處等比較復雜的地方。也就是說光子圖渲染完成后大圖會自動根據(jù)模型的復雜程度調(diào)用光子樣本,比如場景里有一面墻,很平坦,上面沒有其他模型,那它就會調(diào)用最小速率中采集到的樣本進行渲染,而面與面的交接處,因為比較復雜,則會調(diào)用最大速率。
這也是為什么要進行多次光子圖的原因,很多人覺得麻煩,認為只計算一次光子就可以了,其實這是不對的,在時間允許的情況下應該進行多次光子計算。
二、燈光緩存
燈光緩存是對燈光進行的模擬,它會在攝像機可見范圍內(nèi)跟蹤光線的發(fā)射和衰減情況,然后把信息存儲到一個三維數(shù)據(jù)結構中。它支持任何類型的燈光,可以單獨完成對整個場景的GI照明,也可以配合別的貼圖做二次反彈,尤其是在墻角處呈現(xiàn)效果會更好,層次更細膩。
燈光緩存的參數(shù)中細分值是非常重要的,它決定了有多少條來自攝像機的光線被追蹤,這個值越大畫面效果越好,但渲染速度也會越慢,被追蹤的光線數(shù)量是細分值的平方,比如細分是300,就有300×300=90000條光線被追蹤,如果是1000,就是1000×1000=1000000。
注意:由于燈光緩存計算方式特殊,所以盡量不要將材質(zhì)色彩的RGB值設置為255,這樣會導致追蹤的光線路徑過長增加渲染時間。
關于燈光緩存的詳細內(nèi)容也可以看下我之前的文章。
了解光子圖的原理后我們就知道為什么要渲光子圖了,因為渲染光子圖能節(jié)省大圖的渲染時間,如果大圖尺寸比較大,建議先渲光子再渲大圖,至于光子圖的渲染時間受到什么因素影響,可以關注我后續(xù)更新哦。
如果要渲染這里我推薦網(wǎng)渲平臺渲染100,15分鐘2毛60分鐘8毛渲染小圖很合適,注冊時填寫邀請碼【1a12】會有2張免費渲染券,有需要的朋友可以去試試哦。