李 華,楊華民,趙建平,陳純毅
(長春理工大學(xué) 計算機(jī)科學(xué)技術(shù)學(xué)院,吉林 長春 130022)
?
特效電影工程中混合分辨率陰影圖設(shè)計與硬陰影反走樣
李華,楊華民,趙建平*,陳純毅
(長春理工大學(xué) 計算機(jī)科學(xué)技術(shù)學(xué)院,吉林 長春 130022)
摘要:在實時的虛擬場景渲染中,為減少陰影圖算法由分辨率不足導(dǎo)致的陰影走樣,提出了利用并行線性掃描的混合分辨率陰影圖算法。首先,從光源視角生成高分辨率陰影圖,利用并行線性掃描算法對深度均值差進(jìn)行計算和分析,自底向上的合并紋素,建立紋素之間的索引關(guān)系并討論混合分辨率陰影圖的存儲。在渲染階段,利用混合分辨率陰影圖進(jìn)行深度測試,繪制實時的反走樣陰影。實驗表明,與標(biāo)準(zhǔn)陰影圖相比,混合分辨率陰影圖能提高20%以上的重要區(qū)域分辨率,明顯改善陰影邊界鋸齒走樣,使Dragon等模型的計算時間減少9%~18%。經(jīng)實際應(yīng)用驗證,混合分辨率陰影圖是一種有效的實時陰影繪制算法,可有效減少陰影圖算法的走樣。
關(guān)鍵詞:陰影圖;硬陰影;混合分辨率;反走樣
Hybrid-resolution shadow mapping design and hard
1引言
隨著特效電影、游戲產(chǎn)業(yè)的飛速發(fā)展,虛擬現(xiàn)實技術(shù)不斷成熟,越來越多的工業(yè)應(yīng)用、科學(xué)研究離不開虛擬場景的繪制?;诂F(xiàn)代圖形渲染管線的研究和應(yīng)用已經(jīng)成為重要產(chǎn)業(yè)。其中,陰影的繪制是提高場景的真實效果和視覺體驗的關(guān)鍵。陰影圖是計算實時陰影的主要方法之一,在電影虛擬現(xiàn)實場景創(chuàng)建中被廣泛使用。陰影圖算法利用屏幕空間的雙渲染通道,通過深度測試?yán)L制陰影,具有場景無關(guān)性和靈活性的特點,在目前的硬件渲染管線中被廣泛支持。但由于其分辨率有限以及透視投影的誤差等原因,陰影圖算法易產(chǎn)生走樣,尤其在陰影邊界區(qū)域。因此,如何減少陰影走樣一直是陰影圖算法的主要研究內(nèi)容。
標(biāo)準(zhǔn)陰影圖(Shadow mapping,SM)[1]算法最初由LanceWilliams在1978年提出。該算法首先從光源視角生成場景深度圖,以紋理的方式存儲在z-buffer中,所有深度圖中的紋素都是場景中的可見點。然后從相機(jī)視角渲染場景,將所有采樣點的坐標(biāo)投影到光照空間,讀取對應(yīng)坐標(biāo)的深度圖中的深度值,與采樣點的深度值進(jìn)行比較來確定采樣點是否處于陰影中。
為解決走樣問題,人們已開展了大量的研究工作并提出了相關(guān)的算法。例如,一種基于Wu直線反走樣算法減少鋸齒現(xiàn)象[2]和小角度直線反走樣的改進(jìn)Wu算法[3]從顯示技術(shù)角度提出了顯示反走樣方法; 一種圖像質(zhì)量評價方法[4]對人類視覺對走樣的觀察理論提供了分析依據(jù)。從圖形繪制角度看,基于濾波的技術(shù),如百分比近似濾波方法(PCF)[5],方陰影圖(VSM)[6]和卷積陰影圖(CSM)[7]等,這些方法通過深度值濾波,滑柔陰影邊緣。基于透視投影變化的相關(guān)技術(shù),如光照空間的透視陰影貼圖(LSPSM)[8],此類方法都在透視投影后的空間生成陰影圖,使得近觀察者的物體有更高的分辨率,減少走樣。基于幾何陰影圖的技術(shù),如可重建幾何陰影圖(RGSM)[9],提出存儲可見三角形片元的頂點,而不是可見點。在渲染階段,通過幾何片元進(jìn)行深度重建的方式,完成陰影測試。該方法能與采樣點的方法相比,能更真實地反應(yīng)場景深度。除此之外,還有幾何陰影圖的改進(jìn)方法[10]以及陰影圖和陰影體算法相結(jié)合的技術(shù)。如,混合陰影渲染算法(HSRA)[11]提出運(yùn)用陰影體技術(shù)識別物體投影邊界,再利用陰影圖技術(shù)生成陰影,同時對于邊界部分采用高分辨率反走樣。另外,反射陰影圖的采樣改進(jìn)算法[12]對并行渲染的效率進(jìn)行了分析,提出有效的并行渲染結(jié)構(gòu)。
本文提出一種混合分辨率陰影圖(Hybrid-resolution shadow mapping,HRSM)的生成算法,設(shè)置深度值均值差識別視覺敏感區(qū),如深度值變化大的陰影邊界。設(shè)計并實現(xiàn)陰影圖的并行線性掃描算法,對高分辨率陰影圖逐級“合并”,對非敏感區(qū)域降低分辨率,形成混合分辨率的陰影圖,并設(shè)置存儲和索引方法。本方法在實際應(yīng)用中能獲得高畫質(zhì)的陰影繪制影效果,節(jié)約計算成本。
2混合多分辨率陰影圖算法
陰影圖算法第一步是從光源視角生成可見場景點的深度值,在z-buffer中存儲為紋理。算法利用GLSL語言,在頂點著色器中計算齊次坐標(biāo),在片段著色器中將最小深度值存儲到16位的深度紋理。建立高分辨率陰影圖(初始為2 048×2 048或4 096×4 096)。
對于一個場景,場景中每一個“表面”一般是平滑連續(xù)過渡的,但在物體邊緣或者當(dāng)前景和背景相離較遠(yuǎn)時,就會出現(xiàn)一個深度值“斷層”。算法首先通過并行線性掃描對高分辨率陰影圖計算其深度均值差,即包含掃描點在內(nèi)的4個相鄰紋素的深度值均值之差。設(shè)4個相鄰紋素的深度分別為D1,D2,D3,D4則深度均值差表示為:
(1)
式中,Di表示相鄰4個紋素深度,Dn表示當(dāng)前掃描點的深度,其中n∈{1,2,3,4}。ε0表示均值差閾值(本算法中ε0=0.25),如果對相鄰4個采樣點均值差均≤ε0,則進(jìn)行合并取均值的操作,否則保留原分辨率不變。這種自底向上的合并方式可以有效降低非陰影邊界區(qū)域的分辨率,提高深度測試速度,并保留了高精度分辨率的準(zhǔn)確性。如圖1所示,并行線性掃描算法對相鄰4個紋素合并成一個紋素,對分辨率為N2的陰影圖,經(jīng)過2次掃描,即可將分辨率將為原來的N2/16。即,對于初始分辨率2 048×2 048降至512×512。
圖1 高分辨率陰影圖的自底向上合并Fig.1 Bottom-up merges of high-resolution shadow map
并行線性掃描算法(偽代碼見算法1)設(shè)計每條線程跨越2個紋素寬度,每個計算周期掃描1個紋素長度。對合并的紋素建立索引(2.3節(jié)),最終將掃描結(jié)果存入輸出緩沖區(qū)中生成混合分辨
率陰影圖,主要步驟如下:
(a)設(shè)置N/2個線程掃描分辨率為N×N的陰影圖;
(b)計算均值差,對均值差均小于閾值(0.25)的相鄰4個紋素合并,并以均值作為新紋素的深度值;
(c)識別D1,D2,D3,D4位置坐標(biāo)創(chuàng)建索引,存儲子陰影圖信息;
(d)重復(fù)(a)~(c)創(chuàng)建二級索引達(dá)到最低分辨率。
通常情況下,通過二級或索引關(guān)系即可實現(xiàn)最低分辨率理想的混合分辨率陰影圖。如初始分辨率為2 048×2 048,經(jīng)過兩次自底向上的合并,在場景平滑連續(xù)的表面形成分辨率為512×512的陰影圖紋素,在物體輪廓邊緣處保留2 048×2 048高分辨率以及1 024×1 024的中等分辨率。
算法1
Algorithm1Line-sweepshadowmapposisthecoordinateofthefirststepintheshadowmapandstisavectorforonestepalongthescanline.While(steps--){float3sampleTexel(pos);forall(mapstexels,s∈input)doD1=DepthAtPoint(s.Pos.TopLeft())D2=DepthAtPoint(s.Pos.ToptRight())D3=DepthAtPoint(s.Pos.BottomLeft())D4=DepthAtPoint(s.Pos.BottomRight())If(MeanDifference(D1,D2,D3,D4)≤ε0)then{ParentPoint=MergeAverage(D1,D2,D3,D4)If(s.position)Output.Add(s.ParentPoint());StorenormalandIDtonewshadowmap}elseoutput.Add(s)} pos+=st; }
多分辨率陰影圖的存儲及索引是實現(xiàn)混合分辨率陰影圖的關(guān)鍵。標(biāo)準(zhǔn)陰影圖以文本方式存儲。本算法需設(shè)計不同的RGBA緩存存儲格式。在本實驗中的RGBA緩存為128位,該圖形硬件渲染管線在一個RGBA緩存中只允許存儲4位全精度浮點類型或8位半精度浮點類型。因此,本文設(shè)置將線程紋理坐標(biāo)及深度值存儲在R和G通道中,索引標(biāo)志位,以及索引信息存儲在B通道中。Alpha 通道的高16位存儲深度值depth,Alpha 通道的低16位預(yù)留存儲法向量normal (用于進(jìn)一步的間接光照計算)。如圖2所示。
圖2 RGBA緩存的128位存儲格式Fig.2 Storage of 128 bits RGBA-buffer
另外,對于索引信息,需要額外建立一張索引鏈表,其結(jié)構(gòu)定義如下,紋素索引示意如圖3所示。
struct shadowmap
{ int textureID;
struct shadowmap *next;
}shadowmap
圖3 混合分辨率陰影圖索引示意Fig.3 Index of hybrid-resolution shadow mapping
算法2
Algorithm2ShadowTest forEachviewsample Projecttolightspaceintersectwithtexeli readfromHRSM iftexeliisindexedtosubtexel,searchindexuntilend thenReaddp~inHRSM ifdp≤dp~thenreturntrue; elsereturnfalse;} elseReaddp~inHRSM ifdp≤dp~thenreturntrue; elsereturnfalse;}
3效果分析
圖4 標(biāo)準(zhǔn)陰影圖算法(左列)與混合分辨率陰影圖算法(右列) 的效果對比, 陰影圖分辨率分別為(a)1 024×1 024,(b)2048×2 048 降至1 024×1 024,(c)512×512,(d)1 024×1 024 降至512×512,(e)2 048×2 048,(f)4 096×4 096 降至2048×2 048Fig.4 Contrast of SM(left column) and HRSM(right column),with the resolution of shadow maps are (a)1 024×1 024, (b)2 048×2 048 down to 1 024×1 024, (c)512×512, (d)1 024×1 024 down to 512×512, (e)2 048×2 048, (f)4 096×4 096 down to 2 048×2 048
本算法實驗環(huán)境為Intel(R)Xeon(R) CPU E5620@ 雙核 2.40 GHz ,NVIDIA Quadro K5000. 利用GLSL語言及CUDA并行線程實現(xiàn)。對于分辨率為標(biāo)準(zhǔn)512×512及以下的混合分辨率陰影圖來講,混合分辨率陰影圖效果由于分辨率過低不建議采用;高于1 024×1 024及以上情況,運(yùn)用混合分辨率陰影圖,相同時間消耗可以獲得更高質(zhì)量的陰影效果,同樣,在相同渲染質(zhì)量的前提下,混合分辨率陰影圖的計算時間明顯縮短。結(jié)合實際虛擬現(xiàn)實工程的應(yīng)用以及基于CPU-GPU渲染平臺的運(yùn)算效率研究[8],本算法在生成特效立體電影的樣片制作中進(jìn)行運(yùn)用和測試。圖4所示為標(biāo)準(zhǔn)陰影圖SM與本文算法HRSM的繪制效果對比(測試模型來自Stanford Dragon)。圖中,標(biāo)準(zhǔn)陰影圖分辨率分別為(a)1 024×1 024,(b)512×512和((e)2 048×2 048;混合分辨率陰影圖分別為(b)2 048×2 048 降至1 024×1 024,(d)1 024×1 024 降至512×512和(f)4 096×4 096 降至2 048×2 048,結(jié)果顯示了本文算法能明顯減少陰影邊界的鋸齒走樣。表1對比了Dragon模型在兩種方法起始分辨率相同情況下的繪制時間,隨著陰影圖分辨率的增加,計算時間約從9%減少到18%,即初始分辨率越高,本算法的優(yōu)勢越明顯。原因是自底向上的合并分辨率,極大地降低了陰影內(nèi)部及背景的分辨率,保留了陰影邊緣的高分辨率,這種方法對不同場景的適應(yīng)性較強(qiáng),除了樹葉發(fā)絲等特殊渲染目標(biāo)。
表1 SM與HRSM下Dragon的計算
圖5 細(xì)線條目標(biāo)反走樣繪制,圖(a)和(c)為標(biāo)準(zhǔn)陰影圖算法,分辨率為2 048×2 048;圖(b)和(d)為混合分辨率陰影圖算法,分辨率由4 096×4 096降至2 048×2 048Fig.5 Anti-aliasing with tiny objects, (a) and (c) are SM with resolution of 2048×2 048, (b) and (d) are HRSM with resolution of 4 096×4 096 down to 2 048×2 048
圖5為2 048×2 048分辨率下的細(xì)陰影繪制及反走樣效果,其中,(a)、(c)為標(biāo)準(zhǔn)陰影圖,分辨率均為2 048×2 048;(b)、(d)為本文算法,分辨率為4 096×4 096降至2 048×2 048生成。該測試場景包含中等程度的深度不連續(xù)區(qū)域,視覺效果良好。
圖6為HRSM方法的自陰影繪制效果測試,實驗表明該方法能正確計算自陰影及陰影反走樣。圖7對比了混合分辨率陰影圖由不同初始分辨率降至標(biāo)準(zhǔn)分辨率512×512的繪制效果。其中,(a)和(d)為標(biāo)準(zhǔn)陰影圖512×512繪制效果; (b)、(c)和(e)為混合分辨率陰影圖,分辨率分別由2 048×2 048降至512×512,4 096×4 096降至512×512 以及1 024×1 024降至512×512的繪制效果??梢娀旌戏直媛仕惴S著初始分辨率的提高,即使目標(biāo)分辨率相同,畫面質(zhì)量會隨之提
高。為了測試模型復(fù)雜度對算法的影響,本文分別對Dragon、Bunny、Ball model和Spheres進(jìn)行了測試,結(jié)果顯示模型越復(fù)雜本算法的計算優(yōu)勢越明顯,時間減少量約從5%~12%,如表2所示。
圖6 混合分辨率陰影圖算法自陰影效果,分辨率由2 048×2 048 降至1 024×1 024Fig.6 Self-shadow of HRSM with resolution of 2 048×2 048 down to 1 024×1 024
圖7 不同初始分辨率的混合陰影圖算法繪制效果對比,(a)和(d)為標(biāo)準(zhǔn)陰影圖512×512繪制效果; (b)、(c)和(e)為混合分辨率陰影圖的分辨率分別由2 048×2 048降至512×512,4 096×4 096降至512×512 以及1 024×1 024降至512×512的繪制效果Fig.7 Contrast of HRSM with different initial resolution, (a) and (d) are standard shadow map with resolution of 512×512; (b), (c) and (e) are HRSM with resolution of 2 048×2 048 to 512×512, 4 096×4 096 to 512×512 and 1 024×1 024 to 512×512
模型頂點多邊形標(biāo)準(zhǔn)陰影圖(SM)混合分辨率陰影圖(HRSM)1024×10242048×20481024×10242048×2048Dragon1526433240000032.634.929.530.8Bunny872661167198423.528.220.627.3Ballmodel1341842688009.812.98.511.2Spheres1200120005.37.25.06.3
4結(jié)論
本文利用并行線性掃描及深度均值差計算的方法,對高分辨率陰影圖進(jìn)行合并、索引存儲生成混合分辨率陰影圖。經(jīng)實驗驗證,與標(biāo)準(zhǔn)陰影圖相比,混合分辨率陰影圖可提高20%以上的重要區(qū)域分辨率,可明顯改善陰影邊界鋸齒走樣,使Dragon等模型的計算時間減少9%~18%,因此,混合分辨率陰影圖方法是一種有效的陰影圖陰影反走樣方法。更進(jìn)一步的工作將對非均勻分布的虛擬點光源進(jìn)行簇劃分,形成虛擬面光源,利用立即輻射度法計算間接光照,同時結(jié)合運(yùn)動物體目標(biāo)遮擋跟蹤[13]和大氣、星體運(yùn)動仿真,實現(xiàn)虛擬太空特種電影的實時動態(tài)光照計算。
參考文獻(xiàn):
[1]WILLIAMS L. Casting curved shadows on curved surfaces[C]. ACM SIGGRAPH Computer Graphics,Atlanta,Georgia USA,23-25 August,1978,12(3):270-274.
[2]吳連慧,周建江,夏偉杰,等.基于Wu反走樣的三角形光柵化邊緣反走樣算法[J].液晶與顯示,2015,30(1):163-169.
WU L H,ZHOU J J,XIA W J,etal.. Edge anti-aliasing algorithm of triangle rasterization based on Wu algorithm[J].ChineseJ.LiquidCrystalsandDisplays,2015,30(1):163-169.(in Chinese)
[3]李鉑,周建江,夏偉杰.小角度直線反走樣的改進(jìn)Wu算法[J].液晶與顯示,2014,29(4):605-610.
LI B,ZHOU J J,XIA W J. Modified anti-aliasing algorithm for small-angle line based on Wu algorithm[J].ChineseJ.LiquidCrystalsandDisplays,2014,29(4):605-610.(in Chinese)
[4]姚軍財.基于人眼對比度敏感視覺特性的圖像質(zhì)量評價方法[J].液晶與顯示,2011,26(3):390-396.
YAO J C. Image quality assesment method based on contrast sensitivity characteristics of human vision systym[J].ChineseJ.LiquidCrystalsandDisplays,2011,26(3):390-396.(in Chinese)
[5]REEVES W T,SALESIN D H,COOK R L. 1987. Rendering antialiased shadows with depth maps[C]. In Proceedings of the 14th annual conference on Computer graphics and interactive techniques. ACM,SIGGRAPH. Anaheim,California USA,27-31 July,1987:283-291.
[6]DONNELLY W,LAURITZEN A. Variance shadow maps[C]. In Proceedings of the symposium on Interactive 3D graphics and games,ACM,Boston,MA,USA,30 July-3 August,2006:161-165.
[7]ANNEN T,MERTENS T,BEKAERT P,etal.. Convolution shadow maps[C]. Eurographics Symposium on Rendering,Eurographics,Grenoble,France,25-27 June,2007:51-60.
[8]WIMMER M,SCHERZER D,PURGATHOFER W. Light space perspective shadow maps[C]. In Proceedings of the Fifteenth Eurographics conference on Rendering Techniques,EGSR,Nork?ping,Sweden,21-23 June,2004:143-151.
[9]DAI Q,YANG B,FENG J. Reconstructable geometry shadow maps[C]. In Proceedings of the 2008 symposium on Interactive 3D graphics and games,ACM,Los Angeles,California,USA ,11-15 August,2008:1-4.
[10]PASCAL L,JEANEUDES M,GAEL S. Sub-Pixel Shadow Mapping[C]. In proceeding of the 18th meeting of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games. Anaheim,California,USA ,10-14 August,2014:103-110.
[11]CHAN E,DURAND F. An efficient hybrid shadow rendering algorithm[C]. In Proceedings of the Fifteenth Eurographics conference on Rendering Techniques,EGSR,Nork?ping,Sweden,21-23 June,2004:185-195.
[12]李華,楊華民,趙建平,等.反射陰影圖的采樣改進(jìn)及異構(gòu)CPU-GPU效率分析[J].長春理工大學(xué)學(xué)報(自然科學(xué)版),2015,38(3):102-106.
LI H,YANG H M,ZHAO J P,etal.. Improved sampling algorithm based on reflective shadow maps and efficiency analysis of heterogeneous CPU-GPU[J].J.ChangchunUniversityofScienceandTechnology(Natural Science Edition),2015,38(3):102-106.(in Chinese)
[13]高文,朱明,賀柏根,等.目標(biāo)跟蹤技術(shù)綜述[J].中國光學(xué),2014(3):365-375.
GAO W,ZHU M,HE B G,etal.. Target tracking technology[J].ChineseOptics,2014(3):365-375.(in Chinese)
李華(1977—),女,黑龍江人,博士研究生,副教授,2003年于長春理工大學(xué)獲得碩士學(xué)位,主要從事虛擬現(xiàn)實技術(shù)及高性能計算方面的研究。E-mail: lihua@cust.edu.cn
趙建平(1964—),男,吉林榆樹人,博士,教授,博士生導(dǎo)師,主要從事數(shù)字圖像處理技術(shù)方面的研究。E-mail:zhaojpin@aliyun.com
Supported by National High-tech R&D Program of China(No.2013AAXXXX042)
shadows anti-aliasing in special effects movies
LI Hua, YANG Hua-min, ZHAO Jian-ping*, CHEN Chun-yi
(SchoolofComputerScienceandTechnology,ChangchunUniversityof
ScienceandTechnology,Changchun130022,China)
*Correspondingauthor,E-mail:zhaojpin@aliyun.com
Abstract:In order to reduce the aliasing artifact due to the finite resolution of shadow mapping in real-time rendering,we propose a hybrid-resolution shadow map based on a parallel line-sweep algorithm. First, our method generates a high-resolution depth map from light′s view, and analysizes the mean difference of depth using parallel line-sweep algorithm with threads and kernels. Then this method merges the texels from bottom to top to establish indexes for the texels and discusses the storage methods. At rendering pass, our method renders shadows in real time using the hybrid-resolution shadow map for occluder detection. Experimental results indicate that our algorithm improves the resolution of boundaries′ area over 20% compared with standard shadow mapping and reduces the time consumption about 9%-18% running by Dragon model. Verified by practical application, the hybrid-resolution shadow mapping is an effective real-time shadow rendering algorithm, which can effectively reduce the aliasing artifact.
Key words:shadow map;hard shadow;hybrid-resolution;anti-aliasing
文章編號2095-1531(2016)01-0097-09
基金項目:國家高技術(shù)研究發(fā)展計劃(863計劃)資助項目(No.2013AAXXXX042)
收稿日期:2015-09-11;
修訂日期:2015-11-13
作者簡介:
中圖分類號:TP311.1; TP391.9
文獻(xiàn)標(biāo)識碼:A
doi:10.3788/CO.20160901.0089