JP4972642B2 - High-precision real-time ray tracing - Google Patents

High-precision real-time ray tracing Download PDF

Info

Publication number
JP4972642B2
JP4972642B2 JP2008518466A JP2008518466A JP4972642B2 JP 4972642 B2 JP4972642 B2 JP 4972642B2 JP 2008518466 A JP2008518466 A JP 2008518466A JP 2008518466 A JP2008518466 A JP 2008518466A JP 4972642 B2 JP4972642 B2 JP 4972642B2
Authority
JP
Japan
Prior art keywords
plane
ray
bounding box
intersection
scene
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.)
Active
Application number
JP2008518466A
Other languages
Japanese (ja)
Other versions
JP2009514059A (en
Inventor
アレクサンダー ケラー,
カーステン バエヒター,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia ARC GmbH
Original Assignee
Mental Images GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mental Images GmbH filed Critical Mental Images GmbH
Publication of JP2009514059A publication Critical patent/JP2009514059A/en
Application granted granted Critical
Publication of JP4972642B2 publication Critical patent/JP4972642B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing

Description

関連出願の引用
本出願は、2005年6月23日付けで提出した米国特許仮出願第60/693,231号の優先権を主張し、その全体は参照して本明細書に援用する。
Citation of Related Applications This application claims priority from US Provisional Application No. 60 / 693,231, filed June 23, 2005, which is hereby incorporated by reference in its entirety.

コンピュータ・プログラム付属文書への言及
本明細書と共にソースコードリスティングを提出し、その全体は参照して本明細書に援用する。このソースコードリスティングは本明細書では「付属文書」と呼び、「1.1.1.」形式で3桁の参照番号で識別される段落に構成されている。
Reference to Computer Program Appendix The source code listing is submitted with this specification, which is incorporated herein by reference in its entirety. This source code listing is referred to herein as an “annex” and is organized into paragraphs identified by a three-digit reference number in the form “1.1.1.”.

本発明は、一般にディジタル計算機システム内で該システムにより実行される、映画やその他の応用分野の像を描画するための方法及びシステムに関し、詳細には実時間精密レイトレーシングのための方法、システム、装置、及びコンピュータソフトウェアに関する。   The present invention relates generally to a method and system for rendering images of movies and other applications that are performed by the system in a digital computer system, and in particular, a method, system for real-time precision ray tracing, The present invention relates to an apparatus and computer software.

従来技術の説明
「レイトレーシング」という用語は、光源とカメラとを結ぶ全ての光路を識別し且つこれらの寄与を合計することによって写実的な像を合成する技術に関する。このシミュレーションは、視線に沿った光線を追跡して可視性を判断し、且つ照度を測定するために光源からの光線を追跡する。
2. Description of the Prior Art The term “ray tracing” relates to a technique for synthesizing a realistic image by identifying all light paths connecting a light source and a camera and summing their contributions. This simulation tracks the rays from the light source to track the rays along the line of sight to determine visibility and to measure illuminance.

レイトレーシングは映画やその他の応用分野で主流となっている。しかし、現在のレイトレーシング技術には、数値的問題、動的シーンを処理する能力的限界、アクセラレーションデータ構造の設定が遅いこと、及び大量のメモリを必要とすることなど、多くの周知の限界及び弱点がある。従って、現在のレイトレーシング技術は、森林や人の頭髪を吹き抜ける風などの完全に動画表現されたシーンを効率的に扱う能力に欠けている。現在のレイトレーシングシステムの限界を克服すれば、例えば映画作品においてより高品位の動きのぼかしも描画できるようになろう。   Ray tracing has become mainstream in movies and other application areas. However, current ray-tracing technology has many well-known limitations such as numerical problems, limited capability to handle dynamic scenes, slow setup of acceleration data structures, and the need for large amounts of memory. And there are weaknesses. Therefore, current ray tracing technology lacks the ability to efficiently handle scenes that are completely animated, such as wind blowing through forests and human hair. Overcoming the limitations of current ray-tracing systems will allow higher-quality motion blur to be drawn, for example, in movie productions.

レイトレーシングシステムの性能を向上させるため幾つかの試みが現在までになされているが、これらは幾つかの理由で十分な結果を残していない。例えば、現在のレイトレーシングシステムは、一般に、座標軸に平行な二分空間区分(原語:binary
space partition)に基づくアクセラレーション構造として3次元ツリーを使用する。これらシステムは静的シーンの描画に主に焦点を当てているため、一般に、完全に動画表現されたシーンに関連して必要なデータ構造を構築するのに要するセットアップ時間がかなり長くなるという問題に対処できていない。これらを考慮して、ある製造者は、効率的な3次元ツリーを作成し且つこのツリーを走査するのに必要な時間を短縮できるアルゴリズムを開発することによって実時間レイトレーシングを改善している。しかし、このシステムでの予想メモリ要件は、レイトレーシングの対象となる物体の数の増加につれて二次式的に増大する。
Several attempts have been made to improve the performance of ray tracing systems to date, but these have not yielded satisfactory results for several reasons. For example, current ray-tracing systems generally have a binary space partition parallel to the coordinate axis (original: binary)
Use 3D tree as an acceleration structure based on space partition). These systems are primarily focused on static scene rendering, so the problem is that the setup time required to build the necessary data structures in relation to a fully animated scene is generally much longer. It has not been dealt with. In view of these, some manufacturers have improved real-time ray tracing by developing algorithms that can create efficient 3D trees and reduce the time required to traverse the tree. However, the expected memory requirement in this system increases quadratically as the number of objects subject to ray tracing increases.

別の製造者は、バウンディングボリューム階層を用いてシステム性能を向上させるレイトレーシング集積回路を設計している。しかし、追跡される非干渉性の2次光線が多くなりすぎると、このアーキテクチャの性能は低下する。   Another manufacturer has designed a ray tracing integrated circuit that uses a bounding volume hierarchy to improve system performance. However, if too many incoherent secondary rays are tracked, the performance of this architecture degrades.

更に、書替え可能ゲートアレイ(FPGA)を用いた3次元ツリー走査アルゴリズムを実装することでシステム性能を向上させようとする試みもなされている。これらのシステムにおいて処理速度が増加するのは、主として、コヒーレント光線束を追跡し且つFPGAの能力を利用して高速のハードワイヤード計算を実行することによる。アクセラレーション構造の構築はハードウェアではまだ実装されていない。こうしたFPGA実装は、典型的には精度を落とした浮動小数点技法を用いる。   In addition, attempts have been made to improve system performance by implementing a three-dimensional tree scanning algorithm using a rewritable gate array (FPGA). The increase in processing speed in these systems is primarily due to tracking coherent beam bundles and taking advantage of the capabilities of FPGAs to perform fast hardwired calculations. The construction of the acceleration structure is not yet implemented in hardware. Such FPGA implementations typically use floating point techniques with reduced precision.

発明の概要
本発明は、その幾つかの側面で、上述の問題に対処し且つ現在のレイトレーシング装置に容易に適合可能な高精度で高性能な技法、並びにこうした技法を実現する方法、システム、及びコンピュータソフトウェアを提供する。本明細書に記載する技法では、レイトレーシングの対象となる物体の数の増加に対してメモリ使用量は線形に増加する。ならし解析では、記載した技法は、現在の実時間レイトレーシング技術を性能で上回っている。
SUMMARY OF THE INVENTION The present invention, in its several aspects, addresses high-performance, high-performance techniques that address the above-mentioned problems and can be easily adapted to current ray-tracing devices, as well as methods, systems, and systems that implement such techniques. And providing computer software. In the techniques described herein, memory usage increases linearly with increasing number of objects that are subject to ray tracing. In the run-in analysis, the described technique outperforms the current real-time ray tracing technology.

本発明の第1の側面は、実時間レイトレーシングに高度に適応した様態でバウンディングボリューム階層を利用する技術に関する。   The first aspect of the present invention relates to a technology that uses a bounding volume hierarchy in a manner that is highly adapted to real-time ray tracing.

本発明の別の側面は、レイトレーシングにおける自己交差の問題に対処する。光線と表面との交点を計算した後、計算した点を光線の方向と共に使用して光線と表面との交点を再計算することにより、精度を向上させる反復を実現する。   Another aspect of the present invention addresses the problem of self-intersection in ray tracing. After calculating the intersection of the ray with the surface, the calculated point is used with the direction of the ray to recalculate the intersection of the ray with the surface, thereby realizing an iteration that improves accuracy.

本発明の別の側面は、分割平面選択における最適化による高性能3次元ツリー構築、最小記憶構成、及び近似左平衡によるツリーの枝刈りを可能とする。   Another aspect of the present invention enables high performance 3D tree construction by optimization in split plane selection, minimal storage configuration, and tree pruning with approximate left balance.

本発明の別の側面は高性能バウンディングボリューム階層の使用を含み、ここでは、座標軸に平行なバウンディングボックスを明示的に表現する代わりに、システムは区間の階層によって座標軸に平行なバウンディングボックスを暗黙的に表現する。ある実装では、物体のリスト及び座標軸に平行なバウンディングボックスが与えられれば、システムは、L及びR平面を決定し、物体の集合をそれに従って区分する。すると、システムは、なんらかの終了判定基準が満たされるまで左右の物体を反復的に処理する。内部ノードの数は拘束されているので、1つの物体しか残っていないときに終了に依存しても安全である。   Another aspect of the present invention involves the use of a high performance bounding volume hierarchy, where instead of explicitly expressing the bounding box parallel to the coordinate axis, the system implicitly displays the bounding box parallel to the coordinate axis by the interval hierarchy. To express. In one implementation, given a list of objects and a bounding box parallel to the coordinate axes, the system determines the L and R planes and partitions the set of objects accordingly. The system then iteratively processes the left and right objects until some termination criterion is met. Since the number of internal nodes is constrained, it is safe to rely on termination when only one object remains.

本発明の別の側面は、本明細書に記載された3次元ツリー構築技術を介して分割平面Mを効率的に決定し、次に、座標軸に平行な新たなバウンディングボックスの得られたL及びR平面の重複部分と提案分割平面Mとの重複が最小となるように物体を区分することが含まれる。   Another aspect of the present invention is to efficiently determine the splitting plane M via the 3D tree construction technique described herein, and then obtain the resulting L and the new bounding box parallel to the coordinate axes and This includes classifying the object so that the overlap between the overlapping portion of the R plane and the proposed division plane M is minimized.

本発明は、レイトレーシングを行うための改良技法及び、高速レイトレーシングに必要なアクセラレーションデータ構造の効率的構築のための改良技法を提供する。以下にこれら技法に従った方法、構造、及びシステムを説明する。   The present invention provides improved techniques for performing ray tracing and improved techniques for efficient construction of acceleration data structures required for fast ray tracing. The methods, structures and systems according to these techniques are described below.

