亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        傳統(tǒng)軟陰影算法在GPGPU 構(gòu)架上的優(yōu)化技術(shù)研究

        2014-03-25 07:12:28高明磊趙新燦
        關(guān)鍵詞:泊松分塊圓盤

        高明磊,趙新燦,詹 云

        (鄭州大學(xué) 信息工程學(xué)院,河南 鄭州450001)

        0 引言

        近年來(lái),計(jì)算機(jī)圖形學(xué)有著巨大的發(fā)展,隨著應(yīng)用需求的增加,真實(shí)感圖形渲染也越來(lái)越受到關(guān)注,要生成視覺上十分精確的軟陰影效果需要耗費(fèi)很多的計(jì)算. 近些年,GPU 的運(yùn)算性能快速增長(zhǎng),其浮點(diǎn)運(yùn)算能力明顯超越了CPU,使得GPU 擅于進(jìn)行大規(guī)模密集型數(shù)據(jù)的并行計(jì)算[1-2].GPU 強(qiáng)大的性能優(yōu)勢(shì)為高實(shí)時(shí)性的陰影研究提供了良好的解決思路,對(duì)設(shè)計(jì)虛擬場(chǎng)景中真實(shí)感強(qiáng)、實(shí)時(shí)性高的陰影,特別是對(duì)軟陰影效果有著重要的研究意義.

        陰影繪制算法主要分為陰影體算法[3]、陰影映射算法[4]和全局光照算法[5]. 在真實(shí)感方面,陰影體算法和全局光照算法是以犧牲實(shí)時(shí)性為代價(jià),換取稍好的真實(shí)感;而陰影映射算法雖然存在走樣等現(xiàn)象,通過(guò)過(guò)濾等方式依然能夠獲得很好的陰影效果[6]. 在實(shí)時(shí)性方面,陰影體算法和全局光照算法實(shí)時(shí)性較差;而陰影映射算法基于圖像空間,算法復(fù)雜度與場(chǎng)景復(fù)雜度無(wú)關(guān),且易于GPU 加速,實(shí)時(shí)性較高. 陰影映射算法根據(jù)半影區(qū)情況分為兩大類:半影區(qū)大小固定和半影區(qū)大小可變的陰影算法. 半影區(qū)大小固定的陰影算法主要有百分比接近濾波PCF 算法、方差陰影映射VSM 算法、卷積陰影映射CSM 算法和指數(shù)陰影映射ESM 算法;半影區(qū)大小可變的陰影算法主要有百分比靠近軟陰影PCSS(Percentage Closer Soft Shadow)算法[7],算法性能如表1 所示.

        1 基于GPGPU 的改進(jìn)軟陰影映射算法

        1.1 算法主要改進(jìn)思想

        由表1 可知,PCSS 算法是相對(duì)更好的一種軟陰影生成算法,軟陰影效果更加符合陰影的物理特征.在PCSS 算法的基礎(chǔ)上,提出一種新的軟陰影生成算法,如圖1 所示.

        首先,針對(duì)PCSS 算法不能硬件預(yù)濾波的問(wèn)題,使用VSM 算法代替PCF 算法進(jìn)行過(guò)濾,這樣在陰影圖中存儲(chǔ)的是深度值和深度值的平方,對(duì)陰影圖就可以使用各向異性過(guò)濾、區(qū)域求和表等濾波技術(shù),加速濾波效率,提高陰影質(zhì)量.

        表1 主要陰影算法特點(diǎn)對(duì)比Tab.1 Comparison of shadow algorithm

        其次,由于陰影圖濾波中每個(gè)像素點(diǎn)的濾波區(qū)域是動(dòng)態(tài)計(jì)算的,生成區(qū)域求和表耗時(shí)多,針對(duì)此問(wèn)題,筆者采用DirectCompute 在GPU 上加速生成區(qū)域求和表,提高濾波效率.

        最后,使用泊松圓盤采樣代替規(guī)則采樣,無(wú)需過(guò)多的采樣便能提高陰影質(zhì)量,針對(duì)自陰影問(wèn)題,采用深度梯度法得到可變的深度偏移值來(lái)處理.

        圖1 本文擬采用方法Fig.1 Research methods of this article

        本文軟陰影算法由CPU 端和GPU 端共同完成,其中,在CPU 上主要實(shí)現(xiàn)場(chǎng)景初始化、信息更新等任務(wù);算法的大部分工作由GPU 實(shí)現(xiàn),利用DirectX 11 中可編程部分vertex shader、pixel shader 和compute shader,充分利用GPU 的性能優(yōu)勢(shì),加速和優(yōu)化算法的實(shí)現(xiàn),從而獲得更高的質(zhì)量和效率,任務(wù)劃分如圖2 所示.

        1.2 基于區(qū)域求和表的陰影圖預(yù)濾波

        利用區(qū)域求和表技術(shù)對(duì)陰影圖動(dòng)態(tài)濾波,得到深度值和深度值平方的期望,進(jìn)而計(jì)算相應(yīng)的均值和方差.再根據(jù)切比雪夫不等式得到像素點(diǎn)的陰影權(quán)值.實(shí)現(xiàn)時(shí)將接受體當(dāng)前點(diǎn)深度值與區(qū)域求和表求得的濾波區(qū)域均值進(jìn)行比較. 如果當(dāng)前點(diǎn)深度值小于區(qū)域均值,則當(dāng)前點(diǎn)不在陰影中,P=1;如果當(dāng)前點(diǎn)深度值大于區(qū)域均值,則利用切比雪夫不等式求出當(dāng)前點(diǎn)在陰影中的概率上限Pmax,以此來(lái)渲染陰影效果.

        圖2 基于GPGPU 的軟陰影映射算法流程Fig.2 Soft shadow mapping algorithm based on GPGPU

        對(duì)于具有元素a[i,j]的紋理可按公式(1)建立一個(gè)區(qū)域求和表t[i,j]:

        區(qū)域求和表中的每個(gè)元素為紋理中位于這個(gè)元素左側(cè)及上側(cè)所有元素之和,生成區(qū)域求和表后,就可以求得任意一個(gè)矩形濾波區(qū)域的和.通過(guò)對(duì)濾波區(qū)域的4 個(gè)角點(diǎn)進(jìn)行采樣求區(qū)域和值,再將區(qū)域和值除以區(qū)域面積,就可以得到濾波區(qū)域的均值. 如圖3 所示,左圖灰色部分代表濾波區(qū)域,采樣該區(qū)域的4 個(gè)角點(diǎn)A、B、C 和D,則該濾波區(qū)域的均值為(A-B-C+D)/4,即為4.5.

        圖3 區(qū)域求和表計(jì)算過(guò)程Fig.3 Summed area table calculation process

        1.3 基于泊松圓盤采樣的遮擋物查找

        在遮擋物查找過(guò)程中,需要多次采樣求遮擋物的平均遮擋深度.采樣數(shù)目越多,軟陰影的質(zhì)量越好,但是過(guò)多的采樣數(shù)會(huì)降低算法的性能.泊松圓盤采樣模式(poisson disk pattern)[8]就是目前非常好的一種圖像采樣方式. 通常采用擲標(biāo)法(dart throwing)來(lái)生成泊松圓盤序列,所有采樣點(diǎn)分布在半徑為1 的單位圓盤上,得到的所有采樣點(diǎn)之間的距離都大于一個(gè)最小距離(記為閾值),該閾值設(shè)置在0.05 ~1.0 最佳.在遮擋物查找過(guò)程中,將泊松圓盤采樣點(diǎn)與遮擋物查找區(qū)域半徑相乘作為紋理坐標(biāo)偏移量,再對(duì)處理后的紋理坐標(biāo)進(jìn)行采樣得到陰影圖中相應(yīng)紋理坐標(biāo)下的深度值.通過(guò)上述得到陰影圖中相應(yīng)坐標(biāo)下的深度值后與接受體當(dāng)前點(diǎn)的深度值進(jìn)行比較,從而計(jì)算遮擋物的平均遮擋深度.

        1.4 基于深度梯度法的自陰影處理

        為了處理自陰影現(xiàn)象,需要?jiǎng)討B(tài)計(jì)算深度偏移值.深度梯度法能夠有效地處理自陰影問(wèn)題,消除陰影粉刺或偏離現(xiàn)象. 對(duì)于給定的函數(shù)d(x,y),在位置(x,y)處的梯度矢量如公式(2).

        計(jì)算深度偏移值時(shí),必須把屏幕空間轉(zhuǎn)換到紋理空間,轉(zhuǎn)換如公式(3):

        其中,gradient 即為轉(zhuǎn)換到紋理空間的深度梯度;G[d(x,y)]是屏幕空間的深度梯度矢量;中間是紋理空間的雅克比矩陣.

        將深度梯度值與偏移量uv_offset 進(jìn)行點(diǎn)乘,就可以得到深度偏移值,從而計(jì)算最終的深度值,如公式(4):

        將該值與相應(yīng)紋理坐標(biāo)下采樣得到的深度值進(jìn)行比較,就可以有效消除陰影粉刺或偏離現(xiàn)象.

        2 基于GPGPU 的區(qū)域求和表生成

        2.1 區(qū)域求和表生成方法

        區(qū)域求和表生成有兩種方法:逐行方法(lineby-line)和回溯倍增方法(recursive doubling). 回溯倍增法[9-10]可以在GPU 端并行計(jì)算,算法中前綴求和是基于Hillils 和Steele 提出的掃描算法,對(duì)于一個(gè)二進(jìn)制運(yùn)算符⊕和一個(gè)n 元數(shù)組A ={a0,a1,…,an,進(jìn)行前綴求和得到的結(jié)果每個(gè)元素都是其所有前綴和其自身經(jīng)過(guò)⊕運(yùn)算得到的結(jié)果,記為B={a0,(a0⊕a1),……,(a0⊕a1⊕…an-1)}.

        2.2 區(qū)域求和表在GPU 上的實(shí)現(xiàn)

        (1)將生成的陰影圖分成大小相同的塊,每塊對(duì)應(yīng)GPGPU 的一個(gè)線程組,如圖4 所示. 筆者采用的GPU 是NVIDIA GeForce GT440,每個(gè)線程組包含的線程數(shù)限制在1 024 內(nèi). 對(duì)于高和寬分別為h 和w 的陰影圖,假設(shè)每個(gè)分塊大小為16*32 共512 個(gè)像素點(diǎn),則需要分成的線程組數(shù)為(w/16)* (h/32),如果分塊的尺寸不能被線程組的尺寸整除,則實(shí)際分配的線程組數(shù)應(yīng)該為(w/16 +1)* (h/32 +1)[11].

        圖4 陰影圖分塊Fig.4 Shadow map block

        (2)將陰影圖的每個(gè)分塊數(shù)據(jù)讀入線程組的共享存儲(chǔ)器中,使得線程組內(nèi)的所有線程可以同時(shí)讀取分塊數(shù)據(jù);利用線程對(duì)分塊的每一行進(jìn)行并行前綴求和運(yùn)算,并利用線程同步機(jī)制待所有線程執(zhí)行完畢后再將最終結(jié)果寫入類型為RWTexture2D 的全局存儲(chǔ)器中.

        (3)將前面計(jì)算得到的每個(gè)分塊結(jié)果的每行最后一個(gè)元素值即分塊總和,從全局存儲(chǔ)器讀到共享存儲(chǔ)器中,利用線程對(duì)這些分塊總和進(jìn)行并行前綴求和運(yùn)算.將對(duì)應(yīng)行分塊總和i 加到分塊i+1 的對(duì)應(yīng)行的所有值上,并將最終結(jié)果寫入全局存儲(chǔ)器中,就完成了陰影圖中所有行的前綴求和運(yùn)算.

        (4)對(duì)上一步的結(jié)果進(jìn)行轉(zhuǎn)置運(yùn)算,對(duì)轉(zhuǎn)置后的陰影圖數(shù)據(jù)重復(fù)上面三步,進(jìn)行所有列的運(yùn)算,再將最終結(jié)果進(jìn)行轉(zhuǎn)置便生成了區(qū)域求和表,如圖5 所示.

        3 基于GPGPU 的軟陰影算法實(shí)驗(yàn)結(jié)果分析

        3.1 PCSS 算法規(guī)則采樣效果

        軟陰影的渲染速率和陰影質(zhì)量與采樣模式以及采樣數(shù)等因素密切相關(guān). 圖6 所示為場(chǎng)景使用PCSS 算法在規(guī)則采樣模式下,分別利用25,49,81 個(gè)不同數(shù)目的采樣點(diǎn)對(duì)場(chǎng)景進(jìn)行陰影渲染的細(xì)節(jié)特寫,陰影圖大小為1 024* 1 024.

        當(dāng)采樣數(shù)為25 時(shí),陰影中有明顯的帶狀條紋,隨著采樣數(shù)目的增多,陰影效果越來(lái)越好.當(dāng)采樣數(shù)為81 時(shí),陰影邊緣已經(jīng)比較柔和.但是,隨著采樣數(shù)目的增多,算法的效率卻在降低,如表2所示.

        圖5 基于GPGPU 的區(qū)域求和表計(jì)算Fig.5 Summed area table calculation based on GPGPU

        圖6 不同采樣數(shù)陰影效果細(xì)節(jié)對(duì)比Fig.6 Detail contrast of different sampling number

        表2 PCSS 算法性能分析Tab.2 Performance analysis of PCSS algorithm

        3.2 改進(jìn)算法泊松圓盤采樣效果

        為解決陰影質(zhì)量與渲染效率的矛盾,使用泊松圓盤采樣代替規(guī)則采樣模式. 圖7 所示為在兩種不同采樣模式下的軟陰影渲染效果,遮擋物查找階段使用的采樣點(diǎn)數(shù)均為64.

        圖7(a)、(b)為PCSS 算法在規(guī)則采樣方式下渲染的軟陰影效果,過(guò)濾階段采樣數(shù)分別為64,361;圖7(c)圖為PCSS 算法在泊松圓盤采樣方式下渲染的軟陰影效果,過(guò)濾階段采樣數(shù)為64.從圖中可以看出,圖7(a)圖中軟陰影邊緣仍有部分帶狀走樣;(b)圖過(guò)濾階段使用較多的采樣點(diǎn),軟陰影邊緣較柔和;而(c)圖使用泊松圓盤采樣,過(guò)濾階段僅使用64 個(gè)采樣點(diǎn),得到的軟陰影與(b)的效果差不多,算法性能如表3 所示.

        圖7 不同采樣模式對(duì)軟陰影效果的影響Fig.7 Effect of the different sampling patterns

        表3 規(guī)則采樣與泊松圓盤采樣效果對(duì)比Tab.3 Comparison of two sampling methods

        3.3 改進(jìn)算法自陰影效果處理

        針對(duì)自陰影現(xiàn)象采用深度梯度法進(jìn)行處理,效果如圖8 所示. 在圖8(a)中出現(xiàn)了自陰影現(xiàn)象,如模型足部與陰影之間有縫隙,出現(xiàn)了陰影移位,這主要是由于常量深度偏移值選擇不當(dāng)造成的;而圖8(b)中,采用深度梯度法動(dòng)態(tài)計(jì)算偏移量,有效地消除了自陰影現(xiàn)象,軟陰影效果較好.

        圖8 自陰影現(xiàn)象的消除Fig.8 Elimination of self shadow

        3.4 改進(jìn)算法與原算法整體性能的對(duì)比

        PCSS 算法和本文算法渲染的效果比較如圖9 所示.從圖9 中可以看出,本文算法渲染的軟陰影邊緣柔和,效果更加清晰,完全滿足了軟陰影真實(shí)感渲染的需求.

        圖9 PCSS 算法與本文改進(jìn)算法渲染的軟陰影效果Fig.9 Rendering soft shadows of PCSS and improved algonthm

        改進(jìn)算法與原算法性能對(duì)比如表4 所示.

        表4 PCSS 算法與改進(jìn)算法性能對(duì)比Tab.4 Comparison of PCSS algorithm and improved algorithm

        4 結(jié)論

        鑒于陰影對(duì)增強(qiáng)三維場(chǎng)景真實(shí)感渲染的重要性,在PCSS 算法的基礎(chǔ)上提出一種改進(jìn)的軟陰影算法.利用深度梯度法得到動(dòng)態(tài)的深度偏移值消除陰影粉刺和偏離問(wèn)題;在過(guò)濾階段利用VSM算法代替PCF 算法,并結(jié)合區(qū)域求和表對(duì)陰影圖進(jìn)行預(yù)先濾波;利用GPU 通用計(jì)算的優(yōu)勢(shì)生成區(qū)域求和表算法,并和傳統(tǒng)的利用Direct3D 的像素著色器生成區(qū)域求和表算法進(jìn)行了對(duì)比. 結(jié)果表明,改進(jìn)后的軟陰影算法具有更好的陰影質(zhì)量和更高的性能,加速比是原PCSS 算法的3 倍以上,充分體現(xiàn)了本文算法的優(yōu)越性.

        [1] 唐滔.面向CPU-GPU 異構(gòu)并行系統(tǒng)的編程模型與編譯優(yōu)化關(guān)鍵技術(shù)研究[D]. 長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院,2012.

        [2] 韓博,周秉鋒. GPGPU 性能模型及應(yīng)用實(shí)例分析[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2009,21(9):1219 -1226.

        [3] TIM H. Real shadows,real time[R]. Iris:Iris Universe,1991:23 -31.

        [4] BAVOIL L,CALLAHAN STEVEN P,CLAUDIO T.et al.Robust soft shadow mapping with backprojection and depth peeling[J]. Journal of Graphics Tools,2008,13(1):19 -29.

        [5] APPEL A. Some techniques for shading machine renderings of solids[C]//AFIPS 1968 Spring Joint Computer Conf. San Francisco,California,1968,32:37 -45.

        [6] LIU Lu,XIAO Shuang-jiu.Real-time soft shadows for large-scale virtual environments[C]//2011 International Conference on Multinedia Technology (ICMT).Hangzhou,China:IEEE Press,2011:5464 -5467.

        [7] FERNANDO R.Percentage-closer soft shadows[C]//ACM SIGGRAPH 2005 Sketches and Applications.New York:ACM Press,2005:35

        [8] DUNBAR D,HUMPHREYS G.A spatial data structure for fast poisson-disk sample generation[J]. ACM Transactions on Graphics,2006,25(3):503 -508.

        [9] NEHAB D,MAXIMO A,RODOLFO LIMA,et al.GPU-efficient recursive filtering and summed-area tables[J]. ACM Transactions on Graphics,2011,30(6):1 -11.

        [10]FRANKLIN C C.Summed-area tables for texture mapping[C]//SIGGRAPH 1984:Proceedings of The 11th Annual Conference on Computer Graphics and Interactive Techniques.Minneapolis,Minnesota:ACM Press,1984:207 -202.

        [11]孫偉東,馬宗民.一種適合于GPU 計(jì)算的并行后綴數(shù)組構(gòu)造算法[J]. 小型微型計(jì)算機(jī)系統(tǒng),2011,32(5):830 -836.

        猜你喜歡
        泊松分塊圓盤
        基于泊松對(duì)相關(guān)的偽隨機(jī)數(shù)發(fā)生器的統(tǒng)計(jì)測(cè)試方法
        帶有雙臨界項(xiàng)的薛定諤-泊松系統(tǒng)非平凡解的存在性
        圓盤鋸刀頭的一種改進(jìn)工藝
        石材(2020年6期)2020-08-24 08:27:00
        分塊矩陣在線性代數(shù)中的應(yīng)用
        單位圓盤上全純映照模的精細(xì)Schwarz引理
        奇怪的大圓盤
        反三角分塊矩陣Drazin逆新的表示
        基于自適應(yīng)中值濾波的分塊壓縮感知人臉識(shí)別
        基于Profibus-DP的圓盤澆鑄控制系統(tǒng)的應(yīng)用
        泊松著色代數(shù)
        欧美拍拍视频免费大全| 久久国产精品超级碰碰热| 久久这黄色精品免费久| 国产亚洲一区二区三区| 中文字幕久久久人妻无码| 屁屁影院一区二区三区| av亚洲在线一区二区| 中文字幕中文字幕在线中二区 | 久久午夜羞羞影院免费观看| 免费人成无码大片在线观看| 99久久99久久精品免观看| 在线不卡精品免费视频| 亚洲国产精品久久久久秋霞小说| 夫妇交换刺激做爰视频| 亚洲VR永久无码一区| 亚洲乱码av一区二区蜜桃av | 一二三四在线观看免费视频| 亚洲日韩精品久久久久久| 久久精品国产亚洲av夜夜| 亚洲中文字幕无码爆乳app| 乱码精品一区二区三区| av无码特黄一级| 一区二区三区四区中文字幕av | 亚洲精品国产成人| 亚洲色www无码| 亚洲国产综合精品中久| 亚洲中文字幕乱码一二三| 日本真人做爰免费视频120秒| 美女胸又www又黄的网站| 日本一级淫片免费啪啪| 中文字幕在线乱码一区| 国产一区二区三精品久久久无广告| 亚洲黄色尤物视频| 国产一区在线视频不卡| 免费欧洲毛片a级视频老妇女| 国产av影片麻豆精品传媒| 成人精品国产亚洲av久久| 可以免费看亚洲av的网站| 成午夜精品一区二区三区| 亚洲乱码视频在线观看| 免费啪啪av人妻一区二区|