一種基于物理的高光計(jì)算方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于物理的高光計(jì)算方法,主要包括:設(shè)置基于預(yù)設(shè)游戲場(chǎng)景的環(huán)境貼圖材質(zhì)模型,將該環(huán)境貼圖材質(zhì)模型切割為多個(gè)立方體貼圖;計(jì)算從立方體貼圖的像素中有多少光照反射到虛擬攝像機(jī)中;基于上述光照計(jì)算結(jié)果,采樣高光值,并進(jìn)行柔化處理;基于對(duì)采樣所得高光值的柔化處理結(jié)果,進(jìn)行插值計(jì)算,得到最終的對(duì)象模型的所需高光值;該對(duì)象模型即預(yù)設(shè)游戲場(chǎng)景的環(huán)境貼圖材質(zhì)模型。本發(fā)明所述基于物理的高光計(jì)算方法,可以克服現(xiàn)有技術(shù)中計(jì)算量大、光照效果呆板和適用范圍小等缺陷,以實(shí)現(xiàn)計(jì)算量小、光照效果靈活和適用范圍廣的優(yōu)點(diǎn)。
【專(zhuān)利說(shuō)明】一種基于物理的高光計(jì)算方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及圖像處理【技術(shù)領(lǐng)域】,具體地,涉及一種基于物理的高光計(jì)算方法。
【背景技術(shù)】
[0002] 目前模擬游戲中物理的高光是采用環(huán)境貼圖預(yù)處理過(guò)濾技術(shù)或者球面調(diào)和函數(shù) 的空間解決方法,然而這種實(shí)現(xiàn)的方法是對(duì)象光照過(guò)于呆板,因?yàn)樾枰罅康念A(yù)計(jì)算和冗 余的代碼來(lái)實(shí)現(xiàn)這種表面高光效果。
[0003] 需要利用重采樣的蒙特卡羅積分來(lái)模擬高光效果的技術(shù),該技術(shù)應(yīng)參與很少的預(yù) 計(jì)算并在單個(gè)的圖形處理器(Graphic Processing Unit,簡(jiǎn)稱(chēng)GPU)著色器中運(yùn)算,且適用 范圍廣、可以置入其他程序也可以實(shí)現(xiàn)。
[0004] 在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在計(jì)算量大、光照效果呆 板和適用范圍小等缺陷。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于,針對(duì)上述問(wèn)題,提出一種基于物理的高光計(jì)算方法,以實(shí)現(xiàn)計(jì) 算量小、光照效果靈活和適用范圍廣的優(yōu)點(diǎn)。
[0006] 為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:一種基于物理的高光計(jì)算方法,主要 包括: a、 設(shè)置基于預(yù)設(shè)游戲場(chǎng)景的環(huán)境貼圖材質(zhì)模型,將該環(huán)境貼圖材質(zhì)模型切割為多個(gè)立 方體貼圖; b、 計(jì)算從立方體貼圖的像素中有多少光照反射到虛擬攝像機(jī)中; c、 基于上述光照計(jì)算結(jié)果,采樣高光值,并進(jìn)行柔化處理; d、 基于對(duì)采樣所得高光值的柔化處理結(jié)果,進(jìn)行插值計(jì)算,得到最終的對(duì)象模型的所 需高光值;該對(duì)象模型即預(yù)設(shè)游戲場(chǎng)景的環(huán)境貼圖材質(zhì)模型。
[0007] 進(jìn)一步地,在步驟a中,所述將該環(huán)境貼圖材質(zhì)模型切割為多個(gè)立方體貼圖的操 作,具體包括: 將已做好的游戲場(chǎng)景即基于預(yù)設(shè)游戲場(chǎng)景的環(huán)境貼圖材質(zhì)模型,分割劃分為N個(gè)立方 體BOX,N為自然數(shù); 每個(gè)BOX內(nèi)部均含有物體對(duì)象模型,而每個(gè)BOX的6個(gè)面內(nèi)部均有各自的貼圖,這些貼 圖通常用于環(huán)境貼圖中,也稱(chēng)為立方體貼圖。
[0008] 進(jìn)一步地,所述步驟b,具體包括: bl、將每個(gè)立方體貼圖中的每個(gè)像素光照積分與雙向反射分布函數(shù)BRDF相乘并累加, 并根據(jù)累加結(jié)果進(jìn)行重采樣; b2、對(duì)概率密度函數(shù)HF進(jìn)行變換,生成二維度的重要性采樣方向( ),采樣獲取鏡面反射的最優(yōu)方向;對(duì)該采樣結(jié)果進(jìn)行miPmaP過(guò)濾處理; b3、基于步驟bl的重采樣結(jié)果和步驟b2的mipmap過(guò)濾處理結(jié)果,采用重采樣的蒙特 卡羅積分計(jì)算每個(gè)立方體貼圖內(nèi)環(huán)境貼圖像素的平均顏色值。
[0009] 進(jìn)一步地,所述步驟bl,具體包括: ⑴從單個(gè)方向Li (u)轉(zhuǎn)換入射光到朝向攝像機(jī)方向V的反射光,同時(shí)用材質(zhì)函數(shù)f,即 雙向反射分布函數(shù)(BRDF),要計(jì)算總的反射光LO(V)從每個(gè)入射方向得到的貢獻(xiàn)u,然后把 他們累加到一個(gè)半球面H上:
【權(quán)利要求】
1. 一種基于物理的高光計(jì)算方法,其特征在于,主要包括: a、 設(shè)置基于預(yù)設(shè)游戲場(chǎng)景的環(huán)境貼圖材質(zhì)模型,將該環(huán)境貼圖材質(zhì)模型切割為多個(gè)立 方體貼圖; b、 計(jì)算從立方體貼圖的像素中有多少光照反射到虛擬攝像機(jī)中; c、 基于上述光照計(jì)算結(jié)果,采樣高光值,并進(jìn)行柔化處理; d、 基于對(duì)采樣所得高光值的柔化處理結(jié)果,進(jìn)行插值計(jì)算,得到最終的對(duì)象模型的所 需高光值;該對(duì)象模型即預(yù)設(shè)游戲場(chǎng)景的環(huán)境貼圖材質(zhì)模型。
2. 根據(jù)權(quán)利要求1所述的基于物理的高光計(jì)算方法,其特征在于,在步驟a中,所述將 該環(huán)境貼圖材質(zhì)模型切割為多個(gè)立方體貼圖的操作,具體包括: 將已做好的游戲場(chǎng)景即基于預(yù)設(shè)游戲場(chǎng)景的環(huán)境貼圖材質(zhì)模型,分割劃分為N個(gè)立方 體BOX,N為自然數(shù); 每個(gè)BOX內(nèi)部均含有物體對(duì)象模型,而每個(gè)BOX的6個(gè)面內(nèi)部均有各自的貼圖,這些貼 圖通常用于環(huán)境貼圖中,也稱(chēng)為立方體貼圖。
3. 根據(jù)權(quán)利要求2所述的基于物理的高光計(jì)算方法,其特征在于,所述步驟b,具體包 括: bl、將每個(gè)立方體貼圖中的每個(gè)像素光照積分與雙向反射分布函數(shù)BRDF相乘并累加, 并根據(jù)累加結(jié)果進(jìn)行重采樣; b2、對(duì)概率密度函數(shù)HF進(jìn)行變換,生成二維度的重要性采樣方向( 采樣獲取鏡面反射的最優(yōu)方向;對(duì)該采樣結(jié)果進(jìn)行miPm叩過(guò)濾處? ; b3、基于步驟bl的重采樣結(jié)果和步驟b2的mipmap過(guò)濾處理結(jié)果,采用重采樣的蒙特 卡羅積分計(jì)算每個(gè)立方體貼圖內(nèi)環(huán)境貼圖像素的平均顏色值。
4. 根據(jù)權(quán)利要求3所述的基于物理的高光計(jì)算方法,其特征在于,所述步驟bl,具體包 括: ⑴從單個(gè)方向Li(u)轉(zhuǎn)換入射光到朝向攝像機(jī)方向V的反射光,同時(shí)用材質(zhì)函數(shù)f,即 雙向反射分布函數(shù)(BRDF),要計(jì)算總的反射光LO(V)從每個(gè)入射方向得到的貢獻(xiàn)u,然后把 他們累加到一個(gè)半球面H上:此公式是參考GPU精髓3
在公式(1)中,為表面法線與入射光方向u的角度;入射光通過(guò)立方體環(huán)境 貼圖近似得到,其中每一個(gè)紋理像素對(duì)應(yīng)一個(gè)入射方向u,忽略遮擋;材質(zhì)函數(shù)f其物理意 義:來(lái)自方向地表輻射度的微增量與其引起的方向上反射輻射亮度增量之間的比值; ⑵基于上述計(jì)算進(jìn)行改良: 采用重采樣的蒙特卡羅積分來(lái)采樣半球面的N=32個(gè)入射光,基于公式(1),對(duì)PhongBRDF模型進(jìn)行采樣,把材質(zhì)方程轉(zhuǎn)為T(mén)OF,然后積分到一個(gè)點(diǎn)上:
在公式(2)中,05為采樣方向與鏡面反射方向的夾角,η為表面的反射系數(shù);COSw0s為視角V的方向與表面法線之間的鏡面發(fā)射計(jì)算出來(lái)的鏡面反射方向, 為米樣方向的球面坐標(biāo),鏡面反射方向?yàn)閆軸。
5.根據(jù)權(quán)利要求4所述的基于物理的高光計(jì)算方法,其特征在于,所述步驟b2,具體包 括: ⑴立方體貼圖中某一點(diǎn)所有光照的方向分為N=32個(gè)區(qū)域樣本來(lái)采樣,每個(gè)區(qū)域組成 的兩條射線和該點(diǎn)構(gòu)成一個(gè)立體角,把立體角和樣本定義一種關(guān)系:
在公式(3)中,Hs為周?chē)Ⅲw角內(nèi)環(huán)境貼圖所有像素的平均值,p是公式(2)中的概 率密度函數(shù); ⑵計(jì)算Us內(nèi)環(huán)境貼圖像素?cái)?shù),這個(gè)數(shù)字是有i2s和第〇級(jí)mipmap級(jí)·〇ρ的一個(gè) 像素所對(duì)應(yīng)多面角之間的比率確定的;而Λρ是紋理分辨率的w、h:
〇·TRMI'乂個(gè)」安?〇 /jZTJditW淫?丁聊?tfJ高光計(jì)算方法,其特征在于,所述步驟c,具體包 括: ⑴從環(huán)境貼圖找到相應(yīng)的平均I3s/i2p像素,則對(duì)mipmap層級(jí)產(chǎn)生方程:
其中,紋理分辨的長(zhǎng)和寬分別是w和h, ^log2 能夠被預(yù)計(jì)算且開(kāi)銷(xiāo)很小, 而對(duì)于每個(gè)采樣方向,需要計(jì)算PDPpfw, ; ⑵將上述計(jì)算結(jié)果結(jié)果代入程序textureCubeLod()作為查找到環(huán)境貼圖時(shí)的細(xì)節(jié)等 級(jí)LOD參數(shù),進(jìn)而得到某一個(gè)區(qū)域該點(diǎn)的平均顏色值d,其高光值s定義為樣本的倒數(shù)乘以 采樣的顏色值的累加之和:
為了使對(duì)象模型的邊緣更加融入到場(chǎng)景中,利用菲涅爾函數(shù)進(jìn)行柔化處理讓對(duì)象模型 的邊緣更加真實(shí)。
7.根據(jù)權(quán)利要求6所述的基于物理的高光計(jì)算方法,其特征在于,所述步驟d,具體包 括: 我們根據(jù)公式(6)的到的高光值與菲涅爾系數(shù)相乘,并對(duì)這個(gè)結(jié)果進(jìn)行插值計(jì)算; 具體計(jì)算方法:
在公式(7)中,xl表示詢圍立方體貼圖的像素的顏色值,x2表示白色,w是一個(gè)權(quán)重 值;這個(gè)計(jì)算的最終結(jié)果就是我們對(duì)象模型在整個(gè)場(chǎng)景中的顏色形態(tài),如果對(duì)象模型在運(yùn) 動(dòng),則在不同的周?chē)h(huán)境立方體中呈現(xiàn)了不同的顏色形態(tài),這樣的模擬也具有真實(shí)性。
【文檔編號(hào)】G06T15/55GK104463944SQ201410326157
【公開(kāi)日】2015年3月25日 申請(qǐng)日期:2014年7月10日 優(yōu)先權(quán)日:2014年7月10日
【發(fā)明者】張翼 申請(qǐng)人:無(wú)錫梵天信息技術(shù)股份有限公司