当業者であれば、本明細書に記載した方法及びシステムは、マイクロソフト社のWindows(登録商標)、Linux、又はUnix(登録商標)のような従来のオペレーティングシステムに従って動作する或いはエミュレートするパーソナルコンピュータ(PC)のような従来のコンピュータ装置又は同等装置をスタンドアローン構成で或いはネットワークを介して用いて、ソフトウェア、ハードウェア、又はソフトウェアとハードウェアの組合せとして実装できることは理解できるはずである。従って、後述し且つ特許請求の範囲に記載したこれらの様々な処理手段又は計算手段は、適切に構成したディジタル処理装置又は装置のネットワークのソフトウェア及び/又はハードウェア要素で実装できる。処理は順次又は並列で実行でき、更に、特定目的ハードウェア又は再構成可能ハードウェアを用いて実装できる。   Those skilled in the art will understand that the methods and systems described herein are personal computers that operate or emulate in accordance with conventional operating systems such as Microsoft Windows, Linux, or Unix. It should be understood that conventional computer devices such as (PC) or equivalent devices can be implemented as software, hardware, or a combination of software and hardware using a stand-alone configuration or over a network. Accordingly, these various processing means or computing means described below and in the claims can be implemented by software and / or hardware elements of a suitably configured digital processing device or network of devices. Processing can be performed sequentially or in parallel, and can be implemented using special purpose hardware or reconfigurable hardware.

本発明による方法、装置、又はソフトウェア製品は、図1に例示したもののような広範囲な従来の計算機及びシステムの何れか(例えば、ネットワークシステム100)で動作でき、これらには、スタンドアローン、ネットワーク、携帯用、又は固定式の何れでもよく、又はインターネット又は他のネットワーク108を介した従来のパーソナルコンピュータ102、ラップトップ104、手持ち型又はモバイルコンピュータ106が含まれる。又、インターネット又は他のネットワーク108はサーバ110及び記憶装置112を含むことができる。   The method, apparatus, or software product according to the present invention can operate on any of a wide range of conventional computers and systems (eg, network system 100) such as those illustrated in FIG. 1, including standalone, network, It can be either portable or stationary, or includes a conventional personal computer 102, laptop 104, handheld or mobile computer 106 via the Internet or other network 108. The Internet or other network 108 can also include a server 110 and a storage device 112.

従来のコンピュータソフトウェア及びハードウェアで行われているように、本発明に従って構成されたソフトウェアアプリケーションは、例えば図2に示したようなパーソナルコンピュータ102内部で動作できる。コンピュータ102では、プログラム命令はCD-ROM116、磁気ディスク又は他の記憶装置120から読み出して、CPU118が実行できるようにRAM114にロードできる。データは、従来のキーボード、スキャナ、マウス、又は他の要素103を含む既知の任意装置又は手段を介してシステムに入力できる。   As is done with conventional computer software and hardware, a software application configured in accordance with the present invention can operate within a personal computer 102 as shown, for example, in FIG. In computer 102, program instructions can be read from CD-ROM 116, magnetic disk or other storage device 120 and loaded into RAM 114 for execution by CPU 118. Data can be entered into the system via any known device or means including a conventional keyboard, scanner, mouse, or other element 103.

図3は、本発明の一様態による包括的方法200を示した流れ図である。この方法は、画像の各ピクセルについてピクセル値が生成されるコンピュータグラフィックス・システムの文脈で実施される。生成された各ピクセル値は、疑似カメラの像平面に記録されたシーンの一点を表す。このコンピュータグラフィックス・システムは、選択したレイトレーシング方法を用いて像のピクセル値を生成するよう構成されている。選択したレイトレーシング方法は、このピクセルからシーン内へ選択した方向に沿って発せられた少なくとも1本の光線を含む光線ツリーの使用を含み、シーンにおける光線と物体(及び/又は物体の表面)との交点の計算も含む。   FIG. 3 is a flow diagram illustrating a generic method 200 according to one aspect of the present invention. This method is implemented in the context of a computer graphics system where a pixel value is generated for each pixel of the image. Each generated pixel value represents a point in the scene recorded in the image plane of the pseudo camera. The computer graphics system is configured to generate image pixel values using a selected ray tracing method. The selected ray tracing method includes the use of a ray tree that includes at least one ray emitted along the selected direction from this pixel into the scene, and the ray and object (and / or the surface of the object) in the scene, Includes the calculation of the intersection of

図3の方法200では、バウンディングボリューム階層を用いてシーン内の光線と表面との交点が計算される。ステップ201で、シーンのバウンディングボックスが計算される。ステップ202では、所定の終了判定基準が満たされているか否かが判断される。満たされていなければ、ステップ203で座標軸に平行なこのバウンディングボックスをリファインするこの処理は終了判定基準が満たされるまで反復的に継続する。本発明の一様態によれば、この終了判定基準は、バウンディングボックス座標が、光線と表面との交点の浮動小数点表現から一単位の分解能でのみ異なる状態であると定義される。しかし、本発明の範囲はこれ以外の終了判定基準まで拡張される。   In the method 200 of FIG. 3, the intersection of rays and surfaces in the scene is calculated using the bounding volume hierarchy. In step 201, the bounding box of the scene is calculated. In step 202, it is determined whether or not a predetermined end criterion is satisfied. If not, this process of refining this bounding box parallel to the coordinate axes in step 203 continues iteratively until the termination criteria are met. According to one aspect of the invention, this termination criterion is defined as the state in which the bounding box coordinates differ only by one unit of resolution from the floating point representation of the intersection of the ray and the surface. However, the scope of the present invention extends to other termination criteria.

バウンディングボリューム階層をアクセラレーション構造として使用することは多くの理由で有利である。バウンディングボリューム階層のメモリ要件は、レイトレーシング対象となる物体の数において線形拘束可能である。また、後述するように、バウンディングボリューム階層は、完全に動画表現されたシーンで必要とされるように、3次元ツリーに比べ遙かに効率的に構築でき、そのためならし解析に非常に適している。   The use of the bounding volume hierarchy as an acceleration structure is advantageous for a number of reasons. The memory requirements of the bounding volume hierarchy can be linearly constrained in the number of objects that are subject to ray tracing. Also, as will be described later, the bounding volume hierarchy can be constructed much more efficiently than a 3D tree, as required by a fully animated scene, and is therefore very suitable for leveling analysis. Yes.

次に、レイトレーシング技術における幾つかの問題と、これら問題に対処する本発明の諸様態とについてより詳細に説明する。図4は「自己交差」問題を示す図である。図4は、像表面302と、観察点304と、光源306とを含むレイトレーシング手順300を示す。表面の像を合成するため、一連の計算を実行して観察点304と表面302との間に延びる光線の位置を特定する。図4ではそうした1本の光線308を示した。理想的には、次に光線308と表面302との正確な交点310が計算される。   Next, some problems in ray tracing technology and aspects of the present invention that address these problems will be described in more detail. FIG. 4 illustrates the “self-intersection” problem. FIG. 4 shows a ray tracing procedure 300 that includes an image surface 302, an observation point 304, and a light source 306. To synthesize an image of the surface, a series of calculations are performed to locate the ray that extends between the observation point 304 and the surface 302. FIG. 4 shows one such ray 308. Ideally, the exact intersection 310 of the ray 308 and the surface 302 is then calculated.

しかし、コンピュータにおける浮動小数点演算により、計算した光線と表面との交点312が実際の交点310と異なってしまうことがある。更に、図4に示したように、計算した点312が表面302の「間違った」側に位置してしまうこともある。その場合、計算した光線と表面との交点312から光源306へ延びる第2光線314の位置を特定する計算を行うと、これら計算は、第2光線314が直接光源306まで延びるのでなく第2交点316で表面に当たることを示し、従って結像エラーとなってしまう。   However, due to floating point calculations in the computer, the calculated ray-surface intersection 312 may differ from the actual intersection 310. Further, as shown in FIG. 4, the calculated point 312 may be located on the “wrong” side of the surface 302. In that case, when performing calculations to determine the position of the second ray 314 extending from the calculated ray-surface intersection 312 to the light source 306, these calculations do not cause the second ray 314 to extend directly to the light source 306, but rather to the second intersection. 316 indicates hitting the surface, thus resulting in an imaging error.

この自己交差問題に対する1つの既知の解決法は、それぞれの光線308を表面302からの安全距離から開始することである。この安全距離は、典型的には汎用浮動小数点εとして表現される。しかし、この汎用浮動小数点εの決定は、当該シーンと、像を合成しているシーン内の位置とに大きく依存する。   One known solution to this self-intersection problem is to start each ray 308 from a safe distance from the surface 302. This safety distance is typically expressed as a general purpose floating point ε. However, the determination of the general-purpose floating point ε largely depends on the scene and the position in the scene where the image is synthesized.

本発明の一様態はより高精度の代替的な方法を提供する。計算した光線と表面との交点312が得られると、計算した点312及び光線308の方向を用いて実際の交点310により近い交点を再計算する。この交点の再計算は、精度を向上させる反復としてこのレイトレーシング技法に組み込まれる。この反復計算された交点が表面302の「間違った」側に位置してしまった場合、これは表面302の「正しい」側に移動される。この反復計算された交点は表面法線に沿って、又は法線の最長成分により決定される軸に沿って移動できる。汎用浮動小数点εを使う代わりに、点を浮動小数点の仮数の最終ビットまで整数εで移動させる。   One aspect of the present invention provides a more accurate alternative. When the intersection 312 between the calculated ray and the surface is obtained, the intersection closer to the actual intersection 310 is recalculated using the calculated point 312 and the direction of the ray 308. This intersection recalculation is incorporated into this ray tracing technique as an iteration to improve accuracy. If this iteratively calculated intersection is located on the “wrong” side of the surface 302, it is moved to the “correct” side of the surface 302. This iteratively calculated intersection can be moved along the surface normal or along an axis determined by the longest component of the normal. Instead of using the general floating point ε, the point is moved by the integer ε to the last bit of the floating point mantissa.

上述の手順は2倍精度計算を避け、指数により決定される浮動小数点数のスケールに暗黙的に適応するという利点がある。よって、この実装では、全ての2次光線はこれら修正点から直接始まり、εオフセットを不要とする。従って、交点の計算時に、妥当性のある光線区間はオフセット値でなく0で始まると推定できる。   The above procedure has the advantage of avoiding double precision calculations and implicitly adapting to the scale of floating point numbers determined by the exponent. Thus, in this implementation, all secondary rays start directly from these correction points, eliminating the need for an ε offset. Therefore, when calculating the intersection point, it can be estimated that a valid ray section starts with 0 instead of an offset value.

仮数の整数表現を修正することで、どの点がどの側にあるかを特定するために三角形と平面とを交差させる際の数値問題も回避する。   Modifying the integer representation of the mantissa also avoids numerical problems when intersecting triangles and planes to identify which point is on which side.

凸結合の凸閉包特性を利用して、光線と自由曲面との交点を発見するには、光線の起点に最も近い交点を含む座標軸に平行なバウンディングボックスをリファインすればよい。このリファインは浮動小数点数の分解能に到達するまで、すなわちバウンディングボックス座標が、浮動小数点表現から一単位の分解能でのみ異なるまで継続できる。すると、自己交差問題は、バウンディングボックスの隅であってバウンディングボックスの中央において表面法線に最も近い隅を選択することで回避できる。すると、この隅の点を用いて第2光線をスタートする。この「光線と物体との交点テスト」は非常に効率的であり、自己交差問題を回避できるという利点がある。   In order to find the intersection between the ray and the free-form surface using the convex hull characteristic of the convex combination, it is only necessary to refine the bounding box parallel to the coordinate axis including the intersection closest to the origin of the ray. This refinement can continue until the resolution of the floating point number is reached, i.e., the bounding box coordinates differ from the floating point representation by only one unit of resolution. The self-intersection problem can then be avoided by selecting the corner of the bounding box that is closest to the surface normal at the center of the bounding box. The second ray is then started using this corner point. This “light ray / object intersection test” is very efficient and has the advantage of avoiding the self-intersection problem.

