楊超智,陳純毅,曲福恒,陳 勝,邢琦瑋
?
基于自適應可見性濾波的近似軟影繪制
楊超智,陳純毅,曲福恒,陳 勝,邢琦瑋
(長春理工大學計算機科學技術學院,吉林 長春 130022)
針對全局光照下的物理正確軟影繪制較難滿足交互性的難題,提出體現遮擋對象空間位置遠近關系的可變半影近似繪制算法。首先,以光源中心點為參照通過基于光線跟蹤的遮擋測試方法生成二值光源可見性圖;并提出每個可視場景點對應自適應可見性空間平滑濾波器寬度的確定方法;然后執行帶掩模計算的自適應可見性濾波來獲得從可見區到非可見區平滑過渡的可見性因子;最后在光線跟蹤流程中使用可見性因子動態調制相應可視場景點不考慮遮擋的直接光照值,再加上間接光照得到高真實感軟影。實驗結果表明:該算法效果與物理正確陰影在柔和度方面非常接近,容易繪制鏡面反射間接光照,且測試場景的幀率在30幀/秒以上,滿足交互性要求。
軟影;可變半影;光源可見性;光線跟蹤;自適應濾波
陰影提供了感知3D場景的重要視覺線索,可以顯著增加畫面的真實感。陰影圖和陰影體算法是計算機圖形學中兩個經典的陰影繪制算法[1],但生成的是硬陰影,使得場景中可見區(非陰影部分)與非可見區(陰影部分)之間的過渡呈現突變特征。而現實中,在面光源照射下物體會產生完全黑暗的本影區域及柔和過渡的半影區域。真實陰影的半影是可變的,即半影寬度受陰影投射對象到陰影接收對象的距離及陰影投射對象本身的高低長短等因素影響[2]。當前可以繪制物理正確軟影的方法有蒙特卡羅面光源光照積分估計算法和陰影體的變種算法等[3-4],其繪制的陰影根據遮擋對象的遠近表現為不同的柔和效果,但計算開銷非常大,較難滿足實時交互需求。
一些基于陰影圖改進的算法,可實時繪制出近似軟影且對場景的復雜度依賴很小[5]。隨著軟陰影映射的出現,其與遮擋輪廓邊背投算法結合后,可獲得較高的質量和速度,但有漏光和過陰影問題[6]。百分比鄰近濾波軟影(percentage closer soft shadows,PCSS)算法[7]可基于單個陰影圖快速產生軟影,但在估計陰影遮擋物的深度時較粗糙,有時會導致漏光問題。孫明彥等[8]通過GPU幾何著色器提取了陰影圖中的對象輪廓并生成了內外半影圖元,雖可實時繪制近似軟影,但其結果與真實陰影相差較大。方差軟陰影圖[9]和指數軟陰影圖[10]均基于文獻[7]算法,可獲得較高質量的陰影效果,但分別存在漏光和過陰影瑕疵的問題。沈笠等[11]通過精簡陰影圖搜索區域并采用四叉樹遍歷算法提升了文獻[7]中遮擋體深度估計的正確性,改善了陰影質量。LIKTOR等[12]通過采樣完整的面光源存儲陰影可見性,并使用多層預濾波算法重構了場景的平滑可見性,在相對較大的面光源下也有較高的繪制效率。PETERS等[13]在深度圖中存儲了除深度外的更多信息,有效提升了軟影的質量。
上述基于陰影圖的繪制算法多數是使用OpenGL光柵化流水線實現的,其不容易實現間接光照。為了渲染出更接近現實世界的光影效果,需要在渲染器中指定全局光照。CHEN等[14]通過使用光線跟蹤[15]在場景中加入了間接光照,并以很小代價產生了可交互的近似軟影。但也存在缺陷:在繪制結果中半影不可變,即陰影不能體現遮擋對象的空間位置和遠近關系;部分陰影存在錯誤的可見性滲透問題。
本文針對全局光照下的物理正確軟影算法較難滿足交互性的問題,提出對二值光源可見性圖進行帶掩模計算的自適應濾波產生近似軟影的算法,與經典的PCSS算法存在根本性差別:本文算法完全兼容光線跟蹤技術,能夠實時繪制包含全局光照的場景;在深度復雜的場景中不會出現漏光和過陰影問題;當光源面積較大時,也能保證一定效率。另外,本文算法還可以有效減少面光源采樣計算所帶來的巨大開銷,從而在繪制出反映陰影遮擋體與陰影接收體之間遠近關系的可變半影效果時,能夠達到交互式繪制的速度;由自適應可見性濾波得到的可見性因子調制不考慮遮擋的直接光照值,以解決使用普通均值濾波產生的可見性滲透問題。
光線跟蹤算法和簡單的陰影映射都可以繪制出硬陰影,產生硬陰影的核心原因是可視場景點相對光源的可見性非0即1。可視場景點為3D場景中視點透過虛擬像素平面可以直接看到的場景點。由于硬陰影場景中的可見性是二值的,使得可見區與非可見區邊界處的可見性值表現為突變效果。在真實場景中,場景點的可見性一定是連續變化、非二值的結果。要想在三維場景中精確地計算出該結果,需要使用蒙特卡洛面光源采樣,但其開銷巨大。為了節省計算時間且滿足交互式速度,本文采取繪制近似軟影的方法,即使用空間平滑濾波模擬出非二值且連續變化的光源可見性。
空間平滑濾波是一種低頻增強的濾波技術,包括均值濾波、中值濾波等,其主要用于模糊和去噪。一般可用來處理鄰域的圖像像素以及與鄰域相同維數的子圖像中的系數值,這些子圖像被稱為濾波器、掩模等[16]。為了減小圖像中可見性的突變,使陰影邊界變得模糊,通常采取均值濾波方法。均值濾波的原理是將鄰域內所有像素的灰度平均值代替目標像素的灰度值。
文獻[14]采用固定大小的均值濾波器消除了硬陰影邊界的可見性突兀變化,并得到了近似軟影。圖1以3×3的固定濾波器為例,展示了對虛擬像素平面上某像素對應可見性的處理過程。其中,為均值濾波器,其系數值均為1,這種情況也被稱為盒式濾波器[17]。
使用固定大小的濾波器進行相關操作,雖然可以產生連續變化的可見性,但陰影不會根據遮擋體的位置不同而出現不同柔和度的半影效果。因此本文提出自適應的可見性濾波方法,根據遮擋關系動態調節濾波器大小,以生成具備一定物理真實性的軟影。另外,自適應可見性濾波可以解決濾波器中相鄰像素對應場景點不在同一表面導致的可見性滲透問題;在虛擬相機視場角不變的情況下,當視點移動后,本文算法可使場景內陰影的柔和度保持前后一致;當某場景點被多個遮擋體作用時,優先顯示距離此點最近遮擋體產生的陰影效果。

