摘要:光照模型在計(jì)算機(jī)圖形學(xué)領(lǐng)域中具有至關(guān)重要的作用,直接影響著圖像的逼真度和視覺真實(shí)感。本研究旨在改進(jìn)傳統(tǒng)的光照模型,以更準(zhǔn)確地模擬真實(shí)世界中光照的物理特性。綜合考慮了光的反射、折射、散射以及不同材質(zhì)表面對光的吸收、反射特性和能量守恒原則。結(jié)合菲涅爾效應(yīng)、微表面法線分布函數(shù)以及能量守恒等物理原理,建立了一個(gè)更精細(xì)、更真實(shí)的基于物理的光照模型。通過對比實(shí)驗(yàn)和改進(jìn)后模型的渲染效果,驗(yàn)證了改進(jìn)后的模型能夠更準(zhǔn)確地渲染不同材質(zhì)和光照條件下的反射和陰影效果,從而提高了渲染圖形的逼真度和質(zhì)量。這項(xiàng)研究為渲染領(lǐng)域提供了有價(jià)值的技術(shù)支持和應(yīng)用潛力。
關(guān)鍵詞:光照模型;計(jì)算機(jī)圖形學(xué);基于物理;視覺真實(shí)感
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2024)17-0123-04 開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID) :
隨著計(jì)算機(jī)圖形學(xué)的發(fā)展,光照模型在三維場景渲染中的作用愈發(fā)重要,直接影響圖像的逼真度和視覺效果。自1981年提出以來,Cook-Torrance光照模型[1]因其物理基礎(chǔ)和逼真效果,廣泛應(yīng)用于工業(yè)和學(xué)術(shù)界。該模型通過模擬光與粗糙表面的交互,為金屬和非金屬材料提供了準(zhǔn)確的光照計(jì)算方法。
盡管Cook-Torrance 模型在多個(gè)方面表現(xiàn)出色,但隨著渲染技術(shù)的進(jìn)步和應(yīng)用場景的復(fù)雜化,原始模型在處理某些特定材質(zhì)或光照條件時(shí)仍存在局限性,如極端條件下的反射率計(jì)算、高動(dòng)態(tài)范圍光照的適應(yīng)性及能量守恒的嚴(yán)格性等方面,未能完全滿足現(xiàn)代高質(zhì)量渲染的需求。
本研究旨在改進(jìn)Cook-Torrance 光照模型,引入新的物理參數(shù)和計(jì)算方法,提高其在復(fù)雜光照和材質(zhì)條件下的適應(yīng)性和準(zhǔn)確性,特別關(guān)注模型在處理高光反射、折射、散射及不同材質(zhì)表面特性時(shí)的表現(xiàn),使渲染結(jié)果更符合真實(shí)世界的物理特性。此外,研究還考慮了能量守恒原則和菲涅爾效應(yīng),構(gòu)建了更精確的光照計(jì)算框架。
通過對比分析改進(jìn)前后的模型渲染效果,驗(yàn)證了改進(jìn)措施的有效性,為計(jì)算機(jī)圖形學(xué)領(lǐng)域提供了新的研究方向和實(shí)踐應(yīng)用的可能性,期望能在追求極致逼真度和高度復(fù)雜場景渲染的應(yīng)用中發(fā)揮作用。
1 Cook-Torrance 光照模型分析[2]
該光照模型基于物理材質(zhì),主要考慮了光線照射到物體表面后發(fā)生的漫反射和鏡面反射現(xiàn)象。其中,Cook-Torrance模型主要用于模擬不同材質(zhì)的鏡面反射效果。
1.1 Cook-Torrance 局部光照模型
Ic - t = Id + Is = kd Ip Rd + ks Ip Rs (1)
式中:Ic - t是cook-torrance模型的反射光強(qiáng);Ip是入射光強(qiáng);Id是漫反射光強(qiáng),其中Rd = max(N·L,0),N是表面的法向量,L是光向量,計(jì)算方法仍沿用Blinn-Phong 局部光照模型[2];Is是鏡面反射光強(qiáng),Rs是鏡面反射項(xiàng)。
1.2 計(jì)算鏡面反射項(xiàng)(Rs)
F項(xiàng)為菲涅爾系數(shù);D項(xiàng)為微平面分布函數(shù);G為幾何衰減因子;N為表面法向量,L為光向量,V為視向量。
1.2.1 F 項(xiàng)-Fresnel-菲涅爾系數(shù)
描述每個(gè)光滑微鏡面的反射光與入射光之間的關(guān)系:
F = f0 + (1 - f0)(1 - cosθ)5= f0 + (1 - f0)(1 - V ? H)5 (3)
H是中分矢量,其中中分向量和光向量以及視向量之間的夾角是θ,f0為表面基礎(chǔ)反射率。
真實(shí)世界中,當(dāng)視線和表面的夾角不同時(shí),反射效果會(huì)有差別。例如,站在湖邊上,反射不明顯,可以看到水下的東西;但是向遠(yuǎn)處的水面看,反射則十分明顯,湖面像鏡子一樣。根據(jù)Schlick模型[3]可以近似計(jì)算出F,其中f0 是入射角度接近0°時(shí),也就是光線垂直反射時(shí)的 Fresnel 反射率。
1.2.2 D 項(xiàng)-微平面分布函數(shù)
模擬物體表面是由無數(shù)微小的像鏡子一樣的平面組成,每一個(gè)微平面對于光線會(huì)根據(jù)自身的方向反射光線。這里采用的是Backmann 分布函數(shù)[5],用分布函數(shù)D 來描述微鏡面分布的概率:
k 是用于度量表面的粗糙程度,也就是微鏡面的斜率。當(dāng)k 很小時(shí),微鏡面只是輕微偏離平面的法線,表面較光滑,反射光具有很高的方向性;當(dāng)k 很大時(shí),微鏡面的傾斜度很大,表面較粗糙,反射光線發(fā)散。
1.2.3 G 項(xiàng)-幾何衰減因子
在微觀表面層,入射光在抵達(dá)表面或反射之前,可能會(huì)受到鄰近微鏡面的遮擋,導(dǎo)致部分光線無法直接到達(dá)或反射。這些未被遮擋的光線會(huì)隨機(jī)散射,最終形成漫反射光。幾何衰減因子G 被用來量化這種遮擋效應(yīng),它描述了鏡面反射的輕微變暗現(xiàn)象。
幾何衰減因子項(xiàng),代表微鏡面之間的遮擋效果,實(shí)際應(yīng)用中G 被定義為:到達(dá)觀察者的光的最小強(qiáng)度,G取三種情況中的最小值 G 項(xiàng)的三種情況如表1所示。
2 對BRDF 的改進(jìn)研究
2.1 微平面理論
微平面理論(Microfacets Theory) ,就是從微觀角度去分析,其認(rèn)為任何物體的表面在到達(dá)微觀的尺度之后,都是由許許多多的更小的鏡面所組成的,如圖1和圖2表示粗糙和光滑表面。
當(dāng)這些微小的鏡面的法線方向較為集中一致的時(shí)候如圖3,從宏觀角度去看,物體的鏡面反射會(huì)比較明顯,反之,當(dāng)這些微小鏡面的法線方向比較雜亂如圖4,分布均勻的時(shí)候,表面則會(huì)相對粗糙。將表面粗糙度引入到光照模型中,表明鏡面反射光顏色和物體的材質(zhì)屬性有關(guān)。
除了微觀角度的鏡面反射,漫反射也是同樣重要的現(xiàn)象。在微觀尺度上,光線照射到物體表面時(shí),一部分會(huì)發(fā)生鏡面反射,另一部分則折射進(jìn)入物體內(nèi)部。這符合能量守恒定律,出射光的能量不會(huì)超過入射光,因?yàn)椴糠秩肷涔鈺?huì)被反射或折射,另一些則在物體內(nèi)部轉(zhuǎn)化為熱量消散。鏡面反射和漫反射的總和不超過1.0,確保能量守恒。根據(jù)這一原則,首先計(jì)算鏡面反射部分,其值等于入射光被反射的能量百分比。
當(dāng)光線折射進(jìn)入物體內(nèi)部時(shí),會(huì)與微小粒子不斷碰撞并散射到隨機(jī)方向,同時(shí)部分光能會(huì)被吸收轉(zhuǎn)化為熱能,有些光線在多次碰撞后被完全吸收。還有一部分光線因散射方向隨機(jī)性重新離開表面,形成漫反射。以上是從微觀角度理解物體表面的鏡面反射和漫反射現(xiàn)象,本研究中的BRDF考慮了這兩種情況的BRDF。
fBRDF = kd flambert + ks fspecular (6)
2.2 鏡面反射BRDF
2.2.1 菲涅爾(Fresnel) 方程(F 項(xiàng))
在傳統(tǒng)的Cook-Torrance局部光照模型中使用的是Fresnel-Schlick近似法求得菲涅爾系數(shù),但是存在一些問題,F(xiàn)resnel-Schlick 近似僅僅對電介質(zhì)(非金屬)表面有定義。對于導(dǎo)體(金屬),使用它們的折射指數(shù)計(jì)算基礎(chǔ)反射率不能得出正確的結(jié)果,這樣就需要使用一種不同的菲涅爾方程來對導(dǎo)體表面進(jìn)行計(jì)算。由于這樣很不方便,所以預(yù)計(jì)算出表面對于法向入射的結(jié)果(f0,處于0度角,好像直接看向表面一樣),然后基于相應(yīng)觀察角的Fresnel-Schlick近似對這個(gè)值進(jìn)行插值,用這種方法來進(jìn)行進(jìn)一步的估算。這樣就能對金屬和非金屬材質(zhì)使用同一個(gè)菲涅爾方程來計(jì)算菲涅爾系數(shù)。
根據(jù)表2觀察,電介質(zhì)(絕緣體)表面的基礎(chǔ)反射率通常小于0.17,而導(dǎo)體材質(zhì)的基礎(chǔ)反射率大多在0.5 至1.0之間。此外,金屬表面的基礎(chǔ)反射率具有顏色特性,因此需要用三原色來表示。為了模擬這種表面特性,實(shí)驗(yàn)中引入了金屬度(Metalness) 參數(shù)。金屬度用于描述表面是金屬還是非金屬。盡管理論上表面要么是金屬要么是非金屬,但為了實(shí)現(xiàn)更真實(shí)的視覺效果,大多數(shù)渲染管線允許在0.0至1.0之間調(diào)節(jié)金屬度。這樣做主要是因?yàn)椴馁|(zhì)紋理精度不足以精確描述如細(xì)沙或刮痕等細(xì)節(jié)的金屬表面。對于電介質(zhì)表面,一般使用近似的基礎(chǔ)反射率,通常設(shè)定為0.04。而對于金屬表面,則直接使用其顏色紋理作為基礎(chǔ)反射率,因?yàn)榻饘俦砻嫖账姓凵涔饩€,沒有漫反射。計(jì)算基礎(chǔ)反射率的公式如下:
f0 = (1 - meltaless) × f0 + meltaless × suferColor.rgb (7)
F = f0 + (1 - f0)(1 - cosθ)5= f0 + (1 - f0)(1 - V ? H)5 (8)
meltaless 金屬度,f0 = 0.04為電介質(zhì)基礎(chǔ)反射率,suferColor.rgb 為材質(zhì)紋理表面顏色。
在程序中實(shí)現(xiàn)如下:
double VdotH=max(DotProduct(V,H),0);
CRGB F0=pMaterial->M_F0*(1.0-pMaterial->M_s)+pMaterial->Albedo*pMaterial->M_s;
CRGB F=F0+(1.0-F0)*pow((1.0-VdotH),5.0);
CRGB CLighting::fresnelSchlickRoughness(float cosTheat,CRGB F0,float Roughness)
{
CRGB c=F0+(Max((1.0-Roughness),F(xiàn)0)-F0)*pow(1.0-cosTheta,5.0);;
return c;
}
2.2.2 法線分布函數(shù)(D 項(xiàng))
在傳統(tǒng)的Cook-Torrance 光照模型中,法線分布函數(shù)是核心組成部分之一,它負(fù)責(zé)模擬光和微觀凹凸表面相互作用的效果。原模型通常采用Beckmann分布來近似這種交互,盡管這種方法效果顯著,但是處理高粗糙表面時(shí),Beckmann分布的準(zhǔn)確性和現(xiàn)實(shí)感受限。本研究采用高斯微平面分布(DistributionGGX) [6],這種分布在模擬高粗糙度表面時(shí),相比Beckmann 分布,能提供更加真實(shí)和合理的結(jié)果。
H表示用來與平面上微平面作比較用的半程向量,而α 表示表面的粗糙度。
圖6 中-20 到20 區(qū)間在上面的曲線代表Beck?mann分布,下面的曲線代表DistributionGGX分布,從圖6中可以看出,DistributionGGX分布更加窄、拖尾更長,結(jié)合圖7,說明高光衰減得更加慢、表示的范圍更廣泛,也更符合實(shí)際。
在程序中實(shí)現(xiàn)如下:
CVector3 H=(L+V).Normalize();//H為中值矢量
double NdotH=max(DotProduct(N,H),0);//N 與H 的點(diǎn)積
doubleNdotH2=pow(NdotH,2);
double a=pow(pMaterial->M_a,2);
double a2=pow(a,2);
double d1=a2;
double d2=PI*pow((NdotH2*(a2-1.0)+1.0),2);
double NDF=d1/d2;
2.2.3 幾何函數(shù)(G 項(xiàng))
幾何遮蔽用于計(jì)算微平面之間的相互遮擋比率,描述了微平面自身形成陰影的特性。當(dāng)一個(gè)表面相對較粗糙時(shí),表面上的微平面可能會(huì)相互遮擋,導(dǎo)致減少了表面反射的光線。幾何函數(shù)以材質(zhì)的粗糙度作為參數(shù),對于粗糙度較高的表面,微平面相互遮擋的概率會(huì)增加。本研究采用的幾何函數(shù)是GGX 與Beckmann近似的結(jié)合體,因此稱之為SchlickGGX。
為了有效地估算幾何部分,需要將幾何遮蔽和幾何陰影都考慮進(jìn)去:
幾何遮蔽在不同粗糙度下可以呈現(xiàn)如圖8所示的視覺效果:
在程序中實(shí)現(xiàn)如下:
double NdotV = max(DotProduct(N, V), 0);//N 與V 的點(diǎn)積
doubleM_k=pow((pMaterial->M_a+1.0),2)/8.0;
double g1=NdotV/(NdotV*(1.0-M.k)+M_k);?/幾何遮蔽
double g2 = NdotL / (NdotL * (1.0 - M_k) + M_k);//幾何陰影
double G = g1 * g2;
2.3 漫反射反射BRDF
光線在場景各種的某一點(diǎn)入射后會(huì)朝四面八方均勻地散射出去。因此,漫反射的BRDF一定是一個(gè)常數(shù)。假設(shè)入射光線是均勻且遍布整個(gè)半球方向如圖9,可以得到以下方程:
Lo(ωo ) = ∫H2 fr Li (ωo )cos θi dωo = πfr Li (13)
由于假設(shè)入射光線是均勻遍布整個(gè)半球方向,所以Li與方向無關(guān),且等于Lo,最終約去兩邊的L得到以下結(jié)果。
fr =1/π(14)
但是這里并沒有考慮能量被吸收,將反射率考慮進(jìn)來之后,得到最終的漫反射BRDF:
flambert = C/π(15)
C 可以類比為光柵化當(dāng)中的漫反射系數(shù)去理解,本質(zhì)上是一個(gè)三維向量,含有物體表面的顏色信息。除以π是為了對漫反射光進(jìn)行標(biāo)準(zhǔn)化。
在程序中實(shí)現(xiàn)如下:
CRGB Ks=F;//反射部分等于Fresnel
CRGB Kd=1.0-Ks;//(漫反射部分)為了能量守恒Kd等于1-Ks
Kd*=(1.0-pMaterial->M_s);
CRGB Lambert = Kd * pMaterial->Albedo / PI;
3 BRDF 的改變在MFC 下實(shí)現(xiàn)渲染效果及效果分析
MFC提供了一系列封裝好的C++類,這些類封裝了大量的Windows API調(diào)用,使得開發(fā)者可以使用更加面向?qū)ο蟮姆绞絹韯?chuàng)建GUI(圖形用戶界面)應(yīng)用程序,利用MFC框架下創(chuàng)建GUI可以大大減少開發(fā)過程中的工作量。
在Win10系統(tǒng)環(huán)境下使用VisualStudio2017安裝MFC,通過C++編程實(shí)現(xiàn)對渲染環(huán)境的搭建,實(shí)驗(yàn)分別使用不同材質(zhì)對物體進(jìn)行渲染得到以下渲染效果圖:
通過表3的詳細(xì)對比分析,我們觀察到改進(jìn)后的光照模型在模擬各種微表面結(jié)構(gòu),特別是金屬表面方面展現(xiàn)出顯著的優(yōu)越性。在渲染高光效果時(shí)尤為出色,這一點(diǎn)可以通過圖像直觀地看出。這種改進(jìn)不僅使得渲染出的圖像視覺上更接近真實(shí)世界,而且顯著增強(qiáng)了高光部分的光滑度和自然感,從而提升了圖像的真實(shí)感和視覺質(zhì)量。
改進(jìn)后的光照模型通過精確模擬光線與復(fù)雜微表面的交互,捕捉到傳統(tǒng)模型常忽略的細(xì)微光照變化。特別是在處理反射率高、光澤度強(qiáng)的材料如金屬時(shí),能夠精確渲染出光與材料互動(dòng)產(chǎn)生的細(xì)膩高光效果,充分展現(xiàn)材料的質(zhì)感和光澤度。這不僅增強(qiáng)了圖像的視覺效果,也提供了更豐富和深刻的視覺體驗(yàn)。這種光照模型的改進(jìn)對于增強(qiáng)三維場景的真實(shí)感至關(guān)重要,其精度直接影響渲染圖像的質(zhì)量和真實(shí)性,能夠更好地處理從光滑表面到粗糙表面的過渡,以及不同材質(zhì)表面對光線的反射和吸收,從而在不同的光照條件和觀察角度下,產(chǎn)生高度真實(shí)和細(xì)膩的渲染效果。綜上所述,通過深入分析和實(shí)驗(yàn)驗(yàn)證,我們證明了改進(jìn)后光照模型在模擬現(xiàn)實(shí)世界物體表面,特別是在高光渲染和材質(zhì)真實(shí)感模擬方面的高效性和準(zhǔn)確性。
4 結(jié)束語
在本研究中,改進(jìn)了Cook-Torrance 光照模型的BRDF計(jì)算方式,通過引入新的微表面分布函數(shù)和優(yōu)化的能量守恒考慮,提高了模型的真實(shí)性和效率。實(shí)驗(yàn)結(jié)果驗(yàn)證了改進(jìn)方法在不同條件下的適用性,為物理基礎(chǔ)渲染技術(shù)提供了新思路。盡管取得了一定成果,但仍需解決如何優(yōu)化計(jì)算過程和處理非金屬材質(zhì)等問題。總之,本研究為渲染技術(shù)發(fā)展提供了基礎(chǔ),并期待未來進(jìn)一步推動(dòng)該領(lǐng)域的發(fā)展。
參考文獻(xiàn):
[1] COOK R L,TORRANCE K E. A reflectance model for com?puter graphics[J]. ACM Transactions on Graphics,1(1):7-24.
[2] 孔令德,康鳳娥. 三維計(jì)算機(jī)圖形學(xué)[M]. 北京:高等教育出版社,2020.
[3] SCHLICK C. An inexpensive BRDF model for physically-basedrendering[J]. Computer Graphics Forum,1994,13(3):233-246.
[4] Akenine-M?ller T, Haines E, Hoffman N. Real-Time Render?ing (4th ed. )[M]. Boca Raton, FL: CRC Press. (Published by Taylor & Francis Group, LLC),2018.
[5] BECKMANN P. Roughness-dependent Diffuse Reflection[J].Journal of the Optical Society of America,1963,53(10):1394-1402.
[6] WALTER B,MARSCHNER S R,LI H S,et al. Microfacet mod?els for refraction through rough surfaces[C]//Proceedings of the18th Eurographics conference on Rendering Techniques. June25 - 27,2007,Grenoble,F(xiàn)rance. ACM,2007:195–206.
【通聯(lián)編輯:李雅琪】