アクセラレーションデータ構造を構築した後、三角形は所定の位置で変換される。新たな表現は縮退三角形を符号化して、交点テストが余分な手間を掛けずにそれらを扱うことができるようにする。単に縮退三角形がグラフィックスパイプラインに入るのを防ぐことももちろん可能である。付属文書の段落2.2.1及び2.2.2には、本発明のこの側面に従ったソースコードのリスティングが記載されている。   After building the acceleration data structure, the triangles are transformed in place. The new representation encodes degenerate triangles so that the intersection test can handle them without extra effort. Of course, it is possible to simply prevent the degenerate triangle from entering the graphics pipeline. Paragraphs 2.2.1 and 2.2.2 of the annex provide a listing of source code according to this aspect of the invention.

このテストは、まず光線と三角形の平面との交点を特定し、続いて光線に沿った妥当な区間}0,
result.tfar}の外にある交点を除外する。これはたった一回の整数テストで達成される。+0が妥当な区間から除外されることに注目されたい。非正規化した浮動小数点数がサポートされていない場合、これは重要である。この第1判定が成功すれば、このテストは交点の重心座標を計算しながら進行する。完全な包含テストを行うには、整数テストのみ、すなわちより具体的には2ビットのみのテストが必要となるだけである。従って、分岐の数は最小である。この効率的なテストを可能にするには、三角形の辺と法線を変換段階で適切に基準化する(原語:scale)。
This test first identifies the intersection of the ray with the triangular plane, followed by a reasonable interval along the ray} 0,
Exclude intersections outside result.tfar}. This is accomplished with a single integer test. Note that +0 is excluded from the valid interval. This is important if denormalized floating point numbers are not supported. If this first determination is successful, this test proceeds while calculating the barycentric coordinates of the intersection. To perform a complete inclusion test, only an integer test is required, more specifically, a test with only 2 bits. Therefore, the number of branches is minimal. In order to enable this efficient test, triangle edges and normals are appropriately scaled during the transformation phase (source: scale).

このテストの精度は十分に高く、誤った又は外れた光線交点を避けることができる。しかし、走査時には、ロバストな交差テストのために三角形を拡張するのが適切な状況が発生することがある。これは三角形を変換する前に実行できる。三角形はその法線の最長の成分によって識別される軸に沿って投影されるので、この投影ケースを記憶しておく必要がある。これは、アクセラレーションデータ構造の葉ノードのカウンターで実現できる。すなわち、三角形参照は投影ケースにより記憶され、1つの葉は各クラスの三角形の数を表すバイトを含む。   The accuracy of this test is high enough to avoid false or missed ray intersections. However, during scanning, situations may arise where it is appropriate to extend the triangle for robust intersection testing. This can be done before transforming the triangle. Since the triangle is projected along the axis identified by the longest component of its normal, this projection case needs to be stored. This can be achieved with a leaf node counter in the acceleration data structure. That is, the triangle reference is stored by the projection case, and one leaf contains bytes representing the number of triangles in each class.

本発明の更なる側面は、レイトレーシングのアクセラレーションデータ構造を構築する改良アプローチを提供する。幾つかの異なる最適化に従う従来のソフトウェア実装と比べて、本明細書に記載したアプローチは、より優れたレイトレーシング性能を備えたかなり平坦なツリーを形成する。   A further aspect of the present invention provides an improved approach to building ray tracing acceleration data structures. Compared to conventional software implementations that follow several different optimizations, the approach described herein forms a fairly flat tree with better ray tracing performance.

分割平面の候補は、区分対象となる座標軸に平行なバウンディングボックス内の三角形の頂点座標により与えられる。これは、実際にはバウンディングボックスの外部に位置する頂点だが、バウンディングボックスが定義する3つの区間の1つに位置する少なくとも1つの座標を備えた頂点を含む。これら候補の中から、現在の座標軸に平行なバウンディングボックスの最長辺の中心に最も近い平面が選択される。更なる最適化により、表面法線の最長成分が可能性のある分割平面の法線にマッチする三角形の座標のみが選択される。三角形の頂点を通るよう分割平面を配置すると、分割平面により分割される三角形の数が暗黙的に減少するので、この手順は非常に平坦なツリーを構成する。更に、表面は厳密に近似され、空の空間が最大化される。三角形の数が指定した閾値より高く、分割平面の候補がそれ以上ない場合は、ボックスはその最長辺に沿った中心で分割される。これにより、例えば長い斜め物体の使用を含む他のアプローチによる非能率を回避できる。   The candidate for the division plane is given by the vertex coordinates of the triangle in the bounding box parallel to the coordinate axis to be classified. This includes vertices that are actually located outside the bounding box, but with at least one coordinate located in one of the three intervals defined by the bounding box. From these candidates, the plane closest to the center of the longest side of the bounding box parallel to the current coordinate axis is selected. Further optimization selects only the coordinates of the triangle that match the normal of the possible split plane with the longest surface normal component. This procedure constitutes a very flat tree because placing the splitting plane through the triangle vertices implicitly reduces the number of triangles split by the splitting plane. Furthermore, the surface is closely approximated and the empty space is maximized. If the number of triangles is higher than the specified threshold and there are no more split plane candidates, the box is split at the center along its longest side. This avoids inefficiencies due to other approaches including the use of long diagonal objects, for example.

どの三角形が階層のノードの右及び左の子に属するかを決定するための再帰的手続は、典型的には大規模なブックキーピング及び記憶割当てを必要としていた。しかし、例外的な場合だけしか失敗しない遙かに単純なアプローチがある。レイトレーシングされる物体への参照の2配列のみが割り当てられる。第1配列は物体参照で初期化される。再帰的空間区分の間に、左側の要素のスタックが配列の始めから成長する一方、右に分類される要素は、配列の終わりから中心に向かって成長するスタックに維持される。分割平面に交差する(すなわち、左右両方である)要素を高速で記憶可能とするためには、第2配列がそれらのスタックを維持する。従って、バックトラッキングは効率的且つ単純である。   Recursive procedures to determine which triangles belong to the right and left children of a hierarchy node typically required extensive bookkeeping and storage allocation. But there is a much simpler approach that only fails in exceptional cases. Only two arrays of references to objects to be raytraced are assigned. The first array is initialized with an object reference. During the recursive spatial partition, the left element stack grows from the beginning of the array, while the elements classified to the right are maintained in the stack growing from the end of the array toward the center. In order to be able to store elements that intersect the splitting plane (ie, both left and right) at high speed, the second array maintains their stack. Thus, backtracking is efficient and simple.

表面積ヒューリスティックを用いてツリーの枝刈りを行う代わりに、固定深さから二分空間区分を近似的に左平衡することでツリー深さを枝刈りする。徹底的な実験により観察されるように、グローバル固定深さパラメータは極めて多種多様なシーンで指定できる。これは、一定程度の二分空間区分の後で、通常は空間的に比較的平坦な連結成分が残っていることが観察されることから理解できる。付属文書の段落2.3.1には、本発明のこの側面に従ったソースコードのリスティングが記載されている。   Instead of pruning the tree using a surface area heuristic, the tree depth is pruned by approximately left equilibrating the binary space section from the fixed depth. As observed by exhaustive experiments, the global fixed depth parameter can be specified in a very wide variety of scenes. This can be understood from the observation that after a certain degree of binary space segmentation, a spatially relatively flat connected component remains. Paragraph 2.3.1 of the annex provides a listing of source code according to this aspect of the invention.

バウンディングボリューム階層を用いることで、レイトレーシング対象の各物体は一度だけ参照される。結果として、又、3次元ツリーとは対照的に、階層を走査する間に1本の光線による1つの物体の多交差を防止するためのメールボックス機能を必要としない。これはシステム性能の観点からみて大きな利点であり、共用記憶域システムにおける実装を非常に単純にする。2番目の重要な結果としては、バウンディングボリューム階層のツリーにおいて、レイトレーシング対象となる物体総数よりも内部ノードが多くなることがない。従って、アクセラレーションデータ構造のメモリ使用量は、構築前に物体の数において線形拘束可能である。こうしたアプリオリな拘束は、メモリの複雑性がレイトレーシング対象となる物体の数に対して二次式的に増大すると考えられる3次元ツリーの構築に関しては利用できない。   By using the bounding volume hierarchy, each object to be ray-traced is referred to only once. As a result, and in contrast to a three-dimensional tree, it does not require a mailbox function to prevent multiple intersections of one object with one ray while traversing the hierarchy. This is a great advantage from a system performance point of view and greatly simplifies implementation in a shared storage system. As a second important result, in the tree of the bounding volume hierarchy, there are no more internal nodes than the total number of objects to be ray-traced. Thus, the memory usage of the acceleration data structure can be linearly constrained in the number of objects before construction. Such a priori constraints cannot be used to build a 3D tree where the complexity of the memory is thought to increase quadratically with the number of objects to be ray-traced.

従って、本明細書では、現在の3次元ツリーレイトレーシング技術よりかなり高速なバウンディングボリューム階層の新規な概念であって、レイトレーシング対象となる物体の数の増加につれ、メモリ要件が予想通り二次式的に増大するのでなく線形に増大する新規な概念を記載する。バウンディングボリューム階層が3次元ツリーより性能が優れている概念の核心は、バウンディングボリュームそのものに注目するのでなく、どのように空間を区分できるかに注目した点である。   Therefore, in this specification, it is a new concept of bounding volume hierarchy that is considerably faster than the current 3D tree ray tracing technology, and as the number of objects subject to ray tracing increases, the memory requirements are quadratic as expected. We describe a new concept that grows linearly rather than growing incrementally. The heart of the concept that bounding volume hierarchies outperform 3D trees is the focus on how the space can be partitioned, not the bounding volume itself.

3次元ツリーでは、バウンディングボックスは単一の平面で区分される。本発明のこの様態によれば、2つの平行な平面を用いて2つの座標軸に平行なバウンディングボックスを定義する。図5は基本データ構造400を示す図である。   In a 3D tree, bounding boxes are partitioned by a single plane. According to this aspect of the invention, two parallel planes are used to define a bounding box that is parallel to the two coordinate axes. FIG. 5 is a diagram showing a basic data structure 400.

図5は座標軸に平行なバウンディングボックス402を正面図で示す。L平面402及びR平面404は座標軸に平行且つ互いにも平行であり、バウンディングボックス402を座標軸に平行な左右のバウンディングボックスに区分するのに用いられる。左バウンディングボックスは、元々のバウンディングボックス402の左側壁406からL平面402まで延伸する。右バウンディングボックスは、元々のバウンディングボックス402の左側壁408からR平面404まで延伸する。従って、左右のバウンディングボックスは互いに重なり合っていてもよい。光線412の走査を決定するには、光線410の妥当な区間[N,
F]412についてのL及びR平面402及び404との交差位置を用いる。
FIG. 5 shows a front view of the bounding box 402 parallel to the coordinate axes. The L plane 402 and the R plane 404 are parallel to the coordinate axis and parallel to each other, and are used to divide the bounding box 402 into left and right bounding boxes parallel to the coordinate axis. The left bounding box extends from the left side wall 406 of the original bounding box 402 to the L plane 402. The right bounding box extends from the left side wall 408 of the original bounding box 402 to the R plane 404. Therefore, the left and right bounding boxes may overlap each other. To determine the scan of ray 412, a reasonable interval of ray 410 [N,
Use the intersection position of L] and R planes 402 and 404 for F] 412.

