專利名稱:在球面高斯光源下半透明物體的渲染方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖形渲染技術(shù)領(lǐng)域,特別是涉及一種在球面高斯光源下半透明物體的渲染方法。
背景技術(shù):
真實感圖形的生成經(jīng)常會涉及到需要準(zhǔn)確地模擬半透明材質(zhì)。事實上,從廣義的角度上說,絕大多數(shù)材質(zhì),比如大理石,玉石,蠟,牛奶,水果以及人的皮膚等等,都具備半透明的特性,從而會顯示出一種光滑和柔和的外表特征。為了模擬半透明的效果,一個常見的方法是,考慮入射光對任意一個出射點(diǎn)的貢獻(xiàn),我們稱之為雙向次表面反射函數(shù)(BSSRDF)。在2OOl 年,Jensen 等人在論文 “A practical model for subsurface lighttransport”中率先提出了一個有效的BSSRDF模型,他們假設(shè)半透明物體是均勻的,并把光線在半透明物體內(nèi)部的散射次數(shù)分為一次和多次分別考慮。對于單次散射,他們認(rèn)為光線可能在沿出射方向反方向上的每個點(diǎn)處發(fā)生一次散射,通過考慮所有的情況,得到出射點(diǎn)的光強(qiáng)度;對于多次散射,他們假設(shè)所考慮的半透明物體是一個半無限大的平面,在入射點(diǎn)正下方和正上方分別放置一個正值的點(diǎn)光源和一個負(fù)值的點(diǎn)光源,利用這兩個光源計算對任意出射點(diǎn)的貢獻(xiàn)。在2007 年,Donner 等人在論文“Rendering translucent materials usingphoton diffusion”中,將之前提出的正光源和負(fù)光源不再看作一個點(diǎn)光源,而是看作在入射點(diǎn)分別豎直向下和豎直向上衰減分布的一系列光源。這一方法使得半透明物體的表面更加清晰,細(xì)節(jié)上的損失更少。在2Oll 年,d,Eon 等人在論文“A quantized-diffusion model forrenderingtranslucent materials”中,提出了一個新的模型,這個模型可以通過函數(shù)近似的方法,給出豎直向下和豎直向上衰減分布的一系列光源的解析表達(dá)式,從而大大加快了半透明物體的渲染速度?,F(xiàn)有技術(shù)中以點(diǎn)光源和呈衰減分布的一系列點(diǎn)光源來模擬環(huán)境光,從而渲染出半透明物體效果,但環(huán)境光并不是簡單的點(diǎn)光源,以點(diǎn)光源渲染的半透明物體和環(huán)境光作用下的半透明物體還是有一定的差距。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問題本發(fā)明要解決的技術(shù)問題是提供一種減小模擬光源渲染的半透明物體與環(huán)境光作用下的半透明物體之間差距的在球面高斯光源下的半透明物體的渲染方法。(二)技術(shù)方案為了解決上述技術(shù)問題,本發(fā)明提供一種在球面高斯光源下半透明物體的渲染方法包括SI :建立關(guān)于球面高斯光源半徑和入射角度的擬合系數(shù)查找表;
S2 :根據(jù)給定的球面高斯光源,得到每個入射點(diǎn)的光強(qiáng)度;S3 :對每個入射點(diǎn)-出射點(diǎn)對,在SI得到的擬合系數(shù)查找表中,根據(jù)給定球面高斯光源的半徑和入射角度,得到相應(yīng)的擬合系數(shù),從而確定由入射點(diǎn)經(jīng)多次散射后對出射點(diǎn)光強(qiáng)度貢獻(xiàn)的計算公式;S4 :根據(jù)S2得到的入射點(diǎn)的光強(qiáng)度和S3得到的由入射點(diǎn)經(jīng)多次散射后對出射點(diǎn)光強(qiáng)度貢獻(xiàn)的計算公式,分別計算每個入射點(diǎn)經(jīng)多次散射后對所有出射點(diǎn)的光強(qiáng)度貢獻(xiàn),并累加得到每個出射點(diǎn)的光強(qiáng)度A ;S5 :從視點(diǎn)方向看去,對每個出射點(diǎn),沿著視線方向的折射方向進(jìn)行采樣積分,計算出每個出射點(diǎn)的光強(qiáng)度B,其中,對每個采樣點(diǎn),使用在給定球面高斯光源下由入射點(diǎn)經(jīng)單次散射后對出射點(diǎn)光強(qiáng)度貢獻(xiàn)的公式;S6 :從視點(diǎn)方向看去,每個出射點(diǎn)的實際光強(qiáng)度為A+B。 如上所述的在球面高斯光源下半透明物體的渲染方法,優(yōu)選的是,所述球面高斯光源用二維高斯函數(shù)表示,即G{rJ^X) = eM,'^l)其中,λ為球面高斯函數(shù)的半徑山為球面高斯函數(shù)的中心;i是變量,表示球面上任意的方向;G (i J1 ; λ )為i方向上的光強(qiáng)度。如上所述的在球面高斯光源下半透明物體的渲染方法,優(yōu)選的是,球面高斯光源由u個衰減函數(shù)來近似表示,則與球面高斯光源半徑和入射角度無關(guān)的擬合系數(shù)查找表為
IU7-·-
4;d) cf trk與球面高斯光源半徑和入射角度有關(guān)的擬合系數(shù)查找表為
^3m=l
Λτ, ~^j ~I!2π·--—— (I -e-2Xi)^pEme-q^
酌二 I上述各式中D為擴(kuò)散常數(shù);σ為有效衰減系數(shù);d是半透明物體任意兩點(diǎn)間的直線距離;ak、λ k為擬合系數(shù)+λ J分別是經(jīng)折射后的球面高斯
光源的中心和半徑,i2為入射點(diǎn)到出射點(diǎn)的連線方向為擬合系數(shù)。如上所述的在球面高斯光源下半透明物體的渲染方法,優(yōu)選的是,步驟S3具體為入射點(diǎn)經(jīng)多次散射后對出射點(diǎn)光強(qiáng)度的貢獻(xiàn)公式為R = ±ak(FCJ., + n)(\lK)其中,&=ζm·· VM;
πι- Le = 24J0 Q(S)·e-w-n.) ·(Zjiij ·η) + IsrXkQ1 ·n)) ^PE^-'^ds ;Q(s) = Q e ai's;
上述各式中F是菲涅耳項,是入射光和出射光分別經(jīng)過折射后剩余能量比例的乘積;C41、D、Ce是常數(shù);Q (s)是光源衰減分布函數(shù),其中Q和σ,常數(shù);r是入射點(diǎn)到出射點(diǎn)的距離;L、λ j分別是經(jīng)折射后的入射球面高斯光源的中心和半徑;i2是入射點(diǎn)到出射點(diǎn)的連線方向;11是入射點(diǎn)的法線方向。(三)有益效果本發(fā)明所提供的在球面高斯光源下半透明物體的渲染方法通過球面高斯光源來模擬環(huán)境光,并建立關(guān)于球面高斯光源半徑和入射角度的擬合系數(shù)查找表來計算每個入射點(diǎn)經(jīng)多次散射后對出射點(diǎn)的光強(qiáng)度貢獻(xiàn),從而得到所有入射點(diǎn)經(jīng)多次散射后對出射點(diǎn)的光強(qiáng)度貢獻(xiàn),同時計算出入射點(diǎn)經(jīng)單次散射后對出射點(diǎn)的光強(qiáng)度貢獻(xiàn),兩者之和即為出射點(diǎn)的實際光強(qiáng)度。因為球面高斯函數(shù)能夠模擬半徑及強(qiáng)度可變的光源,所以球面高斯光源既可以表示小而亮的光源,也可以表示大而暗的光源,符合物理規(guī)律,能夠很好的模擬環(huán)境光,使得對半透明物體的渲染具有很高的真實性。
圖I為本發(fā)明實施例中球面高斯光源下半透明物體的渲染方法的流程圖;圖2為球面高斯光源與半透明物體位置關(guān)系圖;圖3為本發(fā)明實施例中球面高斯光源下半透明物體的渲染方法的原理圖;圖4a為本發(fā)明實施例中光源沿45°入射角射入平面半透明物體是以d’Eon論文中提出的方法渲染的效果圖;圖4b為本發(fā)明實施例中光源沿45°入射角射入平面半透明物體是在球面高斯光源下半透明物體渲染的效果圖;圖4c為本發(fā)明實施例中光源沿45°入射角射入平面半透明物體是通過模擬方法計算出的效果參考圖;圖5a為本發(fā)明實施例中光源沿80°入射角射入平面半透明物體是以d’Eon論文中提出的方法渲染的效果圖;圖5b為本發(fā)明實施例中光源沿80°入射角射入平面半透明物體是在球面高斯光源下半透明物體渲染的效果圖;圖5c為本發(fā)明實施例中光源沿80°入射角射入平面半透明物體是通過模擬方法計算出的效果參考圖;其中,I :半透明物體;2 :球面高斯光源;3 :環(huán)境光;4 :入射點(diǎn);5 :出射點(diǎn)。
具體實施例方式下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式
作進(jìn)一步詳細(xì)描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。圖I為本發(fā)明實施例中在球面高斯光源下半透明物體的渲染方法的流程圖。因為球面高斯函數(shù)能夠模擬半徑及強(qiáng)度可變的光源,所以球面高斯光源既可以表示小而亮的光源,也可以表示大而暗的光源,能夠很好的模擬環(huán)境光。如圖I所示,本發(fā)明實施例中在球面高斯光源下半透明物體的渲染方法包括SI :建立關(guān)于球面高斯光源半徑和入射角度的擬合系數(shù)查找表;
如圖2所示,本實施例中的球面高斯光源可以用二維球面高斯函數(shù)表示,即
'其中,λ為球面高斯函數(shù)的半徑山為球面高斯函數(shù)的中心。i是變量,表示球面上任意的方向;G為i方向上的光強(qiáng)度。因為二維球面高斯函數(shù)表示
的球面高斯光源的光強(qiáng)度G與半徑λ和入射角度I1有關(guān),可以更好的模擬半
透明物體I周圍的環(huán)境光3。并優(yōu)選以u個(本實施例中為4個,即可很好的近似球面高斯光源)衰減函數(shù)來近似表示球面高斯光源,以方便建立擬合系數(shù)查找表,其中,近似過程可以使用MATLAB軟件的fminsearch函數(shù)完成。結(jié)合圖3所示,本實施例中建立的擬合系數(shù)查找表具體為與球面高斯光源半徑和入射角度無關(guān)的擬合系數(shù)查找表為I-4σ!…Dd 4-·-a,e^d2
AnD d 臺此式只是為了計算出擬合系數(shù)ak、λ k,與球面高斯光源無關(guān)。與球面高斯光源半徑和入射角度有關(guān)的擬合系數(shù)查找表為2π·^-—(1-β2βη^ρφηβ^Λ
m=l2π · ^-5~ · (I — e—從) ^ PE ,q£'"Xt上述各式中D為擴(kuò)散常數(shù);σ為有效衰減系數(shù);d是半透明物體任意兩點(diǎn)間的直線距離;ak、λ k為擬合系數(shù)^ =柄+4+ 2又/種2) ; Ij, λ ^分別是經(jīng)折射后的球面高斯
光源的中心和半徑,i2為入射點(diǎn)到出射點(diǎn)的連線方向為擬合系數(shù)。經(jīng)折射后的球面高斯光源是指任何光線進(jìn)入物體都會發(fā)生折射,對于球面高斯光源的每一根光線,在物體表面一點(diǎn)都會發(fā)生折射而進(jìn)入物體,所有經(jīng)過折射的光線聚集在一起,相當(dāng)于一個新的球面高斯光源,這個光源就是經(jīng)折射后的球面高斯光源。而經(jīng)折射后的球面高斯光源的中心和半徑都直接與入射之前的球面高斯光源相關(guān),因此建立的擬合系數(shù)是根據(jù)入射之前的球面高斯光源的半徑和入射角度確定的。其中,建立的擬合系數(shù)查找表是為了能夠計算每個入射點(diǎn)-出射點(diǎn)對中入射點(diǎn)經(jīng)多次散射后對出射點(diǎn)光強(qiáng)度的貢獻(xiàn),球面高斯光源半徑和入射角度對應(yīng)一組擬合系數(shù)Ρ#、
P Φηι、Ρεπι、Qeiii0S2 :根據(jù)給定的球面高斯光源,得到每個入射點(diǎn)的光強(qiáng)度;由于球面高斯光源是面光源,故此處的入射點(diǎn)4光強(qiáng)度應(yīng)當(dāng)分布在
之間,完全可見記為1,完全不可見記為0,可以使用任何一種軟陰影的渲染方法獲得,在此不再贅述。S3 :對每個入射點(diǎn)-出射點(diǎn)對,在SI得到的擬合系數(shù)查找表中,根據(jù)給定球面高斯光源的半徑和入射角度,得到相應(yīng)的擬合系數(shù),從而確定由入射點(diǎn)經(jīng)多次散射后對出射點(diǎn)光強(qiáng)度貢獻(xiàn)的計算公式;根據(jù)SI得到的擬合系數(shù)查找表,本實施例中入射點(diǎn)4經(jīng)多次散射后到出射點(diǎn)5的光強(qiáng)度貢獻(xiàn)公式可以為
R = Ya^FC0L9-U--DCiLr)
k^l其中,小# 2—2sr)*l>—e—
m=iLe = 24J0 Q(s)·eXtis^rl-lsr) ·(Ajiij ·n) + 2srAk(i2 ·η))·^ρΕιηβ q^m2srhds ;
m-lρ⑴= g.e-σ;.5;上述各式中F是菲涅耳項,是入射光和出射光分別經(jīng)過折射后剩余能量比例的 乘積,與光源的入射角度有關(guān);CpDXe是常數(shù);Q (s)是光源衰減分布函數(shù),其中Q和σ,t為常數(shù);r是入射點(diǎn)到出射點(diǎn)的距離;ip λ j分別是經(jīng)折射后的入射球面高斯光源的中心和半徑;i2是入射角度;n是入射點(diǎn)的法線方向。S4 :根據(jù)S2得到的入射點(diǎn)的光強(qiáng)度和S3得到的由入射點(diǎn)經(jīng)多次散射后對出射點(diǎn)光強(qiáng)度貢獻(xiàn)的計算公式,分別計算每個入射點(diǎn)經(jīng)多次散射后對所有出射點(diǎn)的光強(qiáng)度貢獻(xiàn),并累加得到每個出射點(diǎn)的光強(qiáng)度A ;S5 :從視點(diǎn)方向看去,對每個出射點(diǎn),沿著視線方向的折射方向進(jìn)行采樣積分,計算出每個出射點(diǎn)的光強(qiáng)度B,其中,對每個采樣點(diǎn),使用在給定球面高斯光源下由入射點(diǎn)到出射點(diǎn)經(jīng)單次散射后光強(qiáng)度貢獻(xiàn)的公式;在該步驟中,對于每個采樣點(diǎn),使用任何一種處理單次散射的方法獲取入射點(diǎn)的位置,使用光源中心方向獲取平均衰減值E,使用任何一種軟陰影方法獲取平均可見性V,對每個采樣點(diǎn),結(jié)合圖3所示,在球面高斯光源下由入射點(diǎn)4經(jīng)單次散射后對出射點(diǎn)5光強(qiáng)度貢獻(xiàn)的公式為其中,i是折射后的入射方向;0是折射后的出射方向;p(i,O)表示由i方向散射到ο方向的概率;ip λ j分別是經(jīng)折射后的入射球面高斯光源的中心和半徑;Ω表示上式的積分是在整個球面上進(jìn)行的。S6 :從視點(diǎn)方向看去,每個出射點(diǎn)的實際光強(qiáng)度為Α+Β。圖4a、4b和4c是光源沿45度入射角射入平面半透明物體的效果圖,圖5a、5b和5c是光源沿80度入射角射入平面半透明物體的效果圖。其中,圖4a和圖5a是以d’Eon論文中提出的方法得出的效果圖,圖4b和5b是以本發(fā)明提供的在球面高斯光源下半透明物體的渲染方法得出的效果圖,圖4c和5c是通過模擬方法計算出的效果參考圖,由圖可見,本發(fā)明提供的球面高斯光源下半透明物體的渲染方法算法在效果上非常接近模擬結(jié)果,具有很聞的真實性。由以上實施例可以看出,本發(fā)明所提供的在球面高斯光源下半透明物體的渲染方法通過球面高斯光源來模擬環(huán)境光,并建立關(guān)于球面高斯光源半徑和入射角度的擬合系數(shù)查找表來計算每個入射點(diǎn)經(jīng)多次散射后對出射點(diǎn)的光強(qiáng)度貢獻(xiàn),從而得到所有入射點(diǎn)經(jīng)多次散射后對出射點(diǎn)的光強(qiáng)度貢獻(xiàn),同時計算出入射點(diǎn)經(jīng)單次散射后對出射點(diǎn)的光強(qiáng)度貢獻(xiàn),兩者之和即為出射點(diǎn)的實際光強(qiáng)度。因為球面高斯函數(shù)能夠模擬半徑及強(qiáng)度可變的光源,所以球面高斯光源既可以表示小而亮的光源,也可以表示大而暗的光源,符合物理規(guī)律,能夠很好的模擬環(huán)境光,使得對半透明物體的渲染具有很高的真實性。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進(jìn)和替換,這些改進(jìn)和替換也應(yīng)視為本發(fā)明的保護(hù)范圍?!?br>
權(quán)利要求
1.一種在球面高斯光源下半透明物體的渲染方法,其特征在于,包括 Si:建立關(guān)于球面高斯光源半徑和入射角度的擬合系數(shù)查找表; 52:根據(jù)給定的球面高斯光源,得到每個入射點(diǎn)的光強(qiáng)度; 53:對每個入射點(diǎn)-出射點(diǎn)對,在SI得到的擬合系數(shù)查找表中,根據(jù)給定球面高斯光源的半徑和入射角度,得到相應(yīng)的擬合系數(shù),從而確定由入射點(diǎn)經(jīng)多次散射后對出射點(diǎn)光強(qiáng)度貢獻(xiàn)的計算公式; 54:根據(jù)S2得到的入射點(diǎn)的光強(qiáng)度和S3得到的由入射點(diǎn)經(jīng)多次散射后對出射點(diǎn)光強(qiáng)度貢獻(xiàn)的計算公式,分別計算每個入射點(diǎn)經(jīng)多次散射后對所有出射點(diǎn)的光強(qiáng)度貢獻(xiàn),并累加得到每個出射點(diǎn)的光強(qiáng)度A ; 55:從視點(diǎn)方向看去,對每個出射點(diǎn),沿著視線方向的折射方向進(jìn)行采樣積分,計算出每個出射點(diǎn)的光強(qiáng)度B,其中,對每個采樣點(diǎn),使用在給定球面高斯光源下由入射點(diǎn)經(jīng)單次散射后對出射點(diǎn)光強(qiáng)度貢獻(xiàn)的公式; 56:從視點(diǎn)方向看去,每個出射點(diǎn)的實際光強(qiáng)度為A+B。
2.根據(jù)權(quán)利要求I所述的在球面高斯光源下半透明物體的渲染方法,其特征在于,所述球面高斯光源用二維高斯函數(shù)表示,即
3.根據(jù)權(quán)利要求2所述的在球面高斯光源下半透明物體的渲染方法,其特征在于,球面高斯光源由u個衰減函數(shù)來近似表示,則與球面高斯光源半徑和入射角度無關(guān)的擬合系數(shù)查找表為
4.根據(jù)權(quán)利要求3所述的在球面高斯光源下半透明物體的渲染方法,其特征在于,步驟S3具體為 入射點(diǎn)經(jīng)多次散射后對出射點(diǎn)光強(qiáng)度的貢獻(xiàn)公式為
全文摘要
本發(fā)明屬于圖形渲染技術(shù)領(lǐng)域,公開了一種在球面高斯光源下半透明物體的渲染方法。該在球面高斯光源下半透明物體的渲染方法通過球面高斯光源來模擬環(huán)境光,并建立關(guān)于球面高斯光源半徑和入射角度的擬合系數(shù)查找表來計算每個入射點(diǎn)經(jīng)多次散射后對出射點(diǎn)的光強(qiáng)度貢獻(xiàn),從而得到所有入射點(diǎn)經(jīng)多次散射后對出射點(diǎn)的光強(qiáng)度貢獻(xiàn),同時計算出入射點(diǎn)經(jīng)單次散射后對出射點(diǎn)的光強(qiáng)度貢獻(xiàn),兩者之和即為出射點(diǎn)的實際光強(qiáng)度。因為球面高斯函數(shù)能夠模擬半徑及強(qiáng)度可變的光源,所以球面高斯光源既可以表示小而亮的光源,也可以表示大而暗的光源,符合物理規(guī)律,能夠很好的模擬環(huán)境光,使得對半透明物體的渲染具有很高的真實性。
文檔編號G06T11/00GK102903131SQ20121033153
公開日2013年1月30日 申請日期2012年9月7日 優(yōu)先權(quán)日2012年9月7日
發(fā)明者徐昆, 閆令琪 申請人:清華大學(xué)