<sub id="n0hly"></sub>
<sub id="n0hly"></sub>

      <small id="n0hly"><progress id="n0hly"></progress></small>
    1. <address id="n0hly"></address>
      1. 加急見(jiàn)刊

        BVH加速結構在GPU上的加速效果

        來(lái)源:投稿網(wǎng) 時(shí)間:2024-01-05 10:00:08

        實(shí)現和比較加速結構。

        3.1均勻格柵。

        均勻網(wǎng)格是GPU上實(shí)現的第一個(gè)加速結構。Purcell給出了許多選擇均勻網(wǎng)格作為加速結構的原因,但Purcell并沒(méi)有詳細解釋為什么均勻網(wǎng)格比其他加速結構更容易實(shí)現硬件。在討論均勻網(wǎng)格的一些主要特性時(shí),我們更清楚地知道為什么均勻網(wǎng)格成為一個(gè)好的GPU速度結構。

        首先,只有使用簡(jiǎn)單的算術(shù)操作,每個(gè)元素的常規時(shí)間才能定位和訪(fǎng)問(wèn)。這消除了對樹(shù)木的常規需求和重復的紋理搜索工作,而紋理搜索相當耗時(shí)。

        其次,體素的遍歷是通過(guò)遞增算術(shù)操作完成的。這消除了對堆棧的需求,使我們有可能從光線(xiàn)的起點(diǎn)和距離增加的順序訪(fǎng)問(wèn)體素。

        其次,由于對體素的訪(fǎng)問(wèn)是沿著(zhù)光線(xiàn)通過(guò)距離增加的,一旦在被訪(fǎng)問(wèn)的體素中發(fā)現交叉點(diǎn),就可以停止光對體素的全過(guò)程,從而提高全過(guò)程的速度。

        最后,用于遍歷的代碼非常適合向量編寫(xiě),而向量形式的編碼風(fēng)格非常適合GPU指令集。

        然而,均勻格柵的缺點(diǎn)是它是空間細分結構的一種特殊情況,多個(gè)元素可能包含同一三角形的多個(gè)參考。由于不能使用mailbox技術(shù),這意味著(zhù)需要不止一次測試同一光線(xiàn)和三角形之間的交叉。

        3.2KD-treee。

        最近,Havran和其他人比較了基于CPU的光跟蹤算法的加速結構。結論是,對于許多不同類(lèi)型的測試場(chǎng)景,平均而言,KD-tree是最快的。因此,有必要檢查基于KD-tree的GPU光跟蹤算法是否會(huì )有類(lèi)似的結論。

        就像均勻網(wǎng)格一樣,KD-tree也是一種空間細分結構。與均勻網(wǎng)格不同,KD-tree使用二叉樹(shù)將場(chǎng)景表示為層次結構。

        在二叉樹(shù)中,我們將內部節點(diǎn)與葉片節點(diǎn)區分開(kāi)來(lái)。葉節點(diǎn)用于表示保存在體素中的體素和三角形引用。一個(gè)內部節點(diǎn)用于表示空間區域的某個(gè)部分。因此,內部節點(diǎn)包括一個(gè)分裂面的兩個(gè)子樹(shù)的引用,而葉節點(diǎn)只包含一個(gè)三角形列表。

        KD-tree的創(chuàng )建過(guò)程是從上到下的。根據評估函數,場(chǎng)景通過(guò)放置分離平面將遞歸分為兩個(gè)元素。我們可以通過(guò)遞歸的方式遍歷KD-tree,但由于GPU沒(méi)有堆棧結構,遞歸策略無(wú)法應用。相反,我們可以記住我們沿著(zhù)光線(xiàn)向上或向下穿越樹(shù)木的距離。該策略消除了堆棧的限制,使用CPU完成KD-tree結構的全過(guò)程成為可能。

        當使用GPU對KD-tree進(jìn)行遍歷時(shí),KD-tree被表示為像均勻格柵一樣的紋理集合。這意味著(zhù)有一種保存樹(shù)數據的紋理,一種保存三角形列表的紋理,以及保存實(shí)際三角形數據的紋理。GPU的遍歷首先調用初始核,然后根據需要多次調用合并后的遍歷并要求交付核。

        3.3包圍層(BVH)

        給出一些隨機光,通過(guò)計算包圍層的平均成本,可以測量包圍層的質(zhì)量。到目前為止,還沒(méi)有構建最佳的包圍層算法,也就是說(shuō),如何準確測量包圍層的平均包圍時(shí)間并不明顯。

        Goldsmith和Salmon提出了一個(gè)評價(jià)函數,通常稱(chēng)為表面積啟發(fā)函數。他們通過(guò)父節點(diǎn)和兒童節點(diǎn)的表面積之比來(lái)形式化這種關(guān)系,如下:

        在這里,hit(n)是光線(xiàn)擊中節點(diǎn)n的情況,Sn是節點(diǎn)n的表面積,c和p分別表示父子節點(diǎn)。

        這個(gè)評價(jià)函數給出了成本估計,當用隨機光線(xiàn)支付同級結構時(shí)。由于沒(méi)有最好的方法來(lái)有效地構建最好的BVH,因此提出了不同的結構技能。下面將列出更常見(jiàn)的方法。

        在實(shí)踐中,最廣泛應用于包圍體的是軸對齊包圍盒(AABB)。AABB容易實(shí)現,同光的求交測試非???。在描述BVH的創(chuàng )建時(shí),大多數關(guān)于BVH的論文通?;贙ay和Kajiya、Goldsmith和Salmon兩個(gè)基本想法。Kay和Kajiaya建議自上而下創(chuàng )建BVH。

        Goldsmith和Salmon提出了更復雜的自下而上的結構方法。Goldsmith和Salmon指出,BVH的質(zhì)量與三角形作為輸入傳人的順序有關(guān)。因此,他們建議在構建BVH之前隨機擾亂三角形的順序。以下算法是利用Kay/Kajiya的思想創(chuàng )建一個(gè)場(chǎng)景的包圍層次:

        本文成功地在GPU上實(shí)現了用于光跟蹤算法的各種加速結構,并比較了這些加速結構在GPU上的加速效果。作為CPU上第一個(gè)光跟蹤器的加速結構,也被證明是最慢的,除非它只包含一個(gè)單獨的物體場(chǎng)景。均勻網(wǎng)格不適用于幾何密度很高的場(chǎng)景。此外,對于均勻網(wǎng)格的CPU上的遍歷,還需要大量的數據。Foley和Sugerman認為,對于大多數場(chǎng)景,KD-tree的效率高于均勻網(wǎng)格。然而,在KD-tree的遍歷過(guò)程中,無(wú)論是重置階段還是回歸階段,片元程序都非常復雜,但這種復雜性也使其在改變場(chǎng)景幾何密度時(shí)能夠做出適當的調整。本文實(shí)現的BVH是最快的加速結構。BVH加速結構在GPU上比其他加速結構更容易實(shí)現。

        亚欧成人中文字幕一区-日韩影音先锋AV乱伦小说-成人精品久久一区二区-成人美女视频在线观看
        <sub id="n0hly"></sub>
        <sub id="n0hly"></sub>

          <small id="n0hly"><progress id="n0hly"></progress></small>
        1. <address id="n0hly"></address>