図5のデータ構造400では、L及びR平面402及び404の互いに対する位置は、元々のバウンディングボックス402の空間というよりは、バウンディングボックス402内に含まれる物体の集合を区分するように決定される。3次元ツリー区分とは対照的に、2つの平面を備えることで、これら2平面間の空の空間を最大化するという可能性が与えられる。結果的に、シーンの境界を近似する速度がかなり向上する。   In the data structure 400 of FIG. 5, the positions of the L and R planes 402 and 404 relative to each other are determined to partition the set of objects contained within the bounding box 402 rather than the space of the original bounding box 402. . In contrast to the 3D tree partition, having two planes gives the possibility of maximizing the empty space between these two planes. As a result, the speed of approximating scene boundaries is significantly improved.

図6乃至8は、データ構造400を更に示す一連の3次元図である。図6はバウンディングボックス402の図を示す。例示目的で、バウンディングボックス402内の仮想物体は抽象円416として示した。図7及び8に示したように、L平面404及びR平面406を用いてバウンディングボックス402を左バウンディングボックス402a及び右バウンディングボックス402bに区分する。L及びR平面は、その間の空の空間が最大化されるように選択する。それぞれの仮想物体416は左バウンディングボックス402aか右バウンディングボックス402bの何れかに入る。図8の底部に示したように、仮想物体416は「左」物体416aと「右」物体416bとに区分される。得られるバウンディングボックス402a及び402bそれぞれも区分され、これは終了判定基準が満たされるまで継続される。   FIGS. 6-8 are a series of three-dimensional diagrams further illustrating the data structure 400. FIG. 6 shows a diagram of bounding box 402. For illustrative purposes, the virtual object in bounding box 402 is shown as an abstract circle 416. As shown in FIGS. 7 and 8, the bounding box 402 is divided into a left bounding box 402a and a right bounding box 402b using the L plane 404 and the R plane 406. The L and R planes are chosen so that the empty space between them is maximized. Each virtual object 416 enters either the left bounding box 402a or the right bounding box 402b. As shown at the bottom of FIG. 8, the virtual object 416 is divided into a “left” object 416a and a “right” object 416b. Each of the resulting bounding boxes 402a and 402b is also partitioned, and this continues until the termination criteria are met.

図9は上述の方法500のフローチャートである。ステップ501で、シーンのバウンディングボックスが計算される。ステップ502では、平行なL及びR平面を用いて座標軸に平行なバウンディングボックスを、一部重複可能な座標軸に平行な左右のバウンディングボックスに区分する。ステップ503では、左右のバウンディングボックスを用いて、元々の座標軸に平行なバウンディングボックス内に含まれた仮想物体の集合を、左仮想物体の集合と右仮想物体の集合とに区分する。ステップ504では、左右の物体の処理は、終了判定基準が満たされるまで反復的に継続する。   FIG. 9 is a flowchart of the method 500 described above. In step 501, the bounding box of the scene is calculated. In step 502, the bounding box parallel to the coordinate axis using the parallel L and R planes is divided into left and right bounding boxes parallel to the coordinate axis that can be partially overlapped. In step 503, the set of virtual objects contained in the bounding box parallel to the original coordinate axis is divided into a set of left virtual objects and a set of right virtual objects using the left and right bounding boxes. In step 504, processing of the left and right objects continues iteratively until the termination criteria are met.

従来の実装で用いられていたように1つの分割パラメータではなく、2つの分割パラメータが1つのノード内に記憶される。ノードの数はレイトレーシング対象となる物体の数により線形拘束されるので、全ノードのアレイは一度に割り当て可能である。従って、構築時における3次元ツリーの高額なメモリ管理は不要となる。   Instead of one partition parameter as used in the conventional implementation, two partition parameters are stored in one node. Since the number of nodes is linearly constrained by the number of objects to be ray-traced, an array of all nodes can be assigned at once. Therefore, expensive memory management of the 3D tree at the time of construction becomes unnecessary.

この構築技術は3次元ツリー構築のアナログより遙かに単純であり、再帰的な方法で或いは反復的バージョン及びスタックを用いて容易に実装できる。物体のリスト及び座標軸に平行なバウンディングボックスが与えられれば、L及びR平面が決定され、物体の集合がそれに従って決定される。すると、左右の物体は、終了判定基準が満たされるまで反復的に処理される。内部ノードの数は拘束されているので、1つの物体しか残っていないときに終了に依存しても安全である。   This construction technique is much simpler than the analog of 3D tree construction and can be easily implemented in a recursive manner or using repetitive versions and stacks. Given a list of objects and bounding boxes parallel to the coordinate axes, the L and R planes are determined and the set of objects is determined accordingly. The left and right objects are then iteratively processed until the end criteria are met. Since the number of internal nodes is constrained, it is safe to rely on termination when only one object remains.

この区分は、これは非常に効率的且つ数値的に絶対安定である、x、y、及びz軸に垂直な平面に沿った物体のソートのみに依存することに注目されたい。3次元ツリーとは対照的に、ここでは、コスト高で且つ数値的にロバストな方法で実行するのが困難である、物体の分割平面との正確な交差を計算する必要がない。頂点及び辺において外れた三角形(原語:missed
triangle)などの3次元ツリーの数値問題は、バウンディングボリューム階層の構築に先立って三角形を拡張することで回避できる。又、3次元ツリーでは、一部重複した物体は座標軸に平行な左右のバウンディングボックス両方にソートしなければならず、ツリーの予想される二次曲線的な増大を引き起こす。
Note that this partition depends only on the sorting of objects along a plane perpendicular to the x, y, and z axes, which is very efficient and numerically stable. In contrast to the three-dimensional tree, it is not necessary here to calculate the exact intersection of the object with the dividing plane, which is expensive and difficult to perform in a numerically robust manner. Missing triangles at vertices and edges (Original: missed
Numerical problems with 3D trees such as triangle) can be avoided by extending the triangles prior to building the bounding volume hierarchy. Also, in 3D trees, partially overlapping objects must be sorted into both left and right bounding boxes parallel to the coordinate axis, causing the expected quadratic growth of the tree.

L及びR平面と従って実際のツリーレイアウトとを決定するには多くの技法を利用できる。図6乃至8を再度参照すると、1つの技法としては、上述した3次元ツリー構築技法を用いて平面M418を求め、座標軸に平行な新たなバウンディングボックスの得られたL及びR平面の重複部分と提案分割平面M418との重複が最小となるように物体を区分するものがある。得られるツリーは対応する3次元ツリーに非常に似ているが、空間でなく物体の集合が区分されるので、得られるツリーはずっと平坦になる。別のアプローチとしては、可能なら子ボックスの重複が最小となり且つ空の空間が最大化されるようにR及びL平面を選択するものがある。物体によっては座標軸に平行なバウンディングボックスが不効率となることは注目すべきである。こうした状況の例としては、座標軸に平行なバウンディングボックスの対角線上に位置した、半径が短い長尺円筒がある。   A number of techniques are available for determining the L and R planes and thus the actual tree layout. Referring again to FIGS. 6-8, one technique is to determine the plane M418 using the 3D tree construction technique described above, and the resulting L and R plane overlap of the new bounding box parallel to the coordinate axes. Some objects are divided so that the overlap with the proposed division plane M418 is minimized. The resulting tree is very similar to the corresponding 3D tree, but the resulting tree is much flatter because the set of objects is partitioned, not space. Another approach is to select the R and L planes so that child box overlap is minimized and empty space is maximized if possible. It should be noted that the bounding box parallel to the coordinate axis is inefficient for some objects. An example of such a situation is a long cylinder with a short radius located on the diagonal of a bounding box parallel to the coordinate axis.

図10は、本発明のこの様態による方法600のフローチャートである。ステップ601で、シーンのバウンディングボックスが計算される。ステップ602で、3次元ツリー構築を実行して分割平面Mを決定する。ステップ603では、平行なL及びR平面を用いて座標軸に平行なバウンディングボックスを、分割平面Mとの重複が最小となる座標軸に平行な左右のバウンディングボックスに区分する。ステップ604では、左右のバウンディングボックスを用いて、元々の座標軸に平行なバウンディングボックス内に含まれた仮想物体の集合を、左仮想物体の集合と右仮想物体の集合とに区分する。ステップ605では、左右の物体の処理は終了判定基準が満たされるまで反復的に継続する。図3に示した方法200と同様に、図10に示した方法600を、3次元ツリー構築、実時間処理、バケットソート、自己交差などに関する技術を含んだ本明細書に記載した他の方法と組み合わせてよいことに注目されたい。   FIG. 10 is a flowchart of a method 600 according to this aspect of the invention. In step 601, the bounding box of the scene is calculated. In step 602, a three-dimensional tree construction is executed to determine the division plane M. In step 603, the bounding box parallel to the coordinate axis is divided into left and right bounding boxes parallel to the coordinate axis that minimizes the overlap with the division plane M using the parallel L and R planes. In step 604, the set of virtual objects included in the bounding box parallel to the original coordinate axis is divided into a set of left virtual objects and a set of right virtual objects using the left and right bounding boxes. In step 605, the left and right object processing continues iteratively until the termination criteria are met. Similar to the method 200 shown in FIG. 3, the method 600 shown in FIG. 10 is combined with other methods described herein, including techniques related to 3D tree construction, real-time processing, bucket sorting, self-intersection, etc. Note that they can be combined.

3次元ツリーの場合は、空間的細分化を継続して物体周辺の空間の空部分を切除する。上述したバウンディングボリューム階層の場合、こうした物体をより小さいものに区分すると類似の振る舞いとなる。メモリ要件の予測可能性を維持するため、バウンディングボックスの最大サイズが定義される。バウンディングボックス最大サイズを超える範囲を備えた全物体はこの要件を満たすようにより小さな部分に分割される。最大許容サイズは、データセットを走査して全ての物体における最小範囲を求めることにより発見できる。   In the case of a three-dimensional tree, spatial subdivision is continued and the empty space around the object is excised. In the case of the bounding volume hierarchy described above, a similar behavior is obtained if such an object is divided into smaller ones. In order to maintain predictability of memory requirements, a maximum bounding box size is defined. All objects with a range exceeding the bounding box maximum size are divided into smaller parts to meet this requirement. The maximum allowable size can be found by scanning the data set for the minimum range for all objects.

本明細書で記載したデータ構造により、高速3次元ツリー走査の原理をバウンディングボリューム階層に移行できる。走査の場合分け(原語:case)は似ており、次の通り。(1)左の子のみ、(2)右の子のみ、(3)左の子の後で右の子、(4)右の子の後で左の子、又は(5)光線が分割平面の間にある(すなわち空の空間)。上述した技術の1つのノードは2つの平行平面で分割されるので、複数ボックスをどのように走査するかという順序は光線の方向により決定される。図6は、上述の技法を組み込んだソースコードリスティングを記載したものである。   The data structure described herein allows the principle of high speed 3D tree scanning to be transferred to the bounding volume hierarchy. The case of scanning (source: case) is similar and is as follows. (1) Left child only, (2) Right child only, (3) Left child followed by right child, (4) Right child followed by left child, or (5) Ray splitting plane (Ie empty space). Since one node of the technique described above is divided by two parallel planes, the order of how the multiple boxes are scanned is determined by the direction of the rays. FIG. 6 describes a source code listing that incorporates the techniques described above.