圖1 均值濾波使可見性平滑過渡
本文算法基于光線跟蹤框架,利用GPU渲染全局光照下包含近似軟影的3D場景。算法主要分為:①跟蹤相機光線并判斷可視場景點的光源可見性,得到二值光源可見性圖;②通過自適應可見性濾波器模型,動態確定二值光源可見性圖中每個像素的濾波器寬度;③對二值光源可見性圖進行帶掩模的自適應可見性濾波,得到可見性因子;④使用可見性因子調制不考慮遮擋的直接光照值后,加入間接光照生成視覺近似正確的軟影。算法流程如圖2所示。

圖2 本文算法流程圖
物理正確軟影在計算光源采樣時帶來巨大開銷,為了加快渲染速度,本文選取光源中心作為唯一參考點,其他忽略。首先以光源中心點為參照獲得二值光源可見性圖,然后在此參考點處模擬出等效虛擬面光源對場景進行作用以產生近似軟影。其二值光源可見性表示可視場景點與光源參考點之間是否有遮擋,即此場景點相對該點光源是否可見,其最終結果是二值的,非0即1。
二值光源可見性圖保存了虛擬像素平面上每個像素對應可視場景點的二值光源可見性。通過使用光線跟蹤中的遮擋測試方法判斷可視場景點相對光源是否被某對象遮擋,并得到該點的二值光源可見性。圖3為二值光源可見性的判斷過程:從視點向虛擬像素平面的每個像素發射射線,并將其稱作相機光線;跟蹤相機光線并記錄其與3D場景中幾何對象的第1個交點,即可視場景點;在此點向光源中心點發射遮擋測試光線;如果遮擋測試光線不與任何對象相交,說明可視場景點相對光源可見,其二值光源可見性1設為1,否則設為0。

