資源描述:
《gpu光線跟蹤算法加速結(jié)構(gòu)研究 》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、GPU光線跟蹤算法加速結(jié)構(gòu)研究摘要:基于GPU的光線跟蹤算法是當(dāng)前圖形學(xué)研究的一個(gè)暖門(mén),也是將來(lái)用于廣告、片子、游戲等娛樂(lè)工業(yè)的樞紐技術(shù)。本文論述了如何對(duì)基于GPU的光線跟蹤算法入行實(shí)現(xiàn),以及利用各種加速結(jié)構(gòu),加速算法實(shí)現(xiàn),入步算法執(zhí)行效率,并對(duì)各種加速結(jié)構(gòu)的效果入行了比較研究。樞紐詞:GPGPU光線跟蹤BVHKD-Tree本文于免費(fèi),提供精品范文計(jì)算機(jī)網(wǎng)路,計(jì)算機(jī)應(yīng)用論文。1.引言近年來(lái),CPU無(wú)論在運(yùn)算能力,仍是在可編程性上都得到了大幅的入步,GPU已經(jīng)在需要大量運(yùn)算的密集運(yùn)算領(lǐng)域施鋪了舉足輕重的作用。各種基于CPU的密集運(yùn)算被移植到GPU上,以利用G
2、PU巨大的運(yùn)算能力,加速整個(gè)算法的運(yùn)算過(guò)程。光線跟蹤算法是天生真實(shí)感圖形的一種非常重要的方法,在片子、游戲、廣告等工業(yè),獲得廣泛的應(yīng)用,而光線跟蹤算法也是典型的密集運(yùn)算算法,利用原始的基于CPU的光線跟蹤渲染一幅圖片長(zhǎng)短常耗時(shí)的操縱。因此,假如能夠?qū)PU上的光線跟蹤算法,映射到CPU上,加速光線跟蹤算法的執(zhí)行時(shí)間,將會(huì)帶來(lái)巨大的經(jīng)濟(jì)效益。因此,基于CPU的光線跟蹤算法已成為海內(nèi)外科研職員的研究暖門(mén)。2.基于GPU的光線跟蹤本文于免費(fèi),提供精品范文計(jì)算機(jī)網(wǎng)路,計(jì)算機(jī)應(yīng)用論文。2.1相關(guān)工作當(dāng)前,主要由兩種方法利用CPU來(lái)加速光線跟蹤算法。第一種是Carr等
3、人提出來(lái)的,將CPU轉(zhuǎn)換為一個(gè)蠻力的執(zhí)行光線一三角形求交的計(jì)算器,而將任何的光線天生以及著色過(guò)程在CPU上完成。這就需要CPU依然執(zhí)行盡大部門(mén)的渲染工作。Carr等人指出,在ATIRadeon8500上,每秒最快能夠執(zhí)行1億2千萬(wàn)次的光線一三角形求交。同時(shí),也指出,因?yàn)镚PU的單精度浮點(diǎn)的限制,圖片上依然存在一些不太真實(shí)的地方。第二種方法由Purcell等人提出的,改種方法將整個(gè)光線跟蹤器都移植到CPU長(zhǎng)入行實(shí)現(xiàn)。從光線的產(chǎn)生,加速結(jié)構(gòu)的遍歷,到最后的著色過(guò)程都在GPU上執(zhí)行。此后,有良多相同的項(xiàng)目都是基于Purcell的模型長(zhǎng)入行的。本文于免費(fèi),提供精品
4、范文計(jì)算機(jī)網(wǎng)路,計(jì)算機(jī)應(yīng)用論文。2.2GPU上的光線跟蹤算法的映射方式將傳統(tǒng)的CPU上執(zhí)行的光線跟蹤算法,映射成為一個(gè)GPU協(xié)助的,或者基于GPU的光線跟蹤器有眾多方法。下面重點(diǎn)先容Purcell提出的映射模型,以及在本文的實(shí)現(xiàn)中提出的一個(gè)基于CPU的aryray)。在一個(gè)GPU上,能夠使用光柵器的插值的能力,在一個(gè)單一的內(nèi)核調(diào)用中,產(chǎn)生所有的原始光線。本文于免費(fèi),提供精品范文計(jì)算機(jī)網(wǎng)路,計(jì)算機(jī)應(yīng)用論文。給定觀察矩形(被采樣用于產(chǎn)生圖片的投影平面的一部門(mén))的四個(gè)角,以及視點(diǎn),首先計(jì)算出這個(gè)視錐體的四條邊線。假如讓光柵器在這4條光線之間,按照512×512規(guī)
5、格,在這四條光線之間按照方向入行插值,終極就可以獲得能夠產(chǎn)生一幅512×512圖片(一個(gè)像素一個(gè)采樣點(diǎn))的所有原始光線的方向。同時(shí)能夠?qū)⑦@些方向存儲(chǔ)在一個(gè)紋理里,并把它作為求交內(nèi)核的輸進(jìn)。所有的原始光線具有相同的起始點(diǎn),但是仍舊把它存儲(chǔ)在一個(gè)同方向紋理具有相同維度的紋理內(nèi)。由于當(dāng)天生暗影光線或者反射光線的時(shí)候,光線的原點(diǎn)會(huì)發(fā)生改變。求交內(nèi)核把光線的原點(diǎn),方向,以及場(chǎng)景的描述作為輸進(jìn)數(shù)據(jù)。在內(nèi)核被調(diào)用數(shù)次之后,我們對(duì)于每一個(gè)像素輸出一個(gè)擊中記實(shí)。假如一條光線擊中了場(chǎng)景中的某個(gè)三角形,返歸擊中點(diǎn)的3個(gè)重心坐標(biāo),以及相關(guān)的被擊中的三角形。此外,還將輸出被發(fā)現(xiàn)的交
6、點(diǎn)沿光線的間隔,以及被擊中三角形的材質(zhì)。這就需要使用5個(gè)浮點(diǎn)數(shù)值組成一個(gè)擊中記實(shí)。紋理只能夠支持4個(gè)顏色通道(RCBA),所以,假如能把擊中記實(shí)裁減到4個(gè)值,那么將長(zhǎng)短常有益的。觀察發(fā)現(xiàn),只需要3個(gè)重心坐標(biāo)的兩個(gè),由于在三角形內(nèi)部,它們相加的和老是1。這就使得在一個(gè)單獨(dú)的RGBA紋理中存儲(chǔ)交點(diǎn)記實(shí)是可行的,并且它的維度同其它兩個(gè)光線紋理的維度相同。Moller和Trumbore提出了一個(gè)高效的光線一三角形求交算法,使用這個(gè)算法,并利用CPU在向量計(jì)算上的上風(fēng)來(lái)入行求交計(jì)算。下面列出了求交的代碼,這個(gè)代碼也鋪示了如何利用向量指令來(lái)入步效率。當(dāng)所有的原始光線都
7、已經(jīng)計(jì)算出了相交的狀態(tài)的時(shí)候,就能夠查詢著色過(guò)程所需要的表面法線和材質(zhì)的信息。每一個(gè)擊中記實(shí)都存儲(chǔ)了一個(gè)指向材質(zhì)紋理的索引,這個(gè)材質(zhì)紋理包含了三角形的法線,材質(zhì)顏色以及類(lèi)型。三個(gè)頂點(diǎn)的法線根據(jù)擊中記實(shí)的中央坐標(biāo)入行了插值。終極的顏色能夠按(N-L)C入行計(jì)算,此處Ⅳ是法線,L是光源的方向,G是三角形的顏色?,F(xiàn)在根據(jù)擊中的三角形所具有的材質(zhì)的類(lèi)型(漫反射材質(zhì),或者鏡面反射材質(zhì)),需要產(chǎn)生二次光線,以此來(lái)計(jì)算暗影和反射。1)假如一條光線射出場(chǎng)景之外,像素就被賦予全局的背景顏色。2)假如一條光線擊中了一個(gè)漫反射材質(zhì)表面,就發(fā)射一條暗暗射線(shdoailbox技
8、術(shù),這就意味著需要對(duì)于相同的光線和三角形之間入行不止一次的相交測(cè)試