基于神威太湖之光的光路追蹤眾核加速方法
發(fā)布時間:2021-11-11 11:32
本文主要介紹了基于神威太湖之光異構(gòu)眾核架構(gòu)的光路追蹤加速方法,提出基于從核的光線與場景樹求交的加速方法以及在超大規(guī)模場景下采用全片共享模式的加速繪制方法,并提出三級并行的光路追蹤加速結(jié)構(gòu)。針對分布式場景下多節(jié)點并行繪制出現(xiàn)的陰影消失的問題對引擎架構(gòu)提出修改方案,并且在光路追蹤流程的著色過程中提出光源采樣光線遮擋判斷的加速優(yōu)化,以降低光路追蹤的計算時間,從而提高整體的繪制效率。光路追蹤流程中主要包含光線和場景求交運算和交點著色運算,二者占據(jù)了90%以上的時間?紤]到光路追蹤流程的特點,文章將求交和著色在流程中進(jìn)行分離,使得二者相互獨立又相互聯(lián)系。針對太湖之光眾核結(jié)構(gòu)提出了基于節(jié)點流和分布式光線求交兩種光線遍歷場景樹并與幾何基元相交計算的加速方法,并且對兩種加速方法進(jìn)行分析和對比,使得能夠充分利用從核的計算能力提高光線求交的效率,而且利用太湖之光的主從異步模式能夠?qū)⒁淮蟛糠智蠼蝗蝿?wù)隱匿起來從而得到更高效率的求交效率。對于超大規(guī)模場景繪制,為充分利用核組的計算資源,采取節(jié)點內(nèi)多核組并行的方式將計算任務(wù)進(jìn)一步劃分,并提出三級并行計算結(jié)構(gòu),進(jìn)而提高整體的繪制效率。針對分布式場景繪制過程出現(xiàn)的陰影...
【文章來源】:山東大學(xué)山東省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:65 頁
【學(xué)位級別】:碩士
【部分圖文】:
圖1-1光路追蹤7K意圖??
光線進(jìn)行跟蹤,直到滿足像素點的采樣數(shù)量。上述光路追蹤算法是最??初的迭代式光路追蹤算法,由最初的采樣光線開始層層迭代,最終計算出該光路??的積分值,進(jìn)而得到每一條光路源點的顏色值。??1.2.2?K-dimensional?tree?的構(gòu)建與遍歷??在分布式渲染引擎RWing中,采用KD樹加速結(jié)構(gòu)對場景進(jìn)行劃分。加速??結(jié)構(gòu)的構(gòu)建意義在于光線能夠?qū)鼍斑M(jìn)行有效的剔除,減少不必要的遍歷,提高??光線求交效率。建樹過程中會根據(jù)場景的具體分布來選取某一個維度對場景的邊??界框進(jìn)行劃分,如圖1-2所示,并且在節(jié)點中存儲劃分的維度和分割面,當(dāng)劃分??的空間中的三角形數(shù)量滿足閾值范圍,則不再繼續(xù)劃分,將三角面片的index范??圍存放在葉子節(jié)點中。因此,在KD樹內(nèi)部節(jié)點中,存儲的是劃分維度和劃分的??分割面數(shù)據(jù),而在葉子節(jié)點中存儲的是場景具體的三角形索引。對于三維空間,??共有三個維度,在構(gòu)建過程中,由于在樹的內(nèi)部節(jié)點中存儲了分割面的維度,因??此,對于每一次劃分實質(zhì)上是一次二分。??"〇?|?〇;|?I?0?M?O?;??□?口???A?D???A??D...?.*?A???M??圖1-2?KD樹劃分場景的構(gòu)建過程??光線首先與樹的邊界框進(jìn)行相交計算,如果未產(chǎn)生任何交點,則遍歷直接會??返回false,否則,確定其近交點與遠(yuǎn)交點,tmin和tmax,如圖1-3所示,在(a)??過程中,光線與KD樹邊界框相交得到了范圍,進(jìn)而進(jìn)入節(jié)點內(nèi)部考??慮其兩個子節(jié)點,以分割面tsplit將其劃分為左、右(或者Near和Far)兩個子??節(jié)點(圖(b)過程)。光線首先會進(jìn)入Near節(jié)點中,如果它是一個包含三角面片??的葉子節(jié)點,
?山東大學(xué)碩士學(xué)位論文???成一個自己的遍歷棧以滿足深度優(yōu)先遍歷的需求。??^max?/niax??Far?:?Near??(a)?(b)??/max?:?/imx?:??^sT?:?……??rs^N^??丨丨\、??(c)?(d)??圖1-3?KD樹的遍歷過程??1.2.3國內(nèi)外研宄現(xiàn)狀??眾所周知,光路追蹤最早是由Appe在1968年提出,其算法可簡單概括為,??從視點引出一條光線,找到該光線與場景中的交點,計算出反射光線并繼續(xù)跟蹤,??找到對該交點具有貢獻(xiàn)值的光源等。那么,光線如何高效的遍歷整個場景并快速??找到交點是近幾十年來的研究熱點。對于場景,研宄人員設(shè)計出許多層次數(shù)據(jù)加??速結(jié)構(gòu)(如邊界體層次結(jié)構(gòu)(BVH)和Kd樹等)用來加速光線遍歷的速率。??1、無棧遍歷方式??光線遍歷場景數(shù)據(jù)結(jié)構(gòu)通常使用維護(hù)遍歷棧以遞歸的方式進(jìn)行,但是,在高??度并行的體系結(jié)構(gòu)中,如果要并行處理多條光線(需要大量的使用內(nèi)存來存儲光??線),或者光線遍歷過程中需要掛起或恢復(fù)的情況下,必須保證每條光線具有完??整的遍歷棧,而這可能會出現(xiàn)一些問題。因此,在這種情況下,無棧遍歷開始被??研究。無棧遍歷算法可大致歸類為三種,一是重新遍歷,二是利用數(shù)據(jù)結(jié)構(gòu)的規(guī)??則隱式計算,三是在節(jié)點之間建立某種連接。??對于第一類方法,Foley和Sugerman[1]在kd樹的基礎(chǔ)上提出了兩種無找遍??歷算法:kd-restart和kd-backtrack,這兩種算法修改了標(biāo)準(zhǔn)的Kd樹遍歷,消除??了所有的棧操作。Kd-restart算法是跟蹤沿著光線上的點,該點標(biāo)記的是己經(jīng)遍??4??
本文編號:3488782
【文章來源】:山東大學(xué)山東省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:65 頁
【學(xué)位級別】:碩士
【部分圖文】:
圖1-1光路追蹤7K意圖??
光線進(jìn)行跟蹤,直到滿足像素點的采樣數(shù)量。上述光路追蹤算法是最??初的迭代式光路追蹤算法,由最初的采樣光線開始層層迭代,最終計算出該光路??的積分值,進(jìn)而得到每一條光路源點的顏色值。??1.2.2?K-dimensional?tree?的構(gòu)建與遍歷??在分布式渲染引擎RWing中,采用KD樹加速結(jié)構(gòu)對場景進(jìn)行劃分。加速??結(jié)構(gòu)的構(gòu)建意義在于光線能夠?qū)鼍斑M(jìn)行有效的剔除,減少不必要的遍歷,提高??光線求交效率。建樹過程中會根據(jù)場景的具體分布來選取某一個維度對場景的邊??界框進(jìn)行劃分,如圖1-2所示,并且在節(jié)點中存儲劃分的維度和分割面,當(dāng)劃分??的空間中的三角形數(shù)量滿足閾值范圍,則不再繼續(xù)劃分,將三角面片的index范??圍存放在葉子節(jié)點中。因此,在KD樹內(nèi)部節(jié)點中,存儲的是劃分維度和劃分的??分割面數(shù)據(jù),而在葉子節(jié)點中存儲的是場景具體的三角形索引。對于三維空間,??共有三個維度,在構(gòu)建過程中,由于在樹的內(nèi)部節(jié)點中存儲了分割面的維度,因??此,對于每一次劃分實質(zhì)上是一次二分。??"〇?|?〇;|?I?0?M?O?;??□?口???A?D???A??D...?.*?A???M??圖1-2?KD樹劃分場景的構(gòu)建過程??光線首先與樹的邊界框進(jìn)行相交計算,如果未產(chǎn)生任何交點,則遍歷直接會??返回false,否則,確定其近交點與遠(yuǎn)交點,tmin和tmax,如圖1-3所示,在(a)??過程中,光線與KD樹邊界框相交得到了范圍,進(jìn)而進(jìn)入節(jié)點內(nèi)部考??慮其兩個子節(jié)點,以分割面tsplit將其劃分為左、右(或者Near和Far)兩個子??節(jié)點(圖(b)過程)。光線首先會進(jìn)入Near節(jié)點中,如果它是一個包含三角面片??的葉子節(jié)點,
?山東大學(xué)碩士學(xué)位論文???成一個自己的遍歷棧以滿足深度優(yōu)先遍歷的需求。??^max?/niax??Far?:?Near??(a)?(b)??/max?:?/imx?:??^sT?:?……??rs^N^??丨丨\、??(c)?(d)??圖1-3?KD樹的遍歷過程??1.2.3國內(nèi)外研宄現(xiàn)狀??眾所周知,光路追蹤最早是由Appe在1968年提出,其算法可簡單概括為,??從視點引出一條光線,找到該光線與場景中的交點,計算出反射光線并繼續(xù)跟蹤,??找到對該交點具有貢獻(xiàn)值的光源等。那么,光線如何高效的遍歷整個場景并快速??找到交點是近幾十年來的研究熱點。對于場景,研宄人員設(shè)計出許多層次數(shù)據(jù)加??速結(jié)構(gòu)(如邊界體層次結(jié)構(gòu)(BVH)和Kd樹等)用來加速光線遍歷的速率。??1、無棧遍歷方式??光線遍歷場景數(shù)據(jù)結(jié)構(gòu)通常使用維護(hù)遍歷棧以遞歸的方式進(jìn)行,但是,在高??度并行的體系結(jié)構(gòu)中,如果要并行處理多條光線(需要大量的使用內(nèi)存來存儲光??線),或者光線遍歷過程中需要掛起或恢復(fù)的情況下,必須保證每條光線具有完??整的遍歷棧,而這可能會出現(xiàn)一些問題。因此,在這種情況下,無棧遍歷開始被??研究。無棧遍歷算法可大致歸類為三種,一是重新遍歷,二是利用數(shù)據(jù)結(jié)構(gòu)的規(guī)??則隱式計算,三是在節(jié)點之間建立某種連接。??對于第一類方法,Foley和Sugerman[1]在kd樹的基礎(chǔ)上提出了兩種無找遍??歷算法:kd-restart和kd-backtrack,這兩種算法修改了標(biāo)準(zhǔn)的Kd樹遍歷,消除??了所有的棧操作。Kd-restart算法是跟蹤沿著光線上的點,該點標(biāo)記的是己經(jīng)遍??4??
本文編號:3488782
本文鏈接:http://sikaile.net/shoufeilunwen/xixikjs/3488782.html
最近更新
教材專著