以前のバウンディングボリューム階層技術は、子ノードをどように走査するかという順序やヒープデータ構造を更新するなど必要な付加的努力を効率的に決定できなかった。更に、本アプローチでは2平面距離を必要とするにすぎないが、以前の技術ではバウンディングボリューム全体をロードして、光線に対してテストする必要があった。しかし、ソフトウェアにおいて光線を2つの平面に対してチェックすれば、高価になると思われる。この走査が3次元ツリーにおけるボトルネックとなっており、ここで更なる計算をよりうまく実行することがメモリアクセスの待ち時間を隠す。更に、バウンディングボリューム階層ツリーは、同一性能の対応する3次元ツリーよりもかなり小さくなる傾向にある。   Previous bounding volume hierarchy techniques have not been able to efficiently determine the additional effort required, such as how to traverse child nodes and updating the heap data structures. Furthermore, while this approach only requires two plane distances, the previous technique required loading the entire bounding volume and testing it against the rays. However, checking the rays against two planes in the software would be expensive. This scanning has become a bottleneck in the 3D tree, where performing further computations better masks memory access latency. Furthermore, the bounding volume hierarchy tree tends to be much smaller than the corresponding 3D tree of the same performance.

新たなバウンディングボリューム階層について本明細書で記載したが、3次元ツリーの走査への強いリンクがある。すなわち、L
= Rと設定すると、古典的な二分空間区分が得られ、走査アルゴリズムは3次元ツリーの走査アルゴリズムに圧縮される。
Although a new bounding volume hierarchy has been described herein, there is a strong link to traversing the 3D tree. That is, L
Setting = R yields a classical binary space partition and the scanning algorithm is compressed into a 3D tree scanning algorithm.

上述したバウンディングボリューム階層も適用して、自由曲面を細分化することで光線と自由曲面との交点を効率的に見つけることができる。そうすることにより、実際の浮動小数点演算によるが、自由曲面と凸閉包特性との交点及び細分化アルゴリズムが浮動小数点精度まで計算できる。1つの細分化ステップが、例えば、多項式表面、有利表面、及び近似細分化表面に関して実行される。空間内の各軸に関して、重複の可能性があるバウンディングボックスが上述のように決定される。二分細分化の場合は、新たなメッシュの新たなバウンディングボックスに関するLボックスの交点及びRボックスの交点。ボックスの空間的順序が知られているので、ここで上述の走査を効率的に実行できる。バウンディングボリュームの階層を予備計算する代わりに、これを処理途中で計算できる。この手法は自由曲面に関して効率的であり、アクセラレーションデータ構造のメモリ節約になり、これはバックトラッキングにより走査しなければならない小さなスタックのバウンディングボリュームに置き換えられる。この細分化は継続され、光線と表面との交点が、浮動小数点精度内の点又は小サイズの区間に圧縮された(原語:collapsed)バウンディングボリューム内に位置するまで終了しない。付属文書の段落2.2.1には、本発明のこの側面に従ったコードのリスティングが記載されている。   By applying the above-described bounding volume hierarchy and subdividing the free-form surface, it is possible to efficiently find the intersection between the ray and the free-form surface. By doing so, depending on the actual floating point calculation, the intersection of the free-form surface and the convex hull characteristic and the subdivision algorithm can be calculated up to the floating point precision. One refinement step is performed, for example, for polynomial surfaces, advantageous surfaces, and approximate refinement surfaces. For each axis in space, the bounding box with potential overlap is determined as described above. For bisection, the intersection of the L box and the intersection of the R box for the new bounding box of the new mesh. Since the spatial order of the boxes is known, the above scan can now be performed efficiently. Instead of pre-calculating the bounding volume hierarchy, this can be calculated in the middle of the process. This approach is efficient for freeform surfaces and saves memory in the acceleration data structure, which is replaced by a small stack bounding volume that must be scanned by backtracking. This subdivision continues and does not end until the intersection of the ray and the surface is located within a bounding volume that is compressed to a point in floating point precision or a small size interval. Paragraph 2.2.1 of the annex provides a listing of codes according to this aspect of the invention.

標準グリッドをレイトレーシングのアクセラレーションデータ構造として使用することは単純だが、空間適応性の不足及び多数の空グリッドセルの走査により効率が犠牲となる。階層標準グリッドはこの状況を改善できるが、バウンディングボリューム階層及び3次元ツリーと比べてなお劣る。しかし、標準グリッドを用いてアクセラレーションデータ構造の構築速度を改善できる。アクセラレーションデータ構造を構築するための技術はクイックソートと似ており、O(n
log n)で実行すると考えられる。線形時間で実行するバケットソートを適用することで改善が得られる。従って、物体の座標軸に平行なバウンディングボックスはnx
× ny × nz個の座標軸に平行なボックスに区分される。次に、各オブジェクトは、たとえば重心などの選択した一点によりこれらボックスの1つに厳密にソートされる。あるいは、各三角形の第1頂点を用いてもよい。すると、各グリッドセルにおける物体の実際の座標軸に平行なバウンディングボックスが特定される。これら座標軸に平行なバウンディングボックスが内包する物体でなく、これらバウンディングボックスを用いるが、それはバウンディングボックスが分割平面の何れかと交差しない限りにおいてである。そうなった場合は、ボックスはアンパックして、ボックス内の物体を直接使用することになる。この手順は多くの比較及びメモリアクセスを不要とし、構築技法の順序の定数を有意に向上し、更に、反復的に適用できる。上述の技法は物体のストリームを処理することで実現できるので、特にハードウェア実装に魅力的である。
Using a standard grid as a ray tracing acceleration data structure is simple, but sacrifices efficiency due to lack of spatial adaptability and scanning a large number of empty grid cells. Hierarchical standard grids can improve this situation, but still inferior to bounding volume hierarchies and 3D trees. However, the construction speed of the acceleration data structure can be improved by using the standard grid. The technique for building an acceleration data structure is similar to quicksort, with O (n
log n). Improvements can be obtained by applying a bucket sort that runs in linear time. Therefore, the bounding box parallel to the object coordinate axis is n x
× n y × n It is divided into boxes parallel to the z coordinate axes. Each object is then strictly sorted into one of these boxes by a selected point, such as the center of gravity. Alternatively, the first vertex of each triangle may be used. Then, a bounding box parallel to the actual coordinate axis of the object in each grid cell is specified. These bounding boxes are used instead of the objects contained by the bounding boxes parallel to these coordinate axes, as long as the bounding boxes do not intersect any of the dividing planes. If this happens, the box will unpack and use the objects in the box directly. This procedure eliminates many comparisons and memory accesses, significantly improves the ordering constant of the construction technique, and can be applied iteratively. The technique described above is particularly attractive for hardware implementation because it can be implemented by processing a stream of objects.

アクセラレーションデータ構造は要求時に、すなわち光線が物体を備えた座標軸に平行なバウンディングボックスを走査する時に構築できる。そして、アクセラレーションデータ構造は、光線に対して透明な空間領域でリファインされることは決して無く、触れられていないデータによってキャッシュが汚染することがない。他方で、リファイン後、光線と交差する可能性がある物質は既にキャッシュに入っている。   An acceleration data structure can be constructed on demand, ie when a ray scans a bounding box parallel to the coordinate axis with the object. In addition, the acceleration data structure is never refined in a spatial region that is transparent to rays, and the cache is not polluted by untouched data. On the other hand, after refinement, substances that can cross the rays are already in the cache.

上述の説明から、本発明がレイトレーシングにおいて長らく知られていた問題に対処し、アクセラレーションデータ構造の精度、全体的速度、及びメモリ使用量が向上したレイトレーシングの技術を提供することが分かるはずである。数値精度の向上は他の数体系にも、例えばARTレイトレーシングチップのハードウェアで用いられる対数数体系にも伝達する。プロセッサ又は専用ハードウェアに関するIEEE浮動小数点標準の実装が性能に甚大な影響を与えることがある。例えば、ペンティアム(登録商標)4チップでは、非正規化数が性能を100倍以上低下させることがある上述のように、本発明の実装はこれら例外を回避する。本明細書で記載したバウンディングボリューム階層のビューにより、これら階層が実時間レイトレーシングに適したものとなる。ならし解析では、本明細書で記載した技法は従来の技術水準を能力面で凌いでおり、より精密な技術を、例えば製作現場などにおいて完全に動画表現されたシーンで動きのぼかし計算に使用できる。特にハードウェア実装において更に巨大なシーンに関し、ここで記載したバウンディングボリューム階層が、3次元ツリー及び他の技法に比べて、大きな利点を備えていることは上述の記載から明らかなはずである。ならし解析では、ここで記載したバウンディングボリューム階層は、現在の3次元ツリーを性能において少なくとも2倍上回っている。更に、メモリ使用量は前もって特定でき、物体の数に線形である。   From the above description, it should be understood that the present invention addresses a long known problem in ray tracing and provides a ray tracing technique with improved accuracy, overall speed, and memory usage of acceleration data structures. It is. The improvement in numerical accuracy is transmitted to other number systems, for example, the logarithmic system used in the hardware of the ART ray tracing chip. Implementation of the IEEE floating point standard for processors or dedicated hardware can have a significant impact on performance. For example, in the Pentium® 4 chip, the denormalized number can degrade performance by more than 100 times, as described above, the implementation of the present invention avoids these exceptions. The bounding volume hierarchy views described herein make these hierarchies suitable for real-time ray tracing. In break-in analysis, the techniques described here outperform the prior art in terms of capabilities, and use more precise techniques for motion blur calculations in scenes that are fully animated, such as at the production site. it can. It should be clear from the above description that the bounding volume hierarchy described here has significant advantages over 3D trees and other techniques, especially for larger scenes in hardware implementations. In the run-in analysis, the bounding volume hierarchy described here outperforms the current 3D tree by at least twice. Furthermore, the memory usage can be specified in advance and is linear with the number of objects.

上述の記載は当業者による本発明の実施を可能とする詳細情報を含んでいるが、この記載は例示的なものであり、本明細書の教示を知っている当業者には多くの修正及び変形が可能なことは明らかなはずである。従って、本発明は添付の請求の範囲によってのみ定義され、請求の範囲は従来技術から見て可能な限り広く解釈されるよう意図されている。

Figure 0004972642

Figure 0004972642

Figure 0004972642

Figure 0004972642

Figure 0004972642

Figure 0004972642

Figure 0004972642
While the above description includes details to enable those skilled in the art to practice the invention, the description is illustrative and many modifications and changes will occur to those skilled in the art who are familiar with the teachings herein. It should be clear that deformation is possible. Accordingly, the invention is defined solely by the appended claims, which are intended to be construed as broadly as possible in view of the prior art.

Figure 0004972642

Figure 0004972642

Figure 0004972642

Figure 0004972642

Figure 0004972642

Figure 0004972642

Figure 0004972642

