JP2009534759A - 瞬時光線追跡 - Google Patents
瞬時光線追跡 Download PDFInfo
- Publication number
- JP2009534759A JP2009534759A JP2009506777A JP2009506777A JP2009534759A JP 2009534759 A JP2009534759 A JP 2009534759A JP 2009506777 A JP2009506777 A JP 2009506777A JP 2009506777 A JP2009506777 A JP 2009506777A JP 2009534759 A JP2009534759 A JP 2009534759A
- Authority
- JP
- Japan
- Prior art keywords
- ray
- bounding box
- objects
- scene
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 279
- 230000001133 acceleration Effects 0.000 claims abstract description 37
- 238000010276 construction Methods 0.000 claims description 62
- 238000012545 processing Methods 0.000 claims description 36
- 230000006872 improvement Effects 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 23
- 238000004364 calculation method Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 12
- 238000007781 pre-processing Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 43
- 238000000638 solvent extraction Methods 0.000 description 37
- 238000013459 approach Methods 0.000 description 21
- 238000007667 floating Methods 0.000 description 19
- 230000008901 benefit Effects 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 11
- 230000002452 interceptive effect Effects 0.000 description 11
- 238000004519 manufacturing process Methods 0.000 description 9
- 238000005192 partition Methods 0.000 description 8
- 238000007689 inspection Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 238000009877 rendering Methods 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 238000013138 pruning Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 4
- 238000005520 cutting process Methods 0.000 description 4
- 238000003384 imaging method Methods 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- CNQCVBJFEGMYDW-UHFFFAOYSA-N lawrencium atom Chemical compound [Lr] CNQCVBJFEGMYDW-UHFFFAOYSA-N 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000005295 random walk Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000034655 secondary growth Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
【選択図】 図3
Description
(A)2つの面が、x、y、又はz軸のうち選択された1つに垂直であり、
(B)分裂面を与えられると、左/右選択基準に基づいて、画像中の各オブジェクトが左又は右どちらかに分類され、子ノードの2つの分裂面値が、それぞれ、左及び右オブジェクトの最大及び最小座標によって判定され、
(C)境界ボックス及び選択された軸を与えられると、左の子Lが、選択された軸に沿った左オブジェクトの座標の最大値を第1の面で置き換えることから生じ、右の子Rが、右オブジェクトの座標の最小値を第2の面で置き換えることから生じ、結果として生じたどのゼロボリュームも、空の子を表すのに使われ、
(D)分裂面が、
(1)中央にある長辺に沿った軸平行場面境界ボックスを階層状に細分することによって候補分裂面を選択することであって、すべての候補分裂面が規則的なグリッドを形成すること、
(2)候補面が、細分するべきボリューム要素の境界ボックスの外側にある場合、ボリューム要素が存在する半分以降の候補面で継続すること
によって判定され、
(E)さらに、
(a)境界ボックスをオブジェクト境界ボックスに再帰的に分割すること、
(b)被分裂面候補が重複なしでオブジェクトを分離する場合、結果として生じた被分裂面を左及び右にあるオブジェクトに合わせ、そうすることによって空き空間を最大化すること、並びに
(c)所定の数を超えるオブジェクトが残っていない場合、再帰を終了すること
を含む。
(A)空間を分割する順序づけられた規則的なグリッドの解像度を判定するために、場面境界ボックス及び平均的オブジェクトサイズを計算すること、或いは、ユーザ指定解像度を用いること、
(B)各グリッドセルごとにカウンタを割り振ること、
(C)各々がそれぞれのグリッドセルに対応するすべてのカウンタをゼロに初期化すること、
(D)各オブジェクトごとに点を選択して、選択された点を含むグリッドセルに対するそれぞれのカウンタを増分すること、
(E)各カウンタ値をすべての先行カウンタの値の和で置き換えることによって、カウンタ値をオフセット値に変換すること、
(F)グローバルオブジェクト索引アレイを割り振ること、
(G)それぞれの各オブジェクトごとに、その点を含むグリッドセル用のカウンタを増分するために選択された対応する点を使って、オフセット値を用いて、オブジェクトをバケットにソートすること、並びに
(H)各バケットごとに、各バケットが含むオブジェクトの境界ボックスを計算すること
の階層状の実行を含む。
(A)画像三角形をバケットにソートし対応するバケット値を記憶装置上に格納することによって前処理すること、
(B)描画のために、ただちに三角形に対するツリーを構築する必要なく、バケットから最上位境界間隔階層を作成することであって、光線が交差する各バケットが、ツリーのオンデマンド作成を使用して独自のツリーを作成すること、
(C)バケットの三角形及び加速データ構造は、動的又は固定ユーザ定義サイズどちらかのキャッシュに格納されること、並びに
(D)最大数の三角形を有するバケットが、最大メモリフットプリントを定義することを提供するように動作可能である。
本発明の特定の例及び実施形態を説明する前に、以下は、本発明を実装し実施することができる基底デジタル処理構造及び環境の図1、2と関連して読むべき考察である。
I.リアルタイムの高精度光線追跡
1.全体的方法
2.高精度光線追跡アーキテクチャ
2.1.自己交差問題
2.1.1.浮動小数点精度の光線自由曲面交差
2.2.光線−三角形交差
2.3.高性能3Dツリー構築
2.3.1.分裂面選択
2.3.2.最小記憶装置構築
2.3.3.左バランスによるツリー剪定
2.3.4.高数値精度の三角形矩形交差
2.4.高性能境界ボリューム階層
2.4.1.構築
2.4.1.1.分裂面の発見
2.4.1.2.非効率軸平行境界ボックス
2.4.2.横断
2.4.3.オンザフライ境界ボリューム構築
2.5.基数ソート処理
2.5.1.オンデマンドでの構築
3.リアルタイムの高精度光線追跡技法の要約
4.追加技法
4A.半空間の切取りによる境界ボリューム階層の構築
4B.4つの軸平行面による軸平行境界ボックスのクリップ
4C.加速データ構造の高性能セットアップ
4D.効率的なツリーエントリノード判定
4E.束横断
II.瞬時光線追跡
1.概論
2.加速光線追跡の原理
2.1.空間の分割に基づく加速光線追跡
2.1.1.規則的なグリッドを使った空間分割
2.1.2.バイナリ空間区画
2.2.オブジェクトリストの分割に基づく加速光線追跡
2.2.1.境界ボリューム階層
2.3.加速光線追跡のための現在の手法の要約
3.境界間隔階層
3.1.データ構造
3.2.光線交差
3.3.階層の構築
3.3.1.分裂面を判定するグローバルヒューリスティック
3.3.2.近似ソート
3.3.3.実装詳細
3.4.オンデマンドでの構築
4.考察
4.1.メモリフットプリント
4.2.数値精度
4.3.光線集団の追跡
4.4.ハードウェア検討事項
4.5.大量データセット
4.6.大型オブジェクト
5.結果
6.結論
ここで、高精度光線追跡アーキテクチャ及び関連した技法を説明する。記載するアーキテクチャ及び技法は、浮動小数点量子化及び大型メモリ要件、並びにそれ以外に起因する、光線追跡における問題を含むいくつかの問題点に対処する。
図3は、本明細書において説明する技法による全体的方法200を示す図である。この方法は、画像中の各ピクセルごとにピクセル値が生成されるコンピュータグラフィックスシステムのコンテキストにおいて実施される。生成された各ピクセル値は、模擬カメラの画像面上で記録された場面中の点を表す。コンピュータグラフィックスシステムは、選択された光線追跡方法を用いて、画像に対するピクセル値を生成するように構築される。選択された光線追跡方法は、選択された方向に沿ってピクセルから場面中に発せられた少なくとも1つの光線を含む光線ツリーの使用を含み、光線と場面中のオブジェクト(及び/又はオブジェクトの表面)との交差の算出をさらに含む。
以下の説明では、光線追跡技術における特定の問題点、及びそうした問題点に対処する本発明の特定の態様をより詳細に記述する。
図4は、「自己交差」問題を示す図である。図4は、曲面302、観察点304、及び光源306を含む光線追跡手順300を示す。曲面の画像を合成するために、観察点304と曲面302との間に伸びる光線を突き止めるための一連の計算が実施される。図4は、このような1本の光線308を示す。理想的には、次いで、光線308と曲面302との間の正確な交差点310が算出される。
凸面組合せの凸包プロパティを利用すると、交差の点を含む軸平行境界ボックスを洗練することによって、光線源に最も近い、光線と自由曲面との交差を見つけることができる。この洗練は、浮動小数点数の分解に到達するまで、すなわち、境界ボックス座標が、分解の一単位においてのみ浮動小数点表現とは異なるようになるまで、継続してよい。自己交差問題は次いで、境界ボックスの中心にある曲面法線に最も接近した、境界ボックスの角を選択することによって回避される。この角点は次いで、二次光線を開始させるのに使われる。
上述の「光線オブジェクト交差検査」は、非常に効率的であり、自己交差問題の回避から恩恵を被る。加速データ構造を構築した後、三角形は、適所で変換される。新しい表現は、縮退三角形を、交差検査が余分な作業なしで縮退三角形を扱うことができるようにエンコードする。図5は、記載する技法を実装するコードリスティング320の例を示す。当然ながら、単に縮退三角形がグラフィックスパイプラインに入るのを防止することも可能である。
本発明のそれ以外の態様は、光線追跡用の加速データ構造を構築する、改良された手法を提供する。異なるいくつかの最適化に従う従来のソフトウェア実装形態と比較して、本明細書において説明する手法は、優れた光線追跡性能をもつ、著しく平らなツリーをもたらす。
分裂面の候補は、分割されるべき軸平行境界ボックスの内側にある三角形の頂点の座標で与えられる。これは、境界ボックスの外側に実際にあるが、境界ボックスによって定義される3つの間隔のうち1つの中にある少なくとも1つの座標を有する頂点を含むことに留意されたい。こうした候補から、現在の軸平行境界ボックスの長辺の中央に最も接近した面が選択される。さらに最適化することで、その曲面法線の最長成分が可能な分裂面の法線と合致する三角形の座標のみを選択する。この手順は、三角形の頂点を通って分裂面を配置すると、分裂面によって分裂される三角形の数を暗黙的に削減することになるので、はるかに平らなツリーをもたらす。さらに、曲面は厳しく近似され、空き空間は最大限にされる。三角形の数が、指定された閾値より高く、分裂面の候補がそれ以上ない場合、ボックスは、その長辺に沿って中央で分裂される。こうすることで、たとえば長対角線オブジェクトの使用を含む、他の手法の非効率性を回避する。
どの三角形が階層中のノードの左及び右の子に属すかを決定する再帰的手順は通常、広範囲な記録づけ及びメモリ割振りを要求していた。例外的なケースにおいてのみ失敗する、はるかに単純な手法がある。光線追跡されるべきオブジェクトへの参照のただ2つのアレイが割り振られる。第1のアレイは、オブジェクト参照で初期化される。再帰的空間分割中に、左にある要素のスタックが、アレイの先頭から増大され、右に分類される要素は、アレイの末尾から中央に向かって増大するスタック上に保たれる。被分裂面と交差している、すなわち、左及び右両方である要素を迅速に復元可能にするために、第2のアレイは、そうした要素のスタックを保つ。したがって、バックトラックは効率的であり単純である。
表面積ヒューリスティックを用いることによってツリーの分岐を剪定する代わりに、ツリーの深さは、固定深度から始まるバイナリ空間分割の左バランスを近似的にとることによって、剪定される。網羅的実験によって観察されるように、非常に多様な場面に渡るグローバルな固定深度パラメータを指定することができる。これは、一般に一定量のバイナリ空間分割の後に、比較的平らな接続された構成要素が空間内に残ることを観察することによって理解することができよう。
三角形の、分裂面との交差が境界ボックスの左及び/又は右区画に含まれるかどうかを決定するために、三角形−ボックス交差技法の数値的に最適化された2dバージョンが開発されている。最初に、分裂面との三角形の交差が計算される。次いで、この線が、分裂面及び境界ボックスの交差によって与えられる矩形に相対してどのように存在するかに関して、検査が実施される。図7A〜Dは、記載する技法を実装する例示的なコードリスティング360を示す。コードの明らかな複雑さに関わらず、この技法は従来の方法より効率的であり、数値的に安定している。
境界ボリューム階層を用いて、光線追跡されるべき各オブジェクトが一度だけ参照される。その結果、3Dツリーとは対称的に、階層を横断中の、光線とのオブジェクトの多重交差を防止するためのメールボックス機構は要求されない。これは、システム性能の視点から見ると、大きな利点であり、共有されるメモリシステム上での実装をはるかに単純にする。2番目に重要な帰結は、境界ボリューム階層のツリー中に、光線追跡されるべきオブジェクトの総数より多くの内部ノードがあってはならないことである。したがって、加速データ構造のメモリフットプリントについては、構築前にオブジェクトの数において線形的に境界を定めることができる。このような先験的境界は、メモリの複雑さが、光線追跡されるべきオブジェクトの数とともに二次的に増すと予想される、3Dツリーの構築には利用することはできない。
境界ボリューム階層が、3Dツリーより性能が優れるようにするコア概念は、境界ボリューム自体に注目するのではなく、空間をどのように分けることができるかに注目することである。
L及びR面、したがって実際のツリーレイアウトを判定するのに、様々な技法を用いることができる。図9〜11を参照すると、ある技法では、上述した3Dツリー構築技法を用いて面M418を判定し、新しい軸平行境界ボックスの、結果として生じたL面及びR面の重複が、提案された分裂面M418と最小限に重なるようにオブジェクトを分割する。結果として生じたツリーは、対応する3Dツリーと非常に類似しているが、空間よりもむしろオブジェクトセットが分割されるので、結果として生じたツリーは、はるかに平らである。別の手法では、可能であれば子ボックスの重複が最小限になるとともに空き空間が最大限になるように、R面及びL面を選択する。
一部のオブジェクトにとって、軸平行境界ボックスは非効率的であることに留意されたい。このような状況の例は、軸平行境界ボックスの対角線上に小半径をもつ長い円柱である。
本明細書において説明するデータ構造は、高速3Dツリー横断の原理を、境界ボリューム階層に転嫁させる。横断のケースは類似しており、(1)左の子のみ、(2)右の子のみ、(3)左の子、次いで右の子、(4)右の子、次いで左の子、又は(5)光線は被分裂面の間(すなわち、空き空間)にある。記載する技法における1つのノードは2つの並列面によって分裂されるので、どのようにボックスを横断するかという順序は、光線方向によって判定される。図14A〜Cは、上述した技法を組み込むソースコードリスティング610を示す。
記載する境界ボリューム階層は、自由曲面を細分することによって、自由曲面交差を効率的に見つけるのにも適用することができる。そうすることにより、凸包プロパティ及び細分アルゴリズムをもつ自由曲面の交差が、実際の浮動小数点算術に応じて、浮動小数点精度まで効率的に計算されるようになる。たとえば、多項式曲面、有理曲面、及び近似細分曲面に対して、細分ステップが実施される。空間中の各軸ごとに、重なる可能性がある境界ボックスが、新しいメッシュの新しい境界ボックスに対するバイナリ細分、Lボックスの交差、及びRボックスの交差のケースにおいて、上述したように判定される。ここで、ボックスの空間順序は既知なので、上述の横断は、効率的に実施することができる。境界ボリュームの階層は、予め計算するのではなく、オンザフライで計算してよい。この手順は、自由曲面に対して効率的であり、加速データ構造用にメモリを節約できるようにし、この構造は、バックトラックによって横断されなければならない境界ボリュームの小スタックで置き換えられる。細分は、光線曲面交差が、浮動小数点精度での点又は小さいサイズの間隔となる境界ボリューム内にあるようになるまで継続される。付表のセクション2.1.1で、本発明の本態様によるコードリスティングを説明する。
規則的なグリッドを光線追跡において加速データ構造として使うことは単純だが、空間適合性がないこと、及び後に続く多くの空きグリッドセルの横断により、効率が落ちる。階層状の規則的グリッドは、こうした状況を改善し得るが、やはり、境界ボリューム階層及び3Dツリーに比較して劣っている。階層状の規則的グリッドは、加速データ構造の構築速度を向上するのに使うことができる。加速データ構造を構築する技法は、クイックソートと同様であり、O(n log n)で稼動すると予想される。線形時間で稼動するバケットソートを適用することによって、改良を得ることができる。したがって、オブジェクトの軸平行境界ボックスは、nx×ny×ns個の軸平行ボックスに分割される。各オブジェクトは次いで、選択された一点によって、こうしたボックスのうちただ1つにソートされ、たとえば、各三角形の重心や第1の頂点を使ってよい。次いで、各グリッドセル中のオブジェクトの実際の軸平行境界ボックスが判定される。こうした軸平行境界ボックスが、ボックスが区画面の1つと交差しない限り、ボックスが含むオブジェクトの代わりに使われる。そのケースでは、ボックスはアンパックされ、代わりに、ボックス内のオブジェクトが直接使われることになる。この手順は、たくさんの比較及びメモリアクセスを節約し、一定した順序の構築技法を著しく向上し、再帰的に適用することもできる。上記技法は、オブジェクトのストリームを処理することによって実現することができるので、特にハードウェア実装向けである。
加速データ構造は、オンデマンドで、すなわち、オブジェクトを有する具体的な軸平行境界ボックスを光線が横断しているときに構築することができる。次いで、一方では加速データ構造は、光線には見えない空間の領域内で決して洗練されることはなく、キャッシュは、決して触れられることのないデータによって汚染されない。他方では、洗練の後、光線が交差する可能性があるオブジェクトは、既にキャッシュの中にある。
上記考察から、本発明は長く公知であった、光線追跡における問題点に対処し、精度、全体的速度及び加速データ構造のメモリフットプリントが向上した光線追跡のための技法を提供することが分かるであろう。数値精度における向上は、たとえば、ART光線追跡チップのハードウェアにおいて用いられる対数記数法と同様に、他の記数法にも伝わる。プロセッサ又は専用ハードウェア上でのIEEE浮動小数点標準の具体的な実装は、性能に深刻に影響し得ることに留意されたい。たとえば、Pentium4チップ上では、非正規化数は、性能を100倍以上低下させ得る。上述したように、本発明の実装形態は、こうした例外を回避する。本明細書において説明する境界ボリューム階層のビューにより、階層はリアルタイムの光線追跡に適したものとなる。ならし解析において、記載する技法は、従来の現況技術より性能が優れており、したがって、たとえば、製造時設定などでのように、十分にアニメーション化された場面におけるモーションブラーを計算する、より正確な技法を用いることができるようになる。上記考察から、3Dツリー及び他の技法と比較したとき、特にハードウェア実装形態において、且つ巨大な場面にとって、記載する境界ボリューム階層には大きな利点があることが明らかであろう。ならし解析では、記載する境界ボリューム階層は、現在の3Dツリーより性能が少なくとも2倍は優れている。さらに、メモリフットプリントは、予め判定することができ、オブジェクトの数が線形である。
上述の技法に加えて、本発明のそれ以外の態様による他の技法が、光線追跡システムの性能を向上させるのに用いることができる。本発明のこうした態様は、以下を含む。
4A.半空間の切取りによる境界ボリューム階層の構築
4B.4つの軸平行面による軸平行境界ボックスのクリップ
4C.加速データ構造の高性能セットアップ
4D.効率的なツリー空きノード判定
4E.束横断
半空間を切り取ることによって、境界ボリューム階層を構築することが可能である。軸平行境界ボックスと交差する半空間を用いると、元の境界ボックス及び所与の半空間との交差から生じる新しい境界ボックスによって、境界ボリューム階層が与えられる。
図18は、本発明のそれ以外の態様による技法を例示する図を示す。図18において、軸平行境界ボックス650が、4つの軸平行面LeftBoxL、RightBoxL、LeftBoxR及びRightBoxRによってクリップされており、結果として、左の子ボックス及び右の子ボックスを生じる。左の子ボックスの左及び右境界は、面LeftBoxL及びLeftBoxRで定義される。右の子ボックスの左及び右境界は、面RightBoxL及びRightBoxRで定義される。光線横断中、5つのケースが判定されなければならない。光線上の有効な間隔[N,F]は、(1)左の子ボックスのみ、(2)右の子ボックスのみ、(3)最初に左の子ボックス、及び右の子ボックス、(4)最初に右の子ボックス、次いで左の子ボックスと交差し、又は(5)左の子ボックスとも右の子ボックスとも交差しない。
ツリー加速データ構造のセットアップ手順は暗黙的に、三角形の数nにおいて計算時間がO(n log n)だけかかるソートアルゴリズムを呼び出す。基数、バケット、及び関連したソートアルゴリズムのみが、より低次の計算時間量を得る。
所与の1組の光線に対して、軸平行境界ボックスは、比較的多くのプロパティが分かっている場合、光線の数において線形時間で判定することも、一定の時間でも判定することもできる。この境界ボックスの場合、分裂面の片側にあるのか、それとも分裂面と交差するのか判定することが、比較的明快であり数値的に堅牢である。この技法は、上述したように加速データ構造を下向きに横断するための再帰的手順で用いることができる。ボックスが、ツリーの内部ノードによって識別される分裂面の片側にある場合、この分岐は、さらに横断するために使われる。リーフノード又は光線境界ボックスと交差する面に遭遇すると、このノードは、光線の束に対する共通エントリノードとして識別される。次いで、加速データ構造のルートノードから光線を横断するのではなく、横断は、エントリノードから始めればよい。
本発明のそれ以外の態様によると、異なる加速構造を通る光線の束を同時に追跡するのに、命令が使われる光線束交差ルーチンが実装されている。この実装は、3dツリー中の横断される光線束に由来する。導入される最適化は、記載する境界ボリューム階層表現とともに用いてもよいことに留意されたい。
ここで、加速データ構造を瞬時に構築させる光線追跡技法及びシステムを説明する。記載する技法及びシステムは、ローカル基準に基づく従来の技法を大幅に改良するグローバルヒューリスティックに基づく。速度以外に、記載する技法及びシステムには、従来の技法に比較して、いくつかの利点がある。記載する技法及びシステムは、実装するのがより単純であり、より高い数値精度を呈し、従来の技法によって使われるメモリのごくわずかを使う。記載する技法及びシステムは、大規模且つ動的な場面への広範囲な適用によって証明されている。
上述したように、光線追跡は、グローバルな照度シミュレーションによる、写真のようにリアルな画像合成におけるコア技法である。この技法は、他の多くのシミュレーション方法の基礎でもある。最近は、リアルタイムの光線追跡が利用可能になっている。現在の光線追跡アルゴリズムは、場面形状の分析に基づいて前もって構築される追加データ構造に効率性を負っている。追加データ構造の構築は通常、かなりの量の処理時間及びメモリを要求する。したがって、前処理は通常、静的であり又は適度なダイナミクスを含む環境に対してのみ償却している。
概して、「場面」とは、3次元空間内でのオブジェクトの配置である。光線追跡における基本的タスクは、場面中でのオブジェクトとの各光線の交差の最接近点をサーチすることである。概して、画像合成のために極めて多数の光線を追跡するとき、場面中のオブジェクトすべてとの各光線の交差を検査することは、効率的でない。したがって、この検査は通常、場面をいくつかの区画に分裂する追加データ構造を構築することに償却する。場面が分割されると、実際の交差検査からの場面中のオブジェクトのほとんどを排除する、しばしばバックトラックサーチである区画レベルのサーチを指揮することができる。
オブジェクトを含む空間は、互いに素のボリューム要素に分割される。光線が交差するボリューム要素を数え上げ、次いで交差に対する数え上げられたボリューム要素中のオブジェクトを検査することによって、効率が達成される。空間分割の主たる不利な点は、オブジェクトがしばしば、複数のボリューム要素との空でない交差を有し、したがって、一度よりも多く参照されることである。この冗長性は結果として、巨大なメモリフットプリントを生じ、同じ幾何オブジェクトとの単光線の多重検査された交差から起こる性能損失を回避するためのメールボックス機構を要求し得る。
規則的なグリッドに基づく分割では、空間は、同一の矩形軸平行ボリュームのラスターに分割される。この規則的な構造により、所与の光線に沿ったボリューム要素を数え上げる単純な技法が可能になる。各ボリューム要素は、それが交差するオブジェクトのリストを含む。したがって、数え上げられたボリューム要素中の、列挙されたオブジェクトのみが、光線との交差に関して検査される。
バイナリ空間区画は、階層状のデータ構造である。一般的な考え方は、任意の分裂面を用いて場面空間を細分することである。任意の第1の面が、場面空間を2つのセルに分けるのに使われる。任意の追加面が、2つのセルをそれぞれ、サブセルに適合的に分けるのに使われる。このプロセスは、バイナリサーチツリーを生成するために再帰的に繰り返される。生成されたサーチツリーの各リーフセルは、リーフセルと交差するオブジェクトのリストを含むボリューム要素である。
オブジェクトのリストを分割するとき、各オブジェクトは、多くとも一度参照されたままであり、したがって、メモリ要件を先験的に予測することが可能である。さらに、各オブジェクトは、与えられた光線と、多くて一度交差する。したがって、メールボックスは冗長になる。ただし、回避不可能な帰結として、オブジェクトのグループを内包するボリュームはしばしば、互いに素になることはできない。
境界ボリューム階層とは、場面中のオブジェクトが軸平行ボリューム要素によって境界を定められるタイプの分割方式である。メモリ要件については、オブジェクトの数に基づいて線形的に、先験的に境界を定めることができるので、境界ボリューム階層は、業界で共通して使われる。境界ボリューム階層の実装は、オブジェクト−面交差ルーチンを要求しない。その結果、階層は、空間分割方式よりも実装するのが容易である。軸平行矩形境界ボリューム要素を使うと、最小限/最大限の操作のみが使われる際の構築中のどの数値安定性問題点も回避される。
容易性、数値堅牢性、及び予測可能なメモリフットプリントにより、境界ボリューム階層は、加速光線追跡にとって魅力的な選択となる。ただし、現在の性能は、kdツリーを用いて得られるものとはほど遠い。加速データ構造の構築中に起こる、概して予測不可能なメモリ要件及び数値問題点を犠牲にして、kdツリーは、静的及び適度に動的な場面に対するリアルタイムの性能を得るのに用いることができる。
本発明の態様は、「境界間隔階層」に基づく技法を提供し、この技法は、静的及び動的場面両方に対して大幅な速度増加をもたらし、はるかに高い数値精度を特徴とし、メモリフットプリントを先験的に固定させる。記載する技法は、したがって、空間分割及びオブジェクトリストの分割の利点を組み合わせる。十分に最適化された最新の2つのkdツリーベースのレイトレーサとの比較は、記載する技法が、ほとんど場面に対して、合計描画時間及び全体的メモリ消費両方において、kdツリーベースの技法より2倍以上性能が優れ得ることを示す。記載する技法を用いて得られる結果の一部が、後で論じる図37に示すテーブルに記載されている。
データ構造中の各ノードごとに、境界間隔階層は、x、y、又はz軸の1つに対して、その軸に垂直な2つの並列面を格納する。対照的に、古典的な境界ボリューム階層では、十分な軸平行境界ボックスが各子ごとに格納される。
光線を境界間隔階層2分木と交差させることは、境界ボリューム階層を横断することと同様である。(上述したように、境界ボリューム階層とは、場面の中に含まれるオブジェクトのリストに基づく分割技法である)。ただし、境界ボリューム階層中の子とは異なり、境界間隔階層中の子は、空間的に順序づけられる。したがって、光線方向の合図によって、光線源により近い子に直接アクセスすることが可能なので、境界間隔階層は、境界ボリューム階層よりはるかに効率的に進み得る。したがって、上で論じた図22A〜E、23A〜Dに示したように、この横断は、kdツリーベースの空間分割の横断とほとんど同一になる。
記載するデータ構造の性能の手掛かりとなるものは、効率的な構築である。所与の候補分裂面を想定すると、記載する本実装において使われる技法は比較的明快である。各オブジェクトは、面のどちら側と最も重なるかに応じて、「左オブジェクト」又は「右オブジェクト」どちらかとして分類される。オブジェクトを左オブジェクト又は右オブジェクトとして分類するのに、他のヒューリスティックを用いることができる。子ノードの2つの分割面値が次いで、選択された軸に沿った、分類される左オブジェクトの最大(すなわち、右端の)座標及び分類される右オブジェクトの最小(すなわち、左端の)座標によって、それぞれ判定される。
ここで、グローバルヒューリスティックを用いて候補分裂面を判定する技法を説明する。従来の手法とは異なり、記載するヒューリスティックは、光線追跡されるべきオブジェクトを明示的には分析しないので、貪欲でなく、評価するコストがかからない。
上述のデータ構造を構築するのに要求される時間の量は、平均でO(n log n)である。本発明のそれ以外の態様によると、バケットソートプリプロセスが、次定数を減じるのに使われる。
境界間隔階層はオブジェクト分割方式なので、すべてのオブジェクトソートは、適所で行うことができ、一時的メモリ管理は要求されない。再帰的構築手順は、クイックソートベースの技法と同様に、索引アレイ中の左及び右オブジェクトへの2つのポインタを必要とするだけである。
これまで提示したフレームワークは既に、対話型な光線追跡を可能にしている。ただし、加速データ構造の構築時間及びメモリフットプリントは、光線が横断する場合、すなわち、形状が交差される場合にのみ構築することによって、さらに最適化することができる。境界間隔階層を用いた実装は、比較的明快であり、深度の複雑さが高いことを特徴とする大きな場面の場合に特に有益である。すべてのオブジェクトソートは適所で行われるので、未だに細分されていないボリューム要素に印をつけるのに、フラグのみが要求される。光線を横断すると、フラグがセットされている場合に細分ルーチンがコールされる。単純な最適化では、ノードに含まれるすべてのオブジェクトがキャッシュ(たとえばL1又はL2キャッシュ)に収まる場合、ノードを完全に細分する。オンデマンド構築は、横断及び構築ルーチンの古典的な分離を廃止する。この単純な拡張を用いると、図22に示すBoeing777メッシュを、シングルコアOpteron 2.2GHz 32GB RAMマシン上で最初からHDTV解像度で3〜9分(カメラ位置に応じる)以内に描画することが可能であった。従来の手法と比較して、わずかなメモリのみが用いられる。
境界間隔階層は、空間分割方式の効率的な横断技法の利益を受けるオブジェクト分割方式である。このセクションでは、この手法の利点の一部について論じる。
構築アルゴリズムは、分裂面をオブジェクト境界ボックスに合致させるので、階層中の内部ノードの数は、6倍のオブジェクトの数によって境界を定められる。ポリゴンのケースでは、この数は、直前の境界の最小及び頂点の数の3倍で境界を定められる。オブジェクト参照の数は、場面中のオブジェクトの数と正確に一致する。
境界間隔階層構築では、正準座標システムにおいて、境界ボックス情報及び最小/最大操作のみを用いる。したがって、手順は数値的には、無条件に堅牢である。空間分割方式は、浮動小数点の不正確さの影響を被る操作に依拠するオブジェクト面交差ルーチンを要求する。方式を安定させるために、耐容性が追加されなければならない。その結果、性能が影響を被る。
光線が干渉性である場合、単光線ではなく光線の集団(又はアレイ)の追跡が有効であり得る。一次光線は、干渉性のある組に簡単にグループ化することができるが、点光源から影光線の集団に対して同じ利益を得るのは既に難しくなっている。透明な、反射した、又はランダムウォークシミュレーションによる光線は、十分な干渉性に欠けている。それにも関わらず、干渉光線の集団を与えられると、光線の集団を追跡するための手法は、本明細書において説明するデータ構造の利益を受ける。この利益は、小さいメモリフットプリントから生じたメモリ帯域幅の削減及びキャッシュ干渉の増大に起因する。さらにボリューム要素は、概してkdツリーの対応するボリュームより大きく見え、干渉に対する条件が緩和される。単光線から2×2光線束追跡までの加速比は、kdツリーと比較して、境界間隔階層に対して、わずかに高いことが、実験により示されている。フラスタムカリング技法は、境界ボリューム階層に首尾よく変形される。こうした技法は、スタック上の現在のボリューム要素境界ボックスを追うことによって、境界間隔階層に簡単に変形することができる。階層は、他のやり方でもアップデートすることができるが、記載する構築ルーチンは、表面積ヒューリスティックより大幅に速く、変形によってアニメーション化されたメッシュに対する厳しい制限を撤廃する。2×2集団の光線の場合、より一般的な技法によって得られる光線追跡性能は、少なくとも同程度に高速である。最後に、ノードデータ構造ははるかに小さい。完全を期すために、光線の集団は、グリッド加速データ構造を用いて効率的に追跡することもできることに留意されたい。ただし、多数のグリッドセルと重なる大型オブジェクト、並びに二次光線は、厳しい性能損失を引き起こす。概して、シャフトカリング技法は、光線の集団を発散する距離に対して失敗する。
リアルタイムの光線追跡における最近の発見に基づいて、RPU(光線処理ユニット)チップが設計されている。アーキテクチャは、効率的に光線追跡し、光線の束に陰影をつけることができるが、我々の手法によって簡単に改良することができる。境界間隔階層は、はるかに小さいメモリフットプリントをもち、オブジェクト分割方式として、メールボックスユニットを必要としない。TPUユニットのみが、第2の面交差によって拡張されなければならない。こうした修正は、境界間隔階層横断とkdツリー横断との類似により、簡単に組み込むことができる。より重要には、上述のデータ構造構築技法は、単純な操作のみを用い、したがって、ハードウェア実装の非常に優れた候補である。
産業用途及びプロダクションレンダリングにおいて使われる現在のデータセットは、一般に数百メガバイトから数ギガバイトの未加工データに渡る大量の形状からなる。上述したように、境界間隔階層の小さいメモリフットプリントにより、大規模場面は単純な手段によって効率的に光線追跡されるようになるが、依然として、データがメインメモリに収まらない状況があり得る。したがって、Boeing777のピクチャを、50MBのRAMのみを使って描画することができる極小メモリフットプリントレンダラが実装されている。より多くのRAMが利用可能(測定目的のために1GBが仮定された)である場合、図38に示したように、標準消費者デスクトップPC上でも、1時間未満でピクチャを最初から描画することが可能である。極小メモリの使用を達成するために、上述の前処理ステップは、オブジェクトをバケットにソートするのに用いられ、バケットは次いで、コンピュータのハードドライブ上に格納される。描画ステップの場合、最上位境界間隔階層がバケットから作成されるが、どのオブジェクトにも触れる必要はない。光線が交差される各バケットは、オンデマンドポリシーを用いて、独自のツリーを作成する。バケットのオブジェクト及び加速データ構造は、動的(すなわち、それ以上のRAMが利用可能でなくなるまで増大し得る)又はユーザが定義した固定サイズどちらかのキャッシュ中に保たれる。最大オブジェクト数をもつバケットは、最大メモリフットプリントを定義する。この結果は、バケットソートプリプロセスから無償で得られることに留意されたい。このシナリオでは、処理速度は、ハードドライブの速度で判定される。ツリー構築アルゴリズムはとても高速なので加速データ構造の一部が押し出されなければならない場合、その一部は、単に捨てられ、オンデマンドに組み立て直される。
境界間隔階層性能は、小さい、及び大きな幾何要素の混合物に遭遇すると、影響を被ると提案することができよう。これは部分的に真実であり、空間分割方式に対しても真実である。この状況で、kdツリーが、より多くの分裂面を挿入することによって場面を細分する。この結果、より深いツリー、オブジェクト参照の重複、及び全体的に増大したメモリフットプリントを生じる。より深いツリーは、横断時間を増大させる。このようなシナリオにおける境界間隔階層の性能問題には、図39に示すBARTロボットの例によってスポットを当てることができる。場面は、道路及び家の大きな三角形から作られるが、標識及び歩行ロボットなど、たくさんのより細かい形状も特徴とする。大きな三角形は、階層中に大きな重なるボリュームを引き起こすので、早い段階でのツリー剪定が不可能になり、1光線につき、より多くの三角形が検査されなければならない。描画システムにおける古典的な次善策は、大型オブジェクトを予め細分することである。メモリを適度に増大させるために、オブジェクトは、正準軸に垂直な面によって分けられるべきである。ここで、メモリ消費は、kdツリーと同様に増大するが、依然としてメモリ消費を先験的に判定することが可能である。記載する手法は、置換マッピング及び大量の幾何細部をもつプロダクションシステムを意図しているので、上記考察によって問題が課されることはない。実際、問題は、低ポリゴンカウントのアーキテクチャシナリオに対してのみ持続する。比較的古いゲームでも、通常は、1フレームあたり200.000から500.000個の可視的三角形を使う。
現在使われている技法と本明細書において説明する改良技法との比較の結果を、図37〜42で説明する。
本発明の態様は、特に十分に動的環境において、又は大量データセットのために使われたとき、光線追跡を加速する改良技法を提供する。記載するデータ構造のメモリフットプリント及び構築時間は両方とも、従来の手法と比較して、大幅に小さい。記載する技法は、形状に対する制限なしで、動的内容のリアルタイムの光線追跡を可能にする。こうした技法は、不偏モーションブラーのはるかに効率的な計算も可能にする。グローバルヒューリスティックに伴う本技法の容易性及び予測可能性は、ハードウェア実装のための有望な候補である。自由曲面を有する境界間隔階層を用いた第1の実験は、有望である。新しいグローバルヒューリスティックは、本文書において測定目的のために使われたはるかに複雑なkdツリー構築ヒューリスティックと比較された。より単純な方式が、結果としてほとんど同一の性能を生じる。
Claims (25)
- コンピュータ及び表示要素を備えるコンピュータグラフィックスシステムであって、前記表示要素は、前記コンピュータからの表示制御用電気出力に応答して、人間が知覚可能な画像を表示するように動作可能であり、前記コンピュータは、前記画像中のピクセルに関するピクセル値の算出に基づいて、前記表示制御用電気出力を生成するように動作可能であり、それぞれのピクセル値は、模擬カメラの画像面上に記録される場面中の点を表し、前記コンピュータは、光線追跡方法を用いて画像に対するピクセル値を生成するように動作可能であり、前記光線追跡方法は、光線ツリー及び関連した光線追跡データ構造の使用を含み、前記光線ツリーは、選択された方向に沿って前記ピクセルから場面中に発せられた少なくとも1本の光線を含み、前記光線追跡方法は、前記場面中での光線とオブジェクトの表面との交差の算出をさらに含み、前記光線追跡は、画像中のオブジェクトの処理の結果に応答して判定される、コンピュータグラフィックシステムにおける改良であって、
ツリー構造を含む階層状光線追跡加速データ構造を構築することであって、ツリー構造のノードが、場面中の1組のオブジェクトを左オブジェクトと右オブジェクトに分割するための軸平行場面境界ボックス及び2つの並列面定義に基づく境界間隔階層を使用して生成されること、並びに、
被分裂面をオブジェクト境界ボックスに合致させること
を含み、
前記2つの面が、x、y、又はz軸のうち選択された1つに垂直であり、
分裂面が与えられた場合、左/右選択基準に基づいて、画像中の各オブジェクトが左又は右どちらかに分類され、子ノードの2つの分裂面値が、それぞれ、前記左及び右オブジェクトの最大及び最小座標によって判定され、
境界ボックス及び前記選択された軸が与えられた場合、左の子Lが、前記選択された軸に沿った左オブジェクトの座標の最大値を第1の面で置き換えることから生じ、右の子Rが、右オブジェクトの座標の最小値を第2の面で置き換えることから生じ、結果として生じたどのゼロボリュームも、空の子を示すために用いられ、
分裂面が、
(a)中央にある長辺に沿った軸平行場面境界ボックスを階層状に細分することによって候補分裂面を選択することであって、すべての候補分裂面が規則的なグリッドを形成すること、
(b)候補面が、細分するべきボリューム要素の前記境界ボックスの外側にある場合、前記ボリューム要素が存在する半分以降の候補面で継続すること
によって判定され、
さらに、
(a)前記境界ボックスをオブジェクト境界ボックスに再帰的に分割すること、
(b)被分裂面候補が重複なしでオブジェクトを分離する場合、結果として生じた被分裂面を左及び右にある前記オブジェクトに合わせ、そうすることによって空き空間を最大化すること、並びに
(c)所定の数を超えるオブジェクトが残っていない場合、前記再帰を終了すること
を含む改良。 - A.前記左/右選択基準は、分裂面を与えられた場合、、画像中の各オブジェクトを、前記面のどちら側が最も伸びているかに応じて左又は右どちらかに分類することを含み、
B.前記階層状光線追跡加速データ構造の前記構築が、バケットソートに基づき、
(a)空間を分割する順序づけられた規則的なグリッドの解像度を判定するために、場面境界ボックス及び平均的オブジェクトサイズを計算すること、或いは、ユーザ指定解像度を用いること、
(b)各グリッドセルごとにカウンタを割り振ること、
(c)各々がそれぞれのグリッドセルに対応するすべてのカウンタをゼロに初期化すること、
(d)各オブジェクトごとに点を選択して、前記選択された点を含む前記グリッドセルに対する前記それぞれのカウンタを増分すること、
(e)各カウンタ値をすべての先行カウンタの値の和で置き換えることによって、カウンタ値をオフセット値に変換すること、
(f)グローバルオブジェクト索引アレイを割り振ること、
(g)それぞれの各オブジェクトごとに、その点を含む前記グリッドセル用の前記カウンタを増分するために選択された前記対応する点を使って、前記オフセット値を用いて、前記オブジェクトをバケットにソートすること、並びに
(h)各バケットごとに、各バケットが含む前記オブジェクトの前記境界ボックスを計算すること
の階層状の実行を含む、請求項1に記載のシステムにおける一層の改良。 - 前記ツリー構造の内部ノードが、2つのクリッピング面及び1対の子へのポインタによって記述される、請求項2に記載のシステムにおける一層の改良。
- 被分裂面候補が、前記内部ノードの境界ボックスに適合せず、前記場面のグローバル境界ボックスによって判定され、その結果、境界ボックスが前記階層を通して可能な限り立方体として維持される、請求項3に記載のシステムにおける一層の改良。
- 前記子ポインタの下位2ビットを、前記軸又はリーフを示すのに使うことができるように、すべてのノードが、選択されたバイトベースの境界上に整列される、請求項2に記載のシステムにおける一層の改良。
- リーフノードは、参照されるオブジェクト及びオブジェクトの全体数への多ビットポインタからなる、請求項5に記載のシステムにおける一層の改良。
- 対応する有効光線セグメントが、重ならない2つの子の間にあるとき、光線がどの子とも交差しないことが可能であり、この追加ケースの処理が、空きリーフが格納される必要がないように、空きリーフを暗黙的にスキップする、請求項2に記載のシステムにおける一層の改良。
- 交差が判定されるとすぐに、前記階層ツリーの分岐が現在の交差よりさらに離れたボリューム要素を表す場合は分岐を剪定してよい、請求項7に記載のシステムにおける一層の改良。
- 光線が横断する場合、又は形状がこの光線に対して可視的である場合のみ、前記階層状加速データ構造の構築を含む、請求項2に記載のシステムにおける一層の改良。
- オブジェクトソートが適所で行われるので、未だに細分されていないボリューム要素に印をつけるためのフラグのみが要求され、光線を横断するとき、前記フラグがセットされている場合は細分が実施される、請求項9に記載のシステムにおける一層の改良。
- 前記階層状加速データ構造のノードに含まれるすべてのオブジェクトが専用のメモリキャッシュに収まる場合、前記ノードを完全に細分することを含む、請求項10に記載のシステムにおける一層の改良。
- 光線のアレイの追跡を含む、請求項2に記載のシステムにおける一層の改良。
- 前記境界間隔階層に関連したフラスタム光線カリング技法の使用を含む、請求項12に記載のシステムにおける一層の改良。
- 上記方法によって処理及びメモリ構造を構築することを含み、前記処理及びメモリ構造は、
画像三角形をバケットにソートし対応するバケット値を記憶装置上に格納することによって前処理すること、
描画のために、ただちに前記三角形に対する前記ツリーを構築する必要なく、前記バケットから最上位境界間隔階層を作成することであって、光線が交差する各バケットが、前記ツリーのオンデマンド作成を使用して独自のツリーを作成すること
を提供するように動作可能であり、
前記バケットの三角形及び前記加速データ構造が、動的又は固定ユーザ定義サイズどちらかのキャッシュに格納され、
最大数の三角形を有する前記バケットが、最大メモリフットプリントを定義する、請求項2に記載のシステムにおける一層の改良。 - 要求されるメモリは、前もって、光線追跡されるべきオブジェクトの数で線形的に境界を定めることができる、請求項2に記載のシステムにおける一層の改良。
- ただ1つのクリッピング面の使用を含む、請求項2に記載のシステムにおける一層の改良。
- 4つのクリッピング面の使用を含む、請求項2に記載のシステムにおける一層の改良。
- オンデマンドのみでの前記階層状光線追跡加速データ構造の構築を構築することを含む、請求項2に記載のシステムにおける一層の改良。
- 分裂面の片側にある、又は前記分裂面と交差する光線の束の前記境界ボックスを判定すること、及び
前記ボックスが、前記ツリーの前記内部ノードで識別される前記分裂面の片側にある場合、この分岐を一層の横断に使うこと、
前記光線境界ボックスと交差するリーフノード又は面に遭遇した場合、このノードを、光線の前記束に対する共通エントリノードと識別し、次いで、前記加速データ構造のルートノードから前記光線を横断するのではなく、エントリノードから横断を開始することを含む、請求項9に記載のシステムにおける一層の改良。 - コンピュータ及び表示要素を備えるコンピュータグラフィックスシステムであって、前記表示要素は、前記コンピュータからの表示制御用電気出力に応答して、人間が知覚可能な画像を表示するように動作可能であり、前記コンピュータは、前記画像中のピクセルに関するピクセル値の算出に基づいて、前記表示制御用電気出力を生成するように動作可能であり、それぞれのピクセル値は、模擬カメラの画像面上に記録される場面中の点を表し、前記コンピュータは、光線追跡方法を用いて画像に対するピクセル値を生成するように動作可能であり、前記光線追跡方法は、光線ツリー及び関連した光線追跡データ構造の使用を含み、前記光線ツリーは、選択された方向に沿って前記ピクセルから場面中に発せられた少なくとも1本の光線を含み、前記光線追跡方法は、前記場面中での光線とオブジェクトの表面との交差の算出をさらに含み、前記光線追跡は、画像中のオブジェクトの処理の結果に応答して判定されるシステムにおけるコンピュータソフトウェア製品であって、
コンピュータ可読な形でコンピュータ可読媒体に格納されたコンピュータ実行可能コードを備え、前記コンピュータソフトウェア製品が、前記コンピュータ可読媒体上に格納され、前記コンピュータが、ツリー構造を含む階層状光線追跡加速データ構造を構築することであって、ツリー構造のノードが、場面中の1組のオブジェクトを左オブジェクトと右オブジェクトに分割するための軸平行場面境界ボックス及び2つの並列面定義に基づく境界間隔階層を使用して生成されること、並びに被分裂面をオブジェクト境界ボックスに合致させることを可能にするように前記コンピュータによって実行可能なコンピュータ実行可能コードをさらに備え、
前記2つの面が、x、y、又はz軸のうち選択された1つに垂直であり、
分裂面を与えられた場合、左/右選択基準に基づいて、画像中の各オブジェクトが左又は右どちらかに分類され、子ノードの2つの分裂面値が、それぞれ、前記左及び右オブジェクトの最大及び最小座標によって判定され、
境界ボックス及び前記選択された軸を与えられた場合、左の子Lが、前記選択された軸に沿った左オブジェクトの座標の最大値を第1の面で置き換えることから生じ、右の子Rが、右オブジェクトの座標の最小値を第2の面で置き換えることから生じ、結果として生じたどのゼロボリュームも、空の子を表すのに使われ、
分裂面が、
(a)中央にある長辺に沿った軸平行場面境界ボックスを階層状に細分することによって候補分裂面を選択することであって、すべての候補分裂面が規則的なグリッドを形成すること、
(b)候補面が、細分するべきボリューム要素の前記境界ボックスの外側にある場合、前記ボリューム要素が存在する半分以降の候補面で継続すること
によって判定され、
さらに、
(a)前記境界ボックスをオブジェクト境界ボックスに再帰的に分割すること、
(b)被分裂面候補が重複なしでオブジェクトを分離する場合、結果として生じた被分裂面を左及び右にある前記オブジェクトに合わせ、そうすることによって空き空間を最大化すること、並びに
(c)所定の数を超えるオブジェクトが残っていない場合、前記再帰を終了すること
を含む、コンピュータソフトウェア製品。 - A.前記左/右選択基準は、分裂面を与えられた場合、画像中の各オブジェクトを、前記面のどちら側が最も伸びているかに応じて左又は右どちらかに分類することを含み、
B.前記階層状光線追跡加速データ構造の前記構築が、バケットソートに基づき、
(a)空間を分割する順序づけられた規則的なグリッドの解像度を判定するために、場面境界ボックス及び平均的オブジェクトサイズを計算すること、或いは、ユーザ指定解像度を用いること、
(b)各グリッドセルごとにカウンタを割り振ること、
(c)各々がそれぞれのグリッドセルに対応するすべてのカウンタをゼロに初期化すること、
(d)各オブジェクトごとに点を選択して、前記選択された点を含む前記グリッドセルに対する前記それぞれのカウンタを増分すること、
(e)各カウンタ値をすべての先行カウンタの値の和で置き換えることによって、カウンタ値をオフセット値に変換すること、
(f)グローバルオブジェクト索引アレイを割り振ること、
(g)それぞれの各オブジェクトごとに、その点を含む前記グリッドセル用の前記カウンタを増分するために選択された前記対応する点を使って、前記オフセット値を用いて、前記オブジェクトをバケットにソートすること、並びに
(h)各バケットごとに、各バケットが含む前記オブジェクトの前記境界ボックスを計算すること
の階層状の実行を含む、請求項20に記載のコンピュータソフトウェア製品。 - コンピュータ及び表示要素を備えるコンピュータグラフィックスシステムであって、前記表示要素は、前記コンピュータからの表示制御用電気出力に応答して、人間が知覚可能な画像を表示するように動作可能であり、前記コンピュータは、前記画像中のピクセルに関するピクセル値の算出に基づいて、前記表示制御用電気出力を生成するように動作可能であり、それぞれのピクセル値は、模擬カメラの画像面上に記録される場面中の点を表し、前記コンピュータは、光線追跡方法を用いて画像に対するピクセル値を生成するように動作可能であり、前記光線追跡方法は、光線ツリー及び関連した光線追跡データ構造の使用を含み、前記光線ツリーは、選択された方向に沿って前記ピクセルから場面中に発せられた少なくとも1本の光線を含み、前記光線追跡方法は、前記場面中での光線とオブジェクトの表面との交差の算出をさらに含み、前記光線追跡は、画像中のオブジェクトの処理の結果に応答して判定されるシステムにおける方法であって、
ツリー構造を含む階層状光線追跡加速データ構造を構築するステップであって、ツリー構造のノードが、場面中の1組のオブジェクトを左オブジェクトと右オブジェクトに分割するための軸平行場面境界ボックス及び2つの並列面定義に基づく境界間隔階層を使用して生成され、被分裂面をオブジェクト境界ボックスに合致させるステップを含み、
前記2つの面が、x、y、又はz軸のうち選択された1つに垂直であり、
分裂面を与えられた場合、左/右選択基準に基づいて、画像中の各オブジェクトが左又は右どちらかに分類され、子ノードの2つの分裂面値が、それぞれ、前記左及び右オブジェクトの最大及び最小座標によって判定され、
境界ボックス及び前記選択された軸を与えられた場合、左の子Lが、前記選択された軸に沿った左オブジェクトの座標の最大値を第1の面で置き換えることから生じ、右の子Rが、右オブジェクトの座標の最小値を第2の面で置き換えることから生じ、結果として生じたどのゼロボリュームも、空の子を表すのに使われ、
分裂面が、
(a)中央にある長辺に沿った軸平行場面境界ボックスを階層状に細分することによって候補分裂面を選択することであって、すべての候補分裂面が規則的なグリッドを形成すること、
(b)候補面が、細分するべきボリューム要素の前記境界ボックスの外側にある場合、前記ボリューム要素が存在する半分以降の候補面で継続すること
によって判定され、
さらに、
(a)前記境界ボックスをオブジェクト境界ボックスに再帰的に分割するステップと、
(b)被分裂面候補が重複なしでオブジェクトを分離する場合、結果として生じた被分裂面を左及び右にある前記オブジェクトに合わせ、そうすることによって空き空間を最大化するステップと、
(c)所定の数を超えるオブジェクトが残っていない場合、前記再帰を終了するステップと
を含む方法。 - A.前記左/右選択基準は、分裂面を与えられた場合、画像中の各オブジェクトを、前記面のどちら側が最も伸びているかに応じて左又は右どちらかに分類することを含み、
B.前記階層状光線追跡加速データ構造の前記構築が、バケットソートに基づき、
(a)空間を分割する順序づけられた規則的なグリッドの解像度を判定するために、場面境界ボックス及び平均的オブジェクトサイズを計算すること、或いは、ユーザ指定解像度を用いること、
(b)各グリッドセルごとにカウンタを割り振ること、
(c)各々がそれぞれのグリッドセルに対応するすべてのカウンタをゼロに初期化すること、
(d)各オブジェクトごとに点を選択して、前記選択された点を含む前記グリッドセルに対する前記それぞれのカウンタを増分すること、
(e)各カウンタ値をすべての先行カウンタの値の和で置き換えることによって、カウンタ値をオフセット値に変換すること、
(f)グローバルオブジェクト索引アレイを割り振ること、
(g)それぞれの各オブジェクトごとに、その点を含む前記グリッドセル用の前記カウンタを増分するために選択された前記対応する点を使って、前記オフセット値を用いて、前記オブジェクトをバケットにソートすること、並びに
(h)各バケットごとに、各バケットが含む前記オブジェクトの前記境界ボックスを計算することの階層状の実行を含む、請求項22に記載の方法。 - コンピュータ及び表示要素を備えるコンピュータグラフィックスシステムであって、前記表示要素は、前記コンピュータからの表示制御用電気出力に応答して、人間が知覚可能な画像を表示するように動作可能であり、前記コンピュータは、前記画像中のピクセルに関するピクセル値の算出に基づいて、前記表示制御用電気出力を生成するように動作可能であり、それぞれのピクセル値は、模擬カメラの画像面上に記録される場面中の点を表し、前記コンピュータは、光線追跡方法を用いて画像に対するピクセル値を生成するように動作可能であり、前記光線追跡方法は、光線ツリー及び関連した光線追跡データ構造の使用を含み、前記光線ツリーは、選択された方向に沿って前記ピクセルから場面中に発せられた少なくとも1本の光線を含み、前記光線追跡方法は、前記場面中での光線とオブジェクトの表面との交差の算出をさらに含み、前記光線追跡は、画像中のオブジェクトの処理の結果に応答して判定されるシステムにおけるサブシステムであって、
ツリー構造を含む階層状光線追跡加速データ構造を構築する手段であって、ツリー構造のノードが、場面中の1組のオブジェクトを左オブジェクトと右オブジェクトに分割するための軸平行場面境界ボックス及び2つの並列面定義に基づく境界間隔階層を使用して生成され、被分裂面をオブジェクト境界ボックスに合致させる手段を備え、
前記2つの面が、x、y、又はz軸のうち選択された1つに垂直であり、
分裂面を与えられた場合、左/右選択基準に基づいて、画像中の各オブジェクトが左又は右どちらかに分類され、子ノードの2つの分裂面値が、それぞれ、前記左及び右オブジェクトの最大及び最小座標によって判定され、
境界ボックス及び前記選択された軸を与えられた場合、左の子Lが、前記選択された軸に沿った左オブジェクトの座標の最大値を第1の面で置き換えることから生じ、右の子Rが、右オブジェクトの座標の最小値を第2の面で置き換えることから生じ、結果として生じたどのゼロボリュームも、空の子を表すのに使われ、
分裂面が、
(a)中央にある長辺に沿った軸平行場面境界ボックスを階層状に細分することによって候補分裂面を選択することであって、すべての候補分裂面が規則的なグリッドを形成すること、
(b)候補面が、細分するべきボリューム要素の前記境界ボックスの外側にある場合、前記ボリューム要素が存在する半分以降の候補面で継続すること
によって判定され、
さらに、
(a)前記境界ボックスをオブジェクト境界ボックスに再帰的に分割すること、
(b)被分裂面候補が重複なしでオブジェクトを分離する場合、結果として生じた被分裂面を左及び右にある前記オブジェクトに合わせ、そうすることによって空き空間を最大化すること、並びに
(c)所定の数を超えるオブジェクトが残っていない場合、前記再帰を終了すること
を含むサブシステム。 - A.前記左/右選択基準は、分裂面を与えられた場合、画像中の各オブジェクトを、前記面のどちら側が最も伸びているかに応じて左又は右どちらかに分類することを含み、
B.前記階層状光線追跡加速データ構造の前記構築が、バケットソートに基づき、
(a)空間を分割する順序づけられた規則的なグリッドの解像度を判定するために、場面境界ボックス及び平均的オブジェクトサイズを計算すること、或いは、ユーザ指定解像度を用いること、
(b)各グリッドセルごとにカウンタを割り振ること、
(c)各々がそれぞれのグリッドセルに対応するすべてのカウンタをゼロに初期化すること、
(d)各オブジェクトごとに点を選択して、前記選択された点を含む前記グリッドセルに対する前記それぞれのカウンタを増分すること、
(e)各カウンタ値をすべての先行カウンタの値の和で置き換えることによって、カウンタ値をオフセット値に変換すること、
(f)グローバルオブジェクト索引アレイを割り振ること、
(g)それぞれの各オブジェクトごとに、その点を含む前記グリッドセル用の前記カウンタを増分するために選択された前記対応する点を使って、前記オフセット値を用いて、前記オブジェクトをバケットにソートすること、並びに
(h)各バケットごとに、各バケットが含む前記オブジェクトの前記境界ボックスを計算することの階層状の実行を含む、請求項24に記載のサブシステム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US79306306P | 2006-04-19 | 2006-04-19 | |
US60/793,063 | 2006-04-19 | ||
US11/474,517 US7499053B2 (en) | 2000-06-19 | 2006-06-23 | Real-time precision ray tracing |
US11/474,517 | 2006-06-23 | ||
PCT/US2007/066972 WO2007124363A2 (en) | 2006-04-19 | 2007-04-19 | Instant ray tracing |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009534759A true JP2009534759A (ja) | 2009-09-24 |
JP4858795B2 JP4858795B2 (ja) | 2012-01-18 |
Family
ID=38625737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009506777A Active JP4858795B2 (ja) | 2006-04-19 | 2007-04-19 | 瞬時光線追跡 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP2008249B1 (ja) |
JP (1) | JP4858795B2 (ja) |
CA (1) | CA2649745A1 (ja) |
WO (1) | WO2007124363A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017188098A (ja) * | 2016-03-21 | 2017-10-12 | イマジネイション テクノロジーズ リミテッド | 階層融合 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8188997B2 (en) | 2000-06-19 | 2012-05-29 | Mental Images Gmbh | Accelerated ray tracing using shallow bounding volume hierarchies |
WO2009063319A2 (en) * | 2007-11-15 | 2009-05-22 | Mental Images Gmbh | Shallow bounding volume hierarchies for accelerated ray tracing |
JP5485257B2 (ja) * | 2008-03-21 | 2014-05-07 | コースティック グラフィックス インコーポレイテッド | レイトレース・レンダリングのための並列化された交差テストおよびシェーディングのアーキテクチャ |
KR101475779B1 (ko) * | 2008-06-02 | 2014-12-23 | 삼성전자주식회사 | 3d 영상 처리 방법 |
KR101610194B1 (ko) * | 2008-10-15 | 2016-04-07 | 삼성전자주식회사 | 영상처리를 위한 데이터 처리 장치 및 방법 |
US8350846B2 (en) * | 2009-01-28 | 2013-01-08 | International Business Machines Corporation | Updating ray traced acceleration data structures between frames based on changing perspective |
US11010956B2 (en) | 2015-12-09 | 2021-05-18 | Imagination Technologies Limited | Foveated rendering |
US10235601B1 (en) | 2017-09-07 | 2019-03-19 | 7D Labs, Inc. | Method for image analysis |
US11334762B1 (en) | 2017-09-07 | 2022-05-17 | Aurora Operations, Inc. | Method for image analysis |
CN109215106B (zh) * | 2018-08-30 | 2023-01-03 | 东北大学 | 一种基于动态场景的实时光线追踪加速结构的方法 |
CN111967174A (zh) * | 2020-07-30 | 2020-11-20 | 北京应用物理与计算数学研究所 | 基于光线网格的激光动力学求解方法及系统 |
EP4205011A1 (en) * | 2020-08-31 | 2023-07-05 | Siemens Industry Software Inc. | Method of bounding spatial data |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003271988A (ja) * | 2002-03-15 | 2003-09-26 | Denso Corp | 画像生成装置及びプログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5963210A (en) * | 1996-03-29 | 1999-10-05 | Stellar Semiconductor, Inc. | Graphics processor, system and method for generating screen pixels in raster order utilizing a single interpolator |
WO2001063561A1 (en) * | 2000-02-25 | 2001-08-30 | The Research Foundation Of State University Of New York | Apparatus and method for volume processing and rendering |
US7187379B2 (en) * | 2000-06-19 | 2007-03-06 | Mental Images Gmbh | Generating an image using sample points determined on a sub-pixel grid offset using elements of a low-discrepancy sequence |
US7050053B2 (en) * | 2002-01-30 | 2006-05-23 | Sun Microsystems, Inc. | Geometric folding for cone-tree data compression |
-
2007
- 2007-04-19 WO PCT/US2007/066972 patent/WO2007124363A2/en active Application Filing
- 2007-04-19 JP JP2009506777A patent/JP4858795B2/ja active Active
- 2007-04-19 CA CA002649745A patent/CA2649745A1/en not_active Abandoned
- 2007-04-19 EP EP07760918.8A patent/EP2008249B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003271988A (ja) * | 2002-03-15 | 2003-09-26 | Denso Corp | 画像生成装置及びプログラム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017188098A (ja) * | 2016-03-21 | 2017-10-12 | イマジネイション テクノロジーズ リミテッド | 階層融合 |
US11341110B2 (en) | 2016-03-21 | 2022-05-24 | Imagination Technologies Limited | Hierarchy merging |
JP7100427B2 (ja) | 2016-03-21 | 2022-07-13 | イマジネイション テクノロジーズ リミテッド | 階層融合 |
Also Published As
Publication number | Publication date |
---|---|
WO2007124363A2 (en) | 2007-11-01 |
WO2007124363A3 (en) | 2008-04-10 |
EP2008249B1 (en) | 2013-07-17 |
JP4858795B2 (ja) | 2012-01-18 |
EP2008249A2 (en) | 2008-12-31 |
CA2649745A1 (en) | 2007-11-01 |
EP2008249A4 (en) | 2010-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4858795B2 (ja) | 瞬時光線追跡 | |
US7495664B2 (en) | Instant ray tracing | |
US7659894B2 (en) | Terminating spatial partition hierarchies by a priori bounding memory | |
US8411088B2 (en) | Accelerated ray tracing | |
US20230298258A1 (en) | Watertight tay triangle intersection | |
US8570322B2 (en) | Method, system, and computer program product for efficient ray tracing of micropolygon geometry | |
US7499053B2 (en) | Real-time precision ray tracing | |
US8188997B2 (en) | Accelerated ray tracing using shallow bounding volume hierarchies | |
US11069124B2 (en) | Systems and methods for reducing rendering latency | |
US7952583B2 (en) | Quasi-monte carlo light transport simulation by efficient ray tracing | |
US8773422B1 (en) | System, method, and computer program product for grouping linearly ordered primitives | |
JP4972642B2 (ja) | 高精度の実時間レイトレーシング | |
WO2009044282A2 (en) | Quasi-monte carlo light transport simulation by efficient ray tracing | |
WO2009063319A2 (en) | Shallow bounding volume hierarchies for accelerated ray tracing | |
US20060066616A1 (en) | Diffuse photon map decomposition for parallelization of global illumination algorithm | |
WO2008091958A2 (en) | Terminating spatial partition hierarchies by a priori bounding memory | |
Yılmaz et al. | Conservative occlusion culling for urban visualization using a slice-wise data structure | |
Peng et al. | Gpu-based streaming for parallel level of detail on massive model rendering | |
Popescu et al. | Sample-based cameras for feed forward reflection rendering | |
Schütz et al. | SimLOD: Simultaneous LOD Generation and Rendering for Point Clouds | |
Chhugani | High fidelity walkthroughs of large virtual environments | |
Winberg | Examining automatic texture mapping of arbitrary terrains | |
Wang | New algorithmic techniques for large scale volumetric data visualization on parallel architectures | |
Shi | Efficient Rendering of Scenes with Dynamic Lighting Using a Photons Queue and Incremental Update Algorithm | |
Hua et al. | Animating and Rendering One Million Trees in Real Time |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110301 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110531 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111004 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111019 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4858795 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141111 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |