本發明專利技術的多個方面包括根據示例性架構的實現光線跟蹤功能的系統。在一個例子中,針對加速結構的元素將光線收集到集合中,在一些例子中,這些元素與構成進行光線跟蹤的場景的對象相關聯。還可以在輸出緩存器中收集檢測到的光線相交的指示,并且在一些例子中,該輸出緩存器可以包括多個部分,每個部分與一個場景對象相關聯,或者該輸出緩存器可以包括要在描影期間知悉的代碼的公共部分。可以按塊讀取方式訪問緩存器內容。相交描影資源可以載入數據以用于對標識出的光線的相交進行描影并在本地存儲該數據以供對這些相交進行描影。
【技術實現步驟摘要】
【國外來華專利技術】
以下涉及利用光線跟蹤再現由形狀構成的三維場景的二維表示,更具體而言,涉及在三維場景中對光線進行相交測試的系統、方法和裝置。
技術介紹
在計算機圖形學技術中,利用光線跟蹤從三維場景描述再現照片真實二維圖像是公知的。光線跟蹤通常涉及獲得由幾何形狀構成的場景描述,該幾何形狀描述了場景中結構的表面并且可以稱為基元(primitive)。常見的基元形狀是三角形。從視點(“攝像機”)跟蹤可見的光線到場景中;各光線被發出并穿過在二維表示中該光線能夠影響到的相應像素。利用場景基元來測試光線的相交以識別各光線的第一相交基元(如果存在的話)。在識別出給定光線的相交后,與該基元相關聯的描影器(shader)確定接下來進行何種操作。例如,如果該基元是鏡(mirror)的一部分,則發出反射光線以確定光是否從光源射到該相交點,或者在更復雜的情況下,可以模擬亞表面(subsurface)反射和散射, 這會導致對發出的即將相交的不同光線進行測試。在另外的例子中,如果一個對象的表面是粗糙的而非光滑的,則該對象的描影器發出光線來模擬該表面上的漫反射。這樣,由于仍需要確定何種光照在基元上,因此在借助于給定光線確定光能是否可以到達像素以及何種光能可以到達像素時,第一步是找到光線與基元之間的交點。因此,最常規的算法隨意地創建當光線對場景進行跟蹤時的光線樹,在該場景中該樹沿著各分支持續直到其離開該場景或者射到不發出新光線的光源。因此,對于射到發光對象的那些分支而言,這些分支在基元交點累積(roll up),從而確定了沿著該路徑各基元交點對射到該基元交點的光的影響。最后,可以確定最初發出的攝像機光線的光的顏色和強度并存儲在緩存器中。通過提供對要再現的二維場景的像素的不同部分進行操作的處理資源,能夠直觀地使光線跟蹤并行化。然而,僅提供更多的計算能力并不一定能夠使光線跟蹤速度和效率成適當比例地增大。其中的一個原因是,這種并行化無法解釋數據是如何構成場景,或者無法解釋能夠以有效方式訪問使得跟蹤效率增大的加速結構。仍需對光線跟蹤架構進行多種改進。
技術實現思路
在一個方面中,光線跟蹤系統包括輸入部,其用于接收光線信息,其中已發現該光線信息與構成正進行光線跟蹤的三維場景的基元相交。該系統還包括多個緩存器。排序器耦合至所述輸入部和所述多個緩存器。所述排序器被配置為通過使用一個或更多個公共描影器代碼和公共描影器數據,在相應緩存器中將希望進行描影的光線的信息組合在一起而在所述多個緩存器之間劃分所接收的信息。該系統還包括輸出部,其用于將所選擇的緩存器的內容輸出至計算資源,該計算資源被配置為對所選擇的緩存器中存儲有其信息的光線的相交進行描影。在一個實施方式中,各光線的所述信息包括該光線的標識符。除了光線識別信息以外,可以與潛在相交的光線的標識信息相關聯地存儲可能相交的一個或更多個基元的標識信息。以最接近的檢測到的相交的特征的其他信息,還可以在緩存器中存儲或者在進行緩存器選擇時從存儲器檢索得到。根據情況,輸出部可以從緩存器提供信息作為流,例如光線標識符以及與這些光線標識符相關聯的其他信息的流。在一些實施方式中,與給定光線潛在相交的基元可以具有相應的標識符。這些標識符用于確定這些基元作為其一部分的對象。進而,可以使用該對象的共性來推斷在對涉及不同光線的相交進行描影時使用的一個或更多個描影器代碼和描影器數據的共性。在一些實施方式中,對象可以與離散描影器代碼模塊相關聯,并且在一些實施方式中,各基元可以與描影器代碼模塊或部分描影器代碼模塊相關聯。根據上述實施方式和多個方面的光線跟蹤系統還可以包括被配置為對光線相交進行描影的計算資源,該計算資源被配置為在對來自所選擇的緩存器的光線的所指示的相交進行描影期間,對檢索得到的描影數據在高速緩存中的存儲進行設置以供本地訪問。被配置為對相交進行描影的計算資源還可以被配置為執行多個標識出的基元的最終相交測試以標識出要進行描影的給定光線的真實相交,該多個標識出的基元可能已經與給定光線相交。還可以通過介于相交測試與描影之間的計算資源來實現這種功能。任意這種光線跟蹤系統可以通過將光線標識符從所選擇的緩存器流傳輸至用于對其相應的相交進行描影的計算資源而輸出光線信息。示例性光線跟蹤系統的其他方面可以包括具有相交測試輸出部的相交測試資源, 該相交測試輸入部用于接收要在所述相交測試資源中開始相交測試的光線的標識符。這種光線標識符可以從多個描影器代碼模塊接收,并且可以成塊地輸出以開始對這些光線標識符所標識的光線進行相交測試,優選的是,同時對這些光線標識符所標識的光線進行相交測試。這種同時測試可以由包括具有多個測試單元的相交測試資源的系統來執行,并且該系統被配置為在所述測試單元之間分派光線標識符塊以同時測試所標識的光線。輸入部被配置為采集從所述多個測試單元輸出的光線的標識符作為所述光線信息。其他方面包括光線跟蹤方法。該方法的一個例子包括提供對包括三維場景的對象進行定義的數據,該數據構成基元的定義數據,該基元包括所述對象;該方法還包括定義要處理的多個光線,對各光線的處理包括利用所述基元對如果存在的各最接近相交進行標識,以及通過執行一個或更多個代碼模塊對這種相交進行描影。該方法還包括以下步驟 輸出已標識出最接近相交的分組光線信息,在對標識出的光線的相交進行描影期間基于一個或更多個的代碼模塊的期望共性和要使用的數據的期望共性而形成所述多組。在一些這樣的方法中,該輸出步驟包括在供輸出的緩存器中存儲所述多組的光線信息。該光線信息可以包括光線標識符、各標識出的光線所相交的一個或更多個基元的標識符、以及在一些實施方式中僅包括各光線首先且實際相交的基元。在這樣的方法中,標識出相應的最接近相交的步驟可以包括生成所相交的基元的標識符與這些基元相交的光線的標識符之間的關聯。基元的標識符可以用于確定要對涉及這些基元的相交進行描影時所執行的代碼模塊的期望共性。這種示例性方法還可以進一步包括在分布式存儲器中存儲所述多個光線的定義數據,并標識出多個測試單元中所述多個光線的相應最接近相交。各個測試單元具有所分配的至所述分布式存儲器的端口。所述分布式存儲器還存儲了數據,以用于標識出各個光線的當前最接近的檢測到的相交。在系統和相對應的方法中,控制器可以制作光線的集合,至少一些集合與構成三維場景的相應場景對象相關聯。可以針對相交測試和描影二者形成所述集合。在一些例子中,所形成的用于描影的集合可以僅限于已標識出實際相交的光線。在其他例子中,可以由加速結構的葉節點形成集合,其中已將這些葉節點定義為包圍公共場景對象的基元(還可以基于所確定的一個或更多個描影器代碼和描影器數據的共性而定義這種葉節點)。其他方面包括提供光線跟蹤系統的方法,該方法包括提供相交測試資源,該相交測試資源可操作用于對三維場景中的多個光線同時進行相交測試,從而對所述多個光線中的至少一些光線的檢測到的有效相交進行標識。該方法還包括提供相交描影資源,并提供相交測試資源與相交描影資源之間的通信,該相交描影資源被配置為運行描影代碼以對檢測到的有效光線相交進行描影。可以通過輸出檢測到的相交的一組或更多組信息而實現所述通信,其中,基于利用一個或更多個公共描影代碼和公共描影數據對各組的各個相交進行描影這一預期而確定所述多組。可以通過基本文檔來自技高網...
【技術保護點】
1.一種光線跟蹤系統,其包括:輸入部,其用于接收光線的信息,其中該光線的信息與構成正進行光線跟蹤的三維場景的基元相交;多個緩存器;排序器,其耦合至所述輸入部和所述多個緩存器,并被配置為通過使用一個或更多個公共描影器代碼和公共描影器數據在相應緩存器中將希望進行描影的光線的信息組合在一起,而在所述多個緩存器之間劃分所接收的信息;和輸出部,其用于將所選擇的緩存器的內容輸出至計算資源,該計算資源被配置為對所選擇的緩存器中存儲有其信息的光線的相交進行描影。
【技術特征摘要】
【國外來華專利技術】...
【專利技術屬性】
技術研發人員:路克·堤爾曼·彼特森,
申請(專利權)人:柯斯提克繪圖有限公司,
類型:發明
國別省市:US
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。