TWI822330B - 用量化及區間表示之射線相交測試 - Google Patents
用量化及區間表示之射線相交測試 Download PDFInfo
- Publication number
- TWI822330B TWI822330B TW111134755A TW111134755A TWI822330B TW I822330 B TWI822330 B TW I822330B TW 111134755 A TW111134755 A TW 111134755A TW 111134755 A TW111134755 A TW 111134755A TW I822330 B TWI822330 B TW I822330B
- Authority
- TW
- Taiwan
- Prior art keywords
- representation
- interval
- ray
- primitive
- intersection
- Prior art date
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 100
- 238000013139 quantization Methods 0.000 title claims description 17
- 238000000034 method Methods 0.000 claims abstract description 65
- 238000012545 processing Methods 0.000 claims description 46
- 238000013461 design Methods 0.000 claims description 38
- 230000033001 locomotion Effects 0.000 claims description 26
- 238000003860 storage Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 13
- 238000004519 manufacturing process Methods 0.000 claims description 12
- 239000004065 semiconductor Substances 0.000 claims description 8
- 238000010008 shearing Methods 0.000 claims description 3
- 238000011002 quantification Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 32
- 230000015654 memory Effects 0.000 description 27
- 239000012634 fragment Substances 0.000 description 24
- 230000008901 benefit Effects 0.000 description 18
- 238000007667 floating Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 8
- 230000009466 transformation Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 239000000463 material Substances 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000003542 behavioural effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 230000036541 health Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013101 initial test Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000003490 calendering Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 230000009291 secondary effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/21—Collision detection, intersection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Analysing Materials By The Use Of Radiation (AREA)
Abstract
揭示關於用於在圖形處理器中之射線追蹤之基元相交測試的技術。在一些實施例中,一圖形處理器包括經組態以執行相交測試之射線相交電路系統,該相交測試包括:量化該基元之一第一表示以產生該基元之一經降低精度區間表示;量化該射線之一第一表示以產生該射線之一經降低精度區間表示;及使用區間算術,基於該基元之該區間表示的座標及該射線之該區間表示的座標而判定一初始相交結果。該初始相交結果可係保守結果,使得由該初始相交結果所指示之一遺漏保證不是對該基元之該第一表示及該射線之第一表示的一命中。所揭示技術可相對於傳統技術改善效能、減少功率消耗或兩者。
Description
本揭露大致係關於圖形處理器,且更具體地係關於用於射線追蹤的基元相交測試。
在電腦圖形中,射線追蹤係一種演現技術,其用於藉由將光線路徑作為在一影像平面中之像素追蹤而產生影像,並模擬其與虛擬物體會遇的效應。射線追蹤可允許在場景中之任兩個點之間的三維可見度解析度,其亦係其大部分運算費用來源。一般射線追蹤器取樣在光傳播相反方向開始於攝影機且傳播至場景中(而非來自光源)而穿過場景的光路徑(此有時稱為「後向射線追蹤」(backward ray tracing))。開始於攝影機具有僅追蹤對於攝影機可見之射線之益處。此系統可模型化一光柵(rasterizer),其中射線僅停止於該第一表面處,並且叫用一著色器(類似於一片段著色器)以運算一顏色。亦模型化更常見的次要效應,其中場景元素(諸如相互漫反射(diffuse inter-reflection)及透射)之間的照明交換。評估表面反射性質之著色器可叫用進一步相交查詢(例
如,產生新射線)以擷取從其他表面傳入的照明。此種遞迴程序具有許多公式化,但通常稱為路徑追蹤。
實施射線追蹤之圖形處理器一般提供相對於傳統光柵化系統之更實際的場景及照明效應。然而,射線追蹤一般係運算上昂貴的。改善射線追蹤技術可改善圖形場景中的寫實性、改善效能(例如,允許每圖框追蹤更多射線、更複雜場景的追蹤、或兩者)、降低功率消耗(其在電池供電裝置中可特別重要)等。
射線相交查詢可藉由著色器、藉由專用硬體、或藉由兩者之組合來執行。不同類型的相交查詢可提供不同類型的資訊。例如,一「最接近命中(closest hit)」查詢可定位沿射線且在其中射線係有效之參數區間內的最接近相交幾何(此可係最常見的查詢類型)。一「任何命中(any hit)」查詢可指示是否存在沿該射線且在該參數區間內的任何相交幾何。此類型的查詢可用於陰影射線,例如,以判定該場景中的一點具有對該光的可見度或被遮擋。一旦已判定相交幾何,該幾何可係基於該等相交而著色,且繼而可例如從反射表面產生用於相交測試之更多射線。
運動模糊係當正在記錄的影像在單一曝光的記錄期間改變時所發生的現象。例如,具有足夠長曝光時間的移動貨運列車的相片可在非移動物體不模糊的同時顯示模糊化的列車。在電腦圖學背景中,圖形處理器可為圖形資料的圖框模擬運動模糊效應。在此背景中,動畫圖形基元(例如,三角形)可在虛擬攝影機的快門打開區間(在本文中亦稱為運動模糊區間)期間以多個不同位置模型化,且因此可影響圖框中的多個位置的像素值,以導致模糊效應。
一般將例如運動模糊區間內的精確時間戳記指派給各射線。當實施射線追蹤及運動模糊二者時,用於射線/基元相交的測試在處理器資源及功率消耗方面可係昂貴的。
100:處理流程
110:變換及照明程序
115:剪輯程序
120:光柵化程序
130:著色程序
135:圖框緩衝器
150:圖形單元
160:可程式化著色器
165:紋理處理單元
170:影像寫入單元
175:片段管
180:記憶體介面
185:頂點管
190:射線相交點加速器
210:元件
220:基於區間算術之低精度測試電路系統
230:元件
242:元件
244:元件
246:元件
250:元件
260:元件
270:元件
410:內插電路系統
510A:降低轉換電路
510B:降低轉換電路
510C:降低轉換電路
520A:減法電路
520B:減法電路
530:倒數電路
540A:區間乘積及比例調整電路
540B:區間乘積及比例調整電路
550A:浮點至固定點區間轉換電路
550B:浮點至固定點區間轉換電路
710:電路
810:電路系統
910:三角形對
920:循序對處理電路系統
1010:邊緣
1020:界限
1030:界限
1120:低精度測試電路系統
1410:方塊
1420:方塊
1430:方塊
1510:方塊
1520:方塊
1600:裝置
1610:網狀架構
1620:運算複合體
1625:匯流排介面單元
1630:快取
1635:核心
1640:核心
1645:快取/記憶體控制器
1650:I/O橋接器
1665:顯示單元
1675:圖形單元
1700:系統或裝置
1710:桌上型電腦
1720:膝上型電腦
1730:平板電腦
1740:蜂巢式或行動電話
1750:電視
1760:穿戴式裝置
1770:基於雲端的服務
1780:裝置
1790:車輛
1810:非暫時性電腦可讀媒體
1815:設計資訊
1820:半導體製造系統
1830:積體電路
〔圖1A〕係繪示根據一些實施例之實例圖形處理操作概要的圖。
〔圖1B〕係繪示根據一些實施例之實例圖形單元的方塊圖。
〔圖2A〕係繪示根據一些實施例之實例低精度測試電路系統的方塊圖。
〔圖2B〕係繪示根據一些實施例之實例相交測試技術的方塊圖。
〔圖3〕係繪示根據一些實施例之在初始相交測試中使用之各種值的實例區間表示的圖。
〔圖4〕係繪示根據一些實施例之經組態以產生在運動模糊區間中之經內插基元之區間表示的實例內插電路系統的圖。
〔圖5〕係繪示根據一些實施例之經組態以產生剪切因數區間之實例剪切因數電路系統的方塊圖。
〔圖6〕係繪示根據一些實施例之經組態以使用剪切因數區間來轉譯及剪切頂點的實例電路系統的圖。
〔圖7〕係繪示根據一些實施例之經組態以產生初始相交測試結果的實例電路系統的電路圖。
〔圖8〕係繪示根據一些實施例之經組態以產生經修改區間乘積的實例電路系統的圖。
〔圖9〕係繪示根據一些實施例之實例三角形對及循序對處理電路系統的圖。
〔圖10〕係繪示根據一些實施例之量化基元表示及結論性命中之區域的實例界限的圖。
〔圖11〕係繪示根據一些實施例之經組態以產生命中或不確定的輸出的實例測試電路系統的圖。
〔圖12〕係繪示根據一些實施例之經組態以產生初始相交測試結果的實例電路系統的電路圖。
〔圖13〕係繪示根據一些實施例之根據不同排序(包括由中間而外排序)的實例基元測試序列的圖。
〔圖14〕係繪示根據一些實施例之實例方法的流程圖。
〔圖15〕係繪示根據一些實施例之另一實例方法的流程圖。
〔圖16〕係繪示根據一些實施例之實例計算裝置的方塊圖。
〔圖17〕係繪示根據一些實施例之所揭示之系統及裝置的實例應用的圖。
〔圖18〕係繪示根據一些實施例之儲存電路設計資訊的實例電腦可讀媒體的方塊圖。
[相關申請案之交互參照]
本申請案主張於2021年9月24日申請之美國臨時專利申請案第63/248,143號之優先權,其全文以引用方式併入本文中。
在所揭示之實施例中,首先執行一較低精度硬體三角形測試作為一過濾器,並且若該較低精度測試判定一潛在命中時,則執行一較高精度三角形測試。此低精度測試可係保守的(例如,其可產生偽命中,但不應產生偽遺漏)。於2020年12月29日申請的美國專利申請案第17/136,542號且標題為「Primitive Testing for Ray Intersection at Multiple Precisions」全文以引用方式併入本文中。’542申請案描述以不同精度之測試的實例技術,及如何可在整個降低精度測試中追蹤由於輸入之量化的潛在誤差,以確保結果是保守的。
本揭露使用區間算術以追蹤及定界使用一或多個輸入之量化的硬體基元測試的潛在量化誤差。在一些實施例中,所揭示之技術可有利地提供比’542申請案之實施例的更緊密的誤差界限。進一步,在一些實施方案中,所揭示之技術可使用經降低之電路面積以在特定精度下執行基元測試。
進一步,下文詳細論述之所揭示實施例產生一經內插空間座標區間以表示一運動模糊區間中之一給定射線時間的一保守相交測試的一移動三角形。進一步,所揭示之技術提供用於移動及非移動三角形對的有效編碼及處理技術。
又進一步,所揭示之技術可使用一較低精度相交測試提供決定性命中結果,而不以原始精度執行相交測試(例如,用於「任何命中(any-hit)」的射線)。
最後,用於加速資料結構的所揭示遍歷排序(traversal ordering)技術(例如「由中間而外」排序,而非由前而後或由後而前)可改善效能、減少功率消耗或兩者,以用於某些類型之射線的遍歷。
參考圖1A,顯示的係繪示一種用於處理圖形資料之實例處理流程100的流程圖。在一些實施例中,變換及照明程序110可涉及:基於經界定的光源位置、反射率等,處理自一應用程式接收之用於頂點的照明資訊;將頂點組裝成多邊形(例如三角形);及基於三維空間中的位置將多邊形變換成正確尺寸及定向。剪輯程序115可涉及捨棄落在一可視區外的多邊形或頂點。光柵化程序120可涉及例如基於多邊形之頂點的紋理座標而在各多邊形內界定片段以及分派用於各片段的初始色值。片段可針對其所重疊之像素指定屬性,但可基於組合多個片段(例如,在一圖框緩衝器中)、忽略一或多個片段(例如,若其等經其他物件所覆蓋)、或二者來判定實際像素屬性。著色程序130可涉及基於照明、陰影、塊形映射、半透明度等變更像素組件。可在一圖框緩衝器135中組譯經著色的像素。現代GPU一般包括可程式化著色器,其等允許由應用程式開發人員客製化著色及其他處理程序。因此,在各種實施例中,圖1A之實例元件以各種順序執行、並行地執行、或省略。亦可實施額外的處理程序。
現參考圖1B,顯示繪示根據一些實施例之圖形單元150的簡化方塊圖。在所繪示之實施例中,圖形單元150包括可程式化著色器160、頂點管185、片段管175、紋理處理單元(texture processing unit,TPU)165、影像寫入單元170、及記憶體介面180。在一些實施例中,圖形單元150經組態以使用可程
式化著色器160處理頂點及片段資料兩者,該可程式化著色器可經組態以使用多個執行管線或執行個體來並行處理圖形資料。
在所繪示的實施例中,頂點管185可包括經組態以處理頂點資料的各種固定功能硬體。頂點管185可經組態以與可程式化著色器160通訊以協調頂點處理。在所繪示之實施例中,頂點管185經組態以將經處理資料發送至片段管175或可程式化著色器160以供進一步處理。
在所繪示的實施例中,片段管175可包括經組態以處理像素資料的各種固定功能硬體。片段管175可經組態以與可程式化著色器160通訊以協調片段處理。片段管175可經組態以對來自頂點管185或可程式化著色器160的多邊形執行光柵化,以產生片段資料。頂點管185及片段管175可耦接至記憶體介面180(未圖示耦接)以存取圖形資料。
在所繪示之實施例中,可程式化著色器160經組態以接收來自頂點管185的頂點資料及來自片段管175及紋理處理單元165的片段資料。可程式化著色器160可經組態以對頂點資料執行頂點處理任務,其可包括頂點資料的各種變換及調整。在所繪示的實施例中,例如,可程式化著色器160亦經組態以在像素資料上執行片段處理任務(諸如紋理化及著色)。可程式化著色器160可包括用於並行地處理資料的多組多個執行管線。
在一些實施例中,可程式化著色器包括經組態以平行執行一或多個不同的SIMD群組的管線。各管線可包括經組態以在給定時脈循環中執行操作,諸如提取、解碼、發布、執行等的各種級。處理器「管線(pipeline)」的概念經充分理解,且係指將處理器在指令上執行的「工作(work)」分成多個級的概念。在一些實施例中,指令解碼、調度、執行(亦即,執行
(performance))、及引退可係不同管線級的實例。具有各種元件/部分順序的許多不同管線架構係可行的。各種管線級在一或多個處理器時脈循環期間在一指令上執行此類步驟,接著將該指令或與該指令關聯的操作傳遞至其他級以用於進一步處理。
用語「SIMD群組(SIMD group)」意欲根據其所充分理解的意義解釋,其包括一組執行緒,針對該等執行緒的處理硬體使用不同執行緒之不同輸入資料並行地處理相同指令。各種類型的電腦處理器可包括經組態以執行SIMD指令的管線組。例如,圖形處理器常包括可程式化著色器核心,該等可程式化著色器核心經組態以依SIMD方式執行針對一組相關執行緒的指令。可用於SIMD群組的名稱的其他實例包括:波前(wavefront)、團(clique)、或集(warp)。SIMD群組可係較大執行緒群組的一部分,該較大執行緒群組可基於電腦的平行處理能力而分解成若干個SIMD群組。在一些實施例中,各執行緒被指派給一硬體管線,該硬體管線提取針對該執行緒的運算元,並與針對該組執行緒的其他管線並行地執行該等特定操作。請注意,處理器可具有大量管線,使得多個分開的SIMD群組亦可並行地執行。在一些實施例中,各執行緒具有私用運算元儲存區,例如在一暫存器檔案中。因此,讀取來自暫存器檔案的特定暫存器可提供用於SIMD群組中之各執行緒的暫存器版本。
在一些實施例中,多個可程式化著色器單元160係包括在GPU中。在此等實施例中,全域控制電路系統可將工作指派給GPU的不同子部分,其可繼而將工作指派給著色器核心以由著色器管線處理。
在所繪示的實施例中,紋理處理單元165經組態以排程來自可程式化著色器160的片段處理任務。在一些實施例中,紋理處理單元165經組態以
預提取紋理資料且將初始色彩指派給片段,以供可程式化著色器160進一步處理(例如,經由記憶體介面180)。例如,紋理處理單元165可經組態以依正規化整數格式或浮點格式提供片段組件。在一些實施例中,紋理處理單元165經組態以提供待藉由可程式化著色器160中之一群組四個的執行管線處理之呈2x2格式之一群組四個的片段(一「片段方塊(fragment quad)」)。
在一些實施例中,影像寫入單元(image write unit,IWU)170經組態以儲存一影像之經處理圖塊,且可在一經演現影像經傳輸以供顯示或經傳輸至記憶體以供儲存之前執行操作。在一些實施例中,圖形單元150經組態以執行基於圖塊的延遲演現(tile-based deferred rendering,TBDR)。在基於圖塊的演現中,可分開處理螢幕空間的不同部分(例如,像素的正方形或矩形)。記憶體介面180可促成與各種實施例中之各種記憶體階層之一或多者的通訊。
在所繪示之實例中,圖形單元150包括射線相交加速器(ray intersection accelerator,RIA)190,其可包括經組態以執行各種射線相交操作的硬體,如下文所詳細描述者。
圖2A係繪示根據一些實施例之實例量化電路系統及低精度相交測試電路系統的方塊圖。在所繪示之實施例中,圖形處理器包括基於區間算術之低精度測試電路系統220。
在一些實施例中,量化電路系統經組態以量化射線資料及產生量化值之區間表示。在各種實施例中,所產生之區間的上界限及下界限係使用
比輸入表示低的精度表示,保證該區間涵蓋以輸入精度之初始值。應注意,基元資料亦可依量化區間格式(例如,依加速資料結構)儲存。
在所繪示之實施例中,基於區間算術之低精度測試電路系統220經組態以藉由對區間表示執行區間算術而產生保守相交結果。保守相交結果可保證由基於區間算術之低精度測試電路系統220傳訊的遺漏將不會導致較高精度相交測試之命中(例如,在量化之前以輸入精度操作值)。在此等實施例中,來自基於區間算術之低精度測試電路系統220之正輸出指示一潛在命中。
在各種實施例中,相對於傳統技術,執行較低精度初始相交測試可有利地改善效能、減少功率消耗、或兩者。具體而言,由初始測試產生的遺漏或決定性命中可避免需要針對給定射線及基元執行更高精度測試。因此,兩者皆改善測試之準確度(例如,藉由收緊誤差界限)且改善初始測試本身之效能或功率消耗可具有技術優勢。
圖2B係繪示根據一些實施例之整體實例相交測試技術的流程圖。在所繪示之實施例中,元件210將射線方向轉換成較低精度浮點區間表示。元件230基於量化圖框變換(用於量化頂點,如下文詳細論述)來判定剪切因數,而元件244將該等剪切因數轉換成固定點區間表示。元件242亦基於量化圖框變換來產生射線原點的固定點區間表示。元件246產生射線時間之固定點區間表示。對於運動模糊處理,元件250基於射線時間來時間內插經量化三角形頂點(當不執行運動模糊操作時,此元件可被省略,或可直接傳遞該等經量化三角形頂點)。元件260根據該等剪切因數及射線原點來變換該等頂點,而元件270評估邊緣方程式以判定是否存在遺漏或潛在命中。下文進一步詳細解釋圖2B之各種元件。圖2B之特定操作係為說明之目的而包括,且非意圖限制
本揭露之範圍。然而,在一些實施例中,所揭示之操作可有利地使用合理的電路面積及功率消耗來提供緊密區間。
圖3係繪示根據一些實施例之在初始相交測試中使用之各種值的實例區間表示的圖。在所繪示之實例中,針對頂點位置、射線原點、方向、及時間、剪切因數、及經內插三角形頂點來產生區間。應注意,所揭示之特定區間值係為說明之目的而討論,而非意圖限制本揭露之範圍。在其他實施例中,可使用區間來表示用於判定初始相交結果中之任何各種值。
在所繪示之實施例中,針對各經量化頂點位置(例如,針對三角形之三個頂點之各者),判定針對X維度、Y維度、及Z維度的三個各別區間。針對射線原點及射線方向判定類似的區間。在支援運動模糊之一些實施例中,亦判定用於射線時間的上界限及下界限。
在使用剪切作為射線-三角形相交測試之部分的一些實施例中,針對射線之非主要座標方向的兩個剪切因數判定上界限及下界限。
在支援運動模糊的一些實施例中,圖形處理器判定對應於在運動模糊區間內之射線時間的經內插三角形的每個頂點之X、Y及Z區間。圖4在下文詳細地討論,且提供用於產生經內插三角形之區間表示的實例技術。大致上,下文詳細論述用於判定各種特定區間之更詳細技術。
如下文詳細論述,資料結構可表示三角形、移動三角形、三角形對、移動三角形對或其一些組合。在一些實施例中,使用三個頂點來表示三
角形,使用六個頂點來表示移動三角形,使用四個頂點來表示三角形對,及使用八個頂點來表示移動三角形對。
在一些實施例中,經量化三角形座標被儲存為有限固定點精度且捨入朝向零的無正負號整數值。這些座標可對應於依加速資料結構ADS記錄的局部座標系統,例如,如’542申請案所討論者。經量化值可係N位元值。在一些實施例中,每一座標值使用有助於在某一大小之欄位內封裝的位元數目。舉一個實例,用於單一三角形的每經量化座標區間值的7位元值可被封裝成兩個64位元欄位(對於三個頂點=126個位元,各頂點的x上部/下部、y上部/下部、及z上下部的7位元值)。在其他實施例中,可利用使用各種適當位元數目的固定點編碼。在一些實施例中,無正負號值被轉譯成新的座標架構(coordinate frame),其中值變成帶正負號整數。應注意,在一些情況下,僅可儲存一個區間之一個界限且可隱含其他界限。此可減少處理器之某些部件的儲存需求。
在此上下文中,若p係三角形座標的量化值,則在局部經量化座標空間中表示此座標的區間係其中在一些實施例中,δp表示經量化格式的一個最小精度單位(unit of least precision,ULP)。保證在量化之前的原始座標值在此區間內。對於N位元固定點表示,。大致上,本文中所論述之受約束數量指區間。
因此,可使用九個值(三個頂點,其中每個頂點具有三個座標下界限,上界限隱含比下界限大一個ULP)來編碼給定的非移動三角形。
在一些實施例中,移動三角形被儲存為兩個(或更多個)座標集合,例如,在間t=0的位置p(0)及在時間t=1的位置p(1)。此可界定在正規化時
間區間[0,1]中之線性運動的區間。注意,在子區間期間的多個線性移動亦可用於編碼較大運動模糊區間的非線性移動。在此情況下,移動三角形可包括多於兩個座標集合。在時間t的移動三角形座標可使用區間予以表示。
在一些實施例中,作為低精度相交測試之部分,射線時間經量化成較低精度區間,其中t係以M個位元之子區間解析度予以編碼(例如,隱含在2M設定1.0)。M可或可不對應於用以表示三角形之空間座標(或用以表示射線空間座標的位元數目)。如同其他經量化之區間,保證在低精度區間中找到原始高精度值。在一些實施例中,時間是獨立於其他座標的第四座標軸。
在一些實施例中,區間內插電路系統經組態以重建用於在射線的經量化時間區間移動三角形座標的保守空間區間。圖4係繪示根據一些實施例的經組態以產生在運動模糊區間內之經內插基元之區間表示的實例內插電路系統的方塊圖。內插電路系統410可執行上文參考圖2B之元件250所討論的操作。
在所繪示之實施例中,內插電路系統410經組態以接收一射線時間之一區間表示及一移動三角形之一區間表示(例如,針對六個頂點中之每一者的x、y及z區間),及產生一經內插三角形之一區間表示(例如,針對三個頂點中之每一者的x、y及z區間)。
使用符號p 0=p(0)及p 1=p(1),內插電路系統410可針對任何t [0,1-δt]判定保證涵蓋經量化時間區間[t,t+δt]的經內插位置座標區間為:
其中z=p 0(1-t-δt)+p 1 t
在各種實施例中,此方程式可提供具有合理效能及電路面積之良好擬合。進一步,已判定由此方程式所提供之區間為保守的。
在一些實施例中,內插電路系統410經組態以根據此方程式來判定之區間。應注意,在其他實施例中,可由電腦電路系統實施其他方程式以判定保守內插三角形區間;所揭示之方程式係為說明之目的而包括,而非意圖限制本揭露之範疇。
在各種實施例中,至少在運動模糊操作模式中,可使用初始低精度相交測試來測試經內插三角形區間。因此,例如,取決於是否利用運動模糊,下文討論的各種基元輸入可係用於傳統三角形或用於內插三角形。進一
步,雖然本文中所論述之各種技術使用區間算術;但亦可搭配其他量化表示及技術(例如,「’542申請案之技術」)來利用用於運動模糊之所揭示經內插三角形技術。
如’542申請案所述,剪切技術可用以實施相交測試。在以下討論中,利用以下命名慣例:
P 射線原點,浮點物件空間
p 射線原點,固定點量化空間
v v 三角形頂點座標,固定點量化空間
在繼續之前,該裝置可建立經縮放射線方向之哪個軸具有最大量值且旋轉軸線名稱,使得最長軸在第三位置中(「z」)。進一步,若此方向分量為負,則該裝置可調換其他兩個軸以保持旋向性。對於以下討論,假設此重新命名已應用至所有笛卡兒數量。
在所揭示之區間技術之上下文中,在方程式4中表示之各種值為區間表示,如上文所論述。一旦在2D剪切空間中,射線位置簡化成此座標架構之原點,其方向與z軸對齊,該裝置可根據以下各者比對由三個剪切座標v' {A',B',C'}所表示之2D三角形之三個有向邊緣進行測試:
若全部u、v、w具有相同的正負號,則三角形涵蓋原點,且在數值精度內射線與三角形相交。
圖5係繪示根據一些實施例之經組態以產生剪切因數區間之實例剪切因數電路系統的方塊圖。在所繪示之實施例中,剪切因數電路系統(其可
包括於基於區間算術之低精度測試電路系統220中)包括降低轉換電路510A至510C、減法電路520A至520B、倒數電路530、區間乘積及比例調整電路540A至540B、以及浮點至固定點區間轉換電路550A至550B。在一些實施例中,圖5之電路系統實施圖2B之元件230的功能。
在所繪示之實施例中,降低轉換電路510A至510C經組態以將x、y及z方向轉換(旋轉後(post-rotation),使得最長軸係z方向)成經降低精度浮點區間表示。在一些實施例中,降低轉換捨入朝向負無窮(round toward negative infinity,RTNI)進行轉換以產生下區間界限及捨入朝向正無窮(round toward positive infinity,RTPI)以產生上區間界限。
在所繪示之實施例中,減法電路520A至520B分別經組態以自z比例值減法x及y比例值以依無正負號整數表示產生Sz/Sx及Sz/Sy的不帶正負號除法結果。在一些實施例中,該等比例值係二冪次,使得指數減法對應於除法。此等比例因數可基於用於基元的量化圖框來判定。大致上,一組量化值可共用界定用於值之參數的「量化圖框」。在一些實施例中,經量化值表示為相對於共同原點及比例因數的固定點位移。因此,量化圖框可指定原點(例如,在x、y及z座標中)及比例因數(例如,對於各z、y及z維度,2冪次比例因數)。本文所論述之經量化基元區間可使用固定點座標來表示,其在量化圖框之上下文中予以解譯。請注意,在所繪示的實例中,減法電路520A至520B的輸出不是區間。
在所繪示之實施例中,倒數電路530經組態以產生經降低轉換之z方向值的一倒數。
在所繪示之實施例中,區間乘積電路及比例調整電路540A至540B經組態以對其輸入執行區間乘積運算,以產生呈降低精度浮點區間格式的輸出。在一些實施例中,區間乘積及比例調整電路540A至540B經組態以將其輸出箝位至範圍[-1,1]。在一些實施例中,區間乘積及比例調整電路540A至540B亦藉由使用指數調整來應用來自減法電路520A至520B之比例,以乘以二冪次。
在所繪示之實施例中,浮點至固定點區間轉換電路550A至550B經組態以針對DxSz/DzSx及DySz/DzSy剪切因數(其等輸入至下文討論的圖6之電路系統),將經降低精度浮點區間表示轉換固定點區間表示。
圖6係繪示根據一些實施例之經組態以使用剪切因數區間來轉譯及剪切頂點的實例電路系統的圖。例如,圖6可使用區間算術實施方程式(4)之運算。圖6可實施上文參考圖2B之元件260所討論的操作。在所繪示之實施例中,電路系統接收呈區間形式的頂點及射線位置資料,且經組態以執行區間減法及乘法運算,以使用由圖5之電路系統產生的剪切因數區間來產生經轉譯及經剪切頂點。在一些實施例中,圖6之輸出之各者係區間,在圖7中,該等區間之下界限可使用負號(例如,ay-)來表示,而該等區間之上界限可使用正號(例如,ay+)來表示。
圖7係繪示根據一些實施例之經組態以執行初始降低精度相交測試的實例電路系統的方塊圖。在一些實施例中,圖7之電路系統實施圖2B之元件270的功能。例如,圖7可基於圖6之輸出,針對u、v、w執行對應於上述方程式的運算以產生相交結果。請注意,圖7的電路系統相對於彼等方程式有一些差異。第一,此電路系統執行比較,而非減法(例如,.<.,而非.-.),因為全部皆需要正負號。第二,在所繪示之實施例中,圖
7之電路系統執行兩倍的乘數,以提供保守測試(例如,僅考慮邊緣區間之「外」部分),但電路系統不知道哪個方位係「外」,因為其可考慮三角形之順時針或逆時針面。電路710經組態以產生經修改區間乘積,且下文參考圖8詳細地討論。
圖7所繪示之及邏輯與或邏輯提供指示降低精度測試是否提供結論性遺漏的結果。如所示,六個雙側邊緣測試可使用12個乘法器及6個比較器,所有固定點。應注意,各種電路系統可經組合或合併,例如加法器及減法器可由平行執行該兩種運算的單一組件予以實施,而乘法器及比較器可被合併以實施單一ab<=cd運算。
如上所述,若存在不確定的結果(潛在命中),則處理器可(例如,使用原始浮點表示)執行較高精度相交測試。
通常帶正負號區間乘積需要四個乘法器,因為其定義:[x 1,x 2].[y,y 2]=[min(x 1 y 1,x 1,y 2,x 2,y 1,x 2 y 2),max(x 1 y 1,x 1 y 2,x 2 y 1,x 2 y 2)]。在一些實施例中,使用兩個乘法器來實施區間乘積。為了完全求解區間乘積之和的正負號,需要準確地求解兩個端點至各區間乘積的正負號。此可僅藉由每個區間乘積兩個減法器來完成,惟當至區間乘積之區間輸入跨越原點時除外。在此實例中,硬體會引發例外狀況,且相交測試可記錄潛在命中。實驗資料展示此為例外狀況,在一般工作負載下可係罕見的。程式碼清單1使用僅兩個硬體乘法器來實施經修改帶正負號區間乘積。
//開始程式碼清單1:經修改帶正負號區間乘積
//假設T係帶正負號整數(int8_t,int16_t,int32_t,int64_t)
//在需要四個乘法器求解的情況下會引發例外狀況
//區間之兩端點之正負號-在所有其他情況下正負號
//經完全求解。
圖8展示根據一些實施例之經組態以實施經修改帶正負號區間乘積的電路系統810的一個實例。在一些實施例中,圖8之電路系統被包括在圖7之各別電路710中。在此實施例中,路由電路系統810係藉由輸入的四個正負號而組態以路由運算元,例如,如在程式碼清單1中所闡述。在此實例中,電路系統810亦經組態以偵測一例外條件。
圖9係繪示根據一些實施例之實例三角形對及循序對處理電路系統的圖。如所示,三角形對910係其共用兩個頂點(在所繪示之實例中,頂點1及頂點2)的兩個三角形之一集合。因此,該兩個三角形可由四個頂點界定。
鑒於三角形對在各種模型中係常見的,在一些實施例中,處理器經組態以使用三角形對資料結構以四個頂點來儲存三角形,其可減少儲存需求。
在一些實施例中,處理器包括循序對處理電路系統920,該循序對處理電路系統經組態以循序對三角形對執行一或多個操作,例如,在處理一對中之第二三角形之前處理一對的一個三角形。操作可係初始相交結果,舉一個實例,但其他電路系統可使用類似的循序技術。此可在其中相同三角形對結構用於所有三角形的實施方案中提供有效的處理,但一些結構可具有用於僅一個三角形的資料。在這些實施例中,若該資料結構指示編碼僅一個三角形,則循序對處理電路系統920可略過一對之第二三角形的操作。
在一些實施例中,處理經量化輸入的相交測試電路系統仍可提供關於對應於射線的線是否與基元相交的決定性資訊,該決定性資訊對於某些類型之射線可係有用的。因此,重新參考圖7之實例,(除了或替代圖7之電路系統)經修改比較電路系統可經實施以提供指示結論性命中或命中是否發生係不確定的。
圖10係繪示由二維三角形基元(例如,剪切後)的經量化表示所封閉的實例區域的圖。在所繪示之實例中,例如若根據原始精度表示,則邊緣1010展示精確邊緣。外界限1020及內界限1030例如使用區間表示來展示經量化表示之界限。
如所示,落在界限1020外之區域中的射線係結論性遺漏,例如,如圖7之電路系統可偵測。落在界限1020與1030之間的區域中的射線係不
確定的(例如,因為三角形邊緣落在此區域內的精確位置未知)。落在此區域中之射線會需要更高精度測試。
如所示,落在界限1030內之區域中的射線係針對對應於該射線之線的結論性命中。應注意,例如由於量化,由此測試所偵測到的相交不能精確地指示命中發生在何處。進一步,例如,由於射線在其間係有效的區間之量化,此測試所偵測到的相交僅可指示在對應於射線之線的命中。
然而,在一些實施例中,即使與上文所論述之限制,判定在界限1030內之區域中的決定性命中仍可係有用的。
圖11係繪示經組態以指示是否存在命中或是否存在命中是否係不確定的實例低精度測試電路系統1120的方塊圖。在下文詳細論述的圖12提供此類電路系統之實例。應注意,低精度測試電路系統1120亦可提供一輸出,該輸出指示是否存在遺漏,或若存在遺漏是否係不確定的,例如,若組合圖7及圖12之電路系統。
在一些實施例中,在其中低精度測試電路系統1120之輸出指示決定性命中的一些情境中,處理器可略過較高精度相交測試。在一些實施例中,此類射線查詢可在以下條件下終止:射線係任何命中射線;三角形係不透明;及作用中射線區間完全涵蓋完全圍封此三角形的至少一個定界體積。在一些實施例中,可基於是否待測試α映圖(alpha map)來判定三角形不透明度。可基於ADS之遍歷(其允許基於ADS之結構來判定哪一些定界體積完全圍封三角形)及經組態以測試用於遍歷的定界體積的板測試電路系統,來判定作用中射線區間是否完全涵蓋完全圍封此三角形的至少一個定界體積。
在此等條件下,處理器可記錄射線-三角形相交命中,而無需執行較高精度測試。當處理任何命中射線,此可有利地改善效能、減少功率消耗、或兩者。應注意,上文所論述之條件係為說明之目的而包括;在其他實施例中,可檢查此等條件之子集,可賦予其他條件等。
圖12係類似於圖7之電路圖,其展示根據一些實施例之決定性命中測試電路系統。在所繪示之實施例中,如上文參考圖7及圖8所描述來組態每一個電路710。然而,將輸出不同地路由至比較器,而提供命中或不確定的結果。在一些實施例中,除了圖7所示之電路系統外,亦包括圖12中所示之比較器、及閘、與或閘,使得經量化相交測試電路系統對於給定測試輸出兩個布林結果。
下文的程式碼清單2提供可藉由圖12或其他類似電路系統的電路系統實施的實例操作。
//開始程式碼清單2:邊緣測試及比較器
//用於6個區間乘積之12個乘法器
//內部/外部判定
//處置後與前面可能性
//判定保證遺漏(成功拒斥射線-三角形相交)
//判定保證命中(成功接受線-三角形相交)
射線相交計算常係藉由加速資料結構(acceleration data structure,ADS)來促進。為了有效率地實施射線相交查詢,一空間資料結構可減少射線表面相交測試之數目,從而加速查詢程序。ADS的常見類別係其中表面基元被圍封在幾何代理體積(geometric proxy volume)(例如,方塊(box))的階層中的邊
界體積階層(bounding volume hierarchy,BVH),幾何代理體積對相交的測試較便宜。這些體積可稱為邊界區域。藉由橫越資料結構並在過程中執行代理相交測試,圖形處理器定位針對一給定射線的一組保守候選相交基元。BVH的常見形式使用3D軸對齊邊界方塊(Axis-Aligned Bounding Boxes,AABB)。一旦建構,AABB BVH可針對所有射線查詢,且係一個視點獨立結構。在一些實施例中,這些結構係針對場景中、在局部物體空間中、或在該物體的模型空間中之各相異網格而建構一次,並且在橫越於BVH之前將射線從世界空間變換成局部空間。這可允許具有許多剛性變換及材料性質之單一網格的幾何執行個體化(geometric instancing)(類似於光柵化的執行個體化)。動畫幾何一般需要重建資料結構(有時以已知為「重新適配(refit)」的較不昂貴的更新操作)。針對其中對照在單一圖框中的單一場景追蹤數百萬或數十億條射線的非即時使用情況,ADS構造的成本被完全攤銷為「免費(free)」的點。然而,在即時情境中,一般有建置成本與遍歷成本之間的難以處理的權衡,其中愈高效率的結構一般建置愈昂貴。
在一些實施例中,相交電路系統經組態以橫越BVHADS,其針對其定界體積使用3D軸對齊邊界方塊。ADS可具有最大的分支因數(例如,2、4、8、16等)及一彈性使用者定義的酬載(例如,樹的葉處的內容),其不假定三角形幾何。在一些實施例中,執行深度優先搜尋,例如,如2020年11月24日申請之美國專利申請案第17/103,317號,其全文以引用方式併入本文中。
在一些實施例中,射線相交加速器190經組態以針對某些類型之深度優先遍歷使用給定節點之子節點的經修改排序。在一些實施例中,所揭
示之技術應用至二級射線。二級射線係從第一(已追蹤)射線與表面之間的相交位置行進的射線。許多任何命中射線皆係由於通常用任何命中射線(例如,陰影)實施的效應類型的射線。因此,二級射線源自相交表面且遠離表面(且因此不與該特定表面相交)。
因為二級射線之性質,本發明人已認識到,用於經相交定界體積的子節點之由前而後或由後而前遍歷一般會導致遺漏的相交測試。對於由前而後,例如,射線很可能與反映二級射線(觸發相交測試)的基元之定界體積相交,但實際上不會與該基元相交。
圖13係根據一些實施例之比較用於在加速資料結構之相交子節點的由前而後排序與由中間而外排序的圖。在所繪示之實例中,二級射線係基於另一射線(未圖示)與基元A之相交的反映。如所示,射線結束於光源處(此可歸因於射線追蹤一般追蹤從攝影機向後至光源的射線,以避免處理不相關射線)。在此實例中,射線係任何命中射線且與基元C相交。
考慮射線每個所繪示之基元的定界體積相交且所繪示之基元全部係對應於較大定界體積之節點之子節點的實例情況。在此實例中,遍歷電路系統可使用子節點之各種排序,以首先進行深度優先搜尋。
如所示,使用其中首先遍訪更靠近射線原點之定界體積的由前而後排序,在針對基元C最終偵測到命中之前,基元A及B的相交測試導致遺漏,且查詢結束(因為這是任何命中射線)。針對基元A之遺漏不意外,給定衍生所繪示之二級射線之射線與基元A相交。
使用由中間而外排序有利地提供更快速的命中偵測,在此實例中,其相對於由前而後排序需要少了兩個相交測試。如所示,從射線之中間開始導致針對基元C之命中,且查詢可結束而不測試基元D、A或B。
在一些實施例中,可利用各種技術以相對於前/後節點提供優先排序給一或多個中間節點。舉一個實例,考慮具有分支因數N之似樹狀ADS。相交電路系統可依由前而後順序而首先排序其定界體積相交的子節點。對於MN個相交之子節點(已編製索引0至M-1),取決於M是否係奇數或偶數,相交電路系統可經由以下序列來重新排序相交。
若M係奇數且除法意指整數除法(例如3/2=1),以下係子索引之實例重新排序序列:
M/2
M/2+1
M/2-1
M/2+2
M/2-2
…
M/2+M/2=M-1
M/2-M/2=0
若M係偶數,則以下係實例重新排序序列:
M/2
M/2-1
M/2+1
M/2-2
M/2+2
…
M/2+(M/2-1)=M-1
M/2-M/2=0
在一些硬體實施方案中,對於最大分支因數N,電路系統可編碼M從1至N之各值的重新排序序列,以便快速判定由中間而外遍歷的順序。舉一個非限制性實例,若N=8,則可包括以下序列:
對於M=1:[0]
對於M=2:[1,0]
對於M=3:[1,2,0]
對於M=4:[2,1,3,0]
對於M=5:[2,3,1,4,0]
對於M=6:[3,2,4,1,5,0]
對於M=7:[3,4,2,5,1,6,0]
對於M=8:[4,3,5,2,6,1,7,0]
應注意,本文所論述之特定序列係為說明之目的而包括,而非意圖限制本揭露之範疇。在其他實施例中,可實施各種排序,其中一或多個內子節點優先於前/後節點。
在使用二元樹(N=2)之實施例中,當搜尋樹之不同層級的子節點時,遍歷電路系統可交替於由後而前與由前而後遍歷排序之間(例如,對於樹中之奇數深度使用由前而後,及對於樹中之偶數深度使用由後而前,或反之亦然)。
圖14係繪示根據一些實施例之用於執行初始化相交測試之實例方法的流程圖。圖14所示之方法可與本文所揭示之電腦電路系統、系統、裝置、元件、組件、或其他者之任何者結合使用。在各種實施例中,所示之方法元件的一些可同時執行、以不同於所示的一順序執行、或者可省略。亦可依需要執行額外的方法元件。
在1410處,在所繪示之實施例中,圖形處理器量化一基元之一第一表示以產生該基元之一經降低精度區間表示,其中該區間表示包括保證涵蓋由該基元之該第一表示指定之對應值的區間值。在一些實施例中,該基元之該第一表示的該量化使用:用於該區間之一下界限之經捨入朝向零的一固定點量化表示;及用於該區間之一上界限之該下界限加上一個最小精度單位(ULP)。
在1420處,在所繪示之實施例中,圖形處理器量化一射線之一第一表示以產生該射線之經降低精度區間表示,其中該區間表示包括保證涵蓋由該射線之該第一表示指定之對應值的區間值。在一些實施例中,該射線之該降低精度區間表示包括表示為一區間之一經量化射線時間。在一些實施例中,電路系統基於在一運動模糊時間區間內之不同點處的該基元之第一及第二位置,產生該基元之該降低精度區間表示,使得該基元之該降低精度區間表示涵蓋在表示經量化射線時間之該區間期間的該基元之所有可能位置。
在1430處,在所繪示之實施例中,圖形處理器使用區間算術,基於該基元之該區間表示的座標及該射線之該區間表示的座標而判定一初始相
交結果,其中由該初始相交結果所指示之一遺漏保證不是對該基元之該第一表示及該射線之該第一表示的一命中。
在一些實施例中,回應於一潛在命中初始相交結果,該圖形處理器經組態以使用該基元之該第一表示及該射線之該第一表示來執行一相交測試。
在一些實施例中,剪切因數電路系統基於射線方向資訊及比例資訊而產生剪切因數之區間表示;及基於該基元之該量化表示及該等剪切因數之該區間表示而產生經剪切頂點區間。在一些實施例中,該等初始相交結果基於該等經剪切頂點區間。在一些實施例中,剪切因數電路系統經組態以使用:一第一精度來表示在一座標方向的該射線之一原點的一第一座標,該第一精度提供對一射線方向向量(例如,重新命名為z方向的軸)的一臨限(例如,最大)貢獻;及一第二更高精度,其表示在其他方向的該射線之該原點的座標。
在一些實施例中,該基元之該第一表示係一三角形對之一表示,該三角形對包括用於該三角形對中之兩個三角形基元的至多四個頂點,其中該圖形處理器包括經組態以循序處理一給定三角形對之三角形的電路系統。
圖15係繪示根據一些實施例之用於執行初始相交測試之實例方法的流程圖。圖15所示之方法可與本文所揭示之電腦電路系統、系統、裝置、元件、組件、或其他者之任何者結合使用。在各種實施例中,所示之方法元件的一些可同時執行、以不同於所示的一順序執行、或者可省略。亦可依需要執行額外的方法元件。
在1510處,在所繪示之實施例中,一圖形處理器執行相交測試,其中該等相交測試處理藉由量化射線之初始表示所產生之該等射線之經降
低精度表示及藉由量化基元之初始表示所產生的該等基元之經降低表示。在所繪示之實施例中,該等相交測試根據一第一射線及一第一基元的初始表示來產生其等的一第一結果,其中該第一結果指示第一射線與該第一基元相交。在一些實施例中,該等相交測試亦可產生一第二射線及該第一基元的一第二結果,其中該第二結果指示該第二射線是否與該第一基元相交係不確定的。該圖形處理器可使用該第二射線及該第一基元的初始表示來執行該第二射線的一相交測試。該等相交測試可基於加速資料結構之遍歷予以執行,該加速資料結構包括圖形場景之至少一部分的階層式配置之定界體積。
在1520處,在所繪示之實施例中,該圖形處理器基於該第一結果針對該第一射線記錄與該第一基元的相交,而不使用該第一射線及該第一基元之初始表示來執行第一射線之相交測試。在所繪示之實施例中,相交係基於下列而記錄:該第一結果;該第一基元係不透明之判定;及在加速資料結構中有至少一個定界體積封閉整個該第一基元且該第一射線的整個該封閉部分係作用中。
在一些實施例中,該圖形處理器經組態以基於針對該第一射線之任何命中查詢來記錄該第一射線之相交(且可基於針對其他類型之查詢的降低精度測試而不記錄決定性相交結果)。
在一些實施例中,測試電路系統進一步經組態以輸出該第一射線及該第一基元之一結果,該結果指示:根據其等初始表示,該第一射線遺漏該第一基元;或該第一射線是否遺漏該第一基元係不確定的。例如,處理器可包括圖7及圖12兩者之比較器及邏輯電路系統。在上文所論述之實例中,對於
該第一射線及該第一基元,此輸出將指示該第一射線是否遺漏該第一基元係不確定的,因為其他輸出指示一決定性命中。
在一些實施例中,處理器對於至少一些類型之射線使用由中間而外遍歷順序。在一些實施例中,該處理器經組態以(例如,由遍歷電路系統)基於一加速資料結構來執行相交測試,該加速資料結構包括對應於階層式配置之定界體積的節點。具體而言,該處理器可執行該加速資料結構之一深度優先搜尋,且對於該加速資料結構中之一第一節點的一組子節點,根據針對該組子節點的經相交定界區域之排序來選擇用於該深度優先搜尋的一下一節點,其中該排序開始於比一或多個前定界體積及一或多個後邊定界體積更接近一受測試射線之一中點的一定界體積。
在一些實施例中,該處理器在判定排序之前判定該排序、在該組子節點中之節點數目,其中該組子節點對應於分別由該受測試射線相交的節點。例如,一旦判定經相交子節點數目,該處理器就可存取查找表以判定排序。在一些實施例中,該受測試射線係任何命中射線,且遍歷受測試射線回應於相交偵測而結束。在一些實施例中,相對於一起始節點,排序依一往前方向之節點與一往後方向之節點之間的排序交替後續節點。如本文中所使用,愈接近射線之「前端」的節點愈接近該射線之尾端,愈接近射線之「後端」的節點愈接近該射線之原點。上文參考圖13所論述之實例排序從一中間節點開始交替於一往前方向之節點與一往後方向之節點的實例。
現在參照圖16,顯示繪示裝置1600之實例實施例的方塊圖。在一些實施例中,裝置1600的元件可包括在晶片上的系統內。在一些實施例中,裝置1600可包括在可係電池供電的行動裝置中。因此,裝置1600的功率消耗可係一重要設計考量。在所繪示的實施例中,裝置1600包括網狀架構(fabric)1610、運算複合體1620、輸入/輸出(I/O)橋接器1650、快取/記憶體控制器1645、圖形單元1675、及顯示單元1665。在一些實施例中,除了或代替所繪示之組件(諸如視頻處理器編碼器及解碼器、影像處理或辨識元件、電腦視覺元件等)以外,裝置1600可包括其他組件(未圖示)。
網狀架構1610可包括各種互連件、匯流排、MUX、控制器等,且可經組態以促進裝置1600的各種元件之間的通訊。在一些實施例中,網狀架構1610的部分可經組態以實施各種不同的通訊協定。在其他實施例中,網狀架構1610可實施單一通訊協定,且耦接至網狀架構1610之元件可在內部從單一通訊協定轉換成其他通訊協定。
在所繪示的實施例中,運算複合體1620包括匯流排介面單元(bus interface unit,BIU)1625、快取1630、及核心1635及1640。在各種實施例中,運算複合體1620可包括各種數目的處理器、處理器核心、及快取。例如,運算複合體1620可包括1、2、或4個處理器核心或任何其他合適的數目。在一個實施例中,快取1630係集合關聯式L2快取。在一些實施例中,核心1635及1640可包括內部指令及資料快取。在一些實施例中,在網狀架構1610中、快取1630中、或裝置1600中之別處的同調性單元(未圖示)可經組態以維持裝置1600的各種快取之間的同調性。匯流排介面單元1625可經組態以管理裝置1600的運算複合體1620與其他元件之間的通訊。處理器核心(諸如核心1635及
1640)可經組態以執行特定指令集架構(instruction set architecture,ISA)的指令,該指令集架構可包括作業系統指令及使用者應用程式指令。
快取/記憶體控制器1645可經組態以管理網狀架構1610與一或多個快取及記憶體之間的資料移轉。例如,快取/記憶體控制器1645可耦接至L3快取,其繼而可耦接至系統記憶體。在其他實施例中,快取/記憶體控制器1645可直接耦接至記憶體。在一些實施例中,快取/記憶體控制器1645可包括一或多個內部快取。
如本文中所使用,用語「耦接至(coupled to)」可指示元件之間的一或多個連接,且一耦接可包括中間元件。例如,在圖16中,圖形單元1675可經描述為透過網狀架構1610及快取/記憶體控制器1645「耦接至(coupled to)」一記憶體。反之,在圖16所繪示之實施例中,圖形單元1675係「直接耦接(directly coupled)」至網狀架構1610,因為沒有中間元件。
圖形單元1675可包括一或多個處理器,例如,一或多個圖形處理單元(GPU)。例如,圖形單元1675可接收圖形導向指令,諸如OPENGL®、Metal、或DIRECT3D®指令。圖形單元1675可基於所接收之圖形導向指令執行特殊化GPU指令或執行其他操作。圖形單元1675大致上可經組態以並行處理大資料區塊,並可在一圖框緩衝器中建構影像以用於輸出至可包括在裝置中或可係單獨裝置的一顯示器。圖形單元1675可包括在一或多個圖形處理管線中之變換、照明、三角形、及演現引擎。圖形單元1675可輸出用於顯示影像的像素資訊。在各種實施例中,圖形單元1675可包括可程式化著色器電路系統,該可程式化著色器電路系統可包括經組態以執行圖形程式的高度並行執行核心,該等
圖形程式可包括像素任務、頂點任務、及運算任務(其可係或可不係與圖形相關的)。
在一些實施例中,圖形單元1675包括相對於傳統GPU可減少的功率消耗、增加效能、或兩者的基於區間算術之低精度測試電路系統220。
顯示單元1665可經組態以自一圖框緩衝器讀取資料,並提供一像素值串流以用於顯示。在一些實施例中,顯示單元1665可經組態為一顯示管線。額外地,顯示單元1665可經組態以混合多個圖框以產生一輸出圖框。進一步地,顯示單元1665可包括用於耦接至一使用者顯示器(例如觸控螢幕或外部顯示器)之一或多個介面(例如MIPI®或嵌入式顯示埠(embedded display port,eDP))。
例如,I/O橋接器1650可包括各種元件,該等元件經組態以實施:通用串列匯流排(universal serial bus,USB)通訊、安全性、音訊、及/或低功率永遠開啟功能性。例如,I/O橋接器1650亦可包括介面(諸如脈衝寬度調變(pulse-width modulation,PWM)、通用輸入/輸出(general-purpose input/output,GPIO)、串列周邊介面(serial peripheral interface,SPI)、及積體電路匯流排(inter-integrated circuit,I2C))。各種類型的周邊及裝置可經由I/O橋接器1650耦接至裝置1600。
在一些實施例中,裝置1600包括可連接至網狀架構1610或I/O橋接器1650的網路介面電路系統(未明確圖示)。該網路介面電路系統可經組態以經由各種網路(其可係有線、無線或兩者)進行通訊。例如,該網路介面電路系統可經組態以經由一有線區域網路、一無線區域網路(例如,經由WiFi)、或廣域網路(例如,網際網路或虛擬私人網路)進行通訊。在一些實
施例中,該網路介面電路系統經組態以經由使用一或多個無線電存取技術之一或多個蜂巢式網路進行通訊。在一些實施例中,該網路介面電路系統經組態以使用裝置間通訊(例如,藍牙或無線保真度直連(WiFi Direct))等進行通訊。在各種實施例中,該網路介面電路系統可提供連接至各種類型之其他裝置及網路的連接性至裝置1600。
現在轉到圖17,各種類型系統可包括上文論述之電路、裝置、或系統之任何者。可併入或以其他方式利用本文所述之技術之一或多者之系統或裝置1700可於廣泛範圍的領域中使用。例如,系統或裝置1700可被利用作為系統硬體之部分,諸如桌上型電腦1710、膝上型電腦1720、平板電腦1730、蜂巢式或行動電話1740、電視1750(或耦接至電視的機上盒)。
類似地,所揭示之元件可用在穿戴式裝置1760中,諸如智慧型手錶或健康監測裝置等。在許多實施例中,智慧型手錶可實施各種不同的功能,例如,存取電子郵件、蜂巢式服務、行事曆、健康監測等。穿戴式裝置亦可經單獨設計以執行健康監測功能,諸如監測使用者的生命徵象、執行流行病學功能(諸如接觸者追蹤(contact tracing))、提供對緊急醫療服務之通訊等。亦設想其他類型的裝置,包括配戴於頸上的裝置、可植入人體中的裝置、眼鏡或頭盔,該等裝置經設計以提供電腦產生之實境體驗,諸如基於擴增及/或虛擬實境等。
系統或裝置1700亦可用於各種其他背景中。例如,系統或裝置1700可用於伺服器電腦系統的背景中,諸如專用伺服器或在實施基於雲端的服
務1770的共用硬體上。更進一步,系統或裝置1700可實施在廣泛範圍的專用日常裝置中,包括家中常見的裝置1780,諸如冰箱、恆溫器、保全攝影機等。此類裝置的互連常稱為「物聯網」(Internet of Things,IoT)。元件亦可實施在各種運輸模式中。例如,系統或裝置1700可用於各種類型車輛1790之控制系統、導引系統、娛樂系統等中。
圖17中所繪示之應用僅係例示性的,且非意欲限制所揭示系統或裝置的潛在未來應用。其他實例應用包括(但不限於):可攜式遊戲裝置、音樂播放器、資料儲存裝置、無人機等。
本揭露已於上文詳細描述各種實例電路。本揭露不僅意欲涵蓋包括此類電路系統的實施例,且亦意欲涵蓋包括指定此類電路系統之設計資訊的一電腦可讀儲存媒體。因此,本揭露意欲支持的申請專利範圍不僅涵蓋包括所揭示之電路系統的一設備,且亦涵蓋以一格式來指定電路系統之一儲存媒體,該格式係藉由經組態以生產包括所揭示之電路系統的硬體(例如積體電路)之一製造系統來辨識。針對此一儲存媒體的申請專利範圍係意欲涵蓋例如一實體,其生產一電路設計,但本身並不製造該設計。
圖18係繪示根據一些實施例之儲存電路設計資訊的實例非暫時性電腦可讀儲存媒體的方塊圖。在所繪示之實施例中,半導體製造系統1820經組態以處理儲存於非暫時性電腦可讀媒體1810上的設計資訊1815,且基於設計資訊1815製造積體電路1830。
非暫時性電腦可讀儲存媒體1810可包含各種適當類型的記憶體裝置或儲存裝置的任何者。非暫時性電腦可讀儲存媒體1810可係安裝媒體(例如,CD ROM、軟碟、或磁帶裝置);一電腦系統記憶體或隨機存取記憶體(諸如DRAM、DDR RAM、SRAM、EDO RAM、Rambus RAM等);一非揮發性記憶體(諸如快閃、磁性媒體(例如硬碟)、或光學儲存);暫存器或其他類似類型的記憶體元件等。非暫時性電腦可讀儲存媒體1810亦可包括其他類型的非暫時性記憶體或其組合。非暫時性電腦可讀儲存媒體1810可包括可駐留在不同位置(例如,在透過網路連接的不同電腦系統中)的二或更多個記憶體媒體。
設計資訊1815可使用各種適當的電腦語言(包括硬體描述語言)之任何者指定,諸如但不限於:VHDL、Verilog、SystemC、SystemVerilog、RHDL、M、MyHDL等。設計資訊1815可由半導體製造系統1820使用以製造積體電路1830的至少一部分。可由至少一半導體製造系統1820辨識設計資訊1815之格式。在一些實施例中,設計資訊1815亦可包括指定積體電路1830之合成、佈局、或二者的一或多個元件庫。在一些實施例中,設計資訊係全部或部分地以一接線對照表的形式指定,該接線對照表指定元件庫元件及其連接。單獨採用的設計資訊1815可包括或可不包括用於製造一對應積體電路的足夠資訊。例如,設計資訊1815可指定待製造之電路元件但無法指定其等之實體佈局。在此情況中,設計資訊1815可能需要與佈局資訊組合以實際製造所指定的電路系統。
在各種實施例中,積體電路1830可包括一或多個客製巨集電路元件,諸如記憶體、類比或混合信號電路、及類似者。在此種情況中,設計資
訊1815可包括與所包括之巨集元件有關的資訊。此種資訊可無限制地包括線路圖擷取資料庫、遮罩設計資料、行為模型、及裝置或電晶體層級接線對照表。如本文所使用的,遮罩設計資料可根據圖形資料系統(GDSII)或任何其他合適格式格式化。
半導體製造系統1820可包括經組態以製造積體電路的各種適當元件的任何者。例如,此可包括用於沉積半導體材料(例如在可包括遮罩之一晶圓上)、移除材料、變更所沉積之材料的形狀、改質材料(例如,藉由摻雜材料或使用紫外線處理修改介電常數)等的元件。半導體製造系統1820亦可經組態以執行所製造之電路的各種測試以供正確操作。
在各種實施例中,積體電路1830經組態以根據由設計資訊1815所指定之一電路設計進行操作,其可包括執行如本文所述的功能之任何者。例如,積體電路1830可包括圖1B、圖2、圖4、圖9、圖11至圖12、及圖16所示之各種元件的任何者。進一步地,積體電路1830可經組態以結合其他組件執行本文描述的各種功能。進一步地,本文所述的功能可由多個經連接的積體電路執行。
如本文中所使用,具有「指定一電路經組態以...之一設計的設計資訊(design information that specifies a design of a circuit configured to...)」之形式的詞組並非意味所涉電路必須為了滿足該要素而製造。相反,此詞組指示設計資訊所描述之一電路一經製成將經組態以執行所指示的動作或將包括指定組件。
***
本揭露包括對「一實施例(an embodiment)」或「實施例」群組(groups of "embodiments")(例如,「一些實施例(some embodiment)」或「各種實施例(various embodiments)」)的引用。實施例係所揭露之概念的不同實施方案或例項。提及「一實施例(an embodiment)」、「一個實施例(one embodiment)」、「一特定實施例(a particular embodiment)」、及類似者不必然指稱相同實施例。設想大量可行的實施例,包括該些具體揭示者,以及落在本揭露之精神或範圍內的修改或替代例。
本揭露可討論可由所揭露之實施例產生的潛在優點。並非這些實施例之所有實施方案將必須表現潛在優點之任何者或全部。無論是針對特定實施方案所實現的優點是否取決於許多因素,其中一些者係在本揭露範圍外。事實上,落在申請專利範圍之範圍內的實施方案可能不會展現一些或所有任何所揭露之優點有許多原因。例如,一特定實施方案可包括本揭露範圍外的其他電路系統(結合所揭示實施例之一者)而使一或多個所揭示優點無效或減弱。此外,特定實施方案(例如,實施方案技術或工具)之次佳設計執行亦可使所揭露優點無效或減弱。即使假定經熟練的實施方案,優點的實現仍可取決於其他因素,諸如於其中部署該實施方案之環境情況。例如,施加至一特定實施方案的輸入可防止在此揭露中解決的一或多個問題免於出現在特定場合,結果係可能無法實現其解決方案的效益。考慮到本揭露外部的可能因素的存在,明確地意欲將本文所述的任何潛在優點並非解讀為必須符合請求項限制以證明侵權。而是,此類潛在優點之識別意欲說明具有本揭露之利益的設計者可用的(多種)改善類型。許可地描述的此類優點(例如,陳述特定優點「可引
起」)並非意欲傳達實際上此類優點是否可實現的疑慮,而是認知到實現此類優點的技術現實常取決於額外因素。
除非另外陳述,否則實施例係非限制性的。即,所揭露之實施例並非意欲限制基於本揭露之草擬的申請專利範圍之範圍,即使僅描述關於一特定特徵的一單一實例。所揭露之實施例意欲係說明性而非限制,而在本揭露中沒有與此相反的任何陳述。因此,本申請案意欲允許申請專利範圍涵蓋所揭露之實施例以及此類替代例、修改例、與均等物,此等對於受益於本揭露之所屬技術領域中具有通常知識者來說將是顯而易見的。
例如,此申請案中的特徵可以任何合適的方式組合。據此,在此申請案之審查期間(或主張其優先權之申請案)可對特徵之任何此類組合制定新請求項。具體而言,參考隨附申請專利範圍,可組合來自獨立請求項之特徵與其他獨立請求項之特徵,若適當,包括依附於其他附屬請求項的請求項。類似地,若適當,可組合來自各別附屬請求項之特徵。
據此,雖然隨附的附屬請求項可經草擬,使得各依附於一單一其他請求項,但是亦設想額外相依性。與本揭露一致的附屬項之特徵的任何組合經設想且可在此申請案或另一申請案中主張。簡言之,組合不限於在隨附申請專利範圍中具體列舉者。
若適當,亦設想以一種格式或法定類型(例如,設備)草擬之請求項意欲支持另一種格式或法定類型(例如,方法)之對應請求項。
***
因為本揭露係一法律文件,所以各種用語及詞組可受到行政與司法解釋的規約。公告特此以下段落以及在整份揭露內容提供的定義將用於判定如何解釋基於本揭露所草擬的申請專利範圍。
除非上下文另有明確指定,否則提及項目的單數形式(即,名詞或名詞詞組之前有「一(a/an)」、或「該(the)」)意欲意指「一或多個(one or more)」。因此,在一請求項提及「一項目(an item)」在沒有隨附上下文情況中不排除該項目的額外例項。「複數個(plurality)」項目係指二或更多個項目之一集合。
在本文中,字語「可(may)」在本文中以許可意涵使用(即,具有可能以、能夠),且非以強制意涵使用(即,必須)。
用語「包含(comprising)」及「包括(including)」及其形式係開放式,意指「包括但不限於(including,but not limited to)」。
當本揭露中關於一選項清單使用用語「或(or)」時,其通常將被理解為以包含性意涵使用,除非上下文另有提供。因此,陳述「x或y(x or y)」相當於「x或y、或兩者(x or y,or both)」,因此:1)涵蓋x,但不涵蓋y;2)涵蓋y,但不涵蓋x;及3)涵蓋x與y兩者。另一方面,諸如「x或y任何者但非兩者(either x or y,but not both)」的詞組清楚表明「或(or)」係以排他性含意意義使用。
陳述「w、x、y、或z、或其任何組合(w,x,y,or z,or any combination thereof)」或「...w、x、y、及z之至少一者(at least one of...w,x,y,and z)」意欲涵蓋涉及在該集合中的單一元件至多總數目個元件的所有可能性。例如,給定集合[w,x,y,z],這些詞組涵蓋該集合之任何單一元件(例如,
w,但沒有x、y、或z(w but not x,y,or z))、任何二個元件(例如,w與x,但沒有y或z(w and x,but not y or z))、任何三個元件(例如,w、x與y,但沒有z(w,x,and y,but not z))、及所有四個元件。因此,詞組「...w、x、y、及z之至少一者(at least one of...w,x,y,and z)」係指該集合[w,x,y,z]之至少一個元件,藉此涵蓋此元件清單中的所有可行組合。此詞組並不解讀為需要w之至少一個例項、x之至少一個例項、y之至少一個例項、及z之至少一個例項。
在本揭露中,各種「標示」可置於名詞或名詞詞組之前。除非上下文另有提供,否則用於一特徵的不同標示(例如,「第一電路(first circuit)」、「第二電路(second circuit)」、「特定電路(specific circuit)」、「給定電路(given circuit)」等)係指該特徵的不同例項。額外地,除非另有說明,否則標示「第一(first)」、「第二(second)」、及「第三(third)」當施加至一特徵時並非意味任何類型的順序(例如,空間、時間、邏輯等)。
詞組「基於(based on)」或係用以敘述影響一判定的一或多個因素。此用語不排除可能有額外因素可影響判定。意即,一判定可單獨基於特定因素,或基於該等特定因素以及其他未指出因素。考慮用語「基於B判定A(determine A based on B)」。此用語指出,B係一用以判定A之因素,或B影響A之判定。此用語不排除亦可基於一些其他因素例如C來判定A。此用語亦意欲涵括其中A係單獨基於B而判定的一實施例。如本文所用,用語「基於(based on)」與用語「至少部分地基於(based at least in part on)」同義。
詞組「回應於(in response to/response to)」描述觸發效應之一或多個因素。此詞組不排除額外因素可影響或以其他方式觸發效應的可能性,聯合特定因素或獨立於特定因素任一者。意即,一效應可係單獨回應於該等因
素,或可回應於該等被指出因素以及其他未指出因素。考慮詞組「回應於B而執行A(perform A in response to B)」。此詞組指定B係觸發A的執行或觸發A的特定結果的因素。此詞組並不排除亦可回應於某個其他因素(諸如C)而執行A。此詞組亦不排除可聯合回應於B及C而執行A。此詞組亦意圖涵蓋僅回應於B而執行A的實施例。如本文中所使用的,詞組「回應於(responsive to)」與詞組「至少部分回應於(responsive at least in part to)」同義。類似地,詞組「回應於(in response to)」與詞組「至少部分回應於(at least in part in response to)」同義。
***
在本揭露中,不同的實體(其等可能被不同地稱為「單元(unit)」、「電路(circuit)」、其他組件等)可被描述或主張為「經組態(configured)」以執行一或多個任務或操作。此表示法(『實體』經組態以『執行一或多個任務』)在本文中係用以指稱結構(即,實體之物)。具體而言,此表示法係用以指示此結構係經配置以在操作期間執行該一或多個任務。即使一結構目前並未被操作,仍可稱該結構「經組態以(configured to)」執行某任務。因此,經說明或敘述為「經組態以(configured to)」執行某任務的一實體,係指實體之物,諸如裝置、電路、具有處理單元的系統、儲存有可執行用以實施該任務之程式指令的記憶體等。此詞組在本文中並非用以指稱無形之物。
在一些情況中,各種單元/電路/組件可在本文中描述為執行一組任務或操作。應理解,這些實體「經組態以(configured to)」執行該等任務/操作,即使未具體提及。
用語「經組態以(configured to)」並非意欲意指「可組態以(configurable to)」。例如,未經程式化的FPGA將不被視為「經組態以(configured to)」執行一特定功能。然而,此未經程式化的FPGA可係「可組態以(configurable to)」執行該功能。在適當程式化之後,接著,該FPGA可聲稱「經組態以(configured to)」執行特定功能。
為基於本揭露之美國專利申請案的目的,在一請求項中描述一結構「經組態以」執行一或多個任務係明確地意圖不援引35 U.S.C.§ 112(f)對該請求項元件進行解讀。如果申請人意欲在基於本揭露的美國專利申請案的審查期間援引章節112(f),將使用「用以『執行一功能』之構件」這樣的句構來陳述請求項元件。
在本揭露中可描述不同的「電路(circuit)」。這些電路或「電路系統(circuitry)」構成包括各種類型電路元件的硬體,諸如組合式邏輯、時控儲存裝置(例如,正反器、暫存器、鎖存器等)、有限狀態機、記憶體(例如,隨機存取記憶體、嵌入式動態隨機存取記憶體)、可程式化邏輯陣列等。電路系統可經客製化設計或自標準程式庫取用。在各種實施方案中,電路系統可依需要包括數位組件、類比組件、或兩者之組合。某些類型的電路通常可稱為「單元(unit)」(例如,解碼單元、算術邏輯單元(arithmetic logic unit,ALU)、功能單元、記憶體管理單元(memory management unit,MMU)等)。此類單元亦指電路或電路系統。
因此,所揭露之電路/單元/組件及圖式中所繪示與本文所揭露的其他元件包括硬體元件,諸如前述段落中所述者。在許多例項中,可藉由描述一特定電路之功能來指定在該電路內之硬體元件的內部配置。例如,一特定
「解碼單元(decode unit)」可描述為執行「處理指令的作業碼,並將該指令路由到複數個功能單元中之一或多者(processing an opcode of an instruction and routing that instruction to one or more of a plurality of functional units)」的功能,其意指該解碼單元「經組態以(configured to)」執行此功能。本功能之說明書對電腦技術領域中具有通常知識者足以意味著用於該電路之一組可行結構。
在各種實施例中,如前述段落中所討論的,電路、單元、及其他元件可藉由其等經組態以實施的功能或操作界定。該配置及相關於彼此的此類電路/單元/組件及其等互動的方式形成硬體的微架構定義,該硬體最終製造在積體電路中或經程式化至FPGA中以形成微架構定義之實體實施方案。因此,該微階層性定義係由所屬技術領域中具有通常知識者所認知為許多實體實施方案可自其衍生的結構,其等所有皆落入該微階層性定義係所描述之廣泛結構內。即,提出根據本揭露所提供之微階層性定義的具有通常知識的技術人員可在無需過度實驗且在應用通常知識之情況中,藉由以硬體描述語言(hardware description language,HDL)(諸如Verilog或VHDL)編碼電路/單元/組件的描述來實施該結構。HDL描述常以可呈功能性之方式表達。但是對於所屬技術領域中具有通常知識者,此HDL描述係用於將電路、單元、或組件的結構變換成下一層級之實施方案細節的方式。此一HDL描述可採取行為程式碼(其一般並非可合成的)、暫存器傳送語言(register transfer language,RTL)程式碼(其一般係可合成,對比於行為程式碼)、或結構性程式碼(例如,指定邏輯閘及其等連接性的接線對照表)之形式。隨後,HDL描述可依據針對一給定積體電路製造技術所設計的元件庫而合成,且可針對時序、功率及其他原因進行修改以產生一最終設計資料庫,該最終設計資料庫傳送至製造廠以製造遮罩,最後生產出
積體電路。一些硬體電路或其部分亦可在一簡圖編輯器(schematic editor)中經客製化設計,並隨合成電路系統被轉移至積體電路設計中。積體電路可包括電晶體及其他電路元件(例如,被動元件諸如電容器、電阻器、電感器等)及電晶體與電路元件間之互連件。一些實施例可實施多個積體電路,該多個積體電路經耦接在一起以實施硬體電路,且/或在一些實施例中可使用離散元件。替代地,HDL設計可經合成至一可程式化邏輯陣列,諸如現場可程式化閘陣列(field programmable gate array,FPGA),且可於FPGA中實施。此電路群組之設計與這些電路的後續下層實施方案之間的解耦通常導致以下情境,其中當此程序係在電路實施程序的一不同階段執行時,電路或邏輯設計者從不針對下層實施方案指定超出電路經組態以執行動作之描述的特定一組結構。
事實上,電路元件之許多不同的下層組合可用以實施相同規格電路,導致該電路的大量等效結構。如所提及,這些下層電路實施方案可根據製造技術的變化、經選擇以製造積體電路的製造廠、針對一特定專案所提供之元件庫等而變化。在許多情況中,由不同設計工具或方法論進行選擇,以產生此等不同實施方案可係任意的。
此外,對於電路之特定功能規格的單一實施方案常見的是,針對給定實施例,包括大量裝置(例如,數百萬的電晶體)。據此,數量龐大的此資訊使得提供完整陳述用以實施單一實施例之下層結構係不切實際的,更別說是龐大陣列的等效可行實施方案。出於此原因,本揭露描述使用產業中通常採用的功能速記的電路結構。
210:元件
230:元件
242:元件
244:元件
246:元件
250:元件
260:元件
270:元件
Claims (20)
- 一種用於射線追蹤的基元相交測試的設備,其包含:一圖形處理器,其經組態以判定一射線是否相交於一圖形場景中之一基元,其中該圖形處理器包括:射線相交電路系統,其經組態以執行一相交測試,該相交測試包括:量化該基元之一第一表示以產生該基元之一經降低精度區間表示,其中該區間表示包括一下界限及一上界限,該下界限及該上界限界定一區間以使得由該基元之該第一表示指定之一對應值保證落入該下界限及該上界限內;量化該射線之一第一表示以產生該射線之一經降低精度區間表示,其中該區間表示包括保證涵蓋由該射線之該第一表示指定之對應值的具有一下界限及一上界限的區間值;及使用區間算術,基於該基元之該區間表示的座標及該射線之該區間表示的座標而判定一初始相交結果,其中由該初始相交結果所指示之一遺漏保證不是對該基元之該第一表示及該射線之該第一表示的一命中。
- 如請求項1之設備,其進一步包含剪切因數電路系統,該剪切因數電路系統經組態以:基於射線方向資訊及比例資訊而產生剪切因數之區間表示;及基於該基元之該量化表示及該等剪切因數之該區間表示而產生經剪切頂點區間;其中該等初始相交結果基於該等經剪切頂點區間。
- 如請求項2之設備,其中該剪切因數電路系統經組態以使用:一第一精度來表示在一座標方向的該射線之一原點的一第一座標,該第一精度提供對一射線方向向量的一臨限貢獻;及一第二更高精度來表示在其他方向的該射線之該原點的座標。
- 如請求項1至3中任一項之設備,其中該基元之該第一表示的該量化使用:用於該區間之一下界限之經捨入朝向零的一固定點量化表示;及用於該區間之一上界限之該下界限加上一個最小精度單位(ULP)。
- 如請求項1至3中任一項之設備,其中該基元之該第一表示係一三角形對之一表示,該三角形對包括用於該三角形對中之兩個三角形基元的至多四個頂點,其中該圖形處理器包括經組態以循序處理一給定三角形對之三角形的電路系統。
- 如請求項1至3中任一項之設備,其中該射線之該降低精度區間表示包括表示為一區間之一經量化射線時間。
- 如請求項6之設備,其進一步包含:電路系統,其經組態以基於在一運動模糊時間區間內之不同點處的該基元之第一位置及第二位置,產生該基元之該降低精度區間表示,使得該基元之該降低精度區間表示涵蓋在表示經量化射線時間之該區間期間的該基元之所有可能位置。
- 如請求項1至3中任一項之設備,其中回應於一潛在命中初始相交結果,該圖形處理器經組態以使用該基元之該第一表示及該射線之該第一表示來執行一相交測試。
- 如請求項1至3中任一項之設備,其中該設備係一計算裝置,其進一步包括:一中央處理單元;一顯示器;及網路介面電路系統。
- 一種用於射線追蹤的基元相交測試的方法,其包含:由一圖形處理器量化一基元之一第一表示以產生該基元之一經降低精度區間表示,其中該區間表示包括一下界限及一上界限,該下界限及該上界限界定一區間以使得由該基元之該第一表示指定之一對應值保證落入該下界限及該上界限內;由該圖形處理器量化一射線之一第一表示以產生該射線之一經降低精度區間表示,其中該區間表示包括保證涵蓋由該射線之該第一表示指定之對應值的具有一下界限及一上界限的區間值;及由該圖形處理器使用區間算術,基於該基元之該區間表示的座標及該射線之該區間表示的座標而判定一初始相交結果,其中由該初始相交結果所指示之一遺漏保證不是對該基元之該第一表示及該射線之該第一表示的一命中。
- 如請求項10之方法,其進一步包含:由該圖形處理器基於射線方向資訊及比例資訊而產生剪切因數之區間表示;及由該圖形處理器基於該基元之該量化表示及該等剪切因數之該區間表示而產生經剪切頂點區間;其中該等初始相交結果基於該等經剪切頂點區間。
- 如請求項10及11中任一項之方法,其中量化該基元之該第一表示使用:用於該區間之一下界限之經捨入朝向零的一固定點量化表示;及用於該區間之一上界限之該下界限加上一個最小精度單位(ULP)。
- 一種非暫時性電腦可讀儲存媒體,其具有儲存於其上的設計資訊,該設計資訊以一格式指定一硬體積體電路之至少一部分的一設計,該格式係藉由經組態以根據該設計使用該設計資訊生產該電路之一半導體製造系統來辨識,其中該設計資訊指定該電路包括:一圖形處理器,其經組態以判定一射線是否相交於一圖形場景中之一基元,其中該圖形處理器包括:射線相交電路系統,其經組態以執行一相交測試,該相交測試包括:量化該基元之一第一表示以產生該基元之一經降低精度區間表示,其中該區間表示包括一下界限及一上界限,該下界限及該上界限界定一區間以使得由該基元之該第一表示指定之一對應值保證落入該下界限及該上界限內;量化該射線之一第一表示以產生該射線之一經降低精度區間表示,其中該區間表示包括保證涵蓋由該射線之該第一表示指定之對應值的具有一下界限及一上界限的區間值;及使用區間算術,基於該基元之該區間表示的座標及該射線之該區間表示的座標而判定一初始相交結果,其中由該初始相交結果所指示之一遺漏保證不是對該基元之該第一表示及該射線之該第一表示的一命中。
- 如請求項13之非暫時性電腦可讀儲存媒體,其中該設計資訊進一步指定該電路包括:剪切因數電路系統,其經組態以:基於射線方向資訊及比例資訊而產生剪切因數之區間表示;及基於該基元之該量化表示及該等剪切因數之該區間表示而產生經剪切頂點區間;其中該等初始相交結果基於該等經剪切頂點區間。
- 如請求項14之非暫時性電腦可讀儲存媒體,其中該剪切因數電路系統經組態以使用:一第一精度來表示在一座標方向的該射線之一原點的一第一座標,該第一精度提供對一射線方向向量的一臨限貢獻;及一第二更高精度來表示在其他方向的該射線之該原點的座標。
- 如請求項13至15中任一項之非暫時性電腦可讀儲存媒體,其中該基元之該第一表示的該量化使用:用於該區間之一下界限之經捨入朝向零的一固定點量化表示;及用於該區間之一上界限之該下界限加上一個最小精度單位(ULP)。
- 如請求項13至15中任一項之非暫時性電腦可讀儲存媒體,其中該基元之該第一表示係一三角形對之一表示,該三角形對包括用於該三角形對中之兩個三角形基元的至多四個頂點,其中該圖形處理器包括經組態以循序處理一給定三角形對之三角形的電路系統。
- 如請求項13至15中任一項之非暫時性電腦可讀儲存媒體,其中該射線之該降低精度區間表示包括表示為一區間之一經量化射線時間。
- 如請求項18之非暫時性電腦可讀儲存媒體,其中該設計資訊進一步指定該電路包括:電路系統,其經組態以基於在一運動模糊時間區間內之不同點處的該基元之第一位置及第二位置,產生該基元之該降低精度區間表示,使得該基元之該降低精度區間表示涵蓋在表示經量化射線時間之該區間期間的該基元之所有可能位置。
- 如請求項13至15中任一項之非暫時性電腦可讀儲存媒體,其中回應於一潛在命中初始相交結果,該圖形處理器經組態以使用該基元之該第一表示及該射線之該第一表示來執行一相交測試。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163248143P | 2021-09-24 | 2021-09-24 | |
US63/248,143 | 2021-09-24 | ||
US17/456,503 US11830124B2 (en) | 2021-09-24 | 2021-11-24 | Quantized ray intersection testing with definitive hit detection |
US17/456,503 | 2021-11-24 | ||
US17/456,483 | 2021-11-24 | ||
US17/456,483 US11734871B2 (en) | 2021-09-24 | 2021-11-24 | Ray intersection testing with quantization and interval representations |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202314645A TW202314645A (zh) | 2023-04-01 |
TWI822330B true TWI822330B (zh) | 2023-11-11 |
Family
ID=83933384
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112136854A TW202403671A (zh) | 2021-09-24 | 2022-09-14 | 用量化及區間表示之射線相交測試 |
TW111134755A TWI822330B (zh) | 2021-09-24 | 2022-09-14 | 用量化及區間表示之射線相交測試 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112136854A TW202403671A (zh) | 2021-09-24 | 2022-09-14 | 用量化及區間表示之射線相交測試 |
Country Status (5)
Country | Link |
---|---|
KR (1) | KR20230043717A (zh) |
CN (2) | CN117593439A (zh) |
DE (1) | DE102022122793A1 (zh) |
GB (2) | GB2612681B (zh) |
TW (2) | TW202403671A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192310A (zh) * | 2006-11-28 | 2008-06-04 | 国际商业机器公司 | 执行射线追踪的方法和系统 |
CN103593817A (zh) * | 2012-08-16 | 2014-02-19 | 三星电子株式会社 | 用于使用并行管道的图形处理的方法和设备 |
TW201638883A (zh) * | 2015-02-06 | 2016-11-01 | 英特爾公司 | 用於細分表面的直接和互動式射線追蹤之方法及設備 |
US20190180497A1 (en) * | 2015-12-12 | 2019-06-13 | Adshir Ltd. | System for Fast Intersections in Ray Tracing |
CN112907711A (zh) * | 2019-11-15 | 2021-06-04 | 英特尔公司 | 使用用于向量归一化的单个指令集架构(isa)指令 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1966766A1 (en) * | 2005-12-29 | 2008-09-10 | Intel Corporation | Applications of interval arithmetic for reduction of number of computations in ray tracing problems |
US10290143B2 (en) * | 2017-06-14 | 2019-05-14 | Imagination Technologies Limited | Compressed ray direction data in a ray tracing system |
US10438397B2 (en) * | 2017-09-15 | 2019-10-08 | Imagination Technologies Limited | Reduced acceleration structures for ray tracing systems |
US10699465B1 (en) * | 2018-12-28 | 2020-06-30 | Intel Corporation | Cluster of scalar engines to accelerate intersection in leaf node |
US11321910B2 (en) * | 2019-04-04 | 2022-05-03 | Intel Corporation | Apparatus and method for reduced precision bounding volume hierarchy construction |
US10970914B1 (en) * | 2019-11-15 | 2021-04-06 | Imagination Technologies Limited | Multiple precision level intersection testing in a ray tracing system |
US11663777B2 (en) * | 2020-03-15 | 2023-05-30 | Intel Corporation | Apparatus and method for motion blur with a dynamic quantization grid |
-
2022
- 2022-09-05 GB GB2212912.6A patent/GB2612681B/en active Active
- 2022-09-05 GB GBGB2318608.3A patent/GB202318608D0/en active Pending
- 2022-09-08 DE DE102022122793.6A patent/DE102022122793A1/de active Granted
- 2022-09-14 TW TW112136854A patent/TW202403671A/zh unknown
- 2022-09-14 TW TW111134755A patent/TWI822330B/zh active
- 2022-09-14 CN CN202311599104.4A patent/CN117593439A/zh active Pending
- 2022-09-14 CN CN202211113266.8A patent/CN115861518B/zh active Active
- 2022-09-14 KR KR1020220115377A patent/KR20230043717A/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192310A (zh) * | 2006-11-28 | 2008-06-04 | 国际商业机器公司 | 执行射线追踪的方法和系统 |
CN103593817A (zh) * | 2012-08-16 | 2014-02-19 | 三星电子株式会社 | 用于使用并行管道的图形处理的方法和设备 |
TW201638883A (zh) * | 2015-02-06 | 2016-11-01 | 英特爾公司 | 用於細分表面的直接和互動式射線追蹤之方法及設備 |
US20190180497A1 (en) * | 2015-12-12 | 2019-06-13 | Adshir Ltd. | System for Fast Intersections in Ray Tracing |
CN112907711A (zh) * | 2019-11-15 | 2021-06-04 | 英特尔公司 | 使用用于向量归一化的单个指令集架构(isa)指令 |
Also Published As
Publication number | Publication date |
---|---|
TW202403671A (zh) | 2024-01-16 |
CN115861518B (zh) | 2023-12-08 |
DE102022122793A1 (de) | 2023-03-30 |
CN115861518A (zh) | 2023-03-28 |
GB2612681B (en) | 2024-01-31 |
GB202318608D0 (en) | 2024-01-17 |
CN117593439A (zh) | 2024-02-23 |
KR20230043717A (ko) | 2023-03-31 |
GB202212912D0 (en) | 2022-10-19 |
GB2612681A (en) | 2023-05-10 |
TW202314645A (zh) | 2023-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102668120B1 (ko) | 병렬 광선 테스트를 갖는 광선 교차 회로 | |
US11521343B2 (en) | Graphics memory space for shader core | |
TWI822330B (zh) | 用量化及區間表示之射線相交測試 | |
US11830124B2 (en) | Quantized ray intersection testing with definitive hit detection | |
US11734871B2 (en) | Ray intersection testing with quantization and interval representations | |
US11676327B2 (en) | Temporal split techniques for motion blur and ray intersection | |
US12002190B2 (en) | Primitive testing for ray intersection at multiple precisions | |
US11210761B1 (en) | Circuitry to determine set of priority candidates | |
KR20240078413A (ko) | 병렬 광선 테스트를 갖는 광선 교차 회로 |