欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

使用基于點(diǎn)積的固定功能邏輯的光線?盒相交測(cè)試的制作方法

文檔序號(hào):11451178閱讀:265來源:國知局
使用基于點(diǎn)積的固定功能邏輯的光線?盒相交測(cè)試的制造方法與工藝
本發(fā)明涉及圖形處理,且更確切地說涉及用于光線-盒相交測(cè)試的技術(shù)。
背景技術(shù)
:光線追蹤是用于產(chǎn)生3d圖像以供顯示的計(jì)算機(jī)圖形技術(shù)。更具體言之,光線追蹤是通過3d場(chǎng)景追蹤三維(3d)光線且尋找光線-圖元相交以使得可顯示所述3d場(chǎng)景的二維(2d)表示的過程。光線追蹤中所用的一個(gè)技術(shù)是確定光線-三角形相交。給定輸入光線和一組三角形,算法的目標(biāo)是確定哪些三角形與所述光線相交和/或確定一組相交點(diǎn)。為了加速光線追蹤操作,圖元(例如,三角形)通常被組織成將場(chǎng)景圖元層次性分組的加速度數(shù)據(jù)結(jié)構(gòu)(ads)。加速的數(shù)據(jù)結(jié)構(gòu)的實(shí)例包括包圍體層次(bvh)樹、k維(kd)樹、網(wǎng)格等??赏ㄟ^對(duì)場(chǎng)景圖元的層次執(zhí)行光線相交測(cè)試而以遞歸方式遍歷ads,從而確定與光線相交的場(chǎng)景圖元。為了追蹤穿過bvh樹的光線,通常使用兩個(gè)類型的操作:光線-盒相交測(cè)試(例如,光線-aabb(軸對(duì)準(zhǔn)包圍盒)相交測(cè)試)和光線-三角形相交測(cè)試。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的技術(shù)大體上涉及光線追蹤。舉例來說,本發(fā)明的各方面大體上涉及重復(fù)使用圖形處理單元(gpu)的紋理管線中的硬件單元來執(zhí)行光線追蹤的某些方面,包含(例如)光線-盒相交測(cè)試。確切地說,在一些實(shí)例中,在光線-盒相交測(cè)試期間可使用渲染管線的紋理單元的點(diǎn)積單元。在隨附圖式和以下描述中闡述本發(fā)明的一或多個(gè)方面的細(xì)節(jié)。從描述和圖式以及從權(quán)利要求書將明白本發(fā)明中所描述的技術(shù)的其它特征、目標(biāo)和優(yōu)點(diǎn)。附圖說明圖1是說明可實(shí)施本發(fā)明的技術(shù)的實(shí)例系統(tǒng)的框圖。圖2是說明可實(shí)施本發(fā)明的技術(shù)的圖1的系統(tǒng)的實(shí)例的框圖。圖3是說明gpu可對(duì)其執(zhí)行光線追蹤的實(shí)例場(chǎng)景的概念圖。圖4是說明將實(shí)例場(chǎng)景分區(qū)成包圍體的概念圖。圖5是說明具有與圖4中所展示的包圍體和圖元相關(guān)聯(lián)的節(jié)點(diǎn)的實(shí)例層次數(shù)據(jù)結(jié)構(gòu)的概念圖。圖6是說明根據(jù)本發(fā)明的技術(shù)的用于光線追蹤的過程的流程圖。圖7是說明可用作圖2的紋理管線的一部分的過濾器管線的實(shí)例的框圖。圖8是說明圖6的過程的實(shí)例的流程圖。圖9是說明根據(jù)本發(fā)明的技術(shù)的用于確定光線是否與盒相交的實(shí)例過程的流程圖,所述實(shí)例過程可用作圖6和/或圖8的過程的一部分的實(shí)例。具體實(shí)施方式本發(fā)明的各方面大體上涉及圖形處理。在一些實(shí)例中,所述技術(shù)可與光線-圖元相交測(cè)試相關(guān)。本發(fā)明的各方面可涉及用于光線追蹤的一種方法和設(shè)備,所述光線追蹤可包含使用圖形處理單元(gpu)的紋理管線硬件來針對(duì)第一光線和第一形狀執(zhí)行光線相交測(cè)試。使用所述紋理管線硬件執(zhí)行光線相交測(cè)試可包含通過所述紋理管線硬件計(jì)算多個(gè)點(diǎn)積以及基于所述多個(gè)點(diǎn)積確定所述第一光線是否與所述第一形狀相交。圖1是說明可經(jīng)配置以實(shí)施本發(fā)明的一或多個(gè)方面的實(shí)例系統(tǒng)/計(jì)算裝置的框圖。如圖1中所展示,系統(tǒng)/裝置2可為計(jì)算裝置,包含(但不限于)視頻裝置、媒體播放器、機(jī)頂盒、無線手持機(jī)(例如移動(dòng)電話和所謂的智能電話)、個(gè)人數(shù)字助理(pda)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、游戲控制臺(tái)、視頻會(huì)議單元、平板計(jì)算裝置等等。在圖1的實(shí)例中,裝置2可包含中央處理單元(cpu)6、系統(tǒng)存儲(chǔ)器10和gpu12。裝置2還可包含顯示處理器14、收發(fā)器模塊3、用戶接口4和顯示器8。收發(fā)器模塊3和顯示處理器14均可為與cpu6和/或gpu12相同的集成電路(ic)的部分,均可在包含cpu6和/或gpu12的一或多個(gè)ic的外部,或可形成于在包含cpu6和/或gpu12的ic外部的ic中。為清楚起見,裝置2可包含圖1中未展示的額外模塊或單元。舉例來說,裝置2可包含揚(yáng)聲器和麥克風(fēng)(兩者均未在圖1中展示)以在裝置2為移動(dòng)無線電話的實(shí)例中實(shí)現(xiàn)電話通信,或在裝置2為媒體播放器的情況下可包含揚(yáng)聲器。裝置2還可包含攝像機(jī)。此外,裝置2中所展示的各種模塊和單元可不必含在裝置2的每個(gè)實(shí)例中。舉例來說,在裝置2為臺(tái)式計(jì)算機(jī)或經(jīng)配備以與外部用戶接口或顯示器介接的其它裝置的實(shí)例中,用戶接口4和顯示器8可在裝置2外部。用戶接口4的實(shí)例包含(但不限于)軌跡球、鼠標(biāo)、鍵盤和其它類型的輸入裝置。用戶接口4還可以是觸摸屏,并且可作為顯示器8的一部分并入。收發(fā)器模塊3可包含允許裝置2與另一裝置或網(wǎng)絡(luò)之間的無線或有線通信的電路。收發(fā)器模塊3可包含調(diào)制器、解調(diào)器、放大器和用于有線或無線通信的其它此類電路。cpu6可為微處理器,例如經(jīng)配置以處理用于執(zhí)行的計(jì)算機(jī)程序的指令的中央處理單元(cpu)。cpu6可包括控制裝置2的操作的通用或?qū)S锰幚砥鳌S脩艨商峁┹斎氲窖b置2,以使cpu6執(zhí)行一或多個(gè)軟件應(yīng)用程序。在cpu6上執(zhí)行的軟件應(yīng)用程序可包含(例如)操作系統(tǒng)、字處理器應(yīng)用程序、電子郵件應(yīng)用程序、電子數(shù)據(jù)表應(yīng)用程序、媒體播放器應(yīng)用程序、視頻游戲應(yīng)用程序、圖形用戶接口應(yīng)用程序或另一程序。另外,cpu6可執(zhí)行用于控制gpu12的操作的gpu驅(qū)動(dòng)程序22。用戶可經(jīng)由一或多個(gè)輸入裝置(未展示)(例如鍵盤、鼠標(biāo)、麥克風(fēng)、觸摸板或經(jīng)由用戶接口4耦合到裝置2的另一輸入裝置)提供輸入到裝置2。在cpu6上執(zhí)行的軟件應(yīng)用程序可包含發(fā)指令給cpu6以使顯示器8渲染圖形數(shù)據(jù)的一或多個(gè)圖形渲染指令。在一些實(shí)例中,所述軟件指令可符合圖形應(yīng)用編程接口(api),例如開放圖形庫api、開放圖形庫嵌入系統(tǒng)(opengles)api、direct3dapi、x3dapi、rendermanapi、webglapi,或任何其它公共或?qū)S袠?biāo)準(zhǔn)圖形api。為了處理圖形渲染指令,cpu6可將一或多個(gè)圖形渲染命令發(fā)布到gpu12(例如,經(jīng)由gpu驅(qū)動(dòng)程序22)以致使gpu12執(zhí)行圖形數(shù)據(jù)的渲染中的一些或全部。在一些實(shí)例中,待渲染的圖形數(shù)據(jù)可包含例如點(diǎn)、線、三角形、四邊形、三角帶等的圖形基元的列表。gpu12可配置成執(zhí)行圖形運(yùn)算以將一或多個(gè)圖形基元渲染到顯示器8。因此,當(dāng)cpu6上執(zhí)行的軟件應(yīng)用程序中的一者需要圖形處理時(shí),cpu6可提供圖形命令和圖形數(shù)據(jù)到gpu12以供渲染到顯示器8。所述圖形數(shù)據(jù)可包含(例如)繪制命令、狀態(tài)信息、基元信息、紋理信息等。在一些情況下,gpu12可內(nèi)置有高度平行結(jié)構(gòu),所述高度并行結(jié)構(gòu)提供比cpu6更有效的復(fù)雜圖形相關(guān)運(yùn)算的處理。舉例來說,gpu12可包含經(jīng)配置以并行方式對(duì)多個(gè)頂點(diǎn)或像素進(jìn)行操作的多個(gè)處理元件,例如著色器單元。在一些情況下,相比于使用cpu6直接將場(chǎng)景繪制到顯示器8,gpu12的高度并行性質(zhì)可允許gpu12更快速地將圖形圖像(例如,gui和二維(2d)和/或三維(3d)圖形場(chǎng)景)繪制到顯示器8上。在一些情況下,可將gpu12集成到裝置2的主板中。在其它情況下,gpu12可存在于安裝在裝置2的主板中的端口內(nèi)的圖形卡上,或可以其它方式并入在經(jīng)配置以與裝置2交互操作的外圍裝置內(nèi)。gpu12可包含一或多個(gè)處理器,例如,一或多個(gè)微處理器、專用集成電路(asic)、現(xiàn)場(chǎng)可編程門陣列(fpga)、數(shù)字信號(hào)處理器(dsp)或其它等效的集成或離散邏輯電路。gpu12還可包含一或多個(gè)處理器核心,以使得gpu12可被稱作多核處理器。gpu12可直接耦合到圖形存儲(chǔ)器40。因此,gpu12可在不使用總線的情況下從圖形存儲(chǔ)器40讀取數(shù)據(jù)且將數(shù)據(jù)寫入到圖形存儲(chǔ)器40。換句話說,gpu12可使用本地存儲(chǔ)裝置而非片外存儲(chǔ)器在本地處理數(shù)據(jù)。此類圖形存儲(chǔ)器40可稱為片上存儲(chǔ)器。這允許gpu12通過消除需要gpu12經(jīng)由總線讀取和寫入數(shù)據(jù)(這可能經(jīng)歷繁重的總線通信量)而以更有效的方式操作。然而,在一些情況下,gpu12可能不包含單獨(dú)的存儲(chǔ)器,而是經(jīng)由總線利用系統(tǒng)存儲(chǔ)器10。圖形存儲(chǔ)器40可包含一或多個(gè)易失性或非易失性存儲(chǔ)器或存儲(chǔ)裝置,例如,隨機(jī)存取存儲(chǔ)器(ram)、靜態(tài)ram(sram)、動(dòng)態(tài)ram(dram)、可擦除可編程rom(eprom)、電可擦除可編程rom(eeprom)、快閃存儲(chǔ)器、磁性數(shù)據(jù)媒體或光學(xué)存儲(chǔ)媒體。在一些實(shí)例中,gpu12可將完全形成的圖像存儲(chǔ)在系統(tǒng)存儲(chǔ)器10中。顯示處理器14可從系統(tǒng)存儲(chǔ)器10檢索圖像,并且輸出使顯示器8的像素照亮以顯示圖像的值。顯示器8可為顯示由gpu12產(chǎn)生的圖像內(nèi)容的裝置2的顯示器。顯示器8可為液晶顯示器(lcd)、有機(jī)發(fā)光二極管顯示器(oled)、陰極射線管(crt)顯示器、等離子顯示器或另一類型的顯示裝置。根據(jù)本發(fā)明的各方面,gpu12可以層次數(shù)據(jù)結(jié)構(gòu)組織多個(gè)圖元。gpu12可包含經(jīng)配置以計(jì)算點(diǎn)積且基于計(jì)算出的點(diǎn)積執(zhí)行光線相交測(cè)試(例如,光線-盒相交測(cè)試)的紋理管線。圖2是進(jìn)一步詳細(xì)地說明圖1的cpu6、gpu12和系統(tǒng)存儲(chǔ)器10的實(shí)例實(shí)施方案的框圖。如圖2中所展示,cpu6可包含至少一個(gè)軟件應(yīng)用程序18、圖形api20和gpu驅(qū)動(dòng)程序22,其中的每一者可以是在cpu6上執(zhí)行的一或多個(gè)軟件應(yīng)用程序或服務(wù)??捎糜赾pu6和gpu12的存儲(chǔ)器可包含系統(tǒng)存儲(chǔ)器10和幀緩沖器16。幀緩沖器16可為系統(tǒng)存儲(chǔ)器10的一部分或可與系統(tǒng)存儲(chǔ)器10分開。幀緩沖器16可存儲(chǔ)經(jīng)渲染圖像數(shù)據(jù)。軟件應(yīng)用程序18可為利用gpu12的功能性的任何應(yīng)用程序。舉例來說,軟件應(yīng)用程序18可為gui應(yīng)用程序、操作系統(tǒng)、便攜式制圖應(yīng)用程序、用于工程或藝術(shù)應(yīng)用的計(jì)算機(jī)輔助設(shè)計(jì)程序、視頻游戲應(yīng)用程序或使用2d或3d圖形的另一類型的軟件應(yīng)用程序。軟件應(yīng)用程序18可包含發(fā)指令給gpu12以渲染圖形用戶接口(gui)和/或圖形場(chǎng)景的一或多個(gè)繪制指令。舉例來說,繪制指令可包含定義將由gpu12渲染的一組一或多個(gè)圖形圖元的指令。在一些實(shí)例中,繪制指令可共同地定義用于gui中的多個(gè)開視窗表面中的全部或部分。在額外實(shí)例中,繪制指令可共同地定義圖形場(chǎng)景的全部或部分,所述圖形場(chǎng)景包含在由應(yīng)用程序定義的模型空間或世界空間內(nèi)的一或多個(gè)圖形對(duì)象。軟件應(yīng)用程序18可經(jīng)由圖形api20調(diào)用gpu驅(qū)動(dòng)程序22以將一或多個(gè)命令發(fā)布到gpu12,以將一或多個(gè)圖形圖元渲染為可顯示的圖形圖像。舉例來說,軟件應(yīng)用程序18可經(jīng)由圖形api20調(diào)用gpu驅(qū)動(dòng)程序22以將圖元定義提供給gpu12。在一些情況下,可將圖元定義以繪制圖元(例如,三角形、矩形、三角扇、三角帶等)的列表的形式提供給gpu12。所述圖元定義可包含指定與待渲染的圖元相關(guān)聯(lián)的一或多個(gè)頂點(diǎn)的頂點(diǎn)規(guī)格。所述頂點(diǎn)規(guī)格可包含每一頂點(diǎn)的位置坐標(biāo),且在一些情況下,包含與所述頂點(diǎn)相關(guān)聯(lián)的其它屬性,例如色彩坐標(biāo)、法向量和紋理坐標(biāo)。所述圖元定義還可包含圖元類型信息(例如,三角形、矩形、三角扇、三角形帶等)、縮放信息、旋轉(zhuǎn)信息等等?;谟绍浖?yīng)用程序18發(fā)布到gpu驅(qū)動(dòng)程序22的指令,gpu驅(qū)動(dòng)程序22可調(diào)配指定供gpu12執(zhí)行的一或多個(gè)操作以便渲染圖元的一或多個(gè)命令。當(dāng)gpu12從cpu6接收命令時(shí),圖形處理管線24對(duì)所述命令進(jìn)行解碼且配置圖形處理管線24以執(zhí)行所述命令中指定的操作。舉例來說,圖形處理管線24中的輸入?yún)R編程序26可讀取圖元數(shù)據(jù)且將所述數(shù)據(jù)匯編成供圖形處理管線24中的其它圖形管線級(jí)使用的圖元。在執(zhí)行指定操作之后,圖形處理管線24將所渲染的數(shù)據(jù)輸出到與顯示裝置相關(guān)聯(lián)的幀緩沖器16。幀緩沖器16存儲(chǔ)用于gpu12的目的地像素。每一目的地像素可與唯一屏幕像素位置相關(guān)聯(lián)。在一些實(shí)例中,幀緩沖器16可存儲(chǔ)每一目的地像素的色彩分量和目的地阿爾法值(alphavalue)。舉例來說,幀緩沖器16可存儲(chǔ)每一像素的紅、綠、藍(lán)、阿爾法(rgba)分量,其中“rgb”分量對(duì)應(yīng)于色值且“a”分量對(duì)應(yīng)于目的地阿爾法值。雖然將幀緩沖器16和系統(tǒng)存儲(chǔ)器10說明為單獨(dú)的存儲(chǔ)器單元,但在其它實(shí)例中,幀緩沖器16可為系統(tǒng)存儲(chǔ)器10的部分。在一些實(shí)例中,gpu12包含著色器單元46、圖形處理管線24、紋理管線23和圖形存儲(chǔ)器40。一或多個(gè)著色器程序可在gpu12中的著色器單元46上執(zhí)行。著色器單元46可包含處理器核心48,所述處理器核心中的每一者可包含用于獲取和解碼操作的一或多個(gè)組件、用于執(zhí)行算術(shù)計(jì)算的一或多個(gè)算術(shù)邏輯單元、一或多個(gè)存儲(chǔ)器、高速緩沖存儲(chǔ)器和寄存器。通過將命令發(fā)送至著色器單元46以執(zhí)行圖形處理管線24中的頂點(diǎn)著色器級(jí)、外殼著色器級(jí)、域著色器級(jí)、幾何著色器級(jí)和像素著色器級(jí)中的一或多者,gpu12可指定著色器單元46執(zhí)行多種著色操作,例如頂點(diǎn)著色、外殼著色、域著色、幾何著色、像素著色等等。在一些實(shí)例中,gpu驅(qū)動(dòng)程序22可經(jīng)配置以編譯一或多個(gè)著色器程序,且經(jīng)配置以將經(jīng)編譯著色器程序下載到含于gpu12內(nèi)的一或多個(gè)可編程著色器單元上。可以高級(jí)著色語言(例如opengl著色語言(glsl)、高級(jí)著色語言(hlsl)、cforgraphics(cg)著色語言等)編寫著色器程序。經(jīng)編譯著色器程序可包含控制gpu12內(nèi)的著色器單元46的操作的一或多個(gè)指令。舉例來說,著色器程序可包含:頂點(diǎn)著色器程序,其可由著色器單元46執(zhí)行以執(zhí)行頂點(diǎn)著色器級(jí)的功能;外殼著色器程序,其可由著色器單元46執(zhí)行以執(zhí)行外殼著色器級(jí)的功能;域著色器程序,其可由著色器單元46執(zhí)行以執(zhí)行域著色器級(jí)的功能;幾何著色器程序,其可由著色器單元46執(zhí)行以執(zhí)行幾何著色器級(jí)的功能;和/或像素著色器程序,其可由著色器單元46執(zhí)行以執(zhí)行像素著色器的功能。頂點(diǎn)著色器程序可控制可編程頂點(diǎn)著色器單元或統(tǒng)一著色器單元的執(zhí)行,并且包含指定一或多個(gè)逐頂點(diǎn)操作的指令。圖形存儲(chǔ)器40是以物理方式集成到gpu12的集成電路中的存儲(chǔ)裝置或存儲(chǔ)器。圖形存儲(chǔ)器40可存儲(chǔ)將場(chǎng)景圖元(例如,三角形)層次性分組的ads。在一些實(shí)例中,所述ads可存儲(chǔ)在系統(tǒng)存儲(chǔ)器10中、存儲(chǔ)在著色器單元46的著色器存儲(chǔ)器中或存儲(chǔ)在共享系統(tǒng)/圖形存儲(chǔ)器(未展示)中。gpu12可組織所述ads中的多個(gè)圖元。紋理管線23是執(zhí)行紋理化功能的硬件單元的可編程管線。紋理管線23可包含各自與對(duì)應(yīng)著色器處理器48通信的數(shù)個(gè)硬件紋理化單元。在一些實(shí)例中,在著色器處理器48與紋理管線23中對(duì)應(yīng)的硬件紋理化單元之間存在一對(duì)一的對(duì)應(yīng)性。著色器處理器48可執(zhí)行許多指令。當(dāng)著色器處理器48經(jīng)由所述指令之特定子字段中的操作碼檢測(cè)到所述指令中的紋理處理指令時(shí),其發(fā)送請(qǐng)求到紋理管線23中的對(duì)應(yīng)紋理單元。紋理管線23中的紋理單元在接收到來自對(duì)應(yīng)著色器處理器48的請(qǐng)求之后即刻基于所述指令中的操作碼確定要執(zhí)行的紋理化操作的類型,并且執(zhí)行所述操作,其通常涉及(尤其是)執(zhí)行于紋理管線23中專用點(diǎn)積硬件上的點(diǎn)積計(jì)算。紋理管線23包含本身執(zhí)行點(diǎn)積的固定功能硬件單元。在一些實(shí)例中,管線23還包含本身執(zhí)行最小值和最大值運(yùn)算的固定功能硬件單元。在本發(fā)明的一些實(shí)例中,特定紋理類型經(jīng)定義以用于在紋理管線23中執(zhí)行光線相交測(cè)試。這個(gè)“紋理類型”并非字面上的紋理類型,而更準(zhǔn)確地是緩沖類型。在一些實(shí)例中,對(duì)應(yīng)著色器處理器48將包含用于光線相交測(cè)試的緩沖類型的信息或緩沖的索引發(fā)送給紋理管線23中的對(duì)應(yīng)紋理單元,并且所述信息可包含光線和形狀的信息,有關(guān)所述光線和形狀的光線相交確定所述光線與所述形狀之間是否存在相交。在本發(fā)明的一些實(shí)例中,紋理管線23確定所述光線與所述形狀之間是否存在相交,并且將測(cè)試的結(jié)果傳送回到對(duì)應(yīng)的著色器處理器48。在其它實(shí)例中,紋理管線23執(zhí)行測(cè)試的一部分而非整個(gè)測(cè)試,或執(zhí)行所述測(cè)試的某些操作而非整個(gè)測(cè)試。在一些實(shí)例中,紋理管線23通過執(zhí)行運(yùn)算(例如計(jì)算紋理管線23中的專用固定功能點(diǎn)積硬件中的一或多個(gè)點(diǎn)積以及在紋理管線23中的專用固定功能硬件中執(zhí)行一或多個(gè)最小值和/或最大值運(yùn)算)來執(zhí)行相交檢查。在一些實(shí)例中,所述形狀是盒,且紋理管線23可用于光線-盒相交測(cè)試。在一些實(shí)例中,將用于光線-盒相交測(cè)試的輸入信息提供到紋理管線23。輸入信息可包含(例如)包圍盒信息。在一些實(shí)例中,包圍盒信息可存儲(chǔ)在緩沖器26中,在一些實(shí)例中,所述緩沖器是紋理管線中可存儲(chǔ)許多包圍盒的專用線性緩沖器。紋理管線23為緩沖器26中的包圍盒編索引,并且在需要時(shí)從緩沖器26檢索相關(guān)包圍盒。在一些實(shí)例中,過濾管的基本塊是dp4單元,其可執(zhí)行兩個(gè)4分量向量的點(diǎn)積,且每一rgba像素一個(gè)4分量向量。在其它實(shí)例中,可使用管線23的其它架構(gòu)。在一些實(shí)例中,每一dp4單元執(zhí)行用于兩個(gè)四分量輸入的點(diǎn)積,且一個(gè)dp4單元由各自執(zhí)行用于兩個(gè)二分量輸入的點(diǎn)積的兩個(gè)dp2單元實(shí)施。紋理管線23的一些實(shí)例使用4分量向量,所述4分量向量使用四個(gè)顏色通道:紅、綠、藍(lán)和阿爾法。在一些實(shí)例中,紋理管線23使用雙線性紋理過濾,且雙線性過濾器含有四個(gè)dp4單元。圖3是說明gpu12可對(duì)其執(zhí)行光線追蹤的實(shí)例場(chǎng)景的框圖。如圖3中所展示,場(chǎng)景50可為包含圖元52a到52e(下文稱為“圖元52”)的2d或3d場(chǎng)景。作為光線追蹤過程的部分,針對(duì)可為2d或3d光線并從光源55發(fā)散的光線54,gpu12可確定場(chǎng)景50的圖元52中的與光線54相交的圖元。光線追蹤是用于確定光線-三角形相交的計(jì)算機(jī)圖形技術(shù)。給定輸入光線和一組三角形,算法的目標(biāo)是確定哪些三角形與所述光線相交。可查詢不同類型的相交:最接近命中(nh)相交;任一命中相交;和/或全相交。為了加速光線追蹤操作,通常將三角形(圖元)組織成加速度數(shù)據(jù)結(jié)構(gòu)(ads),例如包圍體層次(bvh)樹、kd樹、網(wǎng)格等。bvh是具有兩個(gè)類型的節(jié)點(diǎn)的非平衡二叉樹。內(nèi)節(jié)點(diǎn)是表示通過軸對(duì)準(zhǔn)包圍盒(aabb)描述空間區(qū)域且具有兩個(gè)子級(jí)的節(jié)點(diǎn)。葉節(jié)點(diǎn)是也表示空間區(qū)域但并不具有任何子級(jí)的節(jié)點(diǎn)。實(shí)際上,這兩種節(jié)點(diǎn)參考含于包圍盒中的一組三角形。在一些實(shí)例中,為了追蹤穿過bvh樹的光線,需要兩個(gè)類型的操作:光線-盒相交測(cè)試和光線-三角形相交測(cè)試。在典型場(chǎng)景中,光線-盒相交測(cè)試的數(shù)目比光線-三角形相交測(cè)試的數(shù)目大約大五到二十倍。通過劃分場(chǎng)景50、層次性布置所劃分的場(chǎng)景50的部分以及以遞歸方式遍歷所劃分的場(chǎng)景50的部分的層次,gpu12可系統(tǒng)地確定圖元52中的與光線54相交的圖元。圖4是說明將場(chǎng)景50分區(qū)成包圍體的框圖。如圖4中所示,gpu12可概念地將圖元52分區(qū)成包圍體56a到56e(“包圍體56”)。包圍體56可為軸對(duì)準(zhǔn)的包圍盒(aabb),其可為具有最小化的區(qū)域的包圍盒,所圍封圖元的全部點(diǎn)可處于所述區(qū)域內(nèi)。包圍盒可為軸對(duì)準(zhǔn)的,使得所述盒的邊緣可平行于坐標(biāo)軸(例如,x、y和z軸)。包圍體56a可為包圍場(chǎng)景50的全部圖元52的包圍盒。包圍體56b和56c可以是包圍體56a的子集,因?yàn)榘鼑w56b和56c界定由包圍體56a界定的場(chǎng)景50的部分的子集。包圍體56b可界定圖元52a和52b,且包圍體56c可界定(即,在空間上涵蓋)圖元52c、52d和52e。包圍體56d和56e可為包圍體56c的子集,并且可界定由包圍體56c界定的場(chǎng)景50的部分的子集。包圍體56d可界定圖元52c和52d,且包圍體56e可界定圖元52e。在圖4中所展示的實(shí)例中,gpu12可將圖元52分區(qū)成五個(gè)包圍體56。gpu12可使用多于或少于五個(gè)的包圍體56。舉例而言,gpu12可相應(yīng)地創(chuàng)建額外的包圍體作為包圍體56b的子集,從而分別界定圖元52a和52b。在一些實(shí)例中,cpu6還可經(jīng)配置以將圖元52分區(qū)成包圍體56。圖5說明具有與圖4中所展示的包圍體56和圖元52相關(guān)聯(lián)的節(jié)點(diǎn)的實(shí)例層次數(shù)據(jù)結(jié)構(gòu)。如上文所論述,可將場(chǎng)景的場(chǎng)景圖元到ads41中,并且可遍歷ads41以確定光線-圖元相交。gpu12可將ads41存儲(chǔ)在圖形存儲(chǔ)器40中。如圖5中所展示,包圍體56和圖元52可與ads41(例如包圍體層次(bvh)樹60)的節(jié)點(diǎn)相關(guān)聯(lián),所述ads41與場(chǎng)景50相關(guān)聯(lián)。gpu12或cpu6可建構(gòu)bvh樹60,使得其可包含與場(chǎng)景50中的包圍體56和圖元52相關(guān)聯(lián)的節(jié)點(diǎn)62a到62e(“節(jié)點(diǎn)62”)。更具體來說,根節(jié)點(diǎn)62a、內(nèi)節(jié)點(diǎn)62c和葉節(jié)點(diǎn)62b、62d和62e可各自與包圍體56的一包圍體相關(guān)聯(lián)。bvh樹60的除根節(jié)點(diǎn)62a以外的節(jié)點(diǎn)可被稱為bvh樹60的非根節(jié)點(diǎn)。舉例來說,內(nèi)節(jié)點(diǎn)62c以及葉節(jié)點(diǎn)62b、62d和62e可被稱為bvh樹60的非根節(jié)點(diǎn)。葉節(jié)點(diǎn)62b、62d和62e可各自與圖元52的至少一個(gè)圖元連接。舉例來說,葉節(jié)點(diǎn)62b可與圖元52a和52b連接,葉節(jié)點(diǎn)62d可與圖元52c和52d連接,且葉節(jié)點(diǎn)62e可與圖元52e連接。bvh樹60可被視為非平衡二叉樹,因?yàn)閷哟螖?shù)據(jù)結(jié)構(gòu)60的每一非葉節(jié)點(diǎn)最多具有兩個(gè)子節(jié)點(diǎn),還因?yàn)槿~節(jié)點(diǎn)62b、62d和62e可能具有不相等的深度。因?yàn)榘鼑w56a界定場(chǎng)景50的全部圖元52,所以gpu12可將根節(jié)點(diǎn)62a與包圍體56a關(guān)聯(lián)。gpu12可分別將節(jié)點(diǎn)62b和62c(其為根節(jié)點(diǎn)62a的子級(jí)節(jié)點(diǎn))與包圍體56b和56c關(guān)聯(lián),因?yàn)榘鼑w56b和56c各自是包圍體56a的子集。gpu12可將圖元52a和52b與節(jié)點(diǎn)62b連接,因?yàn)榕c節(jié)點(diǎn)62b相關(guān)聯(lián)的包圍體56b界定圖元52a和52b,還因?yàn)椴淮嬖谑前鼑w56b的子集的額外包圍體。gpu12可將包圍體56d和56e與節(jié)點(diǎn)62d和62e(其為節(jié)點(diǎn)62c的子級(jí)節(jié)點(diǎn))相關(guān)聯(lián),因?yàn)榘鼑w56d和56e各自是與節(jié)點(diǎn)62c相關(guān)聯(lián)的包圍體56c的子集。gpu12可將圖元52c和52d與節(jié)點(diǎn)62d連接,因?yàn)榕c節(jié)點(diǎn)62d相關(guān)聯(lián)的包圍體56d界定圖元52c和52d,還因?yàn)椴淮嬖谑前鼑w56d的子集的額外包圍體。gpu12還可將圖元52e與節(jié)點(diǎn)62e連接,因?yàn)榕c節(jié)點(diǎn)62e相關(guān)聯(lián)的包圍體56e界定圖元52e,還因?yàn)椴淮嬖谑前鼑w56e的子集的額外包圍體。通過執(zhí)行針對(duì)與bvh樹60的節(jié)點(diǎn)62相關(guān)聯(lián)的包圍體56的光線-盒相交測(cè)試,gpu12可遍歷bvh樹60以確定圖元52的與光線54相交的圖元。通過執(zhí)行針對(duì)與根節(jié)點(diǎn)62a相關(guān)聯(lián)的包圍體56a的光線-盒相交測(cè)試,gpu12可開始對(duì)bvh樹60的遍歷。如果gpu12確定光線54與包圍體56a相交,那么gpu12可繼續(xù)遍歷bvh樹60到節(jié)點(diǎn)62b,且gpu12可執(zhí)行針對(duì)與節(jié)點(diǎn)62b相關(guān)聯(lián)的包圍體56b的光線-盒相交測(cè)試。如果gpu12確定光線54并不與包圍體56b相交,那么gpu12可以遞歸方式遍歷bvh樹,上到節(jié)點(diǎn)62a且下到節(jié)點(diǎn)62c,并且gpu12可執(zhí)行針對(duì)與節(jié)點(diǎn)62c相關(guān)聯(lián)的包圍體56c的光線-盒相交測(cè)試。如果gpu12確定光線54與包圍體56c相交,那么gpu12可繼續(xù)遍歷bvh樹60到節(jié)點(diǎn)62d,且gpu12可執(zhí)行針對(duì)與節(jié)點(diǎn)62d相關(guān)聯(lián)的包圍體56d的光線-盒相交測(cè)試。如果gpu確定光線54與包圍體56d相交,那么gpu12可執(zhí)行針對(duì)連接到節(jié)點(diǎn)62d的圖元的光線-圖元相交測(cè)試。因此,gpu12可執(zhí)行針對(duì)圖元52c的光線-圖元相交測(cè)試,并且還可執(zhí)行針對(duì)圖元52d的光線-圖元相交測(cè)試。gpu12可根據(jù)針對(duì)圖元52d的光線-圖元相交測(cè)試確定光線54的確與圖元52d相交。在gpu12確定光線54的確與圖元52d相交之后,gpu12可繼續(xù)以遞歸方式遍歷bvh樹60,上到節(jié)點(diǎn)62c且下到62e,并且gpu12可執(zhí)行針對(duì)與節(jié)點(diǎn)62e相關(guān)聯(lián)的包圍體56e的光線-盒相交測(cè)試?;诠饩€-盒相交測(cè)試,gpu12可確定光線54并不與包圍體56e相交,由此結(jié)束針對(duì)光線54的對(duì)bvh樹60的遍歷。圖6是說明根據(jù)本發(fā)明的技術(shù)的光線追蹤實(shí)例過程(630)的流程圖。在一些實(shí)例中,過程630是使用gpu的紋理管線硬件來執(zhí)行針對(duì)第一光線和第一形狀的光線相交測(cè)試的過程。在一些實(shí)例中,所述第一形狀可為盒、矩形或其類似者。在開始框之后,所述過程進(jìn)行到框631,其中使用紋理管線硬件計(jì)算多個(gè)點(diǎn)積。所述過程接著移動(dòng)到框632,其中基于所述多個(gè)點(diǎn)積確定第一光線是否與第一形狀相交。所述過程接著前進(jìn)到返回框,其中其它處理得以重新開始。以下更詳細(xì)地論述過程630的具體實(shí)例。在一些實(shí)例中,使用過程630來執(zhí)行光線-盒相交測(cè)試以確定光線是否與盒相交。然而,本發(fā)明的技術(shù)不受如此限制,且在其它實(shí)例中,可使用其它形狀。在一些實(shí)例中,相交測(cè)試是在光線與矩形之間。在一些實(shí)例中,紋理管線硬件可從gpu(例如,著色器處理器或gpu驅(qū)動(dòng)程序)接收包圍盒信息和光線定義,并且執(zhí)行點(diǎn)積運(yùn)算和其它運(yùn)算。在一些實(shí)例中,紋理管線硬件將輸出相交測(cè)試的結(jié)果(即,第一光線是否與第一形狀相交)以及待一起傳送的(如果存在)任何應(yīng)用數(shù)據(jù)。在一些實(shí)例中,所述相交測(cè)試的輸出結(jié)果是表示所述光線是否與所述形狀相交的布爾值(booleanvalue)。在一些實(shí)例中,光線由光線來源(o)和光線的標(biāo)準(zhǔn)化方向向量(d)表示。光線上的點(diǎn)可表達(dá)為:r(t)=o+dt,其中t是來自[0.0f,+inf)。在一些實(shí)例中,方向向量通過被定義為具有長度一而“標(biāo)準(zhǔn)化”。3d軸對(duì)準(zhǔn)包圍盒由其相對(duì)的兩個(gè)拐角點(diǎn)bbmin(xmin,ymin,zmin)和bbmax(xmax,ymax,zmax)表示。在一些實(shí)例中,bbmin和bbmax是兩個(gè)相對(duì)的拐角,其中bbmin是所述兩個(gè)相對(duì)拐角中最接近源的拐角。術(shù)語“源”不應(yīng)與術(shù)語“光線來源”混淆——“源”是指在坐標(biāo)(0,0,0)處的點(diǎn),而術(shù)語“光線來源”或“光線的來源”是指光線的起始。也就是說,在幾何中,光線被定義為在給定點(diǎn)起始并且在特定方向上無限延伸的線——這個(gè)起始點(diǎn)被稱為“光線的來源”,其不同于“源”(其是在座標(biāo)(0,0,0)處的點(diǎn)),但在一些情況下,光線的來源可能碰巧在所述源處。在過程630中,光線-形狀相交測(cè)試通過經(jīng)調(diào)配以使用點(diǎn)積的算法執(zhí)行,其中紋理管線硬件用于執(zhí)行所述算法中使用的點(diǎn)積。在光線-盒相交測(cè)試的一些實(shí)例中,所述算法的輸入是:rayorig-光線的來源的坐標(biāo)raydirrcp-標(biāo)準(zhǔn)化光線方向的倒數(shù)bbmin-包圍盒的一個(gè)拐角的坐標(biāo)bbmax-包圍盒的與bbmin相對(duì)的拐角的坐標(biāo)在一些實(shí)例中,以下距離可通過以下算法計(jì)算:t1.x從光線的來源到光線與平面的相交點(diǎn)的距離x=bbmin.xt1.y從光線的來源到光線與平面的相交點(diǎn)的距離y=bbmin.yt1.z從光線的來源到光線與平面的相交點(diǎn)的距離z=bbmin.zt2.x從光線的來源到光線與平面的相交點(diǎn)的距離x=bbmax.xt2.y從光線的來源到光線與平面的相交點(diǎn)的距離y=bbmax.yt2.z從光線的來源到光線與平面的相交點(diǎn)的距離z=bbmax.z在一些實(shí)例中,包圍盒信息可存儲(chǔ)在紋理管線中可存儲(chǔ)許多包圍盒的專用線性緩沖器中。在其它實(shí)例中,專用線性緩沖器可存儲(chǔ)在除紋理管線外的合適位置中,例如系統(tǒng)存儲(chǔ)器、gpu存儲(chǔ)器、專用存儲(chǔ)器和/或其類似者。紋理化單元為緩沖器中的包圍盒編索引,并且在需要時(shí)從所述緩沖器檢索相關(guān)包圍盒。在一些實(shí)例中,光線-盒相交測(cè)試可最初通過由著色器處理器處理的指令開始。當(dāng)著色器處理器基于所述指令的特定子字段中的操作碼確定所述指令是紋理化處理指令時(shí),其將請(qǐng)求發(fā)送到對(duì)應(yīng)于著色器處理器的紋理單元,其中所述紋理單元是紋理管線的部分。在一些實(shí)例中,光線-盒相交測(cè)試使用專門定義的紋理類型(即,緩沖類型)。著色器處理器可發(fā)送紋理單元信息,例如光線的來源、光線的方向和存儲(chǔ)在緩沖器中的包圍盒信息索引。紋理管線可通過存取根據(jù)索引識(shí)別的信息且接著使用過程630的實(shí)例執(zhí)行光線-盒相交來作出響應(yīng)。在某一實(shí)例中,過程630得到關(guān)于光線是否與盒相交的指示,例如指示光線是否與盒相交的布爾值。在一些實(shí)例中,紋理管線將布爾值返回給著色器處理器,且還可能將例如專用數(shù)據(jù)的其它信息返回給著色器處理器。在一些實(shí)例中,專用數(shù)據(jù)可包含與遍歷ads相關(guān)的數(shù)據(jù),例如樹的隨后子級(jí)的指針等等。過程630的實(shí)例充分利用紋理管線內(nèi)部的過濾管線。在一些實(shí)例中,過濾管的基本塊是dp4單元,其可執(zhí)行兩個(gè)4分量向量的點(diǎn)積。圖7是說明過濾器管線723的實(shí)例的功能框圖,所述過濾器管線可用作圖2的紋理管線23的一部分的實(shí)例。過濾器管線723包含點(diǎn)積單元771到774、最小值/最大值塊775、最大值塊776和最小值塊777。點(diǎn)積單元771到774中的每一者經(jīng)配置以計(jì)算點(diǎn)積。在某一實(shí)例中,每一點(diǎn)積單元771到771是固定功能點(diǎn)積硬件單元。點(diǎn)積單元771到774可操作為用于通過紋理管線硬件計(jì)算多個(gè)點(diǎn)積的裝置。最小值/最大值塊775經(jīng)配置以對(duì)點(diǎn)積單元771到774所產(chǎn)生的點(diǎn)積執(zhí)行最小值/最大值函數(shù)。存在可在各種實(shí)例中執(zhí)行的最小值/最大值函數(shù)的若干實(shí)例,且以下更詳細(xì)地論述由最小值/最大值塊775執(zhí)行的最小值/最大值函數(shù)的一個(gè)示例性版本。在一些實(shí)例中,最小值/最大值塊775執(zhí)行最小值/最大值函數(shù)以從所述點(diǎn)積產(chǎn)生tmin.xyz和tmax.xyz。最大值塊776基于來自最小值/最大值塊775的一或多個(gè)輸出執(zhí)行最大值函數(shù),且最小值單元777基于來自最小值/最大值塊775的一或多個(gè)輸出執(zhí)行最小值函數(shù)。最大值塊776和最小值塊777的輸出用于確定光線-形狀相交形狀的結(jié)果,例如在一些實(shí)例中,指示光線與形狀之間是否存在相交的布爾值。塊775到777可一起操作為用于基于由點(diǎn)積單元771到774計(jì)算的多個(gè)點(diǎn)積而確定光線是否與形狀相交的裝置。雖然圖7展示四個(gè)點(diǎn)積單元771到774,但在其它實(shí)例中,可使用更多或更少的點(diǎn)積單元。在一些實(shí)例中,可使用三個(gè)點(diǎn)積單元,而非四個(gè)。在一些實(shí)例中,最大值塊776對(duì)tmin.xyz執(zhí)行最大值函數(shù),且輸出tnear作為所述最大值函數(shù)的結(jié)果。類似地,在一些實(shí)例中,最小值塊777對(duì)tmax.xyz執(zhí)行最小值函數(shù),且輸出tfar作為所述最大值函數(shù)的結(jié)果。在一些實(shí)例中,tnear和tfar用于推導(dǎo)指示光線與形狀之間是否存在相交的布爾值。在一些實(shí)例中,紋理管線包含本身執(zhí)行點(diǎn)積的固定功能硬件單元,其在一些實(shí)例中可對(duì)應(yīng)于點(diǎn)積單元771到774。在一些實(shí)例中,紋理管線還包含本身執(zhí)行最小和最大值運(yùn)算的固定功能硬件單元,其在一些實(shí)例中可對(duì)應(yīng)于塊775到777。在一些實(shí)例中,用于光線-盒相交測(cè)試的算法可如下執(zhí)行:在以上實(shí)例中,●運(yùn)算符表示兩個(gè)2分量向量的點(diǎn)積。所述點(diǎn)積按每分量應(yīng)用(即,分別用于x分量、y分量和z分量)。以下展示標(biāo)量版本。如可見,向量t1的x分量通過執(zhí)行兩個(gè)向量的點(diǎn)積來計(jì)算,其中第一向量具有x分量(其具有由bbmin的x分量給定的值)和y分量(其具有由光線來源的x分量的負(fù)值給定的值),且第二向量具有由標(biāo)準(zhǔn)化倒數(shù)光線方向向量的x分量給定的x分量和由標(biāo)準(zhǔn)化倒數(shù)光線方向向量的x分量給定的y分量。向量t1的y分量通過執(zhí)行兩個(gè)向量的點(diǎn)積而計(jì)算,其中第一向量具有x分量(其具有由bbmin的y分量給定的值)和y分量(其具有由光線來源的y分量的負(fù)值給定的值),且第二向量具有由標(biāo)準(zhǔn)化倒數(shù)光線方向向量的y分量給定的x分量和由標(biāo)準(zhǔn)化倒數(shù)光線方向向量的y分量給定的y分量。向量t1的z分量通過執(zhí)行兩個(gè)向量的點(diǎn)積來計(jì)算,其中第一向量具有x分量(其具有由bbmin的z分量給定的值)和y分量(其具有由光線來源的z分量的負(fù)值給定的值),且第二向量具有由標(biāo)準(zhǔn)化倒數(shù)光線方向向量的z分量給定的x分量和由標(biāo)準(zhǔn)化倒數(shù)光線方向向量的z分量給定的y分量。向量t2以與向量t1相同的方式計(jì)算,除了將bbmax用在bbmin的位置之外。如上所展示,在一些實(shí)例中,在點(diǎn)積計(jì)算之后,獲得向量t1和t2。在一些實(shí)例中,對(duì)t1和t2執(zhí)行最小值和最大值運(yùn)算以產(chǎn)生tmin和tmax。值tmin產(chǎn)生為基于每一對(duì)應(yīng)分量的最小值的向量,而值tmax產(chǎn)生為基于每一對(duì)應(yīng)分量的最大值的向量。也就是說,tmin的x值是t1和t2的x坐標(biāo)的較小者,tmin的y值是t1和t2的y坐標(biāo)的較小者,且tmin的z值是t1和t2的z坐標(biāo)的較小者。類似地,tmax的x值是t1和t2的x坐標(biāo)的較大者,tmax的y值是t1和t2的y坐標(biāo)的較大者,且tmax的z值是t1和t2的z坐標(biāo)的較大者。tnear和tfar的值基于最小值和最大值的確定而從tmin和tmax導(dǎo)出。值tnear是來自向量tmin的每一分量的值當(dāng)中的最大值的標(biāo)量值。類似地,值tfar是來自向量tmax的每一分量的值當(dāng)中的最小值的標(biāo)量值。通過最終比較完成測(cè)試。如果tnear大于tfar或者tfar小于零,那么結(jié)果為假,指示光線與盒并不相交。否則,結(jié)果為真,指示光線與盒確實(shí)相交。這個(gè)最終比較將最大進(jìn)入距離與最小離開距離進(jìn)行比較以確定其是否形成有效間隔(即,進(jìn)入距離<離開距離)。光線與盒在所述間隔有效的情況下相交,且離開距離大于進(jìn)入距離。為了利用紋理管線硬件,在一些實(shí)例中,所述計(jì)算被映射到紋理管線的過濾管線中的dp4單元上。如圖7中所展示,以下內(nèi)容在一些實(shí)例中可用作光線-盒相交測(cè)試的輸入,如下。e=(bbmin,-rayorigin)f=(bbmax,-rayorigin)r=(raydirrcp,raydirrcp)在一些實(shí)例中,dp4單元中的一或多者用于不僅計(jì)算兩個(gè)4分量向量的一個(gè)點(diǎn)積,并且還計(jì)算兩個(gè)2分量向量的兩個(gè)點(diǎn)積。在一些實(shí)例中,為了計(jì)算平板距離,dp4的一些輸入可重復(fù),且一些可能保留不用。下表展示根據(jù)一個(gè)實(shí)例的相關(guān)聯(lián)系:在一些實(shí)例中,為了執(zhí)行光線-盒相交測(cè)試,紋理管接收對(duì)兩個(gè)類別的輸入數(shù)據(jù)——包圍盒信息和光線定義——的存取。在一些實(shí)例中,光線定義和bvh節(jié)點(diǎn)索引存儲(chǔ)在著色器處理器寄存器中并且在每一相交請(qǐng)求情況下傳送到紋理管線中。在一些實(shí)例中,節(jié)點(diǎn)索引在建置過程期間予以計(jì)算,且紋理管線使用線性尋址計(jì)算節(jié)點(diǎn)地址。如上文所論述,包圍盒信息含在bvh樹的每一節(jié)點(diǎn)內(nèi)部。在一些實(shí)例中,包圍盒信息作為經(jīng)線性化樹節(jié)點(diǎn)存儲(chǔ)在存儲(chǔ)器中,每一節(jié)點(diǎn)具有固定元素(節(jié)點(diǎn))大小。在一些實(shí)例中,包圍盒信息可通過紋理管線編址為新的“bvh”紋理類型。盡管包圍盒信息實(shí)際上并非紋理,但被叫做紋理類型;較準(zhǔn)確地,其可稱為緩沖類型而非紋理類型。除新的紋理類型之外,新紋理管線“過濾”模式可執(zhí)行光線-盒相交測(cè)試。紋理管線經(jīng)配置以接納bvh紋理類型,且格式適應(yīng)以下變量:rayorigin、raydirrcp、textureid和節(jié)點(diǎn)索引。在一些實(shí)例中,光線-盒相交測(cè)試的結(jié)果是表示光線與盒是否相交的一位真/假值。然而,在一些實(shí)例中,比起發(fā)送到著色器處理器的數(shù)據(jù),紋理管線發(fā)送回更多數(shù)據(jù)。在一些實(shí)例中,bvh節(jié)點(diǎn)結(jié)構(gòu)含有雜項(xiàng)字段,所述雜項(xiàng)字段含有專用數(shù)據(jù)。雜項(xiàng)字段通常是指關(guān)于下一子級(jí)節(jié)點(diǎn)在何處、葉節(jié)點(diǎn)中的三角形的數(shù)目和/或其類似者的信息。著色器處理器可使用這個(gè)信息用于樹遍歷。在一些實(shí)例中,這個(gè)信息連同光線-盒相交測(cè)試結(jié)果一起被發(fā)送回到著色器處理器。圖8是說明可用作圖6的過程630的實(shí)例的用于光線追蹤的實(shí)例過程(830)的流程圖。在開始框之后,所述過程進(jìn)行到框891,其中g(shù)pu的著色器處理器提取指令。所述過程接著移動(dòng)到框892,其中確定所提取的指令是否是光線-盒相交測(cè)試指令。如果不是,則所述過程返回到返回框,其中其它處理得以重新開始。然而,如果在決策框892處的確定為肯定的,則所述過程前進(jìn)到框893,其中著色器處理器將相交測(cè)試信息發(fā)送到紋理管線硬件。在一些實(shí)例中,發(fā)送到紋理管線硬件的相交測(cè)試信息可包含例如光線的來源、光線的方向和存儲(chǔ)在緩沖器中的包圍盒信息的索引以及用于光線-盒相交測(cè)試的專門的緩沖器類型的索引的信息。所述過程接著進(jìn)行到框831,其中紋理管線硬件計(jì)算多個(gè)點(diǎn)積。所述過程接著移動(dòng)到框832,其中紋理管線硬件基于所述多個(gè)點(diǎn)積確定光線是否與塊相交。所述過程接著進(jìn)行到框833,其中光線-盒相交測(cè)試的結(jié)果從紋理管線硬件發(fā)送到著色器處理器。所述過程接著前進(jìn)到返回框,其中其它處理得以重新開始。如先前所論述,關(guān)于確定框892(在其處作出關(guān)于指令是否為光線-盒相交測(cè)試的確定),指令可依據(jù)具有識(shí)別其為紋理指令的操作碼而被識(shí)別為光線-盒相交測(cè)試指令。如果所述指令中的操作碼被識(shí)別為指示所述指令是紋理處理指令,則決策框892處的確定是肯定的。圖9是說明可用作圖6的框632和/或圖8的框832的實(shí)例的用于確定光線是否與盒相交的實(shí)例過程(832)的流程圖。在開始框之后,所述過程進(jìn)行到框981,其中紋理管線硬件確定每一點(diǎn)積的每分量最小值和每一點(diǎn)積的每分量最大值。舉例來說,在一些實(shí)例中,所計(jì)算的點(diǎn)積是兩個(gè)三分量向量,每一分量具有x分量、y分量和z分量。在框981處,紋理管線硬件確定每一點(diǎn)積的每分量最小值,其可給定為tmin,使得tmin的x分量是來自點(diǎn)積中的每一者的x分量當(dāng)中的最小值,tmin的y分量是來自點(diǎn)積中的每一者的y分量當(dāng)中的最小值,且tmin的z分量是來自點(diǎn)積中的每一者的y分量當(dāng)中的最小值。類似地,在框981處,紋理管線硬件確定每一點(diǎn)積的每分量最大值,其可給定為tmax,使得tmax的x分量是來自點(diǎn)積中的每一者的x分量當(dāng)中的最大值,tmax的y分量是來自點(diǎn)積中的每一者的y分量當(dāng)中的最大值,且tmax的z分量是來自點(diǎn)積中的每一者的y分量當(dāng)中的最大值。所述過程接著移動(dòng)到框982,其中紋理管線硬件確定來自所述每分量最小值當(dāng)中的最大值和來自所述每分量最大值當(dāng)中的最小值。如上文所論述,確定每一點(diǎn)積的每分量最小值(在先前框981處),其可給定為tmin,使得tmin的x分量是來自點(diǎn)積中的每一者的x分量當(dāng)中的最小值,tmin的y分量是來自點(diǎn)積中的每一者的y分量當(dāng)中的最小值,且tmin的z分量是來自點(diǎn)積中的每一者的y分量當(dāng)中的最小值。因此,tmin是具有x分量、y分量和z分量的向量。在框982處,紋理管線硬件確定tmin的x分量的值、tmin的y分量的值和tmin的z分量的值中的最大值,且指派對(duì)應(yīng)于最大進(jìn)入距離的tnear值。此外,在一些實(shí)例中,確定每一點(diǎn)積的每分量最大值(在先前框981處),其可給定為tmax,使得tmax的x分量是來自點(diǎn)積中的每一者的x分量當(dāng)中的最大值,tmax的y分量是來自點(diǎn)積中的每一者的y分量當(dāng)中的最大值,且tmax的z分量是來自點(diǎn)積中的每一者的y分量當(dāng)中的最大值。因此,tmax是具有x分量、y分量和z分量的向量。在框982處,紋理管線硬件確定tmax的x分量的值、tmax的y分量的值和tmax的z分量值中的最小值,且將所述最小值指派為對(duì)應(yīng)于最小離開距離的tfar值。所述過程接著移動(dòng)到?jīng)Q策框983,其中紋理管線硬件作出關(guān)于是否存在有效間隔(即,tfar不小于零)及離開距離(tfar)大于進(jìn)入距離(tnear)的確定。如果是,則所述過程前進(jìn)到框984,其中紋理管線硬件指示光線與盒相交。所述過程接著進(jìn)行到返回框,其中其它處理得以重新開始。然而,如果決策框983處的確定是否定的,則所述過程進(jìn)行到框985,其中紋理管線硬件指示光線不與盒相交。所述過程接著進(jìn)行到返回框,其中其它處理得以重新開始。應(yīng)認(rèn)識(shí)到,取決于實(shí)例,本文中所描述的技術(shù)中的任一者的某些動(dòng)作或事件可依不同順序執(zhí)行,可添加、合并或全部省略(例如,實(shí)踐所述技術(shù)未必需要所有所描述動(dòng)作或事件)。此外,在某些實(shí)例中,可(例如)通過多線程處理、中斷處理或多個(gè)處理器同時(shí)而非順序地執(zhí)行動(dòng)作或事件。在一或多個(gè)實(shí)例中,所描述的功能可在硬件、軟件、固件或其任何組合中實(shí)施。如果以軟件實(shí)施,則所述功能可以作為一或多個(gè)指令或代碼存儲(chǔ)在計(jì)算機(jī)可讀媒體上或通過計(jì)算機(jī)可讀媒體傳輸,并且由基于硬件的處理單元執(zhí)行。計(jì)算機(jī)可讀媒體可包含計(jì)算機(jī)可讀存儲(chǔ)媒體,其對(duì)應(yīng)于例如數(shù)據(jù)存儲(chǔ)媒體的有形媒體、或包含(例如)根據(jù)通信協(xié)議促進(jìn)計(jì)算機(jī)程序從一處到另一處的傳送的任何媒體的通信媒體。以這種方式,計(jì)算機(jī)可讀媒體大體上可對(duì)應(yīng)于(1)不包含傳播信號(hào)本身的有形計(jì)算機(jī)可讀存儲(chǔ)媒體或(2)例如信號(hào)或載波的通信媒體。數(shù)據(jù)存儲(chǔ)媒體可為可由一或多個(gè)計(jì)算機(jī)或一或多個(gè)處理器存取以檢索用于實(shí)施本發(fā)明中所描述的技術(shù)的指令、代碼和/或數(shù)據(jù)結(jié)構(gòu)的任何可用媒體。計(jì)算機(jī)程序產(chǎn)品可包含計(jì)算機(jī)可讀媒體。借助于實(shí)例而非限制,此類計(jì)算機(jī)可讀存儲(chǔ)媒體可包含ram、rom、eeprom、cd-rom或其它光盤存儲(chǔ)裝置、磁盤存儲(chǔ)裝置或其它磁性存儲(chǔ)裝置、快閃存儲(chǔ)器,或可用以存儲(chǔ)呈指令或數(shù)據(jù)結(jié)構(gòu)形式的所要程序代碼且可由計(jì)算機(jī)存取的任何其它媒體。另外,適當(dāng)?shù)貙⑷魏芜B接稱為計(jì)算機(jī)可讀媒體。舉例來說,如果使用同軸電纜、光纖纜線、雙絞線、數(shù)字訂戶線(dsl)或例如紅外線、無線電和微波的無線技術(shù)從網(wǎng)站、服務(wù)器或其它遠(yuǎn)程源傳輸指令,則所述同軸電纜、光纖纜線、雙絞線、dsl或例如紅外線、無線電和微波的無線技術(shù)包含在媒體的定義中。然而,應(yīng)理解,計(jì)算機(jī)可讀存儲(chǔ)媒體和數(shù)據(jù)存儲(chǔ)媒體并不包含連接、載波、信號(hào)等等,而是針對(duì)有形存儲(chǔ)媒體。如本文所使用,磁盤和光盤包含壓縮光盤(cd)、激光光盤、光學(xué)光盤、數(shù)字多功能光盤(dvd)、軟性磁盤和藍(lán)光光盤,其中磁盤通常以磁性方式再現(xiàn)數(shù)據(jù),而光盤用激光以光學(xué)方式再現(xiàn)數(shù)據(jù)。以上各者的組合也應(yīng)包含在計(jì)算機(jī)可讀媒體的范圍內(nèi)。指令可由一或多個(gè)處理器執(zhí)行,例如一或多個(gè)數(shù)字信號(hào)處理器(dsp)、通用微處理器、專用集成電路(asic)、現(xiàn)場(chǎng)可編程邏輯陣列(fpga),或其它等效的集成或離散邏輯電路。因此,如本文中所使用的術(shù)語“處理器”可指代前述結(jié)構(gòu)或適合實(shí)施本文中所描述的技術(shù)的任何其它結(jié)構(gòu)中的任一者。另外,在一些方面中,本文中所描述的功能性可在經(jīng)配置以用于編碼和解碼的專用硬件和/或軟件模塊內(nèi)提供,或并入組合編解碼器中。另外,所述技術(shù)可完全實(shí)施于一或多個(gè)電路或邏輯元件中。本發(fā)明的技術(shù)可在廣泛多種裝置或設(shè)備中實(shí)施,所述裝置或設(shè)備包含無線手持機(jī)、集成電路(ic)或一組ic(例如,芯片組)。本發(fā)明中描述各種組件、模塊或單元以強(qiáng)調(diào)經(jīng)配置以執(zhí)行所揭示的技術(shù)的裝置的功能方面,但未必需要通過不同硬件單元實(shí)現(xiàn)。實(shí)際上,如上文所描述,各種單元可結(jié)合合適的軟件和/或固件組合在編解碼器硬件單元中,或者通過互操作硬件單元的集合來提供,所述硬件單元包含如上文所描述的一或多個(gè)處理器。已描述各種實(shí)例。這些實(shí)例和其它實(shí)例在以下權(quán)利要求書的范圍內(nèi)。當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
新闻| 祁门县| 新泰市| 南投市| 张家港市| 龙门县| 高阳县| 太康县| 岑巩县| 北宁市| 连平县| 天镇县| 玛沁县| 平顺县| 南江县| 怀柔区| 华坪县| 汝阳县| 宁河县| 安宁市| 莱西市| 津南区| 玛多县| 林西县| 夏河县| 寿宁县| 石棉县| 杂多县| 疏附县| 准格尔旗| 岑溪市| 泾川县| 大足县| 河源市| 茌平县| 普陀区| 防城港市| 崇明县| 方城县| 湖南省| 十堰市|