圖3 二值光源可見性圖的生成
2.3.1 確定可視場景點對應像素的濾波器寬度
現實中,當光源面積越小或遮擋體越靠近陰影接收對象時,陰影邊界一般越清晰,即本影變多而半影變少。為了繪制出更接近真實的半影效果,本文考慮了陰影投射對象到陰影接收對象的距離、面光源到陰影接收對象的距離、面光源的大小和陰影投射對象的大小等實際影響因素,并將其作用加入到濾波器寬度的確定過程中。
在陰影的產生過程中有3個關鍵的點:光源點、陰影投射點和陰影接收點。為了繪制出具有可變半影效果的軟影,首先將遮擋體離散化成一個個陰影投射點,然后以陰影接收點對應的最近陰影投射點為圓心擴展出虛擬遮擋面,再將面光源的中心點作為圓心擴展出等效的虛擬面光源,最后通過2個面的大小和位置來產生可變的半影。根據實際情況:同一陰影點優先顯示距離此點最近的遮擋體所產生的柔和效果。所以這里選取最近陰影投射點擴展出虛擬遮擋面對陰影進行作用。如圖4所示,這些關系產生了2個關鍵角和,其可以描述等效虛擬面光源、虛擬遮擋面和陰影投射點之間的大小和位置關系,進而可以用來控制濾波器的大小去反映陰影的柔和度。比如當光源固定(角不變)時,遮擋體距離對應陰影接收體越遠(角變小),軟影的過渡一般越平滑,陰影接收點所要選擇的濾波器越大。從中可以發現,和角度差的絕對值和濾波器的大小成正相關。

圖4 基于夾角關系選取空間平滑濾波器大小
由此,本文根據關鍵角和建立自適應濾波器模型,來動態確定可視場景點對應像素的濾波器寬度。自適應濾波器模型表述為



其中,1為自適應空間平滑濾波器的寬度;1為等效虛擬圓形面光源的直徑;2為等效虛擬圓形遮擋面的直徑;d為可視場景點到光源中心點的距離;d為可視場景點到最近陰影投射點的距離,在同一陰影接收點和光源點之間存在多個陰影投射點時,會優先顯示距離陰影接收點最近的投射點產生的柔和度;為3D場景位置敏感處濾波器寬度的最大值。式(2)中1的計算方式為

1=max–min(5)
2=max–min(6)
3=Zmax–Zmin(7)
其中,max,max,max是所有可視場景點三維坐標,,的最大值;min,min,min是最小值。式(3)中2的計算方式為2=1/e2。e1和e2均為常數,通過對場景效果調試得到最優值。另外,在較大的面光源下繪制軟影時,和PCSS伴隨大量紋理采樣來計算濾波器寬度的方式不同,本文算法所需參數可在正常光線跟蹤過程中輕易獲得,省去了紋理采樣這部分的計算開銷,能保證一定效率。
2.3.2 加入視點自適應規則
在3D場景中,當虛擬相機的視場角不變,而視點遠離或者靠近場景對象時,同一對象在虛擬像素平面上所占像素個數也會發生改變,導致前后的濾波效果不同。為保證視點上下移動后的軟影效果顯示一致,本文設計了一種變換規則,使空間平滑濾波器能夠根據視點的移動進行自適應地調整。首先令三維場景中特定大小的幾何對象在虛擬像素平面上所占像素的基準個數為N,令視點到可視場景點的基準深度值為D。視點移動后,得到新視點到可視場景點的實際深度值為D,此時設該特定對象所占像素個數為N。然后,以可視場景點為端點,以垂直于初始視點到可視場景點的連線2為方向,延長大小為N的距離構成線段1,并設為線段1的對角。如圖5所示,視點向上移動后,得到2個相似三角形。最后根據相似關系可得tan()=N/D=N/D,即N/N=D/D。由于空間平滑濾波器的大小表示在虛擬像素平面上所占的個數,因此可以使用這個比例關系來調整視點移動后的濾波器寬度。將可視場景點初始濾波器寬度1和視點移動后濾波器寬度2分別代替N和N,則視點自適應濾波器寬度為2=1×D/D,其中D為經驗參數,通過場景效果反饋調試出最優值。