本発明を導入可能な従来のディジタル処理システムの概略図である。1 is a schematic diagram of a conventional digital processing system in which the present invention can be introduced. 本発明を導入可能な従来のパーソナルコンピュータ又は類似の計算装置の概略図である。1 is a schematic diagram of a conventional personal computer or similar computing device into which the present invention can be introduced. 本発明の第1の様態による包括的方法を示した流れ図である。2 is a flowchart illustrating a comprehensive method according to the first aspect of the present invention. 「自己交差」問題を示したレイトレーシング手順の図である。FIG. 6 is a ray tracing procedure illustrating the “self-intersection” problem. 本発明の別の様態によるアクセラレーションデータ構造として用いられる座標軸に平行な区分バウンディングボックスの正面図である。FIG. 6 is a front view of a segmented bounding box parallel to a coordinate axis used as an acceleration data structure according to another aspect of the present invention. L及びR平面におけるバウンディングボックスの区分を示した、図5の座標軸に平行なバウンディングボックスの一連の等角図である。FIG. 6 is a series of isometric views of the bounding box parallel to the coordinate axes of FIG. 5 showing the bounding box sections in the L and R planes. L及びR平面におけるバウンディングボックスの区分を示した、図5の座標軸に平行なバウンディングボックスの一連の等角図である。FIG. 6 is a series of isometric views of the bounding box parallel to the coordinate axes of FIG. 5 showing the bounding box sections in the L and R planes. L及びR平面におけるバウンディングボックスの区分を示した、図5の座標軸に平行なバウンディングボックスの一連の等角図である。FIG. 6 is a series of isometric views of the bounding box parallel to the coordinate axes of FIG. 5 showing the bounding box sections in the L and R planes. 本発明の更なる様態によるレイトレーシング方法のフローチャートである。5 is a flowchart of a ray tracing method according to a further aspect of the present invention. 本発明の更なる様態によるレイトレーシング方法のフローチャートである。5 is a flowchart of a ray tracing method according to a further aspect of the present invention.

Claims (19)

