文/蘇靜 孔令德
輻射度方法主要依靠的是光能,它將物理學(xué)中的熱輻射運(yùn)用進(jìn)算法。為了便于計(jì)算,在建立模型場(chǎng)景的時(shí)候假設(shè)場(chǎng)景中的面片數(shù)值是恒定的;這就表示著要計(jì)算精確的輻射度圖像,模擬場(chǎng)景中的幾何部分必須細(xì)分為更小的區(qū)域,或者說(shuō)面片,然后再把一個(gè)個(gè)小的區(qū)域組合起來(lái)得到最后的圖像。
場(chǎng)景模型是直觀反映算法的一個(gè)工具,通過(guò)模型間顏色的相互影響能較為清楚的辨別出算法實(shí)現(xiàn)是否實(shí)現(xiàn),或者說(shuō)實(shí)現(xiàn)的難易程度。
首先創(chuàng)建一個(gè)平面模型,平面方程為:
通過(guò)平面方程,我們需要在平面方程上隨機(jī)的取點(diǎn)(x,y,z),方程中的系數(shù)A、B、C、D是4個(gè)常數(shù),通過(guò)三條方程求解方程組的辦法求解出這4個(gè)常數(shù)。
圖1:模擬場(chǎng)景效果圖
然后通過(guò)已知點(diǎn)與場(chǎng)景中的各個(gè)面求交,交點(diǎn)通過(guò)像素連接形成平面圖像。
假設(shè)圓錐的高度為h,圓錐底面圓的半徑為r,則圓錐的方程為:
建立三維坐標(biāo)系,原點(diǎn)位于底面中心,則圓錐面的參數(shù)方程為:
球體方程為:
球心位于三維坐標(biāo)的原點(diǎn),設(shè)球面的半徑為r,則球面的參數(shù)方程為:
在構(gòu)建整體的場(chǎng)景模型前,我們首先要構(gòu)建一個(gè)半立方體模型,半立方體技術(shù)早在之前被許多學(xué)者研究過(guò)。半立方體是指除去正面的一個(gè)盒子模型,定義盒子底面中心的點(diǎn)坐標(biāo)為(0,0,0),并且將半立方體分為五個(gè)平面,在定義平面大小的同時(shí),將自發(fā)光、漫反射、鏡面高光、反射等結(jié)構(gòu)體一起定義進(jìn)去。
圖2:模擬場(chǎng)景效果圖
場(chǎng)景為室內(nèi)的一個(gè)球體和一個(gè)圓錐,左側(cè)的墻面為藍(lán)色,右側(cè)墻面為綠色,上面的墻面為淡藍(lán)色,后面的墻面為紅色。在左上角設(shè)置高光,在輻射度的影響下,球體表面分別呈現(xiàn)出四面墻的顏色,而右側(cè)的圓錐只受到右側(cè)綠色墻面的輻射影響所以只顯示綠色效果,模擬場(chǎng)景效果圖如圖1。
改變顏色亮度和高光位置方向,重新繪制場(chǎng)景。可見(jiàn)通過(guò)改變高光位置,模型物體在平面上顯示的陰影方向改變;通過(guò)改變顏色亮度,墻面和頂部的顏色因?yàn)檩椛涠容椛涞轿矬w模型上的顏色更加明顯,模擬場(chǎng)景的效果圖如圖2。
本文僅僅完成了簡(jiǎn)單模型場(chǎng)景的輻射度算法實(shí)踐,其中還有很多內(nèi)容需要更深入研究。諸如計(jì)算形狀因子、對(duì)場(chǎng)景面片集合映射的改進(jìn)處理。在計(jì)算輻射度方程時(shí)其他迭代算法沒(méi)有實(shí)踐值得再去挖掘研究。