圖5 視點自適應示意圖
確定出每個可視場景點對應空間平滑濾波器的最終大小后,需要對二值光源可見性圖進行自適應濾波來產生具有連續變化性質的可見性因子。可見性因子為可視場景點相對虛擬面光源的可見性百分比,即從可視場景點看面光源,可見的光源面積占總面積的百分比。可見性因子為0表示可視場景點相對光源完全不可見;因子為1表示此點相對光源完全可見;當因子界于0到1之間時,此點相對部分光源可見,即為半影效果。可見性因子的數值越小,對應可視場景點呈現的顏色越暗。
本文提出的自適應可見性濾波在產生可見性因子的同時,也解決了文獻[14]中的可見性滲透問題。這一問題產生的原因如圖6(a)所示,場景中點A,B,C和D對應在虛擬像素平面上為相鄰像素,其二值光源可見性為1,0,0和1。A點和B點之間雖然存在可見性突變,但不在同一表面上,即點A在陰影投射體上,點B在陰影接收體上,對二值光源可見性圖進行普通的均值濾波后,使本該保持不變的A點和B點的可見性分別變小和變大,導致錯誤的滲透效果,如圖6(b)所示。對于正常的陰影邊界,如相鄰點C和D,存在可見性突變且在同一表面上,濾波后產生了正確的平滑過渡效果。在本文中,當2個相鄰像素對應場景點的深度差小于設定閾值時,表示其在同一表面上,深度值為可視場景點到光源的距離。
為了在整體的濾波過程中剔除可見性滲透,以帶掩模的均值濾波方法來解決這個問題,修正后效果如圖6(c)所示。帶掩模是為了屏蔽掉在濾波器覆蓋范圍內,與目標像素對應可視場景點不在同一表面上的點。在掩模計算過程中,將濾波器中被屏蔽掉的像素的系數值設為0,將被保留的像素的系數值設為1。此掩模的實現思想為:①以濾波器內目標像素為中心,從內向外逐層擴展,每個外層像素和其最近的內層像素兩兩判斷其對應的場景點是否在同一表面。②擴展第一層時保留與目標像素對應場景點在同一表面上的點。③擴展第二至最后一層之間的某一層時,對于沒有留下的內層像素則屏蔽對應外層像素的判斷;若相比較的兩像素對應場景點在同一表面,則表示與目標像素對應場景點也在同一表面,并保留外層該點。

圖6 修正可見性滲透
自適應可見性濾波是一個使用自適應大小的濾波器對二值光源可見性圖進行帶掩模計算的均值濾波的過程。以2×2(奇數)為濾波模板,對虛擬像素平面上目標像素對應3D場景中可視場景點的二值光源可見性1進行自適應可見性濾波,得到此場景點的可見性因子2,步驟如下:


步驟3.以目標像素為中心點向外擴展層,遍歷此層每個像素P,同時判斷與其最近的內層像素位置處的same數組為何值:
步驟3.1.如果為0,則在P位置處將same數組賦0;
步驟3.2.如果為1,則計算P與最近內層像素分別對應的場景點的深度差=|dnear|,此時若<,則P與目標像素位于同一表面,并將P位置處的same數組賦1。
步驟4.更新迭代次數=+1,若>,執行下一步;否則轉到步驟3。
步驟5.遍歷整個濾波模板內的所有像素,判斷每個像素對應same數組中的值是否為1。統計same數組中為1的個數并記為,同時累加same數組為1時對應濾波模板中像素的二值光源可見性值得到。

