鄭州unity3d培訓(xùn) 詳解Unity中的全局光照
來源:
奇酷教育 發(fā)表于:
鄭州unity3d培訓(xùn) 詳解Unity中的全局光照。Unity5在圖形仿真和光照特效方面做了重大改變。自從3 0版本開始,Unity的光照效果一直局限于
鄭州unity3d培訓(xùn) 詳解Unity中的全局光照。Unity5在圖形仿真和光照特效方面做了重大改變。自從3.0版本開始,Unity的光照效果一直局限于烘焙好的光照貼圖。但后續(xù)的時(shí)間里,我們?cè)谌止庹疹I(lǐng)域有了很大的提升與改進(jìn),現(xiàn)在,是時(shí)候?qū)⑵渲胁糠置篮玫奶匦詮腢nity的沙盒中開放出來了。其中之一的新圖形特性就是基于新的和極大改善的光照流程基礎(chǔ)上的全局實(shí)時(shí)光照。這也是
奇酷介紹本文的重點(diǎn)。
什么是全局光照?
GI算法是基于光傳輸?shù)奈锢硖匦缘囊环N模擬。他是一種模擬光在3D場(chǎng)景中各表面之間的傳輸?shù)挠行Х绞?,他?huì)極大的改善你游戲的仿真度。不僅如此,他還可以傳達(dá)一種意境,如果巧妙的使用,可以有效得改善你的游戲體驗(yàn)。GI算法不僅考慮光源的直射光,而且還考慮場(chǎng)景中其他材質(zhì)表面的反射光。傳統(tǒng)上,在游戲中,由于實(shí)時(shí)性的約束,間接光照的模擬因性能消耗過大而被棄置一旁。
這些都是源于下面這個(gè)淺顯的方程:
這個(gè)很簡(jiǎn)單。從某一觀察點(diǎn)看到的光是從場(chǎng)景中物體表面點(diǎn)入射的光(Le)與從觀察點(diǎn)上方的半球入射的光的疊加。Li描述的是從半球上某一角度w’ 入射的光。反射項(xiàng)p描述的是光線如何反射到觀察點(diǎn),這項(xiàng)的取值依賴于入射角w’和觀察者的角度w。
細(xì)心的讀者可能已經(jīng)發(fā)現(xiàn)L(x,w)在方程的兩邊,而且有一個(gè)還在在積分式中。如果不是這種情形,我們也許已經(jīng)計(jì)算出全局光照的結(jié)果。由于物理規(guī)律是不太可能去修改的,研究協(xié)會(huì)提出了一套解決方案。
其中最流行(最古老的)的是光線跟蹤算法。這個(gè)算法從根本上改善了GI算法,在算法最困難的部分使用了一些比較耗時(shí)的技巧。光線跟蹤在電影或者電視的CGI上使用了很多。盡管該領(lǐng)域涌現(xiàn)了大量的研究成果,但是一張圖像的渲染還是要花費(fèi)數(shù)秒的時(shí)間(哪怕使用非常先進(jìn)的GPU)。
光線跟蹤通常使用的是屏幕空間,所以,一張圖像每一幀都需要重新渲染。這意味著,他完全支持完全動(dòng)態(tài)的場(chǎng)景:燈光、材料、幾何形狀自由變換的動(dòng)畫。這也是一個(gè)缺點(diǎn),因?yàn)槊慨?dāng)攝像機(jī)移動(dòng)的時(shí)候,一張新的圖片需要被渲染,而這張新圖像的收斂融合需要花費(fèi)數(shù)秒鐘的時(shí)間。這也導(dǎo)致他無法適用于游戲場(chǎng)景。
一張沒有完全收斂融合的圖像會(huì)有很多噪點(diǎn),而且他是時(shí)間不相干的,所以,圖像在完全收斂融合之前會(huì)有嚴(yán)重的閃爍??梢允褂脼V波來降低這種影響,但是不能徹底消除。下面是一些在不同收斂融合程度的圖像。
Path traced images at various stages of convergence.
最近,有了很多新的圖像混合的算法,其中大部分都在GPU中運(yùn)行,例如體椎追蹤。這些算法中的大部分需要在具有一定內(nèi)存大小的臺(tái)式GPU上運(yùn)行,他們只適合于高端PC系統(tǒng)。為了讓全局光照在更多的平臺(tái)(包括手機(jī))下運(yùn)行,這里做出了一些妥協(xié)。
以上就是奇酷教育
鄭州unity培訓(xùn)老師為大家講解的“
Unity中的全局光照”希望大家能學(xué)會(huì)。