gpu光線跟蹤算法加速結(jié)構(gòu)研究

gpu光線跟蹤算法加速結(jié)構(gòu)研究

ID:22505692

大?。?2.50 KB

頁(yè)數(shù):5頁(yè)

時(shí)間:2018-10-29

gpu光線跟蹤算法加速結(jié)構(gòu)研究_第1頁(yè)
gpu光線跟蹤算法加速結(jié)構(gòu)研究_第2頁(yè)
gpu光線跟蹤算法加速結(jié)構(gòu)研究_第3頁(yè)
gpu光線跟蹤算法加速結(jié)構(gòu)研究_第4頁(yè)
gpu光線跟蹤算法加速結(jié)構(gòu)研究_第5頁(yè)
資源描述:

《gpu光線跟蹤算法加速結(jié)構(gòu)研究》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。

1、GPU光線跟蹤算法加速結(jié)構(gòu)研究:基于GPU的光線跟蹤算法是當(dāng)前圖形學(xué)研究的一個(gè)熱點(diǎn),也是將來(lái)用于廣告、電影、游戲等娛樂(lè)產(chǎn)業(yè)的關(guān)鍵技術(shù)。本文論述了如何對(duì)基于GPU的光線跟蹤算法進(jìn)行實(shí)現(xiàn),以及利用各種加速結(jié)構(gòu),加速算法實(shí)現(xiàn),提高算法執(zhí)行效率,并對(duì)各種加速結(jié)構(gòu)的效果進(jìn)行了比較研究。關(guān)鍵詞:GPGPU光線跟蹤BVHKD-Treedoi:10.3969/j.issn.1006-8554.2010.05.0051.引言近年來(lái),CPU無(wú)論在運(yùn)算能力,還是在可編程性上都得到了大幅的提高,GPU已經(jīng)在需要大量運(yùn)算的密集運(yùn)算領(lǐng)域發(fā)揮了舉足輕重的作用。各種基于CPU的

2、密集運(yùn)算被移植到GPU上,以利用GPU巨大的運(yùn)算能力,加速整個(gè)算法的運(yùn)算過(guò)程。光線跟蹤算法是生成真實(shí)感圖形的一種非常重要的方法,在電影、游戲、廣告等產(chǎn)業(yè),獲得廣泛的應(yīng)用,而光線跟蹤算法也是典型的密集運(yùn)算算法,利用原始的基于CPU的光線跟蹤渲染一幅圖片是非常耗時(shí)的操作。因此,如果能夠?qū)PU上的光線跟蹤算法,映射到CPU上,加速光線跟蹤算法的執(zhí)行時(shí)間,將會(huì)帶來(lái)巨大的經(jīng)濟(jì)效益。因此,基于CPU的光線跟蹤算法已成為國(guó)內(nèi)外科研人員的研究熱點(diǎn)。2.基于GPU的光線跟蹤2.1相關(guān)工作當(dāng)前,主要由兩種方法利用CPU來(lái)加速光線跟蹤算法。第一種是Carr等人提出來(lái)

3、的,將CPU轉(zhuǎn)換為一個(gè)蠻力的執(zhí)行光線一三角形求交的計(jì)算器,而將任何的光線生成以及著色過(guò)程在CPU上完成。這就需要CPU依然執(zhí)行絕大部分的渲染工作。Carr等人指出,在ATIRadeon8500上,每秒最快能夠執(zhí)行1億2千萬(wàn)次的光線一三角形求交。同時(shí),也指出,由于GPU的單精度浮點(diǎn)的限制,圖片上依然存在一些不太真實(shí)的地方。第二種方法由Purcell等人提出的,改種方法將整個(gè)光線跟蹤器都移植到CPU上進(jìn)行實(shí)現(xiàn)。從光線的產(chǎn)生,加速結(jié)構(gòu)的遍歷,到最后的著色過(guò)程都在GPU上執(zhí)行。此后,有很多相同的項(xiàng)目都是基于Purcell的模型上進(jìn)行的。2.2GPU上的光

