1.一種利用位置敏感可見性平滑濾波實(shí)現(xiàn)三維場(chǎng)景近似柔和陰影繪制的方法,其特征在于:首先把相機(jī)放在方向點(diǎn)光源所在位置,使相機(jī)的正前方向朝著方向點(diǎn)光源的光錐軸方向,使相機(jī)的視場(chǎng)角等于方向點(diǎn)光源的光錐的錐頂角,繪制三維場(chǎng)景以創(chuàng)建陰影圖SM;然后把相機(jī)放在視點(diǎn)位置,按正常的觀察方向和視場(chǎng)角參數(shù)繪制三維場(chǎng)景,計(jì)算每個(gè)可視場(chǎng)景點(diǎn)的空間位置以及不考慮遮擋時(shí)的源自方向點(diǎn)光源的直接光照值NCDI,利用陰影圖SM判斷每個(gè)可視場(chǎng)景點(diǎn)與方向點(diǎn)光源之間是否存在遮擋,如果存在遮擋,可視場(chǎng)景點(diǎn)對(duì)應(yīng)的光源可見性值為0,否則可視場(chǎng)景點(diǎn)對(duì)應(yīng)的光源可見性值為1;把所有可視場(chǎng)景點(diǎn)對(duì)應(yīng)的光源可見性值保存成一個(gè)光源可見性圖VM,利用位置敏感可見性平滑濾波方法對(duì)光源可見性圖進(jìn)行濾波,得到每個(gè)可視場(chǎng)景點(diǎn)對(duì)應(yīng)的平滑光源可見性值SV;每個(gè)可視場(chǎng)景點(diǎn)的源自方向點(diǎn)光源的實(shí)際直接光照值等于直接光照值NCDI與平滑光源可見性值SV之乘積;最后把每個(gè)可視場(chǎng)景點(diǎn)的實(shí)際直接光照值轉(zhuǎn)換成對(duì)應(yīng)像素的顏色值,并輸出到計(jì)算機(jī)屏幕上,從而顯示出三維場(chǎng)景直接光照效果畫面中的柔和陰影;方向點(diǎn)光源只在光錐的錐頂角范圍內(nèi)發(fā)射光照,在與光錐軸方向夾成的夾角大于錐頂角的一半的方向上無光照發(fā)射;可視場(chǎng)景點(diǎn)就是從視點(diǎn)透過虛擬像素平面能直接看見的場(chǎng)景點(diǎn),可視場(chǎng)景點(diǎn)與像素一一對(duì)應(yīng);從視點(diǎn)出發(fā)的穿過虛擬像素平面的像素的射線與三維幾何對(duì)象相交,離視點(diǎn)最近的交點(diǎn)就是可視場(chǎng)景點(diǎn);具體步驟如下:
一、創(chuàng)建陰影圖:
步驟S101:按照陰影映射方法的流程,把相機(jī)放在方向點(diǎn)光源所在位置,使相機(jī)的正前方向朝著方向點(diǎn)光源的光錐軸方向,使相機(jī)的視場(chǎng)角等于方向點(diǎn)光源的光錐的錐頂角,繪制三維場(chǎng)景以創(chuàng)建陰影圖SM;
二、計(jì)算不考慮遮擋時(shí)的可視場(chǎng)景點(diǎn)的源自方向點(diǎn)光源的直接光照值NCDI并創(chuàng)建可見性圖VM:
步驟S201:把相機(jī)放在視點(diǎn)位置,按正常的觀察方向和視場(chǎng)角參數(shù)繪制三維場(chǎng)景,計(jì)算每個(gè)可視場(chǎng)景點(diǎn)的空間位置以及不考慮遮擋時(shí)的源自方向點(diǎn)光源的直接光照值NCDI;在計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中創(chuàng)建一個(gè)二維數(shù)組DIS,二維數(shù)組DIS的行數(shù)等于虛擬像素平面的像素行數(shù),二維數(shù)組DIS的列數(shù)等于虛擬像素平面的像素列數(shù),把二維數(shù)組DIS的每個(gè)元素都賦值為?1,二維數(shù)組DIS的元素與虛擬像素平面上的像素一一對(duì)應(yīng),二維數(shù)組DIS的元素也與可視場(chǎng)景點(diǎn)一一對(duì)應(yīng);
步驟S202:使用陰影映射方法的技術(shù),利用陰影圖SM判斷每個(gè)可視場(chǎng)景點(diǎn)與方向點(diǎn)光源之間是否存在遮擋,如果存在遮擋,則令可視場(chǎng)景點(diǎn)對(duì)應(yīng)的光源可見性值為0,同時(shí)把與可視場(chǎng)景點(diǎn)對(duì)應(yīng)的二維數(shù)組DIS的元素賦值為陰影映射方法在執(zhí)行可視場(chǎng)景點(diǎn)與方向點(diǎn)光源之間的遮擋判斷操作時(shí)使用的陰影圖SM的像素值,否則令可視場(chǎng)景點(diǎn)對(duì)應(yīng)的光源可見性值為1;
步驟S203:在計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中創(chuàng)建一個(gè)二維數(shù)組B001,二維數(shù)組B001的行數(shù)等于虛擬像素平面的像素行數(shù),二維數(shù)組B001的列數(shù)等于虛擬像素平面的像素列數(shù),把二維數(shù)組B001的每個(gè)元素都賦值為1;
步驟S204:對(duì)于步驟S202中的每個(gè)可視場(chǎng)景點(diǎn),計(jì)算出與之對(duì)應(yīng)的虛擬像素平面上的像素的行號(hào)irow和列號(hào)jcol,把二維數(shù)組B001的第irow行、第jcol列的元素賦值為可視場(chǎng)景點(diǎn)對(duì)應(yīng)的光源可見性值;
步驟S205:執(zhí)行完步驟S204后,二維數(shù)組B001就是最終得到的可見性圖VM;
三、計(jì)算每個(gè)可視場(chǎng)景點(diǎn)對(duì)應(yīng)的位置敏感可見性平滑濾波器的空間寬度:
步驟S301:在計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中創(chuàng)建一個(gè)二維數(shù)組C001,二維數(shù)組C001的行數(shù)等于虛擬像素平面的像素行數(shù),二維數(shù)組C001的列數(shù)等于虛擬像素平面的像素列數(shù),把二維數(shù)組C001的每個(gè)元素都賦值為0,二維數(shù)組C001的元素與步驟S202中的可視場(chǎng)景點(diǎn)一一對(duì)應(yīng);
步驟S302:對(duì)于步驟S202中的每個(gè)可視場(chǎng)景點(diǎn),計(jì)算出與之對(duì)應(yīng)的虛擬像素平面上的像素的行號(hào)irow和列號(hào)jcol,如果可見性圖VM的第irow行、第jcol列的元素值為0,則令,并把二維數(shù)組C001的第irow行、第jcol列的元素賦值為K,其中dLP為可視場(chǎng)景點(diǎn)到方向點(diǎn)光源的距離,dCP為dLP與二維數(shù)組DIS的第irow行、第jcol列的元素值之差,c1為比例控制系數(shù),W表示虛擬面光源尺寸,w表示虛擬遮擋球尺寸,M表示位置敏感可見性平滑濾波器的空間寬度最大值,min(x, y)表示取x和y二者的最小值,max(x, y)表示取x和y二者的最大值,表示對(duì)x求向下取整運(yùn)算;
四、對(duì)可見性圖VM進(jìn)行位置敏感可見性平滑濾波并根據(jù)濾波結(jié)果實(shí)現(xiàn)近似柔和陰影繪制:
步驟S401:對(duì)于步驟S202中的每個(gè)可視場(chǎng)景點(diǎn),首先計(jì)算出與之對(duì)應(yīng)的虛擬像素平面上的像素的行號(hào)irow和列號(hào)jcol,然后令Kf等于二維數(shù)組C001的第irow行、第jcol列的元素的值,把可見性圖VM的以第irow行、第jcol列的元素為中心的包含(2Kf+1)×(2Kf+1)個(gè)元素的正方形區(qū)域內(nèi)的所有元素之和賦值給Vs,令Vf = Vs/[(2Kf+1)×(2Kf+1)],可視場(chǎng)景點(diǎn)的源自方向點(diǎn)光源的實(shí)際直接光照值等于可視場(chǎng)景點(diǎn)的直接光照值NCDI與Vf之乘積;可視場(chǎng)景點(diǎn)的直接光照值NCDI在步驟S201中計(jì)算得到,Vf就是對(duì)可見性圖VM進(jìn)行位置敏感可見性平滑濾波后得到的可視場(chǎng)景點(diǎn)對(duì)應(yīng)的平滑光源可見性值SV;
步驟S402:把所有可視場(chǎng)景點(diǎn)的實(shí)際直接光照值轉(zhuǎn)換成對(duì)應(yīng)像素的顏色值,并輸出到計(jì)算機(jī)屏幕上;
在步驟S401中,可視場(chǎng)景點(diǎn)的位置敏感可見性平滑濾波操作就是用一個(gè)包含(2Kf+1)×(2Kf+1)個(gè)元素的正方形空間平滑濾波模板覆蓋在可見性圖VM上,并使正方形空間平滑濾波模板的中心元素與可見性圖VM的第irow行、第jcol列的元素重合,進(jìn)而求解可見性圖VM的被正方形空間平滑濾波模板覆蓋的所有元素的值之平均值A(chǔ)VG的過程;平均值A(chǔ)VG就是步驟S401得到的Vf;對(duì)于給定的可視場(chǎng)景點(diǎn),如果正方形空間平滑濾波模板覆蓋的區(qū)域超出了可見性圖VM的有效元素區(qū)域,則在執(zhí)行平滑濾波操作時(shí)對(duì)可見性圖VM進(jìn)行延展,使正方形空間平滑濾波模板覆蓋的所有區(qū)域都有可見性圖VM的元素,并令所有延展的可見性圖VM的元素的值為1。