画像のピクセルに付いて、疑似カメラの像平面に記録されたシーンの一点を表すピクセル値を生成するコンピュータグラフィックス・システムであって、選択したレイトレーシング方法を用いて像の該ピクセル値を生成するよう構成されており、該選択したレイトレーシング方法は、前記ピクセルからシーン内へ選択した方向に沿って発せられた少なくとも1本の光線を含む光線ツリーの使用と、前記シーンにおける光線と物体の表面との交点の計算とを含む、コンピュータグラフィックス・システムにおいて、その改良方法が、
バウンディングボリューム階層を利用して前記シーン内の光線と物体との交点を計算する段階であって、該計算する段階が、
所与の光線に関して、該光線の起点に最も近い光線/物体交点の位置を特定するため、座標軸に平行なバウンディングボックスを定義し、利用し、再帰的且つ適応的にリファインする段階と、
所定の終了判定基準が満たされるまで、前記座標軸に平行なバウンディングボックスを反復的にリファインする段階と、
前記光線と物体との交点を計算した後、該計算した点の値を対応する光線の方向と共に使用して実際の交点により近い交点を反復的に再計算する段階とを含み、
定義し、利用し、再帰的且つ適応的にリファインする前記段階が、
(a)前記シーンの表面を分割して形成された三角形の座標に基づいて3次元ツリーを構築することによって、前記座標軸に平行な一つのバウンディングボックス内の仮想物体の集合を左物体の集合と右物体の集合とに区分するための分割平面Mを決定する段階と、
(b)前記分割平面を含むとともに前記左物体の集合が入る左バウンディングボックスを定義するためのL平面と、前記分割平面を含むとともに前記右物体の集合が入る右バウンディングボックスを定義するためのR平面とを特定する段階であって、前記分割平面Mと前記L平面間の重複部分の容積および前記分割平面Mと前記R平面間の重複部分の容積がそれぞれ最小となるように、互いに平行な前記L平面および前記R平面を特定する段階とを含む、
改良方法。
A computer graphics system that generates a pixel value for a pixel in the image that represents a point in the scene recorded in the image plane of the pseudo camera, using the selected ray tracing method to generate the pixel value for the image The selected ray tracing method includes the use of a ray tree that includes at least one ray emitted along the selected direction from the pixel into the scene, and the ray and object in the scene. In a computer graphics system, including the calculation of the intersection with a surface,
Calculating an intersection of a ray and an object in the scene using a bounding volume hierarchy, the calculating step comprising:
Defining, using, recursively and adaptively refining a bounding box parallel to the coordinate axis to determine the position of the ray / object intersection closest to the origin of the ray for a given ray;
Recursively refining a bounding box parallel to the coordinate axes until a predetermined termination criterion is met;
Calculating the intersection point of the ray with the object and then using the value of the calculated point together with the direction of the corresponding ray to iteratively recalculate the intersection point closer to the actual intersection point;
Said step of defining, utilizing, recursively and adaptively refining,
(A) By constructing a three-dimensional tree based on triangular coordinates formed by dividing the surface of the scene, a set of virtual objects in one bounding box parallel to the coordinate axis is defined as a set of left objects. Determining a dividing plane M for partitioning into a set of right objects;
(B) An L plane for defining a left bounding box that includes the split plane and that contains the set of left objects, and an R that defines the right bounding box that includes the split plane and that includes the set of right objects. A plane is specified, which is parallel to each other such that the volume of the overlapping portion between the dividing plane M and the L plane and the volume of the overlapping portion between the dividing plane M and the R plane are minimized. Identifying the L plane and the R plane.
Improvement method.
3次元ツリー構築を実行する前記段階が、
区分すべき座標軸に平行なバウンディングボックス内の三角形の頂点座標に基づいて分割平面の候補を特定する段階と、
前記候補の集合から、現在の座標軸に平行なバウンディングボックスの最長辺の中心に最も近い平面を選択する段階とを含む、請求項に記載の改良方法。
The step of performing the 3D tree construction includes:
Identifying split plane candidates based on the vertex coordinates of a triangle in a bounding box parallel to the coordinate axis to be partitioned;
The improvement method according to claim 1 , further comprising: selecting a plane closest to the center of the longest side of the bounding box parallel to the current coordinate axis from the set of candidates.
選択する前記段階が、表面法線の最長成分が前記可能性のある分割平面の法線にマッチする三角形の座標のみを選択する段階を更に含む、請求項に記載の改良方法。The improved method of claim 2 , wherein the step of selecting further comprises selecting only the coordinates of a triangle whose longest surface normal component matches the normal of the potential split plane. 前記分割平面に交差する三角形が、座標軸に平行なバウンディングボックスの左右の区分のどちらに含まれているかを特定する段階を含み、特定する該段階が、まず該三角形の前記分割平面との交差を計算して「交差線」を生成する段階と、次に、該交差線が前記分割平面と前記バウンディングボックスとの交差により定義される長方形に対してどのように位置しているかを特定する段階とを含む、請求項に記載の改良方法。Identifying whether the triangle intersecting the dividing plane is included in the left or right section of the bounding box parallel to the coordinate axis, the identifying step first identifying the intersection of the triangle with the dividing plane. Calculating to generate a “crossing line”; and then identifying how the crossing line is located relative to a rectangle defined by the intersection of the dividing plane and the bounding box; The improvement method of Claim 2 containing these. 前記バウンディングボリューム階層の走査の順序を光線方向に基づいて決定する段階を更に含む、請求項に記載の改良方法。Further comprising an improved method of claim 4 the step of determining based on the order of scanning of the bounding volume hierarchy beam direction. 前記バウンディングボリュームの階層が、像を処理する必要に応じて実時間で計算される、請求項に記載の改良方法。 6. The improved method of claim 5 , wherein the bounding volume hierarchy is calculated in real time as needed to process the image. レイトレーシングのアクセラレーションデータ構造をバケットソートに基づいて構築する段階を更に含み、該構築が、
物体を含む前記座標軸に平行なバウンディングボックスをnx× ny × nz個の座標軸に平行なボックスに区分する段階と、
各オブジェクトを選択した一点により前記ボックスの1つに厳密にソートする段階であって、該選択した一点は各三角形の重心又は第1頂点の何れかを含む、ソートする段階と、
各グリッドセルにおける前記物体を含む前記座標軸に平行なバウンディングボックスを特定する段階とを含む、請求項に記載の改良方法。
Further comprising building a raytracing acceleration data structure based on bucket sorting, the building comprising:
Partitioning a bounding box parallel to the coordinate axes containing the object into boxes parallel to n x × n y × n z coordinate axes;
Sorting each object strictly into one of the boxes by a selected point, the selected point including either the center of gravity or the first vertex of each triangle; and
And a step of identifying the parallel bounding box to the axis including the object in each grid cell, an improved method of claim 6.
計算した交点が前記シーンの表面の下方にある場合、該計算点は前記表面の他方の側に移動されて修正計算点を与える、請求項1に記載の改良方法。  The improved method of claim 1, wherein if the calculated intersection is below the surface of the scene, the calculated point is moved to the other side of the surface to provide a modified calculation point. 前記移動は表面法線に沿って、又は該表面法線の最長成分により決定される軸に沿ったものである、請求項に記載の改良方法。9. The improved method of claim 8 , wherein the movement is along a surface normal or along an axis determined by the longest component of the surface normal. 前記移動が、交点を表す浮動小数点の仮数の最終ビットを整数イプシロンで移動することで実行され、2次光線は前記修正計算点から始まるよう定義される、請求項に記載の改良方法。9. The method of claim 8 , wherein the movement is performed by moving the last bit of a floating-point mantissa representing an intersection point with an integer epsilon, and a secondary ray is defined to start from the modified calculation point. 光線/三角形交差テストを用いる段階を更に含み、該テストでは、前記シーンにおける光線と表面の三角形細分化の平面との交点が特定され、該光線における所定有効区間の外の交点は除外される、請求項1に記載の改良方法。  Further comprising using a ray / triangle intersection test, wherein the intersection of the ray in the scene and the surface triangulation plane of the surface is identified and the intersection outside the predetermined effective interval in the ray is excluded. The improved method according to claim 1. 画像のピクセルに付いて、疑似カメラの像平面に記録されたシーンの一点を表すピクセル値を生成するコンピュータグラフィックス・システムであって、選択したレイトレーシング方法を用いて像の該ピクセル値を生成するよう構成されており、該選択したレイトレーシング方法は、前記ピクセルからシーン内へ選択した方向に沿って発せられた少なくとも1本の光線を含む光線ツリーの使用と、前記シーンにおける光線と物体との交点の計算とを含む、コンピュータグラフィックス・システムにおいて、その改良方法が、
バウンディングボリューム階層を利用することにより前記シーン内の光線と物体との交点の計算を可能とするよう動作可能なコンピュータ実行可能ソフトウェアコードを含み、該計算が、
所与の光線に関して、該光線の起点に最も近い光線/物体交点の位置を特定するため、座標軸に平行なバウンディングボックスを定義し、利用し、再帰的且つ適応的にリファインする段階と、
所定の終了判定基準が満たされるまで、前記座標軸に平行なバウンディングボックスの前記リファインを継続する段階と、
前記光線と物体との交点を計算した後、該計算した点の値を対応する光線の方向と共に使用して実際の交点により近い交点を反復的に再計算する段階とを含み、
定義し、利用し、再帰的且つ適応的にリファインする前記段階が、
(a)前記シーンの表面を分割して形成された三角形の座標に基づいて3次元ツリーを構築することによって、前記座標軸に平行な一つのバウンディングボックス内の仮想物体の集合を左物体の集合と右物体の集合とに区分するための分割平面Mを決定する段階と、
(b)前記分割平面を含むとともに前記左物体の集合が入る左バウンディングボックスを定義するためのL平面と、前記分割平面を含むとともに前記右物体の集合が入る右バウンディングボックスを定義するためのR平面とを特定する段階であって、前記分割平面Mと前記L平面間の重複部分の容積および前記分割平面Mと前記R平面間の重複部分の容積がそれぞれ最小となるように、互いに平行な前記L平面および前記R平面を特定する段階とを含む、
改良方法。
A computer graphics system that generates a pixel value for a pixel in the image that represents a point in the scene recorded in the image plane of the pseudo camera, using the selected ray tracing method to generate the pixel value for the image The selected ray tracing method includes the use of a ray tree that includes at least one ray emitted along a selected direction from the pixel into the scene, and the ray and object in the scene. In a computer graphics system including the calculation of the intersection of
Including computer-executable software code operable to allow calculation of the intersection of rays and objects in the scene by utilizing a bounding volume hierarchy, the calculation comprising:
Defining, using, recursively and adaptively refining a bounding box parallel to the coordinate axis to determine the position of the ray / object intersection closest to the origin of the ray for a given ray;
Continuing the refinement of the bounding box parallel to the coordinate axis until a predetermined termination criterion is met;
Calculating the intersection point of the ray with the object and then using the value of the calculated point together with the direction of the corresponding ray to iteratively recalculate the intersection point closer to the actual intersection point;
Said step of defining, utilizing, recursively and adaptively refining,
(A) By constructing a three-dimensional tree based on triangular coordinates formed by dividing the surface of the scene, a set of virtual objects in one bounding box parallel to the coordinate axis is defined as a set of left objects. Determining a dividing plane M for partitioning into a set of right objects;
(B) An L plane for defining a left bounding box that includes the split plane and that contains the set of left objects, and an R that defines the right bounding box that includes the split plane and that includes the set of right objects. A plane is specified, which is parallel to each other such that the volume of the overlapping portion between the dividing plane M and the L plane and the volume of the overlapping portion between the dividing plane M and the R plane are minimized. Identifying the L plane and the R plane.
Improvement method.
画像のピクセルに付いて、疑似カメラの像平面に記録されたシーンの一点を表すピクセル値を生成するコンピュータグラフィックス・システムであって、該コンピュータグラフィックス・システムは、選択したレイトレーシング方法を用いて像の該ピクセル値を生成するよう構成されており、該選択したレイトレーシング方法は、前記ピクセルからシーン内へ選択した方向に沿って発せられた少なくとも1本の光線を含む光線ツリーの使用と、前記シーンにおける光線と物体の表面との交点の計算とを含み、該コンピュータグラフィックス・システムが、
バウンディングボリューム階層を利用することによって前記シーン内の光線と物体との交点を計算する手段であって、該計算する手段が、
所与の光線に関して、該光線の起点に最も近い光線/物体交点の位置を特定するため、座標軸に平行なバウンディングボックスを定義し、利用し、再帰的且つ適応的にリファインする手段と、
所定の終了判定基準が満たされるまで、前記座標軸に平行なバウンディングボックスの前記リファインを継続する手段と、
前記光線と物体との交点を計算した後、該計算した点の値を対応する光線の方向と共に使用して実際の交点により近い交点を反復的に再計算する手段とを含み、
定義し、利用し、再帰的且つ適応的にリファインする前記手段が、
(a)前記シーンの表面を分割して形成された三角形の座標に基づいて3次元ツリーを構築することによって、前記座標軸に平行な一つのバウンディングボックス内の仮想物体の集合を左物体の集合と右物体の集合とに区分するための分割平面Mを決定する処理と、
(b)前記分割平面を含むとともに前記左物体の集合が入る左バウンディングボックスを定義するためのL平面と、前記分割平面を含むとともに前記右物体の集合が入る右バウンディングボックスを定義するためのR平面とを特定する処理であって、前記分割平面Mと前記L平面間の重複部分の容積および前記分割平面Mと前記R平面間の重複部分の容積がそれぞれ最小となるように、互いに平行な前記L平面および前記R平面を特定する処理とを実行する、
コンピュータグラフィックス・システム。
A computer graphics system that generates a pixel value for a pixel of an image that represents a point in a scene recorded in the image plane of a pseudo camera, the computer graphics system using a selected ray tracing method. The selected ray-tracing method includes the use of a ray tree that includes at least one ray emitted along a selected direction from the pixel into the scene. Calculating a point of intersection of a light ray and an object surface in the scene, the computer graphics system comprising:
Means for calculating an intersection of a ray and an object in the scene by utilizing a bounding volume hierarchy, the means for calculating comprising:
Means for defining, utilizing, recursively and adaptively refining a bounding box parallel to the coordinate axis to determine the position of the ray / object intersection closest to the origin of the ray for a given ray;
Means for continuing the refinement of the bounding box parallel to the coordinate axis until a predetermined termination criterion is met;
Means for calculating the intersection point of the ray with the object and then recalculating the intersection point closer to the actual intersection point using the value of the calculated point together with the direction of the corresponding ray;
Said means to define, use, refine recursively and adaptively,
(A) By constructing a three-dimensional tree based on triangular coordinates formed by dividing the surface of the scene, a set of virtual objects in one bounding box parallel to the coordinate axis is defined as a set of left objects. A process of determining a dividing plane M for partitioning into a set of right objects;
(B) An L plane for defining a left bounding box that includes the split plane and that contains the set of left objects, and an R that defines the right bounding box that includes the split plane and that includes the set of right objects. A plane is specified, which is parallel to each other so that the volume of the overlapping portion between the divided plane M and the L plane and the volume of the overlapping portion between the divided plane M and the R plane are minimized. Performing the process of specifying the L plane and the R plane;
Computer graphics system.
画像のピクセルに付いて、疑似カメラの像平面に記録されたシーンの一点を表すピクセル値を生成するコンピュータグラフィックス・システムであって、選択したレイトレーシング方法を用いて像の該ピクセル値を生成するよう構成されており、該選択したレイトレーシング方法は、前記ピクセルからシーン内へ選択した方向に沿って発せられた少なくとも1本の光線を含む光線ツリーの使用と、前記シーンにおける光線と物体の表面との交点の計算とを含む、コンピュータグラフィックス・システムにおいて、前記シーンにおいて光線と物体との交点を計算する方法であって、
バウンディングボリューム階層を構築する段階を含み、構築する該段階が、
所与の光線に関して、該光線の起点に最も近い光線/物体交点の位置を特定するため、座標軸に平行なバウンディングボックスを定義し、利用し、再帰的且つ適応的にリファインする段階と、
所定の終了判定基準が満たされるまで、前記座標軸に平行なバウンディングボックスの前記リファインを継続する段階と、
前記光線と物体との交点を計算した後、該計算した点の値を対応する光線の方向と共に使用して実際の交点により近い交点を反復的に再計算する段階とを含み、
定義し、利用し、再帰的且つ適応的にリファインする前記段階が、
(a)前記シーンの表面を分割して形成された三角形の座標に基づいて3次元ツリーを構築することによって、前記座標軸に平行な一つのバウンディングボックス内の仮想物体の集合を左物体の集合と右物体の集合とに区分するための分割平面Mを決定する段階と、
(b)前記分割平面を含むとともに前記左物体の集合が入る左バウンディングボックスを定義するためのL平面と、前記分割平面を含むとともに前記右物体の集合が入る右バウンディングボックスを定義するためのR平面とを特定する段階であって、前記分割平面Mと前記L平面間の重複部分の容積および前記分割平面Mと前記R平面間の重複部分の容積がそれぞれ最小となるように、互いに平行な前記L平面および前記R平面を特定する段階とを含む、
交点を計算する方法。
A computer graphics system that generates a pixel value for a pixel in the image that represents a point in the scene recorded in the image plane of the pseudo camera, using the selected ray tracing method to generate the pixel value for the image The selected ray tracing method includes the use of a ray tree that includes at least one ray emitted along the selected direction from the pixel into the scene, and the ray and object in the scene. Calculating a point of intersection of a ray and an object in the scene, comprising: calculating a point of intersection with a surface, comprising:
Building a bounding volume hierarchy, the building step comprising:
Defining, using, recursively and adaptively refining a bounding box parallel to the coordinate axis to determine the position of the ray / object intersection closest to the origin of the ray for a given ray;
Continuing the refinement of the bounding box parallel to the coordinate axis until a predetermined termination criterion is met;
Calculating the intersection point of the ray with the object and then using the value of the calculated point together with the direction of the corresponding ray to iteratively recalculate the intersection point closer to the actual intersection point;
Said step of defining, utilizing, recursively and adaptively refining,
(A) By constructing a three-dimensional tree based on triangular coordinates formed by dividing the surface of the scene, a set of virtual objects in one bounding box parallel to the coordinate axis is defined as a set of left objects. Determining a dividing plane M for partitioning into a set of right objects;
(B) An L plane for defining a left bounding box that includes the split plane and that contains the set of left objects, and an R that defines the right bounding box that includes the split plane and that includes the set of right objects. A plane is specified, which is parallel to each other such that the volume of the overlapping portion between the dividing plane M and the L plane and the volume of the overlapping portion between the dividing plane M and the R plane are minimized. Identifying the L plane and the R plane.
How to calculate the intersection point.
バウンディングボックスを細分化する段階を更に含む、請求項に記載の改良方法。The method of claim 2 , further comprising the step of subdividing the bounding box. 2次光線を開始する点を選択する段階を更に含み、選択する該段階が、バウンディングボックスの隅であって該ボックスの中央において表面法線に最も近い隅を選択し、且つ前記選択した隅に対応する前記点を用いて前記2次光線を開始する段階とを含む、請求項1に記載の改良方法。  Selecting a point at which to start the secondary ray, wherein the step of selecting selects a corner of the bounding box that is closest to the surface normal at the center of the box, and to the selected corner; The method of claim 1, comprising starting the secondary ray with the corresponding point. 3次元ツリーを構築する前記段階が、選択した深さから左平衡することでツリーの枝刈りを実行する段階を更に含み、該ツリーの枝刈りが、前記選択した深さから二分空間区分を近似的に左平衡することでツリー深さを枝刈りする段階を含む、請求項に記載の改良方法。The step of constructing a three-dimensional tree further comprises performing tree pruning by left balancing from a selected depth, wherein the tree pruning approximates a binary space partition from the selected depth 3. The improved method of claim 2 , comprising the step of pruning the tree depth by left-balanced. 前記バウンディングボリューム階層を実時間で且つ要求時に構築する段階を更に含む、請求項1に記載の改良方法。  The improved method of claim 1, further comprising the step of building the bounding volume hierarchy in real time and on demand. 画像のピクセルに付いて、疑似カメラの像平面に記録されたシーンの一点を表すピクセル値を生成するコンピュータグラフィックス・システムであって、選択したレイトレーシング方法を用いて像の該ピクセル値を生成するよう構成されており、該選択したレイトレーシング方法は、前記ピクセルからシーン内へ選択した方向に沿って発せられた少なくとも1本の光線を含む光線ツリーの使用と、前記シーンにおける光線と物体の表面との交点の計算とを含む、コンピュータグラフィックス・システムにおいて、その改良方法が、
バウンディングボリューム階層を利用して前記シーン内の光線と物体との交点を計算する段階であって、該計算する段階が、
所与の光線に関して、該光線の起点に最も近い光線/物体交点の位置を特定するため、座標軸に平行なバウンディングボックスを定義し、利用し、再帰的且つ適応的にリファインする段階と、
所定の終了判定基準が満たされるまで、前記座標軸に平行なバウンディングボックスの前記リファインを継続する段階とを含み、
定義し、利用し、再帰的且つ適応的にリファインする前記段階が、
バウンディングボックスの隅であって該ボックスの中央において表面法線に最も近い隅を選択し、且つ前記選択した隅に対応する前記点を用いて前記2次光線を開始する段階と、
3次元ツリー構築を利用する段階とを含み、前記構築が、選択した深さから左平衡することでツリーの枝刈りを実行する段階を含み、該ツリーの枝刈りが、前記選択した深さから二分空間区分を近似的に左平衡することでツリー深さを枝刈りする段階を含み、
座標軸に平行なバウンディングボックスを定義する前記段階が、
(a)前記シーンの表面を分割して形成された三角形の座標に基づいて3次元ツリーを構築することによって、前記座標軸に平行な一つのバウンディングボックス内の仮想物体の集合を左物体の集合と右物体の集合とに区分するための分割平面Mを決定する段階と、
(b)前記分割平面を含むとともに前記左物体の集合が入る左バウンディングボックスを定義するためのL平面と、前記分割平面を含むとともに前記右物体の集合が入る右バウンディングボックスを定義するためのR平面とを特定する段階であって、前記分割平面Mと前記L平面間の重複部分の容積および前記分割平面Mと前記R平面間の重複部分の容積がそれぞれ最小となるように、互いに平行な前記L平面および前記R平面を特定する段階とを含み、
前記終了判定基準が満たされるまで前記左右の物体を反復的に処理する段階を更に含み、
段階(a)において、3次元ツリーを構築する前記段階が、
(a1)区分すべき座標軸に平行なバウンディングボックス内の三角形の頂点座標に基づいて分割平面の候補を特定する段階と、
(a2)前記候補の集合から、現在の座標軸に平行なバウンディングボックスの最長辺の中心に最も近い平面を選択する段階であって、表面法線の最長成分が可能性のある分割平面の法線にマッチする三角形の座標のみを選択する段階を更に含み、
前記バウンディングボリューム階層が実時間で且つ要求時に構築され、
前記光線と物体との交点を計算した後、該計算した点の値を対応する光線の方向と共に使用して実際の交点により近い交点を反復的に再計算する、改良方法。
A computer graphics system that generates a pixel value for a pixel in the image that represents a point in the scene recorded in the image plane of the pseudo camera, using the selected ray tracing method to generate the pixel value for the image The selected ray tracing method includes the use of a ray tree that includes at least one ray emitted along the selected direction from the pixel into the scene, and the ray and object in the scene. In a computer graphics system, including the calculation of the intersection with a surface,
Calculating an intersection of a ray and an object in the scene using a bounding volume hierarchy, the calculating step comprising:
Defining, using, recursively and adaptively refining a bounding box parallel to the coordinate axis to determine the position of the ray / object intersection closest to the origin of the ray for a given ray;
Continuing the refinement of the bounding box parallel to the coordinate axis until a predetermined termination criterion is met,
Said step of defining, utilizing, recursively and adaptively refining,
Selecting the corner of the bounding box that is closest to the surface normal at the center of the box and starting the secondary ray with the point corresponding to the selected corner;
Utilizing a three-dimensional tree construction, wherein the construction includes performing tree pruning by left balancing from a selected depth, wherein the tree pruning is performed from the selected depth. Pruning the tree depth by approximately left equilibrating the binary space partition,
Said step of defining a bounding box parallel to the coordinate axes,
(A) By constructing a three-dimensional tree based on triangular coordinates formed by dividing the surface of the scene, a set of virtual objects in one bounding box parallel to the coordinate axis is defined as a set of left objects. Determining a dividing plane M for partitioning into a set of right objects;
(B) An L plane for defining a left bounding box that includes the split plane and that contains the set of left objects, and an R that defines the right bounding box that includes the split plane and that includes the set of right objects. A plane is specified, which is parallel to each other such that the volume of the overlapping portion between the dividing plane M and the L plane and the volume of the overlapping portion between the dividing plane M and the R plane are minimized. Identifying the L plane and the R plane,
Further comprising iteratively processing the left and right objects until the termination criteria are met,
In step (a), said step of building a three-dimensional tree comprises:
(A1) identifying a candidate for a split plane based on the vertex coordinates of a triangle in a bounding box parallel to the coordinate axis to be segmented;
(A2) selecting a plane closest to the center of the longest side of the bounding box parallel to the current coordinate axis from the set of candidates, wherein the normal of the split plane where the longest component of the surface normal is possible Further comprising selecting only the coordinates of a triangle that matches
The bounding volume hierarchy is built in real time and on demand,
An improved method of calculating the intersection point of the ray and the object, and then recalculating the intersection point closer to the actual intersection point using the value of the calculated point together with the direction of the corresponding ray.
JP2008518466A 2005-06-23 2006-06-23 High-precision real-time ray tracing Active JP4972642B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US69323105P 2005-06-23 2005-06-23
US60/693,231 2005-06-23
PCT/US2006/024631 WO2007002494A2 (en) 2005-06-23 2006-06-23 Real-time precision ray tracing

