用于使用并行管道的圖形處理的方法和設(shè)備的制作方法
【專(zhuān)利摘要】提供一種用于使用并行管道的圖形處理的方法和設(shè)備。用于射線(xiàn)跟蹤的設(shè)備和方法包括使用樹(shù)加速結(jié)構(gòu)(AS)的遍歷(TRV)單元。TRV單元可包括:多個(gè)子管道單元,被配置為執(zhí)行使用樹(shù)AS的射線(xiàn)TRV所需的不同操作,并被配置為并行操作。
【專(zhuān)利說(shuō)明】用于使用并行管道的圖形處理的方法和設(shè)備
[0001]本申請(qǐng)要求于2012年8月16日提交到韓國(guó)知識(shí)產(chǎn)權(quán)局的第10-2012-0089682號(hào)韓國(guó)專(zhuān)利申請(qǐng)的優(yōu)先權(quán),所述申請(qǐng)的公開(kāi)通過(guò)引用合并于此。
【技術(shù)領(lǐng)域】
[0002]在此公開(kāi)的示例實(shí)施例涉及用于圖形處理的方法和設(shè)備,更具體地說(shuō),涉及用于射線(xiàn)跟蹤的方法和設(shè)備。
【背景技術(shù)】
[0003]三維(3D)渲染是指用于處理從相機(jī)的給定視點(diǎn)觀看的圖像中的3D對(duì)象的數(shù)據(jù)的處理。
[0004]在渲染技術(shù)中,光柵化通過(guò)顯示場(chǎng)景中的3D對(duì)象來(lái)產(chǎn)生圖像。射線(xiàn)跟蹤通過(guò)跟蹤入射光的路徑來(lái)產(chǎn)生圖像,其中,從相機(jī)的視點(diǎn)將所述入射光的射線(xiàn)射向圖像的每個(gè)像素。
[0005]射線(xiàn)跟蹤具有使用光的物理性質(zhì)(諸如,反射、折射、投射等)產(chǎn)生高質(zhì)量圖像的優(yōu)點(diǎn)。然而,射線(xiàn)跟蹤具有由于大量的基本運(yùn)算而難以實(shí)現(xiàn)高速渲染方面的缺點(diǎn)。
[0006]加速結(jié)構(gòu)(AS)遍歷(TRV)和射線(xiàn)基元相交測(cè)試(1ST)是作為用于確定射線(xiàn)跟蹤的性能的主導(dǎo)因素的操作。AS TRV和射線(xiàn)基元1ST是對(duì)每個(gè)射線(xiàn)迭代執(zhí)行幾次到幾十次的操作。
[0007]AS基于空間分割。詳細(xì)地,AS是指通過(guò)在空間上對(duì)將被渲染的場(chǎng)景對(duì)象進(jìn)行分割而表示的數(shù)據(jù)結(jié)構(gòu),例如,網(wǎng)格、kd樹(shù)、包圍體層次(BVH)等。
[0008]AS TRV和射線(xiàn)基元1ST利用射線(xiàn)跟蹤中的基本運(yùn)算的70%或更多,并消耗射線(xiàn)跟蹤中的存儲(chǔ)帶寬的90%或更多。也就是說(shuō),AS TRV和射線(xiàn)基元1ST操作計(jì)算開(kāi)銷(xiāo)大,并且還消耗比較多的電量。為了實(shí)時(shí)實(shí)現(xiàn),使用專(zhuān)用硬件。
【發(fā)明內(nèi)容】
[0009]通過(guò)提供一種使用樹(shù)加速結(jié)構(gòu)(AS)的遍歷(TRV)單元可實(shí)現(xiàn)上述和/或其他方面,所述TRV單元包括:多個(gè)子管道單元,被配置為或適用于執(zhí)行使用樹(shù)AS的射線(xiàn)TRV所需的不同操作并可并行操作。
[0010]所述多個(gè)子管道單元可被配置為或適用于對(duì)不同射線(xiàn)并行執(zhí)行TRV。
[0011]所述多個(gè)子管道單元可包括:第一子管道單元,被配置為或適用于提取與被射線(xiàn)訪問(wèn)的樹(shù)AS的節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù);第二子管道單元,被配置為或適用于使用與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)和與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)來(lái)測(cè)試射線(xiàn)和節(jié)點(diǎn)的空間之間的相交;第三子管道單元,被配置為或適用于對(duì)與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)執(zhí)行堆棧操作。
[0012]所述TRV單元還可包括:高速緩存,被配置為或適用于將與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)提
供給第一子管道單元。
[0013]第一子管道單元、第二子管道單元和第三子管道單元中的至少一個(gè)可以是多個(gè)。
[0014]可基于TRV單元對(duì)射線(xiàn)執(zhí)行TRV所需的第一子管道單元、第二子管道單元和第三子管道單元的使用次數(shù),來(lái)確定第一子管道單元的數(shù)量、第二子管道單元的數(shù)量和第三子管道單元的數(shù)量。
[0015]所述TRV單元還可包括:第一交叉開(kāi)關(guān),被配置為或適用于將與輸入射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)分配給所述多個(gè)子管道單元中的與所述輸入射線(xiàn)的狀態(tài)相應(yīng)的子管道單元。
[0016]所述TRV單元還可包括多個(gè)輸入緩沖器。
[0017]所述多個(gè)輸入緩沖器可被配置為或適用于存儲(chǔ)被分配給所述多個(gè)子管道單元中的一個(gè)子管道單元的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。
[0018]所述TRV單元還可包括:第二交叉開(kāi)關(guān),被配置為或適用于基于射線(xiàn)的狀態(tài)將從所述多個(gè)子管道單元中的一個(gè)子管道單元輸出的與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)重新發(fā)送到所述一個(gè)子管道單元或著色(shading)單元或相交測(cè)試(1ST)單元。
[0019]所述TRV單元還可包括:第一輸出緩沖器,被配置為或適用于存儲(chǔ)從第二交叉開(kāi)關(guān)輸出并被發(fā)送到著色單元的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù);第二輸出緩沖器,被配置為或適用于存儲(chǔ)從第二交叉開(kāi)關(guān)輸出并被發(fā)送到1ST單元的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。
[0020]通過(guò)提供一種使用樹(shù)AS的圖像處理單元(GPU)可實(shí)現(xiàn)上述和/或其他方面,所述GPU包括至少一個(gè)TRV單元和至少一個(gè)1ST單元,所述至少一個(gè)1ST單元可被配置為或適用于使用樹(shù)AS測(cè)試場(chǎng)景對(duì)象和射線(xiàn)之間的相交,所述至少一個(gè)TRV單元可包括多個(gè)子管道單元,并且所述多個(gè)子管道單元可被配置為或適用于執(zhí)行使用樹(shù)AS的射線(xiàn)TRV所需的不同操作,并被配置為或適用于并行操作。
[0021]通過(guò)提供一種使用樹(shù)AS的TRV方法實(shí)現(xiàn)上述和/或其他方面,所述方法包括:通過(guò)第一子管道單元提取與被射線(xiàn)訪問(wèn)的樹(shù)AS的節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù);通過(guò)第二子管道單元使用與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)和與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)來(lái)測(cè)試射線(xiàn)和節(jié)點(diǎn)的空間之間的相交;通過(guò)第三子管道單元對(duì)與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)執(zhí)行堆棧操作,其中,所述提取、測(cè)試和執(zhí)行的步驟可對(duì)不同射線(xiàn)并行執(zhí)行TRV。
[0022]所述TRV方法還可包括:通過(guò)高速緩存將與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)提供給第一子管道單元。
[0023]第一子管道單元、第二子管道單元和第三子管道單元中的至少一個(gè)可以是多個(gè)。
[0024]可基于TRV單元對(duì)射線(xiàn)執(zhí)行TRV所需的第一子管道單元、第二子管道單元和第三子管道單元的使用次數(shù),來(lái)確定第一子管道單元的數(shù)量、第二子管道單元的數(shù)量和第三子管道單元的數(shù)量。
[0025]所述TRV方法還可包括:通過(guò)第一交叉開(kāi)關(guān)將與輸入射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)分配給所述多個(gè)子管道單元中的與所述輸入射線(xiàn)的狀態(tài)相應(yīng)的子管道單元。
[0026]所述TRV方法還可包括:通過(guò)第二交叉開(kāi)關(guān)基于射線(xiàn)的狀態(tài)將從第一子管道單元、第二子管道單元和第三子管道單元中的一個(gè)子管道單元輸出的與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)重新發(fā)送到所述一個(gè)子管道單元或著色單元或相交測(cè)試(1ST)單元。
[0027]所述TRV方法還可包括:通過(guò)第一輸出緩沖器存儲(chǔ)從第二交叉開(kāi)關(guān)輸出并被發(fā)送到著色單元的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù);通過(guò)第二輸出緩沖器存儲(chǔ)從第二交叉開(kāi)關(guān)輸出并被發(fā)送到1ST單元的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。
[0028]通過(guò)提供一種用于執(zhí)行射線(xiàn)跟蹤的射線(xiàn)跟蹤單元可實(shí)現(xiàn)上述和/或其他方面,所述射線(xiàn)跟蹤單元包括:多個(gè)遍歷單元,每個(gè)包括并行操作的多個(gè)子管道單元;多個(gè)相交測(cè)試單元,用于測(cè)試從所述多個(gè)遍歷單元中的至少一個(gè)輸出的射線(xiàn)和與樹(shù)加速結(jié)構(gòu)的葉節(jié)點(diǎn)相應(yīng)的場(chǎng)景對(duì)象之間的相交。
[0029]所述射線(xiàn)跟蹤單元還可包括:射線(xiàn)調(diào)度單元,用于將輸入的射線(xiàn)分配給至少一個(gè)遍歷單元;射線(xiàn)調(diào)節(jié)單元,用于通過(guò)控制射線(xiàn)數(shù)據(jù)流動(dòng)來(lái)調(diào)節(jié)所述多個(gè)遍歷單元和所述多個(gè)相交測(cè)試單元之間的射線(xiàn)傳輸;緩沖器,用于在至少一個(gè)遍歷單元完成遍歷時(shí),存儲(chǔ)至少一個(gè)射線(xiàn)。
[0030]所述射線(xiàn)跟蹤單元還可包括:射線(xiàn)產(chǎn)生單元,用于產(chǎn)生射線(xiàn)并將產(chǎn)生的射線(xiàn)的數(shù)據(jù)提供給射線(xiàn)調(diào)度單元;著色單元,用于從緩沖器接收跟蹤的射線(xiàn),并用于使用跟蹤的射線(xiàn)的數(shù)據(jù)來(lái)對(duì)跟蹤的射線(xiàn)進(jìn)行著色。
[0031]遍歷單元的高速緩存可從外部存儲(chǔ)器的第一高速緩存接收與射線(xiàn)跟蹤相關(guān)聯(lián)的樹(shù)加速結(jié)構(gòu)數(shù)據(jù),并且相交測(cè)試單元的高速緩存可從外部存儲(chǔ)器的第二高速緩存接收與射線(xiàn)跟蹤相關(guān)聯(lián)的幾何數(shù)據(jù)。
[0032]遍歷單元中的多個(gè)子管道單元中的每個(gè)可對(duì)不同射線(xiàn)并行執(zhí)行不同遍歷操作。例如,第一子管道單元可通過(guò)獲得與樹(shù)加速結(jié)構(gòu)中的被第一射線(xiàn)訪問(wèn)的節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù),來(lái)執(zhí)行第一遍歷操作;第二子管道單元可通過(guò)測(cè)試第二射線(xiàn)和與第二射線(xiàn)相應(yīng)的節(jié)點(diǎn)的空間之間的相交,來(lái)執(zhí)行第二遍歷操作;第三子管道單元可通過(guò)對(duì)和與第三射線(xiàn)相應(yīng)的節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)執(zhí)行堆棧操作,來(lái)執(zhí)行第三遍歷操作。第一子管道單元、第二子管道單元和第三子管道單元中的每個(gè)可同時(shí)執(zhí)行第一遍歷操作、第二遍歷操作和第三遍歷操作。
[0033]實(shí)施例的另外的方面將在以下的描述中部分地進(jìn)行闡述,并且從所述描述中部分將是顯然的,或可通過(guò)本公開(kāi)的實(shí)踐被了解。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0034]通過(guò)結(jié)合附圖對(duì)實(shí)施例進(jìn)行的以下描述,這些和/或其他方面將變得清楚和更容易理解,其中:
[0035]圖1示出射線(xiàn)跟蹤的示例;
[0036]圖2示出圖形處理單元(GPU)和與GPU相關(guān)的實(shí)體的示例;
[0037]圖3至圖6示出可能出現(xiàn)在使用單個(gè)管道(pipeline)的射線(xiàn)遍歷(TRV)中的問(wèn)題的示例;
[0038]圖3示出根據(jù)示例實(shí)施例的管道中的旁路的示例;
[0039]圖4示出根據(jù)示例實(shí)施例的管道中的旁路的示例;
[0040]圖5示出根據(jù)示例實(shí)施例的管道中的旁路的示例;
[0041]圖6示出根據(jù)示例實(shí)施例的管道中的旁路的示例;
[0042]圖7示出TRV單元的示例;
[0043]圖8示出包括多個(gè)第一子管道單元的TRV單元的示例;
[0044]圖9示出包括多個(gè)第二子管道單元的TRV單元的示例;
[0045]圖10示出射線(xiàn)TRV方法的示例;
[0046]圖11示出射線(xiàn)跟蹤方法的示例。
【具體實(shí)施方式】[0047]現(xiàn)在將詳細(xì)參照實(shí)施例,所述實(shí)施例的示例被示出在附圖中,其中,相同參考標(biāo)號(hào)始終指示相同元件。以下通過(guò)參照附圖描述實(shí)施例來(lái)解釋本公開(kāi)。
[0048]在此使用的術(shù)語(yǔ)“射線(xiàn)”可包括用于射線(xiàn)跟蹤的射線(xiàn)對(duì)象、表示射線(xiàn)的數(shù)據(jù)結(jié)構(gòu)、射線(xiàn)的信息以及與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù),并且這些術(shù)語(yǔ)可被交換使用。
[0049]描述中使用的術(shù)語(yǔ)“著色單元”也可被稱(chēng)為“著色器”。
[0050]圖1示出射線(xiàn)跟蹤的示例。
[0051]參照?qǐng)D1,加速結(jié)構(gòu)(AS)結(jié)構(gòu)110表示在電子裝置中構(gòu)造AS130的操作或處理。電子裝置可被實(shí)現(xiàn)為計(jì)算機(jī)、個(gè)人計(jì)算機(jī)、便攜式計(jì)算機(jī)、移動(dòng)裝置(諸如移動(dòng)電話(huà)、智能電話(huà)、個(gè)人媒體播放器、平板電腦等)。一般而言,電子裝置可以是能夠執(zhí)行根據(jù)在此公開(kāi)的示例實(shí)施例的射線(xiàn)跟蹤的任何裝置。電子裝置可包括用于執(zhí)行射線(xiàn)跟蹤的圖形處理單元(GPU)。AS結(jié)構(gòu)110可與射線(xiàn)跟蹤的預(yù)處理相應(yīng)。AS結(jié)構(gòu)110可用于產(chǎn)生表示三維(3D)空間的分層樹(shù)。用于射線(xiàn)跟蹤的3D空間可按分層樹(shù)的形式被創(chuàng)建。例如,3D空間可與場(chǎng)景相應(yīng)。
[0052]外部存儲(chǔ)器120可包括、存儲(chǔ)并提供AS130和幾何數(shù)據(jù)135。例如,可使用非易失性存儲(chǔ)器裝置(諸如只讀存儲(chǔ)器(ROM)、可編程只讀存儲(chǔ)器(PR0M)、可擦除可編程只讀存儲(chǔ)器(EPROM)或閃存)、易失性存儲(chǔ)器裝置(諸如隨機(jī)存取存儲(chǔ)器(RAM))或存儲(chǔ)介質(zhì)(諸如硬盤(pán)或光盤(pán))來(lái)實(shí)現(xiàn)外部存儲(chǔ)器。然而,本發(fā)明不限于此。另外,外部存儲(chǔ)器可通過(guò)有線(xiàn)或無(wú)線(xiàn)網(wǎng)絡(luò)提供AS 130和幾何數(shù)據(jù)135。
[0053]可由AS結(jié)構(gòu)110來(lái)產(chǎn)生AS130。AS130可與使用樹(shù)結(jié)構(gòu)的樹(shù)AS相應(yīng)。例如,AS130可包括kd樹(shù)和包圍體層次(BVH)。kd樹(shù)可指示一種空間劃分?jǐn)?shù)據(jù)結(jié)構(gòu)的類(lèi)型。BVH可指示一種幾何對(duì)象可被包圍在包圍體中的樹(shù)結(jié)構(gòu)的類(lèi)型。包圍體可具有不同形狀。AS130可包括網(wǎng)格。AS結(jié)構(gòu)110可用于按分層樹(shù)的形式來(lái)產(chǎn)生表示3D空間和3D空間的子部分的樹(shù)結(jié)構(gòu)。
[0054]AS130可與二進(jìn)制樹(shù)相應(yīng)。AS130可具有至少一個(gè)節(jié)點(diǎn)。AS130的所述至少一個(gè)節(jié)點(diǎn)可包括根節(jié)點(diǎn)、內(nèi)部節(jié)點(diǎn)和葉節(jié)點(diǎn)。節(jié)點(diǎn)的類(lèi)型可包括根節(jié)點(diǎn)、內(nèi)部節(jié)點(diǎn)和葉節(jié)點(diǎn)??蓪⒏?jié)點(diǎn)認(rèn)為是內(nèi)部節(jié)點(diǎn)。AS130的每個(gè)節(jié)點(diǎn)可表示一個(gè)空間。節(jié)點(diǎn)的空間可與整個(gè)空間的子部分相應(yīng)。節(jié)點(diǎn)的空間可包括兩個(gè)點(diǎn)的包圍盒(BB)以及軸對(duì)齊的包圍盒(AABB)。所述兩個(gè)點(diǎn)可與BB的六面體的對(duì)稱(chēng)點(diǎn)相應(yīng)。六面體的每個(gè)面可平行于X軸、y軸和z軸中的一個(gè)。例如,當(dāng)整個(gè)空間具有維(X,Y,Z)時(shí),AS130的根節(jié)點(diǎn)的空間可包括點(diǎn)(0,O, O)和點(diǎn)(X,Y,Z)。
[0055]根節(jié)點(diǎn)的子節(jié)點(diǎn)或內(nèi)部節(jié)點(diǎn)的子節(jié)點(diǎn)可與父節(jié)點(diǎn)的空間的子部分相應(yīng)。子部分可與沿X軸、y軸或z軸的空間的部分相應(yīng)。例如,根節(jié)點(diǎn)可具有可相對(duì)于根節(jié)點(diǎn)的空間中的X軸上的點(diǎn)而被區(qū)分的左子節(jié)點(diǎn)和右子節(jié)點(diǎn)??臻g可被劃分為子部分。當(dāng)根節(jié)點(diǎn)的空間相對(duì)于X軸上的點(diǎn)χ0被劃分時(shí),左子節(jié)點(diǎn)的空間可包括點(diǎn)(0,0,O)和點(diǎn)(X(l,Y,Z),并且右子節(jié)點(diǎn)的空間可包括點(diǎn)(χο,Y,Ζ)和點(diǎn)(X,Y,Ζ)。
[0056]可基于節(jié)點(diǎn)的等級(jí)來(lái)劃分節(jié)點(diǎn)的空間。例如,3η+2等級(jí)的子節(jié)點(diǎn)可與相對(duì)于χ軸上的點(diǎn)的3η+1等級(jí)的父節(jié)點(diǎn)的空間的子部分相應(yīng)。3η+3等級(jí)的子節(jié)點(diǎn)可與相對(duì)于y軸上的點(diǎn)的3n+2等級(jí)的父節(jié)點(diǎn)的空間的子部分相應(yīng)。3n+4等級(jí)的子節(jié)點(diǎn)可與相對(duì)于ζ軸上的點(diǎn)的3η+3等級(jí)的父節(jié)點(diǎn)的空間的子部分相應(yīng)。這里,“η”可指示整數(shù)“O”或大于“O”的整數(shù),并且根節(jié)點(diǎn)可與第一等級(jí)的節(jié)點(diǎn)相應(yīng)。
[0057]例如,幾何數(shù)據(jù)135可與3D空間中的場(chǎng)景對(duì)象的數(shù)據(jù)相應(yīng)。在此示例中,場(chǎng)景對(duì)象中的基元可處于三角形形狀,并且場(chǎng)景對(duì)象可按三角形形狀來(lái)構(gòu)造。然而,基元可處于其他幾何形狀或多邊形形狀,例如,平面、球面、圓錐、圓柱、圓環(huán)、圓盤(pán)等。為了便于討論,這里公開(kāi)的示例實(shí)施例可指示處于三角形形狀的基元,注意基元可采用其他形狀。
[0058]射線(xiàn)跟蹤器140可執(zhí)行包括射線(xiàn)產(chǎn)生150、相交測(cè)試(ISO160和著色165的操作。
[0059]在射線(xiàn)產(chǎn)生150的操作中,可產(chǎn)生從參考視點(diǎn)射向3D空間的射線(xiàn)。所述射線(xiàn)可從參考視點(diǎn)射向2D屏幕中的預(yù)定像素。
[0060]可對(duì)2D屏幕中的每個(gè)像素迭代地執(zhí)行射線(xiàn)產(chǎn)生150。虛擬射線(xiàn)可從原點(diǎn)射向2D屏幕中的每個(gè)像素。
[0061]在AS遍歷(TRV) 155的操作中,可使用AS130跟蹤射線(xiàn)的路徑。AS TRV155可指示射線(xiàn)經(jīng)過(guò)的AS130的樹(shù)中的每個(gè)節(jié)點(diǎn)的遍歷。這里,射線(xiàn)經(jīng)過(guò)節(jié)點(diǎn)可指示射線(xiàn)經(jīng)過(guò)節(jié)點(diǎn)的空間。
[0062]在AS TRV155的迭代中,可到達(dá)AS130的葉節(jié)點(diǎn)。當(dāng)?shù)竭_(dá)AS130的葉節(jié)點(diǎn)時(shí),可指定與到達(dá)的葉節(jié)點(diǎn)相應(yīng)的至少一個(gè)場(chǎng)景對(duì)象。這里,與葉節(jié)點(diǎn)相應(yīng)的場(chǎng)景對(duì)象可指示位于葉節(jié)點(diǎn)的空間中的場(chǎng)景對(duì)象。與葉節(jié)點(diǎn)相應(yīng)的場(chǎng)景對(duì)象可指示在場(chǎng)景的所有場(chǎng)景對(duì)象中的呈現(xiàn)在葉節(jié)點(diǎn)的空間中的場(chǎng)景對(duì)象的全部或部分。葉節(jié)點(diǎn)的數(shù)據(jù)可包括與葉節(jié)點(diǎn)相應(yīng)的場(chǎng)景對(duì)象的數(shù)據(jù)或三角形的數(shù)據(jù)。葉節(jié)點(diǎn)可包括與葉節(jié)點(diǎn)相應(yīng)的場(chǎng)景對(duì)象或基元(例如,三角形)。葉節(jié)點(diǎn)可指示與葉節(jié)點(diǎn)相應(yīng)的場(chǎng)景對(duì)象或三角形。
[0063]如以下所述,AS TRV155可由包括多個(gè)子管道單元的射線(xiàn)TRV單元來(lái)執(zhí)行。射線(xiàn)TRV單元可以是縮短的TRV單元。
[0064]IST160可對(duì)多個(gè)預(yù)定場(chǎng)景對(duì)象執(zhí)行相交測(cè)試。
[0065]如以下所述,ISTl60可由1ST單元來(lái)執(zhí)行。
[0066]在著色165的操作中,可基于與射線(xiàn)相交的可見(jiàn)場(chǎng)景對(duì)象的顏色來(lái)計(jì)算射線(xiàn)所射向的2D屏幕中的預(yù)定像素的顏色。
[0067]可通過(guò)確定2D屏幕中的像素的顏色來(lái)產(chǎn)生渲染的圖像。
[0068]圖2示出圖形處理單元(GPU)和與GPU相關(guān)的實(shí)體的示例。
[0069]參照?qǐng)D2,示出了用于執(zhí)行射線(xiàn)跟蹤的渲染硬件或GPU的結(jié)構(gòu)。
[0070]在圖2中,提供了射線(xiàn)產(chǎn)生單元210、射線(xiàn)跟蹤單元220、第一高速緩存282、第二高速緩存284、總線(xiàn)286、外部存儲(chǔ)器288和著色單元290。射線(xiàn)產(chǎn)生單元210、第一高速緩存282、第二高速緩存284和著色單元290可以是GPU的組件。GPU可包括射線(xiàn)產(chǎn)生單元210、第一高速緩存282、第二高速緩存284和著色單元290。
[0071]GPU或射線(xiàn)跟蹤單元220可與圖1的射線(xiàn)跟蹤器140相應(yīng)。外部存儲(chǔ)器288可與圖1的外部存儲(chǔ)器120相應(yīng)。射線(xiàn)產(chǎn)生單元210可執(zhí)行射線(xiàn)產(chǎn)生150。著色單元290可執(zhí)行著色165。盡管此示例實(shí)施例示出射線(xiàn)產(chǎn)生單元210和著色單元290與射線(xiàn)跟蹤單元220分離,但是射線(xiàn)產(chǎn)生單元210和著色單元290可被包括在射線(xiàn)跟蹤單元220中。射線(xiàn)產(chǎn)生單元210可產(chǎn)生射線(xiàn)。射線(xiàn)產(chǎn)生單元210可將產(chǎn)生的射線(xiàn)的數(shù)據(jù)提供給射線(xiàn)跟蹤單元220。射線(xiàn)產(chǎn)生單元210可表示用于將射線(xiàn)的數(shù)據(jù)提供給射線(xiàn)跟蹤單元220的操作或?qū)嶓w。
[0072]射線(xiàn)跟蹤單元220可跟蹤射線(xiàn)。射線(xiàn)跟蹤單元220可將跟蹤的射線(xiàn)的數(shù)據(jù)提供給著色單元290。
[0073]著色單元290可基于跟蹤的射線(xiàn)的數(shù)據(jù)來(lái)對(duì)跟蹤的射線(xiàn)進(jìn)行著色。著色單元290可表示用于對(duì)跟蹤的射線(xiàn)進(jìn)行著色的操作或?qū)嶓w。著色可與通過(guò)計(jì)算關(guān)于2D屏幕中的每個(gè)像素的射線(xiàn)跟蹤結(jié)果的總和來(lái)確定像素的最終顏色相應(yīng)。
[0074]第一高速緩存282和第二高速緩存284可實(shí)現(xiàn)對(duì)于射線(xiàn)跟蹤所需的數(shù)據(jù)的存儲(chǔ)或高速緩存。射線(xiàn)跟蹤所需的數(shù)據(jù)可被存儲(chǔ)在外部存儲(chǔ)器288中。第一高速緩存282和第二高速緩存284可實(shí)現(xiàn)被存儲(chǔ)在外部存儲(chǔ)器288中的數(shù)據(jù)的一部分的存儲(chǔ)或高速緩存??赏ㄟ^(guò)總線(xiàn)286在第一高速緩存282和外部存儲(chǔ)器288之間以及在第二高速緩存284和外部存儲(chǔ)器288之間傳輸與射線(xiàn)跟蹤相關(guān)聯(lián)的數(shù)據(jù)。也就是說(shuō),在第一高速緩存282和外部存儲(chǔ)器288之間以及在第二高速緩存284和外部存儲(chǔ)器288之間可存在有線(xiàn)連接。存儲(chǔ)在第一高速緩存282中的數(shù)據(jù)可與AS130的一部分相應(yīng),并且存儲(chǔ)在第二高速緩存284中的數(shù)據(jù)可與幾何數(shù)據(jù)135的一部分相應(yīng)。
[0075]第一高速緩存282可將對(duì)于射線(xiàn)跟蹤所需的數(shù)據(jù)提供給將在以下描述的TRV單元的高速緩存,并且第二高速緩存284可將對(duì)于1ST所需的數(shù)據(jù)提供給將在以下描述的1ST單元的高速緩存。因此,TRV單元的高速緩存和1ST單元的高速緩存可與等級(jí)-1(Ievel-1)高速緩存相應(yīng),并且第一高速緩存282和第二高速緩存284可與等級(jí)-2 (level-2)高速緩存相應(yīng)。
[0076]以下將提供射線(xiàn)跟蹤單元220的詳細(xì)描述。
[0077]射線(xiàn)跟蹤單元220可包括第一緩沖器230、TRV單元240-1至240-3中的至少一個(gè)、第二緩沖器250、1ST單元260-1至260-3中的至少一個(gè)以及第三緩沖器270。
[0078]至少一個(gè)TRV單元可包括第一 TRV單元240-1、第二 TRV單元240-2和第n TRV單元240-3。這里,“η”可表示整數(shù)“I”或大于“I”的整數(shù)。至少一個(gè)1ST單元可包括第一1ST單元260-1、第二 1ST單元260-2和第m 1ST單元260-3。這里,“m”可表示整數(shù)“I”或大于“I”的整數(shù)。
[0079]在圖2中,射線(xiàn)跟蹤單元220可通過(guò)從AS130的根節(jié)點(diǎn)至子類(lèi)節(jié)點(diǎn)的分層TRV找到被射線(xiàn)訪問(wèn)的第一葉節(jié)點(diǎn)。當(dāng)通過(guò)TRV找到被訪問(wèn)的葉節(jié)點(diǎn)時(shí),射線(xiàn)跟蹤單元220可測(cè)試在射線(xiàn)和與所述葉節(jié)點(diǎn)相應(yīng)的場(chǎng)景對(duì)象或三角形之間的相交。這里,與葉節(jié)點(diǎn)相應(yīng)的場(chǎng)景對(duì)象或三角形可以是多個(gè)。當(dāng)在被訪問(wèn)的葉節(jié)點(diǎn)中不存在與射線(xiàn)相交的三角形時(shí),射線(xiàn)跟蹤單元220可在樹(shù)上繼續(xù)TRV以找到與射線(xiàn)相交的基元。也就是說(shuō),如果射線(xiàn)沒(méi)有與三角形相交,則射線(xiàn)跟蹤單元220可在樹(shù)的另一部分繼續(xù)TRV,以確定基元(例如,場(chǎng)景對(duì)象或三角形)是否與射線(xiàn)相交。TRV和1ST可分別由TRV單元和1ST單元執(zhí)行。所述至少一個(gè)1ST單元可使用樹(shù)AS測(cè)試場(chǎng)景對(duì)象和射線(xiàn)之間的相交。
[0080]由于射線(xiàn)TRV的特性,需要大量的基本運(yùn)算和高存儲(chǔ)帶寬。這是通過(guò)每次訪問(wèn)或1ST,提取由基本運(yùn)算遵循的與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)和與場(chǎng)景對(duì)象或三角形相關(guān)聯(lián)的數(shù)據(jù)而引起的。因此,TRV單元和1ST單元可分別具有用于TRV和1ST的高速緩存。當(dāng)在高速緩存中不存在與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)、與場(chǎng)景對(duì)象相關(guān)聯(lián)的數(shù)據(jù)或與基元相關(guān)聯(lián)的數(shù)據(jù)時(shí),在從外部存儲(chǔ)器288提取數(shù)據(jù)時(shí)會(huì)出現(xiàn)長(zhǎng)延遲,并且射線(xiàn)跟蹤性能會(huì)下降。
[0081]第一緩沖器230可控制射線(xiàn)產(chǎn)生單元210與多個(gè)TRV單元之間的射線(xiàn)傳輸。第一緩沖器230可存儲(chǔ)輸入到射線(xiàn)跟蹤單元220中的輸入射線(xiàn),并可將輸入射線(xiàn)分配給所述至少一個(gè)TRV單元中的一個(gè)TRV單元。所述輸入射線(xiàn)可包括至少一個(gè)射線(xiàn)??砂催B續(xù)順序?qū)⒅辽僖粋€(gè)輸入射線(xiàn)輸入到射線(xiàn)跟蹤單元220中。第一緩沖器230可被命名為或被稱(chēng)為射線(xiàn)
調(diào)度單元。
[0082]第一緩沖器230可基于所述至少一個(gè)TRV單元的輸入緩沖器的可用性將輸入射線(xiàn)分配給所述至少一個(gè)TRV單元中的一個(gè)TRV單元。
[0083]被輸入到所述至少一個(gè)TRV單元中的一個(gè)TRV單元中的射線(xiàn)可包括由射線(xiàn)產(chǎn)生單元210產(chǎn)生的射線(xiàn)、正在遍歷或已經(jīng)遍歷了一個(gè)TRV單元的射線(xiàn)、以及由1ST單元對(duì)相交進(jìn)行了測(cè)試的射線(xiàn)。從所述至少一個(gè)TRV單元中的一個(gè)TRV單元輸出的射線(xiàn)可被重新輸入到相應(yīng)的TRV單元中,并且可被輸入到通過(guò)第二緩沖器250在所述至少一個(gè)1ST單元中選擇的1ST單元中以及著色單元290中。
[0084]第三緩沖器270可存儲(chǔ)將被輸出到著色單元290的射線(xiàn)。存儲(chǔ)在第三緩沖器270中的射線(xiàn)可包括至少一個(gè)射線(xiàn)。當(dāng)TRV完成時(shí),可從TRV單元將與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)發(fā)送到著色單元290。
[0085]在第三緩沖器270中的射線(xiàn)可等待被輸出到著色單元290。也就是說(shuō),可將多個(gè)射線(xiàn)輸出到第三緩沖器270,并且當(dāng)TRV完成時(shí),可將與所述多個(gè)射線(xiàn)相關(guān)的數(shù)據(jù)輸出到著色單元290。
[0086]第二緩沖器250可在所述至少一個(gè)TRV單元和所述至少一個(gè)1ST單元之間調(diào)節(jié)射線(xiàn)傳輸。當(dāng)射線(xiàn)到達(dá)葉節(jié)點(diǎn)時(shí),可執(zhí)行針對(duì)射線(xiàn)的1ST。因此,射線(xiàn)可從TRV單元輸出,并可通過(guò)第二緩沖器250輸入到1ST單元。第二緩沖器250可控制所述至少一個(gè)TRV單元與所述至少一個(gè)1ST單元之間的射線(xiàn)數(shù)據(jù)流動(dòng)。第二緩沖器250可被命名為或被稱(chēng)為射線(xiàn)調(diào)節(jié)單元。
[0087]射線(xiàn)可經(jīng)過(guò)至少一個(gè)空間。因此,在針對(duì)射線(xiàn)的1ST完成后,針對(duì)射線(xiàn)的TRV可繼續(xù)。從所述至少一個(gè)1ST單元中的一個(gè)1ST單元輸出的射線(xiàn)可被輸入到所述至少一個(gè)TRV單元中的一個(gè)TRV單元。這里,輸入了射線(xiàn)的TRV單元可與已經(jīng)針對(duì)所述射線(xiàn)執(zhí)行了 TRV的TRV單元相應(yīng)。
[0088]圖3至圖6示出可能出現(xiàn)在使用單個(gè)管道的射線(xiàn)TRV中的問(wèn)題的示例。
[0089]如前面所述,TRV單元可引導(dǎo)AS130的樹(shù)的分層TRV。用于樹(shù)的分層TRV可包括:提取節(jié)點(diǎn)數(shù)據(jù)并訪問(wèn)左子節(jié)點(diǎn),訪問(wèn)右子節(jié)點(diǎn)并執(zhí)行堆棧的彈出(pop)操作,提取節(jié)點(diǎn)數(shù)據(jù),訪問(wèn)葉節(jié)點(diǎn),并輸出到1ST單元;輸出從1ST單元輸入到著色單元的與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。這里,提取節(jié)點(diǎn)數(shù)據(jù)可與從高速緩存提取節(jié)點(diǎn)數(shù)據(jù)相應(yīng)。節(jié)點(diǎn)數(shù)據(jù)可與和節(jié)點(diǎn)的空間相關(guān)聯(lián)的數(shù)據(jù)相應(yīng)。與空間相關(guān)聯(lián)的數(shù)據(jù)可包括BB和AABB。
[0090]為了提高吞吐量,TRV單元可使用管道執(zhí)行射線(xiàn)TRV。新的射線(xiàn)可被輸入到TRV單元的輸入緩沖器中。為了連續(xù)地訪問(wèn)樹(shù)中的每個(gè)節(jié)點(diǎn),與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)可通過(guò)TRV單元的輸出緩沖器被重新輸入到TRV單元的輸入緩沖器中。管道可具有多種狀態(tài)。
[0091]例如,管道可具有第一狀態(tài)、第二狀態(tài)和第三狀態(tài)。第一狀態(tài)可指示從高速緩存提取與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)的狀態(tài)。第一狀態(tài)可指示執(zhí)行關(guān)于節(jié)點(diǎn)是葉節(jié)點(diǎn)還是內(nèi)部節(jié)點(diǎn)的確定的狀態(tài)。第二狀態(tài)可指示使用與射線(xiàn)和節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)來(lái)測(cè)試射線(xiàn)和節(jié)點(diǎn)的空間之間的相交的狀態(tài)。這里,針對(duì)相交的測(cè)試可與測(cè)試射線(xiàn)是否經(jīng)過(guò)節(jié)點(diǎn)的空間相應(yīng)。第三狀態(tài)可指示針對(duì)與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)的堆棧操作被執(zhí)行的狀態(tài)。針對(duì)與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)的堆棧操作可包括將與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)推入到堆棧上的推入操作以及將與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)從堆棧彈出的彈出操作。處于第三狀態(tài)的節(jié)點(diǎn)可與TRV單元接下來(lái)將訪問(wèn)的節(jié)點(diǎn)相應(yīng)。
[0092]在樹(shù)的分層TRV中,狀態(tài)之間的轉(zhuǎn)換可以是不確定的。例如,管道的狀態(tài)轉(zhuǎn)換可以是非連續(xù)的。管道的狀態(tài)轉(zhuǎn)換可基于訪問(wèn)的節(jié)點(diǎn)的類(lèi)型、1ST結(jié)果和管道的當(dāng)前狀態(tài)中的至少一個(gè)對(duì)不同的運(yùn)行展現(xiàn)不同的行為。
[0093]由于不確定的轉(zhuǎn)換,射線(xiàn)TRV可能在管道的一部分失敗,并且旁路可被實(shí)現(xiàn)在管道中。以下將提供被實(shí)現(xiàn)的旁路的進(jìn)一步的描述。
[0094]圖3示出根據(jù)示例實(shí)施例的管道中的旁路的示例。
[0095]在圖3中,粗箭頭指示射線(xiàn)數(shù)據(jù)移動(dòng),并且虛線(xiàn)箭頭指示射線(xiàn)數(shù)據(jù)旁路。
[0096]輸入到TRV單元300中的射線(xiàn)數(shù)據(jù)可通過(guò)輸入緩沖器310被輸入到管道320中。
[0097]管道320可包括多個(gè)子管道。管道320可包括第一子管道322、第二子管道324和第三子管道326。第一子管道322、第二子管道324和第三子管道326可分別與前面所述的第一狀態(tài)、第二狀態(tài)和第三狀態(tài)相應(yīng)。第一子管道322可與當(dāng)管道320處于第一狀態(tài)時(shí)操作的部分相應(yīng)。第二子管道324可與當(dāng)管道320處于第二狀態(tài)時(shí)操作的部分相應(yīng)。第三子管道326可與當(dāng)管道320處于第三狀態(tài)時(shí)操作的部分相應(yīng)。
[0098]第一子管道322可從高速緩存提取節(jié)點(diǎn)數(shù)據(jù),并可確定節(jié)點(diǎn)是葉節(jié)點(diǎn)還是內(nèi)部節(jié)點(diǎn)。第二子管道324可使用射線(xiàn)數(shù)據(jù)和節(jié)點(diǎn)數(shù)據(jù)來(lái)測(cè)試射線(xiàn)和節(jié)點(diǎn)的空間之間的相交。第三子管道326可執(zhí)行節(jié)點(diǎn)數(shù)據(jù)的堆棧操作。
[0099]第一子管道322和第二子管道324可執(zhí)行對(duì)射線(xiàn)或射線(xiàn)數(shù)據(jù)的操作,并且第三子管道326可對(duì)射線(xiàn)或射線(xiàn)數(shù)據(jù)進(jìn)行旁路。
[0100]參照?qǐng)D3,可執(zhí)行提取節(jié)點(diǎn)數(shù)據(jù)并訪問(wèn)左子節(jié)點(diǎn)的操作。第一子管道322可提取節(jié)點(diǎn)數(shù)據(jù)。第一子管道322可確定節(jié)點(diǎn)是葉節(jié)點(diǎn)還是內(nèi)部節(jié)點(diǎn)。當(dāng)確定節(jié)點(diǎn)是內(nèi)部節(jié)點(diǎn)時(shí),管道320的狀態(tài)可轉(zhuǎn)換為第二狀態(tài),以測(cè)試左子節(jié)點(diǎn)和射線(xiàn)之間的相交。第二子管道324可測(cè)試左子節(jié)點(diǎn)和射線(xiàn)之間的相交。然后,需要執(zhí)行針對(duì)右子節(jié)點(diǎn)和射線(xiàn)之間的相交的測(cè)試。然而,由于連接到第二子管道324的第三子管道326用于第三狀態(tài),因此第三子管道326可不對(duì)射線(xiàn)執(zhí)行操作,并可將射線(xiàn)數(shù)據(jù)發(fā)送到第一輸出緩沖器330。
[0101]被旁路的射線(xiàn)數(shù)據(jù)可通過(guò)第一輸出緩沖器330被重新輸入到輸入緩沖器310中。然后,可由管道320測(cè)試右子節(jié)點(diǎn)和射線(xiàn)之間的相交。
[0102]可在圖3的處理中不使用第二輸出緩沖器340和第三輸出緩沖器350。
[0103]圖4示出管道中的旁路的示例。
[0104]在圖4中,第一子管道322可對(duì)射線(xiàn)或射線(xiàn)數(shù)據(jù)進(jìn)行旁路,并且第二子管道324和第三子管道326可對(duì)射線(xiàn)或射線(xiàn)數(shù)據(jù)執(zhí)行操作。
[0105]參照?qǐng)D4,可執(zhí)行訪問(wèn)右子節(jié)點(diǎn)的操作和堆棧的彈出操作。由于排除了提取節(jié)點(diǎn)數(shù)據(jù)的需要,因此第一子管道322可對(duì)射線(xiàn)或射線(xiàn)數(shù)據(jù)進(jìn)行旁路。第二子管道324可測(cè)試右子節(jié)點(diǎn)和射線(xiàn)之間的相交。第三子管道326可執(zhí)行堆棧的操作。堆棧的操作可指示從堆棧彈出節(jié)點(diǎn)數(shù)據(jù)的彈出操作。射線(xiàn)數(shù)據(jù)可通過(guò)第一輸出緩沖器330被重新輸入到輸入緩沖器310中,以遍歷彈出的節(jié)點(diǎn)。
[0106]可在圖4的處理中不使用第二輸出緩沖器340和第三輸出緩沖器350。
[0107]由于圖3的技術(shù)公開(kāi)可被應(yīng)用在此,因此為了簡(jiǎn)明和方便描述起見(jiàn),在此省略進(jìn)一步的詳細(xì)描述。
[0108]圖5示出管道中的旁路的示例。
[0109]在圖5中,第一子管道322和第二子管道324可對(duì)射線(xiàn)或射線(xiàn)數(shù)據(jù)執(zhí)行操作,并且第三子管道326可對(duì)射線(xiàn)或射線(xiàn)數(shù)據(jù)進(jìn)行旁路。
[0110]參照?qǐng)D5,可執(zhí)行提取節(jié)點(diǎn)數(shù)據(jù)、訪問(wèn)葉節(jié)點(diǎn)和輸出到1ST單元的操作。第一子管道322可提取節(jié)點(diǎn)數(shù)據(jù)。第一子管道322可確定節(jié)點(diǎn)是葉節(jié)點(diǎn)還是內(nèi)部節(jié)點(diǎn)。當(dāng)確定節(jié)點(diǎn)為葉節(jié)點(diǎn)時(shí),管道320的狀態(tài)可轉(zhuǎn)換為第二狀態(tài),以測(cè)試節(jié)點(diǎn)和射線(xiàn)之間的相交。第二子管道324可測(cè)試節(jié)點(diǎn)和射線(xiàn)之間的相交。當(dāng)射線(xiàn)與節(jié)點(diǎn)相交時(shí),射線(xiàn)數(shù)據(jù)可被發(fā)送到1ST單元。由于連接到第二子管道324的第三子管道326用于第三狀態(tài),因此第三子管道326可不對(duì)射線(xiàn)執(zhí)行操作,并可將射線(xiàn)數(shù)據(jù)發(fā)送到第二輸出緩沖器340。
[0111]在圖5的處理中可不使用第一輸出緩沖器330和第三輸出緩沖器350。
[0112]由于圖3和圖4的技術(shù)公開(kāi)可被應(yīng)用在此,因此為了簡(jiǎn)明和方便描述起見(jiàn),在此省略進(jìn)一步的詳細(xì)描述。
[0113]圖6示出管道中的旁路的示例。
[0114]第一子管道322可對(duì)射線(xiàn)或射線(xiàn)數(shù)據(jù)執(zhí)行操作,并且第二子管道324和第三子管道326可對(duì)射線(xiàn)或射線(xiàn)數(shù)據(jù)進(jìn)行旁路。
[0115]參照?qǐng)D6,可執(zhí)行將輸入的射線(xiàn)數(shù)據(jù)輸出到著色單元的操作。第一子管道322可提取節(jié)點(diǎn)數(shù)據(jù)。節(jié)點(diǎn)數(shù)據(jù)可被發(fā)送到著色單元290。由于第二子管道324和第三子管道326分別用于第二狀態(tài)和第三狀態(tài),因此第二子管道324和第三子管道326可不對(duì)射線(xiàn)執(zhí)行操作,并可將射線(xiàn)數(shù)據(jù)發(fā)送到第三輸出緩沖器350。
[0116]在圖6的處理中可不使用第一輸出緩沖器330和第二輸出緩沖器340。
[0117]由于圖3至圖5的技術(shù)公開(kāi)可被應(yīng)用在此,因此為了簡(jiǎn)明和方便描述起見(jiàn),在此省略進(jìn)一步的詳細(xì)描述。
[0118]如參照?qǐng)D3至圖6所述,在管道320中連接的所有子管道可不對(duì)射線(xiàn)或射線(xiàn)數(shù)據(jù)連續(xù)執(zhí)行操作。基于狀態(tài)發(fā)散,一些子管道可對(duì)射線(xiàn)數(shù)據(jù)進(jìn)行旁路。也就是說(shuō),當(dāng)一個(gè)或多個(gè)子管道執(zhí)行操作時(shí),子管道中的一個(gè)或多個(gè)其他子管道可不起作用。結(jié)果,可保持一次循環(huán)一個(gè)射線(xiàn)的管道處理速率。然而,管道320中的不必要的數(shù)據(jù)傳輸可降低有效處理速率,并可增加功耗。在此實(shí)例中可考慮子管道的分離以及分離的子管道的并行執(zhí)行來(lái)提高有效處理速率并降低功耗。
[0119]圖7示出TRV單元700的示例。
[0120]TRV單元700可使用樹(shù)AS。圖2的第一 TRV單元240-1、第二 TRV單元240-2和第n TRV單元240-3可與TRV單元700相應(yīng)。
[0121]TRV單元700可包括多個(gè)子管道單元。所述多個(gè)子管道單元可執(zhí)行使用樹(shù)AS的TRV所需的不同操作。所述多個(gè)子管道單元可并行操作。所述多個(gè)子管道單元可并行執(zhí)行針對(duì)不同射線(xiàn)的TRV。也就是說(shuō),所述多個(gè)子管道單元中的每個(gè)可同時(shí)對(duì)不同射線(xiàn)執(zhí)行操作(例如,不同操作)。
[0122]所述多個(gè)子管道單元可包括第一子管道單元732、第二子管道單元734和第三子管道單元736。第一子管道單元732、第二子管道單元734和第三子管道單元736可包括至少一個(gè)管道階段。[0123]所述多個(gè)子管道單元可與管道的狀態(tài)相應(yīng)。例如,第一子管道單元732、第二子管道單兀734和第三子管道單兀736可分別與圖2的第一狀態(tài)、第二狀態(tài)和第三狀態(tài)相應(yīng)。
[0124]TRV單元700還可包括第一交叉開(kāi)關(guān)(cross bar)710、高速緩存740、堆棧750、第二交叉開(kāi)關(guān)760、第一輸出緩沖器774和第二輸出緩沖器776。
[0125]TRV單元700還可包括多個(gè)輸入緩沖器。所述多個(gè)輸入緩沖器可存儲(chǔ)被分配到所述多個(gè)子管道單元中的一個(gè)子管道單元的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。子管道單元可在入口具有單獨(dú)的輸入緩沖器。輸入緩沖器可將存儲(chǔ)的射線(xiàn)數(shù)據(jù)發(fā)送到TRV單元700。
[0126]所述多個(gè)輸入緩沖器可包括第一輸入緩沖器722、第二輸入緩沖器724和第三輸入緩沖器726。第一輸入緩沖器722、第二輸入緩沖器724和第三輸入緩沖器726可分別將射線(xiàn)數(shù)據(jù)發(fā)送到第一子管道單元732、第二子管道單元734和第三子管道單元736。
[0127]所述多個(gè)輸入緩沖器、第一輸出緩沖器774和第二輸出緩沖器776可基于先入先出(FIFO)原則。
[0128]第一子管道單元732可提取與樹(shù)AS中的被訪問(wèn)的節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù),并可確定節(jié)點(diǎn)是葉節(jié)點(diǎn)還是內(nèi)部節(jié)點(diǎn)。第一子管道單元732可執(zhí)行第一子管道322的操作。
[0129]第二子管道單元734可使用射線(xiàn)數(shù)據(jù)和節(jié)點(diǎn)數(shù)據(jù)來(lái)測(cè)試射線(xiàn)和節(jié)點(diǎn)的空間之間的相交。第二子管道單元734可執(zhí)行第二子管道324的操作。
[0130]第三子管道單元736可對(duì)節(jié)點(diǎn)數(shù)據(jù)執(zhí)行堆棧操作。第三子管道單元736可執(zhí)行第三子管道326的操作。
[0131]高速緩存740可將節(jié)點(diǎn)數(shù)據(jù)提供給第一子管道單元732。高速緩存740可實(shí)現(xiàn)來(lái)自圖2的第一高速緩存282的AS數(shù)據(jù)的高速緩存,并可存儲(chǔ)所述AS數(shù)據(jù)。所述AS數(shù)據(jù)可包括與AS中的每個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)。
[0132]堆棧750可將堆棧操作提供給第三子管道單元736。堆棧750可存儲(chǔ)由第三子管道單元736推入的數(shù)據(jù),并可將由第三子管道單元736彈出的數(shù)據(jù)提供給第三子管道單元736。堆棧750可基于后進(jìn)先出(LIFO)原則。
[0133]第一交叉開(kāi)關(guān)710可將與輸入到TRV單元700的射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)分配給在多個(gè)子管道單元中的與輸入射線(xiàn)的狀態(tài)相應(yīng)的一個(gè)子管道單元。可基于射線(xiàn)的狀態(tài)來(lái)確定將對(duì)輸入射線(xiàn)執(zhí)行的操作。例如,可由所述多個(gè)子管道單元中的一個(gè)子管道單元來(lái)處理輸入到TRV單元700中的射線(xiàn),并且射線(xiàn)的狀態(tài)可指示將用于處理所述射線(xiàn)的子管道單元。
[0134]可通過(guò)針對(duì)所述多個(gè)子管道單元的用于處理射線(xiàn)或射線(xiàn)數(shù)據(jù)的任務(wù)或操作來(lái)改變射線(xiàn)的狀態(tài)。
[0135]第一交叉開(kāi)關(guān)710可與用于將射線(xiàn)數(shù)據(jù)發(fā)送(route)到所述多個(gè)輸入緩沖器中的任意輸入緩沖器的緩沖器相應(yīng)。
[0136]第二交叉開(kāi)關(guān)760可基于射線(xiàn)的狀態(tài)將從所述多個(gè)子管道單元中的一個(gè)子管道單元輸出的射線(xiàn)數(shù)據(jù)重新發(fā)送到相應(yīng)的子管道單元、著色單元290或1ST單元。從第二交叉開(kāi)關(guān)760發(fā)送到1ST單元的射線(xiàn)數(shù)據(jù)可通過(guò)第二緩沖器250被發(fā)送到1ST單元。
[0137]可通過(guò)第一交叉開(kāi)關(guān)710和第二交叉開(kāi)關(guān)760將所述多個(gè)子管道單元連接到反饋線(xiàn)。
[0138]第一輸出緩沖器774可存儲(chǔ)從第二交叉開(kāi)關(guān)760輸出并被發(fā)送到著色單元290的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。從第二交叉開(kāi)關(guān)760到著色單元290的與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)可通過(guò)第一輸出緩沖器774被發(fā)送到著色單元290。
[0139]第二輸出緩沖器776可存儲(chǔ)從第二交叉開(kāi)關(guān)760輸出并被發(fā)送到1ST單元的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。從第二交叉開(kāi)關(guān)760到1ST單元的與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)可通過(guò)第二輸出緩沖器776被發(fā)送到1ST單元。
[0140]對(duì)于多個(gè)輸入緩沖器,射線(xiàn)可等待由與輸入緩沖器相應(yīng)的子管道單元來(lái)處理。當(dāng)適當(dāng)數(shù)量的射線(xiàn)被緩沖到多個(gè)輸入緩沖器中時(shí),射線(xiàn)可同時(shí)被分發(fā)到多個(gè)子管道單元。因此,多個(gè)子管道單元可實(shí)現(xiàn)并行執(zhí)行?;谏渚€(xiàn)TRV算法的特性,可不改變射線(xiàn)的狀態(tài),直到將由預(yù)定子管道單元處理的射線(xiàn)數(shù)據(jù)被用完為止。因此,可繼續(xù)保持多個(gè)子管道單元之間的并行性。
[0141 ] 第一子管道單元732、第二子管道單元734和第三子管道單元736之中的至少一個(gè)可以是多個(gè)。射線(xiàn)狀態(tài)的多次產(chǎn)生會(huì)出現(xiàn)不同。因此,通過(guò)復(fù)制一個(gè)子管道單元,可避免多個(gè)子管道單元之間的負(fù)載不平衡,并可提高吞吐量。
[0142]可基于依據(jù)平均或另一統(tǒng)計(jì)基礎(chǔ)的TRV單元700處理射線(xiàn)所需的第一子管道單元732、第二子管道單元734和第三子管道單元736的使用次數(shù),來(lái)分別確定第一子管道單元732的數(shù)量、第二子管道單元734的數(shù)量以及第三子管道單元736的數(shù)量??蛇x地,可基于需要的第一子管道單元732、第二子管道單元734和第三子管道單元736的使用次數(shù)的比率,來(lái)確定第一子管道單元732、第二子管道單元734和第三子管道單元736的數(shù)量。
[0143]圖8示出包括多個(gè)第一子管道單元的TRV單元的示例。
[0144]在圖8中,提供了兩個(gè)第一輸入緩沖器722和兩個(gè)第一子管道單元732。高速緩存740可向第一子管道單元732提供節(jié)點(diǎn)數(shù)據(jù)。
[0145]當(dāng)由第一子管道單元732處理射線(xiàn)數(shù)據(jù)的次數(shù)高于由第二子管道單元724處理射線(xiàn)數(shù)據(jù)的次數(shù)和由第三子管道單元736處理射線(xiàn)數(shù)據(jù)的次數(shù)時(shí),TRV單元700可使用兩個(gè)或更多個(gè)第一子管道單元732。多個(gè)第一子管道單元732可同時(shí)處理與多個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。由于使用次數(shù)高,可在第一子管道單元732防止瓶頸。
[0146]圖9示出包括多個(gè)第二子管道單元的TRV單元的示例。
[0147]在圖9中,提供了兩個(gè)第二輸入緩沖器724和兩個(gè)第二子管道單元734。
[0148]當(dāng)由第二子管道單元734處理射線(xiàn)數(shù)據(jù)的次數(shù)高于由第一子管道單元732處理射線(xiàn)數(shù)據(jù)的次數(shù)和由第三子管道單元736處理射線(xiàn)數(shù)據(jù)的次數(shù)時(shí),TRV單元700可使用兩個(gè)或更多個(gè)第二子管道單元734。多個(gè)第二子管道單元734可同時(shí)處理與多個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。
[0149]可選地,本領(lǐng)域的普通技術(shù)人員將理解,TRV單元700還可在多個(gè)子管道中使用兩個(gè)或更多個(gè)子管道單元(例如,多個(gè)第一子管道單元和多個(gè)第二子管道單元、多個(gè)第二子管道單元和多個(gè)第三子管道單元、多個(gè)第一子管道單元和多個(gè)第三子管道單元、多個(gè)第一子管道單元和多個(gè)第二子管道單元和多個(gè)第三子管道單元等)。子管道單元的數(shù)量可根據(jù)處理射線(xiàn)數(shù)據(jù)的次數(shù)、處理射線(xiàn)數(shù)據(jù)所需的時(shí)間量、使用的相對(duì)比率、或可用于以適當(dāng)?shù)暮?或有效的方式來(lái)平衡工作負(fù)載的其他統(tǒng)計(jì)信息而不同。
[0150]圖10示出射線(xiàn)TRV方法的示例。
[0151]參照?qǐng)D10,在操作1010,第一交叉開(kāi)關(guān)710可將與輸入到TRV單元700中的射線(xiàn)
相關(guān)聯(lián)的數(shù)據(jù)分配到在第一子管道單元732、第二子管道單元734和第三子管道單元736中的與輸入射線(xiàn)的狀態(tài)相應(yīng)的子管道單元。
[0152]可基于與被分配的在第一子管道單元732、第二子管道單元734和第三子管道單元736中的子管道單元相應(yīng)的子管道單元來(lái)執(zhí)行操作1022、1024和1026。
[0153]在操作1022,第一輸入緩沖器722可存儲(chǔ)從第一交叉開(kāi)關(guān)710輸出的與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。第一輸入緩沖器722可存儲(chǔ)與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。第一輸入緩沖器722可基于FIFO原則將存儲(chǔ)的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)發(fā)送到第一子管道單元732。
[0154]在操作1032,第一子管道單元732可提取與樹(shù)AS中的被射線(xiàn)訪問(wèn)的節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)。第一子管道單元732可確定節(jié)點(diǎn)是葉節(jié)點(diǎn)還是內(nèi)部節(jié)點(diǎn)。
[0155]在操作1040,高速緩存740可將與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)提供給第一子管道單元732。
[0156]在完成所述提取或確定之后,在操作1060,第一子管道單元732可將與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)輸出到第二交叉開(kāi)關(guān)760。
[0157]在操作1024,第二輸入緩沖器724可存儲(chǔ)從第一交叉開(kāi)關(guān)710輸出的與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。第二輸入緩沖器724可存儲(chǔ)與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。第二輸入緩沖器724可基于FIFO原則將存儲(chǔ)的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)發(fā)送到第二子管道單元734。
[0158]在操作1034,第二子管道單元734可使用與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)和與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)來(lái)測(cè)試射線(xiàn)和節(jié)點(diǎn)的空間之間的相交。
[0159]在完成所述測(cè)試之后,在操作1060,第二子管道單元734可將與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)輸出到第二交叉開(kāi)關(guān)760。
[0160]在操作1026,第三輸入緩沖器726可存儲(chǔ)從第一交叉開(kāi)關(guān)710輸出的與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。第三輸入緩沖器726可存儲(chǔ)與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。第三輸入緩沖器726可基于FIFO原則將存儲(chǔ)的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)發(fā)送到第三子管道單元736。
[0161]在操作1036,第三子管道單元736可對(duì)與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)執(zhí)行堆棧操作。在執(zhí)行上述操作之后,在操作1060,第三子管道單元736可將與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)輸出到第二交叉開(kāi)關(guān)760。
[0162]操作1032/1040、1034和1036可對(duì)不同射線(xiàn)并行執(zhí)行TRV。在操作1032/1040、1034和1036,可由第一子管道單元732、第二子管道單元734和第三子管道單元736中的一個(gè)子管道單元來(lái)對(duì)與多個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)進(jìn)行并行處理。
[0163]第一子管道單元732、第二子管道單元734和第三子管道單元736中的至少一個(gè)可以是多個(gè)。可基于依據(jù)平均或另一統(tǒng)計(jì)基礎(chǔ)的TRV單元700處理射線(xiàn)所需的第一子管道單元732、第二子管道單元734和第三子管道單元736的使用次數(shù),來(lái)分別確定第一子管道單元732的數(shù)量、第二子管道單元734的數(shù)量以及第三子管道單元736的數(shù)量。
[0164]在執(zhí)行操作1032/1040、1034或1036之后,可執(zhí)行操作1060。
[0165]在操作1060,第二交叉開(kāi)關(guān)760可基于射線(xiàn)的狀態(tài),將從第一子管道單元732、第二子管道單元734和第三子管道單元736中的一個(gè)子管道單元輸出的與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)重新發(fā)送到相應(yīng)的子管道單元、著色單元290或至少一個(gè)1ST單元。
[0166]當(dāng)與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)被重新發(fā)送到相應(yīng)的子管道單元時(shí),可執(zhí)行操作1010。當(dāng)與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)被重新發(fā)送到著色單元290時(shí),可執(zhí)行操作1074。當(dāng)與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)被發(fā)送到至少一個(gè)1ST單元時(shí),可執(zhí)行操作1076。
[0167]在操作1074,第一輸出緩沖器774可存儲(chǔ)從第二交叉開(kāi)關(guān)760輸出并被發(fā)送到著色單元290的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。
[0168]第一輸出緩沖器774可基于FIFO原則將存儲(chǔ)的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)發(fā)送到著色單元290。
[0169]在操作1076,第二輸出緩沖器776可存儲(chǔ)從第二交叉開(kāi)關(guān)760輸出并被發(fā)送到所述至少一個(gè)1ST單元中的一個(gè)1ST單元的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。
[0170]第二輸出緩沖器776可基于FIFO原則將存儲(chǔ)的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)發(fā)送到所述至少一個(gè)1ST單元中的一個(gè)1ST單元。
[0171]由于圖1至圖9的技術(shù)公開(kāi)可被應(yīng)用在此,因此為了簡(jiǎn)明和方便描述起見(jiàn),在此省略進(jìn)一步的詳細(xì)描述。
[0172]圖11示出射線(xiàn)跟蹤方法的示例。
[0173]在操作1110,射線(xiàn)產(chǎn)生單元210可產(chǎn)生射線(xiàn)。產(chǎn)生的射線(xiàn)可被輸入到射線(xiàn)跟蹤單元220中。
[0174]在操作1120,至少一個(gè)TRV單元可分別遍歷AS。這里,AS可與樹(shù)AS相應(yīng)。操作1120可包括圖10的操作1010至1076。
[0175]在操作1130,至少一個(gè)1ST單元可使用AS分別測(cè)試場(chǎng)景對(duì)象和射線(xiàn)之間的相交。
[0176]在操作1140,著色單元290可計(jì)算與射線(xiàn)相應(yīng)的像素的顏色。著色單元290可基于與射線(xiàn)相交的可見(jiàn)場(chǎng)景對(duì)象的顏色來(lái)計(jì)算2D屏幕中的預(yù)定像素的顏色。
[0177]操作1110、1120、1130 和 1140 可分別執(zhí)行圖1 的射線(xiàn)產(chǎn)生 150,AS TRV155、IST160和著色165。
[0178]由于圖1至圖10的技術(shù)公開(kāi)可被應(yīng)用在此,因此為了簡(jiǎn)明和方便描述起見(jiàn),在此省略進(jìn)一步的詳細(xì)描述。
[0179]根據(jù)示例性實(shí)施例,可提高GPU的射線(xiàn)跟蹤性能。由于基于射線(xiàn)的狀態(tài)僅使用射線(xiàn)TRV所需的子管道單元,因此可降低功耗。由于射線(xiàn)被同時(shí)分發(fā)到多個(gè)子管道單元,因此相對(duì)于其他方法(例如,使用單個(gè)管道的射線(xiàn)TRV),并行處理效率可提高。
[0180]根據(jù)上述示例實(shí)施例的用于執(zhí)行射線(xiàn)跟蹤的設(shè)備和方法可使用可包括圖形處理單元(GPU)、微處理器、中央處理單元(CPU)、數(shù)字信號(hào)處理器(DSP)或?qū)S眉呻娐?ASIC)的一個(gè)或多個(gè)處理器,以及這些和其他處理裝置的部分或組合。
[0181]如在此使用的術(shù)語(yǔ)“模塊”和“單元”可指示但不限于執(zhí)行特定任務(wù)的軟件或硬件組件或裝置(諸如,場(chǎng)可編程門(mén)陣列(FPGA)或?qū)S眉呻娐?ASIC))。模塊或單元可被配置為位于可尋址存儲(chǔ)介質(zhì)上,并被配置為在一個(gè)或多個(gè)處理器上執(zhí)行。因此,模塊或單元通過(guò)舉例的方式可包括組件(諸如軟件組件、面向?qū)ο蟮能浖M件、類(lèi)組件和任務(wù)組件)、處理、函數(shù)、屬性、過(guò)程、子例程、程序代碼段、驅(qū)動(dòng)器、固件、微代碼、電路、數(shù)據(jù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)、表、數(shù)組和變量。設(shè)置在組件和模塊/單元中的功能可被組合到更少的組件和模塊/單元中,或被進(jìn)一步分離為另外的組件和模塊。
[0182]根據(jù)上述實(shí)施例的方法可被記錄在包括有用于實(shí)現(xiàn)由計(jì)算機(jī)實(shí)施的各種操作的程序指令的非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)中。所述介質(zhì)還可單獨(dú)包括數(shù)據(jù)文件、數(shù)據(jù)結(jié)構(gòu)等,或可包括與程序指令相結(jié)合的數(shù)據(jù)文件、數(shù)據(jù)結(jié)構(gòu)等。非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)的示例包括:磁介質(zhì)(諸如,硬盤(pán)、軟盤(pán)和磁帶);光學(xué)介質(zhì)(諸如⑶ROM盤(pán)和DVD);磁光介質(zhì)(諸如,光盤(pán));和被專(zhuān)門(mén)配置為存儲(chǔ)和執(zhí)行程序指令的硬件裝置(諸如,只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、閃存等)。程序指令的示例包括(諸如由編譯器產(chǎn)生的)機(jī)器代碼和包含可由計(jì)算機(jī)使用解釋器來(lái)執(zhí)行的更高級(jí)別代碼的文件兩者。所述的硬件裝置可被配置為充當(dāng)一個(gè)或多個(gè)軟件模塊以執(zhí)行上述實(shí)施例的操作,反之亦然。程序指令可由一個(gè)或多個(gè)處理器執(zhí)行。另外,非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可分布在通過(guò)網(wǎng)絡(luò)連接的計(jì)算機(jī)系統(tǒng)中,并且計(jì)算機(jī)可讀代碼或程序指令可按分散方式被存儲(chǔ)和執(zhí)行。另外,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)還可被實(shí)施在至少一個(gè)專(zhuān)用集成電路(ASIC)或場(chǎng)可編程門(mén)陣列(FPGA)中。
[0183]雖然已示出和描述了實(shí)施例,但是將對(duì)本領(lǐng)域的技術(shù)人員顯然的是,在不脫離本發(fā)明的精神或范圍的情況下,可在本發(fā)明中進(jìn)行各種修改和變化。例如,如果所述技術(shù)按不同順序被執(zhí)行和/或如果在所述系統(tǒng)、架構(gòu)、裝置或電路中的組件按不同方式被組合和/或用其他組件或它們的等同物被替換或補(bǔ)充,則可實(shí)現(xiàn)適當(dāng)?shù)慕Y(jié)果。
[0184]因此,本發(fā)明意圖涵蓋本發(fā)明的修改和變化,只要它們落在權(quán)利要求及其等同物的范圍內(nèi)。
【權(quán)利要求】
1.一種使用樹(shù)加速結(jié)構(gòu)(AS)的遍歷(TRV)單元,所述TRV單元包括: 多個(gè)子管道單元,用于并行操作,并用于執(zhí)行使用樹(shù)AS的射線(xiàn)TRV所需的不同操作。
2.如權(quán)利要求1所述的TRV單元,其中,所述多個(gè)子管道單元適用于對(duì)不同射線(xiàn)并行執(zhí)行 TRV。
3.如權(quán)利要求1所述的TRV單元,其中,所述多個(gè)子管道單元包括: 第一子管道單元,用于提取與被射線(xiàn)訪問(wèn)的樹(shù)AS的節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù); 第二子管道單元,用于使用與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)和與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)來(lái)測(cè)試射線(xiàn)和節(jié)點(diǎn)的空間之間的相交; 第三子管道單元,用于對(duì)與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)執(zhí)行堆棧操作。
4.如權(quán)利要求3所述的TRV單元,還包括: 高速緩存,用于將與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)提供給第一子管道單元。
5.如權(quán)利要求3所述的TRV單元,其中,第一子管道單元、第二子管道單元和第三子管道單元中的至少一個(gè)是多個(gè)。
6.如權(quán)利要求3所述的TRV單元,其中,基于TRV單元對(duì)射線(xiàn)執(zhí)行TRV所需的第一子管道單元、第二子管道單元和第三子管道單元的使用次數(shù),來(lái)確定第一子管道單元的數(shù)量、第二子管道單元的數(shù)量和第三子管道單元的數(shù)量。
7.如權(quán)利要求1所述的TRV單元,還包括:· 第一交叉開(kāi)關(guān),用于將與輸入射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)分配給所述多個(gè)子管道單元中的與所述輸入射線(xiàn)的狀態(tài)相應(yīng)的子管道單元。
8.如權(quán)利要求1所述的TRV單元,還包括: 多個(gè)輸入緩沖器,用于存儲(chǔ)被分配給所述多個(gè)子管道單元中的一個(gè)子管道單元的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。
9.如權(quán)利要求1所述的TRV單元,還包括: 第二交叉開(kāi)關(guān),用于基于射線(xiàn)的狀態(tài)將從所述多個(gè)子管道單元中的一個(gè)子管道單元輸出的與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)重新發(fā)送到所述一個(gè)子管道單元或著色單元或相交測(cè)試(1ST)單J Li ο
10.如權(quán)利要求9所述的TRV單元,還包括: 第一輸出緩沖器,用于存儲(chǔ)從第二交叉開(kāi)關(guān)輸出并被發(fā)送到著色單元的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù); 第二輸出緩沖器,用于存儲(chǔ)從第二交叉開(kāi)關(guān)輸出并被發(fā)送到1ST單元的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。
11.一種使用樹(shù)加速結(jié)構(gòu)(AS)的遍歷(TRV)方法,所述TRV方法包括: 通過(guò)第一子管道單元提取與被射線(xiàn)訪問(wèn)的樹(shù)AS的節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù); 通過(guò)第二子管道單元使用與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)和與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)來(lái)測(cè)試射線(xiàn)和節(jié)點(diǎn)的空間之間的相交; 通過(guò)第三子管道單元對(duì)與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)執(zhí)行堆棧操作, 其中,所述提取、測(cè)試和執(zhí)行的步驟被并行執(zhí)行。
12.如權(quán)利要求11所述的TRV方法,還包括: 通過(guò)高速緩存將與節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)提供給第一子管道單元。
13.如權(quán)利要求11所述的TRV方法,其中,第一子管道單元、第二子管道單元和第三子管道單元中的至少一個(gè)是多個(gè)。
14.如權(quán)利要求11所述的TRV方法,其中,基于TRV單元對(duì)射線(xiàn)執(zhí)行TRV所需的第一子管道單元、第二子管道單元和第三子管道單元的使用次數(shù),來(lái)確定第一子管道單元的數(shù)量、第二子管道單元的數(shù)量和第三子管道單元的數(shù)量。
15.如權(quán)利要求11所述的TRV方法,還包括: 通過(guò)第一交叉開(kāi)關(guān)將與輸入射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)分配給所述多個(gè)子管道單元中的與所述輸入射線(xiàn)的狀態(tài)相應(yīng)的子管道單元。
16.如權(quán)利要求11所述的TRV方法,還包括: 通過(guò)第二交叉開(kāi)關(guān)基于射線(xiàn)的狀態(tài)將從第一子管道單元、第二子管道單元和第三子管道單元中的一個(gè)子管道單元輸出的與射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)重新發(fā)送到所述一個(gè)子管道單元或著色單元或相交測(cè)試(1ST)單元。
17.如權(quán)利要求16所述的TRV方法,還包括: 通過(guò)第一輸出緩沖器存儲(chǔ)從第二交叉開(kāi)關(guān)輸出并被發(fā)送到著色單元的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù); 通過(guò)第二輸出緩沖器存儲(chǔ)從第二交叉開(kāi)關(guān)輸出并被發(fā)送到1ST單元的與至少一個(gè)射線(xiàn)相關(guān)聯(lián)的數(shù)據(jù)。
18.一種用于執(zhí)行射線(xiàn)跟蹤的射線(xiàn)跟蹤單元,所述射線(xiàn)跟蹤單元包括: 多個(gè)遍歷單元,每個(gè)包括并行操作的多個(gè)子管道單元; 多個(gè)相交測(cè)試單元,用于測(cè)試從所述多個(gè)遍歷單元中的至少一個(gè)輸出的射線(xiàn)和與樹(shù)加速結(jié)構(gòu)的葉節(jié)點(diǎn)相應(yīng)的場(chǎng)景對(duì)象之間的相交。
19.如權(quán)利要求18所述的射線(xiàn)跟蹤單元,還包括: 射線(xiàn)調(diào)度單元,用于將輸入的射線(xiàn)分配給至少一個(gè)遍歷單元; 射線(xiàn)調(diào)節(jié)單元,用于通過(guò)控制射線(xiàn)數(shù)據(jù)流動(dòng)來(lái)調(diào)節(jié)所述多個(gè)遍歷單元和所述多個(gè)相交測(cè)試單元之間的射線(xiàn)傳輸; 緩沖器,用于在至少一個(gè)遍歷單元完成遍歷時(shí),存儲(chǔ)至少一個(gè)射線(xiàn)。
20.如權(quán)利要求19所述的射線(xiàn)跟蹤單元,還包括: 射線(xiàn)產(chǎn)生單元,用于產(chǎn)生射線(xiàn)并將產(chǎn)生的射線(xiàn)的數(shù)據(jù)提供給射線(xiàn)調(diào)度單元; 著色單元,用于從緩沖器接收跟蹤的射線(xiàn),并用于使用跟蹤的射線(xiàn)的數(shù)據(jù)對(duì)跟蹤的射線(xiàn)進(jìn)行著色。
【文檔編號(hào)】G06T1/00GK103593817SQ201310359331
【公開(kāi)日】2014年2月19日 申請(qǐng)日期:2013年8月16日 優(yōu)先權(quán)日:2012年8月16日
【發(fā)明者】李源宗, 辛容三, 李在敦, 金鎮(zhèn)雨, 樸賢相 申請(qǐng)人:三星電子株式會(huì)社, 公州大學(xué)校產(chǎn)學(xué)協(xié)力團(tuán)