4、線跟蹤算法的映射方式將傳統(tǒng)的CPU上執(zhí)行的光線跟蹤算法,映射成為一個(gè)GPU協(xié)助的,或者基于GPU的光線跟蹤器有眾多方法。下面重點(diǎn)介紹Purcell提出的映射模型,以及在本文的實(shí)現(xiàn)中提出的一個(gè)基于CPU的oller和Trumbore提出了一個(gè)高效的光線一三角形求交算法,使用這個(gè)算法,并利用CPU在向量計(jì)算上的優(yōu)勢(shì)來(lái)進(jìn)行求交計(jì)算。下面列出了求交的代碼,這個(gè)代碼也展示了如何利用向量指令來(lái)提高效率。當(dāng)所有的原始光線都已經(jīng)計(jì)算出了相交的狀態(tài)的時(shí)候,就能夠查詢著色過(guò)程所需要的表面法線和材質(zhì)的信息。每一個(gè)擊中記錄都存儲(chǔ)了一個(gè)指向材質(zhì)紋理的索引,這個(gè)材質(zhì)紋理包含

5、了三角形的法線,材質(zhì)顏色以及類型。三個(gè)頂點(diǎn)的法線根據(jù)擊中記錄的中心坐標(biāo)進(jìn)行了插值。最終的顏色能夠按(N-L)C進(jìn)行計(jì)算,此處Ⅳ是法線,L是光源的方向,G是三角形的顏色?,F(xiàn)在根據(jù)擊中的三角形所具有的材質(zhì)的類型(漫反射材質(zhì),或者鏡面反射材質(zhì)),需要產(chǎn)生二次光線,以此來(lái)計(jì)算陰影和反射。1)如果一條光線射出場(chǎng)景之外,像素就被賦予全局的背景顏色。2)如果一條光線擊中了一個(gè)漫反射材質(zhì)表面,就發(fā)射一條陰影射線(shdoailbox技術(shù),這就意味著需要對(duì)于相同的光線和三角形之間進(jìn)行不止一次的相交測(cè)試。3.2KD-tree最近,Havran等人對(duì)基于CPU的光線跟

6、蹤算法的加速結(jié)構(gòu)進(jìn)行了比較,得出的結(jié)論是對(duì)于眾多不同類型的測(cè)試場(chǎng)景,平均而言,KD-tree是最快的。所以,有必要考察一下對(duì)于基于KD-tree的GPU光線跟蹤算法,是否也會(huì)有相似的結(jié)論。就像均勻柵格一樣,KD-tree也是一種空間細(xì)分結(jié)構(gòu)。同均勻X格不同的是,KD-tree利用一個(gè)二叉樹(shù)將場(chǎng)景表示成一個(gè)層次結(jié)構(gòu)。在二叉樹(shù)中,我們將內(nèi)部節(jié)點(diǎn)和葉子節(jié)點(diǎn)區(qū)分開(kāi)。葉子節(jié)點(diǎn)用來(lái)表示體素和與之相關(guān)的保存在該體素內(nèi)的三角形的引用。一個(gè)內(nèi)部節(jié)點(diǎn)用來(lái)表示空間區(qū)域的某個(gè)部分。所以,內(nèi)部節(jié)點(diǎn)包含一個(gè)分裂面的兩個(gè)子樹(shù)的引用,而葉子節(jié)點(diǎn)只包含一個(gè)三角形列表。KD-tre

7、e的創(chuàng)建過(guò)程從上而下,根據(jù)一個(gè)評(píng)價(jià)函數(shù),通過(guò)放置一個(gè)分離平面,遞歸的將場(chǎng)景分離成兩個(gè)體素。我們能夠以遞歸的方式遍歷KD-tree,但是由于GPU沒(méi)有堆棧結(jié)構(gòu),所以無(wú)法應(yīng)用遞歸的策略。取而代之的是,我們能夠通過(guò)記住我們沿著光線前進(jìn)了多遠(yuǎn)來(lái)向上或者向下遍歷樹(shù)。這種策略消除了需要堆棧的限制,使得用CPU來(lái)完成對(duì)KD-tree結(jié)構(gòu)的遍歷成為可能。當(dāng)使用GPU對(duì)KD-tree進(jìn)行遍歷的時(shí)候,KD-tree像均勻柵格那樣被表示成一個(gè)紋理的集合。這就意味著有一個(gè)保存樹(shù)數(shù)據(jù)的紋理,一個(gè)保存三角形列表的紋理,和一個(gè)保存實(shí)際的三角形數(shù)據(jù)的紋理。GPU的遍歷首先調(diào)用一

8、個(gè)初始化內(nèi)核,然后按照需要,多次調(diào)用合并后的遍歷和求交內(nèi)核。3.3包圍體層次(BVH)給定一些隨機(jī)的光線,通過(guò)計(jì)算遍歷包圍體層次的平均花

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。