關于自適應可見性濾波過程中的深度差閾值,其主要受光源位置影響。由于本文深度值不是水平垂直深度,而是光源到可視場景點的距離,即使在同一平面上的相鄰像素間也會存在深度差異,所以用深度差閾值來判斷2個鄰近像素是否位于同一表面。最優閾值需要根據不同場景調試得到,并同時適用于平面和曲面的陰影接收對象。
在圖7中,對同一像素點以5×5的濾波模板為例,將自適應可見性濾波與普通均值濾波的可見性結果作對比。圖中淺色像素點在同一陰影投射對象中,深色像素點在同一陰影接收對象中,目標像素為某陰影接收點;1為普通均值濾波器,2為本文算法計算出的該像素下的掩模。從結果可以看出,自適應可見性濾波在二值光源可見性圖中,通過使用掩模只對與目標像素在同一表面上的像素濾波,修正了簡單濾波產生的可見性滲透問題。

圖7 簡單濾波與自適應可見性濾波的結果對比
得到在可見區與非可見區之間平滑過渡的可見性因子后,輸出最終顏色C。值得注意的是,一般在3D場景的軟影繪制方面,間接光照陰影在視覺上遠沒有直接光照陰影明顯。因此在計算視覺近似軟影時,只需調制直接光照就可以獲得良好的效果,對于間接光照則不做處理。本文基于光線跟蹤算法,計算無需考慮遮擋情況的可視場景點直接光照顏色值C和間接光照顏色值C;然后使用上一步得到的可見性因子調制對應可視場景點的顏色緩存:C=C×2+C,得到全局光照下體現遮擋對象空間位置遠近關系的半影結果。另外,對于使用陰影圖算法常見的陰影瑕疵,即漏光和過陰影問題,分別是由丟失遮擋信息和疊加計算遮擋數據導致的[6]。而本文算法基于光線跟蹤框架,所有可視場景點都有對應的遮擋測試光線,對于深度復雜的場景也可以準確獲得遮擋信息,并且只使用距離陰影點最近遮擋點的數據來計算可見性因子,因此本文算法避免了此類問題。
實驗所用計算機配備Intel Xeon E3-1225 v3 3.20 GHz CPU、8 GB 內存和4 GB顯存NVIDIA Quadro K2200 GPU,使用NVIDIA CUDA SDK 7.5和 NVIDIA OptiX SDK 3.9.0作為GPU開發工具。測試場景均為動態場景,圖像分辨率統一設置為1024×768。算法中的經驗參數設置為=20,1=11,2=12,D=45,=0.3。另外,基于蒙特卡洛積分光照計算方法在正方形面光源下進行13×13的點光源采樣得到物理正確陰影效果,并作為參考來檢驗本文算法的有效性。在光線跟蹤過程中使用了層次包圍盒空間加速結構[18],且算法步驟全部在GPU端運行。
圖8為本文算法在全局光照下繪制的3個不同復雜度的場景。可以看出,產生的軟影非常平滑,且半影隨陰影遮擋對象到陰影接收對象之間距離的變大而變柔和。由于算法與光線跟蹤框架完全兼容,所以容易生成包含鏡面反射效果的軟影。且本文算法速率較快,可達到實時交互式繪制的速度。

圖8 本文算法在全局光照下的繪制結果
圖9為本文算法使用相同模型在不同位置光源照射下繪制的3個場景,表1為圖9中各場景的光源中心點的坐標、繪制速率和空間平滑濾波器的整體情況。可以發現隨著光源位置的改變,同一陰影投射點和其對應陰影接收點之間距離變得不同,導致同一陰影接收點的濾波器大小也會不同。由于濾波器的大小影響半影質量和繪制速度,所以算法效率和光源中心點的位置有關。

圖9 光源位置對空間平滑濾波器大小的影響

表1 圖9中光源位置對繪制速率的影響
圖10為本文算法繪制的軟影與蒙特卡洛算法產生的物理正確陰影在體現可變半影效果上的對比圖。圖中bunny場景為斯坦福兔子,plant場景為綠色盆栽。可以看出,本文算法結果與物理正確陰影效果相似,且在邊界柔和度方面差異很小,具有能夠體現遮擋對象空間位置遠近關系的可變半影效果。
圖11為本文算法與蒙特卡洛算法在表現多重遮擋情況下的對比。people場景中有人物之間陰影互相重疊的情況,park場景中部分樹葉的陰影與柵欄陰影出現重疊。可見當同一陰影接收點被多個遮擋體作用時,本文算法優先顯示距離陰影接收點最近的遮擋體產生的陰影柔和度。比如,people場景中,一個人的腿部和另一個人的頭部產生的陰影出現重疊,本文算法優先對距離陰影接受點更近的腿部遮擋體所產生的更暗的陰影進行顯示;在park場景中,柵欄和樹葉的陰影重疊處,本文算法優先顯示柵欄的陰影效果。