Publications (2)

Publication Number Publication Date
JP2009514059A JP2009514059A (en) 2009-04-02
JP4972642B2 true JP4972642B2 (en) 2012-07-11

Family

ID=37595916

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008518466A Active JP4972642B2 (en) 2005-06-23 2006-06-23 High-precision real-time ray tracing

Country Status (5)

Country Link
EP (1) EP1899896A2 (en)
JP (1) JP4972642B2 (en)
AU (1) AU2006261967B2 (en)
CA (1) CA2609283A1 (en)
WO (1) WO2007002494A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10049488B2 (en) 2014-05-27 2018-08-14 Samsung Electronics Co., Ltd. Apparatus and method of traversing acceleration structure in ray tracing system
US11170254B2 (en) 2017-09-07 2021-11-09 Aurora Innovation, Inc. Method for image analysis
US11334762B1 (en) 2017-09-07 2022-05-17 Aurora Operations, Inc. Method for image analysis

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8421801B2 (en) * 2008-09-09 2013-04-16 Caustic Graphics, Inc. Ray tracing using ray-specific clipping
US8593458B2 (en) * 2008-09-22 2013-11-26 Caustic Graphics, Inc. Systems and methods of multidimensional query resolution and computation organization
KR102159262B1 (en) * 2014-03-14 2020-09-23 삼성전자 주식회사 Method and apparatus for removing false-intersection in ray tracing
JP6314114B2 (en) 2015-08-26 2018-04-18 株式会社ソニー・インタラクティブエンタテインメント Image processing apparatus, image processing method, and program
GB2545226A (en) 2015-12-09 2017-06-14 Samsung Electronics Co Ltd Determining lighting in a 3D virtual scene
US10249087B2 (en) * 2016-01-29 2019-04-02 Magic Leap, Inc. Orthogonal-projection-based texture atlas packing of three-dimensional meshes

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07501162A (en) * 1991-06-28 1995-02-02 リム ホン リップ Improved visibility calculations for 3D computer graphics
AU758086B2 (en) * 1998-02-23 2003-03-13 Algotec Systems Ltd. Raycasting system and method
SG93211A1 (en) * 1999-07-28 2002-12-17 Univ Singapore Method and apparatus for generating atomic parts of graphic representation through skeletonization for interactive visualization applications
ATE402458T1 (en) * 2001-06-07 2008-08-15 Mental Images Gmbh PLAYBACK OF IMAGES USING THE RUSSIAN ROULET METHODOLOGY FOR EVALUATION OF GLOBAL ILLUMINATION
JP3931701B2 (en) * 2002-03-15 2007-06-20 株式会社デンソー Image generating apparatus and program
US6868420B2 (en) * 2002-07-31 2005-03-15 Mitsubishi Electric Research Laboratories, Inc. Method for traversing quadtrees, octrees, and N-dimensional bi-trees

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10049488B2 (en) 2014-05-27 2018-08-14 Samsung Electronics Co., Ltd. Apparatus and method of traversing acceleration structure in ray tracing system
US11170254B2 (en) 2017-09-07 2021-11-09 Aurora Innovation, Inc. Method for image analysis
US11334762B1 (en) 2017-09-07 2022-05-17 Aurora Operations, Inc. Method for image analysis
US11748446B2 (en) 2017-09-07 2023-09-05 Aurora Operations, Inc. Method for image analysis

Also Published As

Publication number Publication date
AU2006261967A1 (en) 2007-01-04
WO2007002494A3 (en) 2007-06-07
EP1899896A2 (en) 2008-03-19
JP2009514059A (en) 2009-04-02
AU2006261967B2 (en) 2010-09-16
CA2609283A1 (en) 2007-01-04
WO2007002494A2 (en) 2007-01-04

Similar Documents

Publication Publication Date Title
US7499053B2 (en) Real-time precision ray tracing
JP4972642B2 (en) High-precision real-time ray tracing
US8411088B2 (en) Accelerated ray tracing
US7495664B2 (en) Instant ray tracing
US7659894B2 (en) Terminating spatial partition hierarchies by a priori bounding memory
JP4858795B2 (en) Instant ray tracing
US8188997B2 (en) Accelerated ray tracing using shallow bounding volume hierarchies
KR102604737B1 (en) METHOD AND APPARATUS for generating acceleration structure
US7990380B2 (en) Diffuse photon map decomposition for parallelization of global illumination algorithm
US11450057B2 (en) Hardware acceleration for ray tracing primitives that share vertices
KR20180069461A (en) Method and apparatus for generating acceleration structure
Ogayar et al. Point in solid strategies
WO2009063319A2 (en) Shallow bounding volume hierarchies for accelerated ray tracing
Weller et al. A brief overview of collision detection
WO2008091958A2 (en) Terminating spatial partition hierarchies by a priori bounding memory
JP4947394B2 (en) Simultaneous simulation of Markov chains using the quasi-Monte Carlo method
Martínez et al. Using multicore processors to parallelize 3D point cloud registration with the Coarse Binary Cubes method
KR100843292B1 (en) Apparatus and Method for Ray Tracing Using Lookup Table
Figueiredo et al. An efficient collision detection algorithm for point cloud models
Byrne et al. Applications of the VOLA format for 3D data knowledge discovery
US20150186288A1 (en) Apparatus and method of operating cache memory
Pałka et al. Visibility determination in beam tracing with application for real-time sound simulation
US10529444B1 (en) System that rapidly generates a solvent-excluded surface
CN117456115A (en) Method for merging adjacent three-dimensional entities
Martínez et al. with the Coarse Binary Cubes Method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110531

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110607

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110628

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110705

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110801

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120111

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: 20120313

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: 20120409

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4972642

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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