圖10 本文算法與蒙特卡洛算法對比可變半影效果

圖11 本文算法與蒙特卡洛算法在表現多重遮擋情況時的對比
通過圖10,11中2種結果對比說明,本文算法可以有效繪制視覺上近似正確的軟影。雖然和物理真實陰影有所出入,但在性能方面,與蒙特卡洛算法對比有明顯提升,具有實時性。表2給出了本文算法的核心部分(對二值光源可見性圖進行自適應可見性濾波)在每幀繪制時的額外時間開銷。另外,本文算法可以模擬普通面光源照射下的軟影,但較難模擬異型面光源產生的陰影效果。主要原因是采樣單個光源點產生的陰影與異型面光源的陰影范圍差別很大,異型面光源生成的半影所占比例多且較難精確表示,而解決這個問題是下一步的研究工作。

表2 圖10和圖11中場景的繪制幀率
本文提出基于自適應可見性濾波的近似軟影實時繪制算法。該算法取光源中心為參考點并模擬出等效虛擬面光源,有效減少了對光源大量采樣所產生的開銷,在測試場景中可以滿足交互式繪制的速度要求。根據等效的虛擬面光源和虛擬遮擋面建立自適應濾波器模型,能夠動態確定每個可視場景點的濾波器寬度;同時濾波器的大小根據可視場景點到視點的深度值自適應調整,使陰影效果在不同視點下可以保持一致。然后通過帶掩模的自適應可見性濾波方法,修正了當相鄰像素對應場景點不在同一表面時使用普通均值濾波產生的可見性滲透問題;完全兼容光線跟蹤框架,易產生場景中帶鏡面反射間接光照效果的軟影。另外,本文算法的繪制結果與蒙特卡洛積分光照計算方法得到的物理正確軟影非常接近,沒有漏光和過陰影瑕疵,但具有體現陰影遮擋體與陰影接收體之間遠近關系的可變半影,并實現了多重遮擋情況下真實的陰影重疊效果。
[1] WOO A, POULIN P, FOURNIER A. A survey of shadow algorithms [J]. IEEE Computer Graphics & Applications, 1990, 10(6): 13-32.
[2] HASENFRATZ J M, LAPIERRE M, HOLZSCHUCH N, et al. A survey of real-time soft shadows algorithms [J]. Computer Graphics Forum, 2003, 22(4): 753-774.
[3] GERHARDS J, MORA F, AVENEAU L, et al. Partitioned shadow volumes [J]. Computer Graphics Forum, 2015, 34(2): 549-559.
[4] CHORO? K, SUDER T. Improved partitioned shadow volumes method of real-time rendering using balanced trees [C]//Proceedings of Conference on Computational Collective Intelligence Technologies and Applications. Cham: Springer International Publishing, 2017: 569-578.
[5] 過潔, 徐曉旸, 潘金貴. 基于陰影圖的陰影生成算法研究現狀[J]. 計算機輔助設計與圖形學學報, 2010, 22(04): 579-591.
[6] 沈笠, 楊寶光, 馮結青. 多層陰影圖輪廓邊背投軟影算法[J]. 計算機輔助設計與圖形學學報, 2013, 25(9): 1265-1274.
[7] FERNANDO R. Percentage-closer soft shadows [C]// Proceedings of ACM SIGGRAPH 2005 Sketches. New York: ACM Press, 2005: 35.
[8] 孫明彥, 呂偉偉, 劉學慧, 等. 深度剝離與GPU結合的近似軟影算法[J]. 中國圖象圖形學報, 2010, 15(9): 1391-1397.
[9] YANG B G, DONG Z, FENG J Q, et al. Variance soft shadow mapping [J]. Computer Graphics Forum, 2010, 29(7): 2127-2134.
[10] SHEN L, FENG J, YANG B. Exponential soft shadow mapping [J]. Computer Graphics Forum, 2013, 32(4): 107-116.
[11] 沈笠, 楊寶光, 馮結青. 高質量快速百分比鄰近濾波軟影算法[J]. 計算機輔助設計與圖形學學報, 2014, 26(3): 329-338.
[12] LIKTOR G, SPASSOV S, MüCKL G, et al. Stochastic soft shadow mapping [J]. Computer Graphics Forum, 2015, 34(4): 1-11.
[13] PETERS C, MUNSTERMANN C, WETZSTEIN N, et al. Beyond hard shadows: Moment shadow maps for single scattering, soft shadows and translucent occluders [C]//Proceedings of ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games. New York: ACM Press, 2016: 159-170.
[14] CHEN C Y, YANG H M, LI H. Interactive rendering of approximate soft shadows using ray tracing with visibility filtering [C]//Proceedings of the 2016 International Conference on Computer Science, Technology and Application. Singapore: World Scientific Publishing, 2016: 68-74.
[15] SUFFERN K. 光線跟蹤算法技術[M]. 劉天慧, 等, 譯. 北京: 清華大學出版社, 2011: 37-38.
[16] GONZALEZ R C, WOODS R E. 數字圖像處理[M]. 阮秋琦, 等, 譯. 2版. 北京: 電子工業出版社, 2011: 88-93.
[17] 李麗勤, 馬瑤. 均值濾波及中值濾波在速度譜曲面濾波中的應用[J]. 山西建筑, 2018(2): 214-216.
[18] 楊鑫, 王天明, 許端清. 基于GPU的層次包圍盒快速構造方法[J]. 浙江大學學報: 工學版, 2012, 46(1): 84-89.
Approximate Soft Shadow Rendering Based on Adaptive Visibility Filtering
YANG Chao-zhi, CHEN Chun-yi, QU Fu-heng, CHEN Sheng, XING Qi-wei
(School of Computer Science and Technology, Changchun University of Science and Technology, Changchun Jilin 130022, China)
Focusing on the difficulty in interactively rendering physically correct soft shadows existing in global illumination effects, this study proposes an algorithm for producing approximate soft shadows, which can generate alterable penumbra reflecting spatial positions of occluders. Firstly, a binary light-visibility map is generated by using occluding detection method based on ray tracing and taking the center of light source as a reference point. Secondly, a way that adaptively determines the kernel size of spatial smoothing filter is proposed. Then, visibility factors that change smoothly from visible region to non-visible region are obtained by a method of adaptive visibility filtering. The filtering method can solve the problem ofvisibility infiltration by using mask. Finally, the visibility factors are used to dynamically modulate the direct illumination of theassociated visible points in the process of ray tracing. The highly realistic soft shadow effects are produced by adding the modulated direct illumination and ordinary indirect illumination together. Experimental results show that the algorithm is fully compatible with ray tracing and hence is easy to compute indirect illumination including mirrored visual effects. The soft shadows in images generated by our method look like physically-correct soft shadows. The rendering speed of our method is beyond 30 frames per second for all test scenes featuring specular reflections, hence satisfying the requirements of interactive applications.
soft shadows; variable penumbra; light-source visibility; ray tracing; adaptive filtering
TP 391
10.11996/JG.j.2095-302X.2019010165
A
2095-302X(2019)01-0165-08
2018-05-15;
2018-07-05
吉林省科技發展計劃項目(20170101005JC,20180519012JH);吉林省省級產業創新專項資金項目(2016C091);吉林省教育廳“十三五”科學技術項目(JJKH20170629KJ,JJKH20181136KJ)
楊超智(1992-),男,山東濱州人,碩士研究生。主要研究方向為真實感三維圖形繪制。E-mail:yang.chaozhi@foxmail.com
陳純毅(1981-),男,重慶人,教授,博士,博士生導師。主要研究方向為真實感三維圖形繪制、計算機仿真。E-mail:chenchunyi@hotmail.com