【0001】[0001]
【発明の属する技術分野】本発明は、ボリュームデータ
集合のレンダリングに関し、より詳細には、ボリューム
データ集合を通るレイ(光線)投射の早期終了に関する。FIELD OF THE INVENTION The present invention relates to rendering volume data sets, and more particularly, to early termination of ray projection through the volume data sets.
【0002】[0002]
【従来の技術】ボリュームグラフィクスは、2次元ない
し3次元でサンプリングされたデータ、すなわちボリュ
ームデータ集合として表されたオブジェクトまたはモデ
ルの可視化を扱うコンピュータグラフィクスのサブフィ
ールドである。これらのデータは、ボリュームエレメン
ト、すなわち「ボクセル(voxel)」と呼ばれる。ボクセ
ルは、検討されるオブジェクトまたはモデルの物性を示
すデジタル情報を格納する。例えば、特定のオブジェク
トまたはモデルのボクセル値は、密度、材質、温度、速
度、またはそのオブジェクトまたはモデルの内部または
近傍全体にわたる空間中の離散的な点における他の特性
を表し得る。2. Description of the Related Art Volume graphics is a subfield of computer graphics that handles the visualization of data sampled in two or three dimensions, ie, objects or models represented as volume data sets. These data are called volume elements, or "voxels". Voxels store digital information that indicates the physical properties of the object or model under consideration. For example, voxel values for a particular object or model may represent density, material, temperature, velocity, or other properties at discrete points in space throughout or near the object or model.
【0003】ボリュームレンダリングは、印刷、コンピ
ュータ端末上での表示、およびその他の形の可視化のた
めの、2次元画像としてのボリュームデータ集合の投影
にかかわるボリュームグラフィクスの分野である。色お
よび透明度の値を特定のボクセルデータ値に割り当てる
ことにより、オブジェクトまたはモデルの外部および内
部の種々の眺めがレンダリングされる。[0003] Volume rendering is a field of volume graphics that involves the projection of a volume data set as a two-dimensional image for printing, display on a computer terminal, and other forms of visualization. By assigning color and transparency values to particular voxel data values, different views inside and outside the object or model are rendered.
【0004】例えば、外科手術の事前準備に、患者の膝
の靭帯、腱、および骨を検査する必要がある外科医は、
膝の断層スキャンを利用し、血液、皮膚、および筋肉に
対応するボクセルデータ値を完全に透明にすることがで
きる。その結果得られる画像により、手術前には隠れて
いる靭帯、腱、骨等の状態が明らかになり、それによっ
て、外科手術計画をよりよいものにし、手術時間をより
短くし、外科的診察をより少なくし、回復をより早くす
ることが可能になる。別の例では、ジェットエンジンの
タービン翼や溶接継手の断層スキャンを使用する機械工
は、固体金属を示すボクセルデータ値を透明にし、他方
で空気を示すデータ値を不透明にできる。これにより、
そうしなければ人の眼からは隠されている金属内部の欠
陥を見ることが可能になる。For example, a surgeon who needs to examine a patient's knee for ligaments, tendons, and bones in preparation for surgery,
Using a tomographic scan of the knee, voxel data values corresponding to blood, skin, and muscle can be made completely transparent. The resulting image reveals hidden ligaments, tendons, bones, and other conditions prior to surgery, thereby improving surgical planning, reducing operating time, and improving surgical consultation. It allows for less and faster recovery. In another example, a mechanic using tomographic scans of jet engine turbine blades and welded joints can make voxel data values indicative of solid metal transparent while opaque data values indicative of air. This allows
Otherwise, human eyes will be able to see the hidden defects inside the metal.
【0005】実時間ボリュームレンダリングは、典型的
には毎秒30フレーム以上の高速で連続的な一連の画像
としてのボリュームデータ集合の投影および表示であ
る。これにより、興味あるオブジェクト、モデル、また
はシステムの動画を作り出すことが可能になる。さら
に、ユーザーに対して視覚的フィードバックを即座に提
供する一方で、オペレーターが投影パラメータの制御お
よび画像操作を対話的に行なうことも可能になる。数億
個のボクセル値を画像に投影するには膨大な計算能力が
必要とされる。実時間でこれを行なうには、実質的によ
り一層の計算能力が要求される。[0005] Real-time volume rendering is the projection and display of a volume data set as a fast, continuous sequence of images, typically at or above 30 frames per second. This makes it possible to create a moving image of the object, model or system of interest. Furthermore, while providing immediate visual feedback to the user, it also allows the operator to interactively control projection parameters and manipulate images. Projecting hundreds of millions of voxel values onto an image requires enormous computational power. Doing this in real time requires substantially more computing power.
【0006】ボリュームレンダリングに関するさらなる
背景は、Hanspeter Pfisterが1996年12月にニュ
ーヨーク州立大学ストーニーブルック校コンピュータサ
イエンス学部に提出した博士論文「実時間ボリュームレ
ンダリングのためのアーキテクチャ(Architectures for
Real-Time Volume Rendering)」、および米国特許第
5,594,842号「実時間ボリューム可視化用装置
および方法(Apparatus and Method for Real-time Volu
me Visualization)」に含まれている。ボリュームレン
ダリングに関する付加的な背景は、1998年にニュー
ジャージー州アッパーサドルリバーのPrentice Hall PT
R発行の、Barthold Lichtenbelt、Randy CraneおよびSh
az Naqvi著の「ボリュームレンダリング概論(Introduct
ion to Volume Rendering)」と題された本に示されてい
る。For further background on volume rendering, see Hanspeter Pfister's Ph.D.
Real-Time Volume Rendering) and U.S. Pat. No. 5,594,842, Apparatus and Method for Real-time Volume
me Visualization). Additional background on volume rendering can be found in 1998 in Prentice Hall PT, Upper Saddle River, NJ.
R, Barthold Lichtenbelt, Randy Crane and Sh
az Naqvi's "Introduction to Volume Rendering (Introduct
ion to Volume Rendering).
【0007】従来技術のボリュームレンダリングパイプ
ライン 従来技術のボリュームレンダリングシステムの1つにお
いて、レンダリングパイプラインは、米国特許出願第0
9/315,742号「ボリュームレンダリング集積回
路(Volume Rendering Integrated Circuit)」に見られ
る単一の集積回路チップとして構成されている。Prior Art Volume Rendering Pipeline In one prior art volume rendering system, the rendering pipeline is described in US patent application Ser.
It is configured as a single integrated circuit chip found in 9 / 315,742, "Volume Rendering Integrated Circuit".
【0008】「レイキャスティング(ray casting)」と
呼ばれる方法においては、レイはボリュームデータ集合
を通して投じられ、サンプル点は各レイに沿って計算さ
れる。赤、緑、青の色値および不透明度値(アルファ値
とも呼ばれる)は、各サンプル点について、サンプル点
近傍のボクセルを補間することにより求められる。色値
および不透明度値をまとめてRGBA値と呼ぶ。これら
のRGBA値は、典型的には各レイに沿って合成されて
最終的なピクセル値を形成し、すべてのレイについての
ピクセル値は3次元オブジェクトまたはモデルの2次元
画像を形成する。[0008] In a method called "ray casting", rays are cast through a volume data set and sample points are calculated along each ray. The red, green, and blue color values and opacity values (also referred to as alpha values) are determined for each sample point by interpolating voxels near the sample point. The color value and the opacity value are collectively called an RGBA value. These RGBA values are typically combined along each ray to form the final pixel value, and the pixel values for all rays form a two-dimensional image of a three-dimensional object or model.
【0009】レイキャスティング法に基づいたいくつか
のシステムにおいて、1つのレイは画像平面における各
ピクセルについてボリュームアレイを通して投じられ
る。他のシステムにおいては、レイは異なるスペーシン
グに従って投じられ、次に最終画像は画像平面のピクセ
ル解像度にリサンプリングされる。特に、上記で引用し
た従来技術のシステムでは、「ビューイング変換のShea
r-Warp因数分解を使用した高速ボリュームレンダリング
(Fast Volume Rendering Using Shear-Warp Factorizat
ion of the Viewing Transform)」(Computer Graphics
Proceedings of SIGGRAPH, pp. 451-457, 1994)に記載
されているLecrouteらの公知のShear-Warpアルゴリズム
が使用されている。ここでは、レイはボリュームアレイ
の1つの面に平行な平面上に等間隔に置かれた点から投
じられる。この平面は、ベースブレーンと呼ばれ、点は
ベースプレーンの軸に整列されている。In some systems based on the ray casting method, one ray is cast through a volume array for each pixel in the image plane. In other systems, the rays are cast according to different spacings, and the final image is then resampled to the pixel resolution of the image plane. In particular, in the prior art system cited above, the "Shea
Fast volume rendering using r-Warp factorization
(Fast Volume Rendering Using Shear-Warp Factorizat
ion of the Viewing Transform) '' (Computer Graphics
The well-known Shear-Warp algorithm of Lecroute et al. Described in Proceedings of SIGGRAPH, pp. 451-457, 1994) is used. Here, the rays are cast from equally spaced points on a plane parallel to one plane of the volume array. This plane is called the base plane, and the points are aligned with the axis of the base plane.
【0010】図1は、米国特許出願第09/353,6
79号「適合性のあるボリュームレンダリングパイプラ
イン(Configurable Volume Rendering Pipeline)」に記
載されているような、従来技術のボリュームレンダリン
グパイプライン100を表すものである。ボクセルは、
ボリュームメモリ110から読み取られ、勾配ベクトル
を推定するために、勾配推定工程120を通される。ボ
クセルおよび勾配は次に、それらの値をレイに沿ったサ
ンプル点に誘導するために、補間工程130を通され、
RGBA色および不透明度値を割り当てるために分類工
程140を通される。その結果得られたRGBA値およ
び補間された勾配は、次に照明(イルミネーション)工程
150へ送られ、ここでハイライトおよびシャドウが加
えられる。値は次に、ボリューム部分を除去するため、
あるいはそうでない場合はボリュームの画像を変調する
ために、工程160でクリッピングおよびフィルタリン
グを受ける。最後に、値は工程170で合成されて、各
レイについてのすべてのRGBA値を累積してピクセル
メモリ180に書き込むための最終的なピクセル値にさ
れる。FIG. 1 shows US patent application Ser. No. 09 / 353,6.
It represents a prior art volume rendering pipeline 100 as described in No. 79, "Configurable Volume Rendering Pipeline". Voxels are
It is read from the volume memory 110 and goes through a gradient estimation step 120 to estimate a gradient vector. The voxels and gradients are then passed through an interpolation step 130 to derive their values to sample points along the ray,
A classification step 140 is performed to assign RGBA color and opacity values. The resulting RGBA values and the interpolated gradients are then sent to an illumination step 150 where highlights and shadows are added. The value is then used to remove the volume part,
Alternatively, it is clipped and filtered at step 160 to modulate the image of the volume otherwise. Finally, the values are combined in step 170 to accumulate all RGBA values for each ray into a final pixel value for writing to pixel memory 180.
【0011】勾配推定工程120、補間工程130、お
よび分類工程140は、アプリケーションの要件に応じ
てどのような順序ででも接続できることに注目すべきで
ある。このアーキテクチャは、上記で引用した特許出願
に記載されるような、単一の集積回路における並列実行
にとりわけ適している。It should be noted that the gradient estimation step 120, the interpolation step 130, and the classification step 140 can be connected in any order, depending on the requirements of the application. This architecture is particularly suited for parallel execution on a single integrated circuit, as described in the above-cited patent applications.
【0012】2次元画像合成の代りに、RGBA値を3
次元アレイとして書き出し、それによって新規なボリュ
ームデータ集合を作り出すことができ、これは種々の伝
達関数によりレンダリングできる。言い換えると、最終
画像は、進展型ボリュームデータ集合上の進行性のレン
ダリングサイクルの結果である。Instead of two-dimensional image synthesis, an RGBA value of 3
It can be written out as a dimensional array, thereby creating a new volume data set, which can be rendered with various transfer functions. In other words, the final image is the result of a progressive rendering cycle on the evolving volume data set.
【0013】セクションへの分割 単一の半導体集積回路としてボリュームレンダリングエ
ンジンを設計する際の1つの挑戦は、ボリュームレンダ
リングパイプラインの機能をサポートするのに必要とさ
れるオンチップメモリ量を最小限にすることである。Division into Sections One challenge in designing a volume rendering engine as a single semiconductor integrated circuit is to minimize the amount of on-chip memory required to support the functionality of the volume rendering pipeline. It is to be.
【0014】従来技術で実行されるshear-warpアルゴリ
ズムについて図2に示されるように、オンチップメモリ
量は、視線方向220にほぼ垂直なボリュームデータ集
合200の面210の面積に正比例し、これは図2に示
されるようにxy面である。従来技術においては、この
メモリは、ボリュームをセクションに分割すること、お
よびボリュームを一度にセクションにレンダリングする
ことによりレンダリングされた。As shown in FIG. 2 for the shear-warp algorithm implemented in the prior art, the amount of on-chip memory is directly proportional to the area of the surface 210 of the volume data set 200 that is substantially perpendicular to the line of sight 220. It is an xy plane as shown in FIG. In the prior art, this memory was rendered by dividing the volume into sections and rendering the volume into sections at once.
【0015】図2には、x方向およびy方向へのボリュ
ームのセクション230への分割が示してある。各セク
ションは、ボリュームアレイのxy面上の面積により定
義され、アレイ全体を通してz方向へ投影する。これら
のセクションは、アレイのz軸に平行なので、「軸整列
セクション」として知られている。この分割により、オ
ンチップメモリに対する要求が、ボリューム全体の面積
でなくてxy平面中のセクションの面の面積に比例する
量まで減少する。大きなボリュームデータ集合を一定の
オンチップメモリ量で任意にレンダリングできる回路の
設計もこれにより可能になる。FIG. 2 illustrates the division of the volume into sections 230 in the x and y directions. Each section is defined by the area on the xy plane of the volume array and projects in the z-direction throughout the array. These sections are known as "axis-aligned sections" because they are parallel to the z-axis of the array. This division reduces the demands on the on-chip memory by an amount that is proportional to the area of the section surface in the xy plane rather than the entire volume area. This also allows the design of circuits that can arbitrarily render large volume data sets with a fixed amount of on-chip memory.
【0016】ボリュームデータ集合を軸整列セクション
に分割することの1つの結果は、レイがボリュームを任
意角度で横断する際に、レイは1つのセクションから次
のセクションへ横切るということである。例えば、視線
方向220に平行なレイ240は、セクション231に
入り、セクション232を横切り、そしてセクション2
33から出る。従って、ボリュームレンダリングパイプ
ラインは、1つのセクションを横断している間に中間記
憶部に蓄積されたレイの部分的合成(中間)値を保たなけ
ればならならず、それによりそれらの合成値は、その後
のセクションを処理する際に利用できる。さらに、ボリ
ュームレンダリングシステムが並列で動く多数のパイプ
ラインで構成されている場合には、レイの値は、特定の
セクション内であっても、1つのパイプラインから次の
パイプラインへ渡されなければならない。One result of dividing the volume data set into axially aligned sections is that as a ray traverses the volume at any angle, the ray traverses from one section to the next. For example, a ray 240 parallel to the line of sight 220 enters section 231, crosses section 232, and
Exit from 33. Therefore, the volume rendering pipeline must keep the partial composite (intermediate) values of the rays stored in intermediate storage while traversing a section, so that their composite values , Available when processing subsequent sections. Furthermore, if the volume rendering system consists of a number of pipelines running in parallel, ray values must be passed from one pipeline to the next, even within a particular section. No.
【0017】これら2つの要件により、パイプライン間
でのデータのやり取りおよび中間的レイ値の読み書きの
ためにかなりの量の回路が必要になる。この情報伝達と
回路の複雑さを低減することが望ましい。These two requirements require a significant amount of circuitry for transferring data between pipelines and reading and writing intermediate ray values. It is desirable to reduce this information transmission and circuit complexity.
【0018】クリッピングおよびクロッピング ボリュームレンダリングの応用において、オブジェクト
の内部が見られるように、切り取りすなわちクリッピン
グされるボリュームデータ集合の部分を指定することは
一般的である(米国特許出願第09/190,645号
参照)。例えば、カットプレーン(切断面)は、ボリュー
ムアレイ全体を任意の傾斜角でスライスして、オブジェ
クトの斜めの断面を示すのに使用できる。同様に、クロ
ッププレーン(作付面)の組み合わせは、オブジェクトを
特徴的に見せるために使用し得る。Clipping and Cropping In volume rendering applications, it is common to specify the portion of the volume data set to be clipped or clipped so that the interior of the object can be seen (US patent application Ser. No. 09 / 190,645). No.). For example, a cut plane can be used to slice the entire volume array at an arbitrary tilt angle to show an oblique cross section of the object. Similarly, a combination of crop planes can be used to make an object look characteristic.
【0019】ボリュームをクリッピングする別の方法
は、奥行(depth)バッファにより表される任意のクリッ
プ表面によるものである(米国特許出願第09/21
9,059号参照)。奥行バッファに関連付けられた奥
行テストは、サンプル点を、奥行バッファに関連するそ
れらの奥行値に基づいて含めるか除外するために用いる
ことができる。Another method of clipping a volume is with any clip surface represented by a depth buffer (US patent application Ser. No. 09 / 21,092).
9,059). A depth test associated with the depth buffer can be used to include or exclude sample points based on their depth values associated with the depth buffer.
【0020】図1に示されるような従来技術のパイプラ
インにおいては、クリッピングおよびクロッピングのた
めのテストは、合成工程170直前の工程160で実行
された。奥行テストは、合成工程170自身の中で行な
われた。その効果は、ボリュームデータ集合のあらゆる
ボクセルがパイプライン100内に読み込まれ、すべて
のボリュームレンダリングパイプラインではないにして
も、レンダリングされているオブジェクトまたはモデル
の最終画像にサンプルが寄与しているかどうかに関わら
ず、ほとんどあらゆるサンプルが最後まで処理された。
ほとんどのケースでは、これは不必要な処理および回路
の非効率的な利用である。ボクセルおよびサンプルが最
終画像に寄与しない場合には、これらを完全にスキップ
(飛ばす)することが望ましい。In the prior art pipeline as shown in FIG. 1, tests for clipping and cropping were performed at step 160 immediately before the synthesis step 170. The depth test was performed in the synthesis process 170 itself. The effect is that every voxel of the volume data set is read into pipeline 100 and whether the sample contributes to the final image of the object or model being rendered, if not all volume rendering pipelines. Regardless, almost every sample was processed to completion.
In most cases, this is unnecessary processing and inefficient use of circuitry. If voxels and samples do not contribute to the final image, skip them completely
It is desirable to (skip).
【0021】不可視ボクセルおよびサンプルのスキッピ
ング 最終画像においてサンプル点が不可視になるには3通り
ある。第1に、サンプルはカットプレーン、クロッププ
レーン、または奥行テストの1つにより最終画像から切
り取られ得る。第2に、サンプルは、個別的または集合
的に不透明な他のサンプルにより覆い隠され得る。第3
に、サンプルは、サンプルが処理されている間に、透明
色が割り当てられ得る。Invisible Voxels and Sample Skipping There are three ways that sample points can become invisible in the final image. First, the sample may be cut from the final image by one of a cut plane, a crop plane, or a depth test. Second, the sample can be obscured by other samples that are individually or collectively opaque. Third
Alternatively, the sample may be assigned a transparent color while the sample is being processed.
【0022】明示的にクリッピングされたボクセルまた
はサンプルをスキップすることは、「プルーニング(pru
ning)」と呼ばれる。ボリュームレンダリングのソフト
ウェア実行においてこれは容易である反面、ハードウェ
ア実行においては困難である。その理由は、従来技術の
ハードウェアは、従来のダイナミックランダムアクセス
メモリ(DRAM)モジュールから所望の性能を得るため
に、データの系統的あるいは序列的な動きに焦点を当て
ているからである。そのようなデータをスキップするこ
とにより、ボクセルメモリからボリュームレンダリング
パイプラインを通してのデータの規則的な進行が乱さ
れ、サンプルおよびそのデータの経過を追うためにコン
トロール情報の複雑な量が必要となる。Skipping explicitly clipped voxels or samples is called "pruning".
ning) ". While this is easy in software implementation of volume rendering, it is difficult in hardware implementation. The reason is that prior art hardware focuses on the systematic or hierarchical movement of data to obtain the desired performance from conventional dynamic random access memory (DRAM) modules. Skipping such data disrupts the regular progression of the data from the voxel memory through the volume rendering pipeline and requires a complex amount of control information to keep track of the samples and their data.
【0023】ボリュームの他の部分により隠されている
サンプルをスキップすることは、「アーリーレイターミ
ネーション(early ray termination:早期レイ終了)」
と呼ばれる。また、これはソフトウェア実行においては
容易であるが、ハードウェア実行においては非常に困難
である。いくつかのレイをスキップし、その他をスキッ
プしないと、メモリからパイプラインを通ってのデータ
の規則的な流れは、ボクセルおよびサンプルのプルーニ
ングのケースと同様に乱される。Skipping samples that are obscured by other parts of the volume is called "early ray termination".
Called. Also, this is easy in software implementation but very difficult in hardware implementation. If some rays are skipped and others are not skipped, the regular flow of data from the memory through the pipeline is disturbed, as in the case of voxel and sample pruning.
【0024】アーリーレイターミネーションの1つの形
は、Knittelが、「加速されたボリュームレンダリング
のための3Dテクスチャユニットへのトライアングルキ
ャスタ拡張(Triangle Caster-Extensions to 3D-Textur
e Units for Accelerated Volume Rendering)」(Procee
dings of Eurographics SIGGRAPH, pp. 25-34, 1999)で
説明している。ここでは、ボリュームは一連の三角形を
3Dテクスチャマップを前・後(front-to-back)順に通
すことによりレンダリングされる。三角形のすべてのピ
クセルが不透明であれば、その三角形の背後の三角形は
スキップできる。この方法に伴う困難は、この方法がボ
リュームを直接レンダリングするよりは、最初にボリュ
ームを三角形に変換することに依存する方法であること
である。さらに、この方法は、不透明レイをレイベース
(ray-by-ray basis)に終了することはできず、三角形ベ
ース(triangle-to-triangle basis)にしかできない。One form of early ray termination is described by Knittel, "Triangle Caster-Extensions to 3D-Textur for 3D texture units for accelerated volume rendering.
e Units for Accelerated Volume Rendering) '' (Procee
dings of Eurographics SIGGRAPH, pp. 25-34, 1999). Here, the volume is rendered by passing a series of triangles through a 3D texture map in front-to-back order. If all pixels of a triangle are opaque, the triangle behind that triangle can be skipped. The difficulty with this method is that it relies on first transforming the volume into triangles rather than rendering the volume directly. In addition, this method uses opaque rays as ray-based
It cannot end on a (ray-by-ray basis), but only on a triangle-to-triangle basis.
【0025】ボリュームの不透明部分をスキップするこ
とは、「スペースリーピング(spaceleaping)」と呼ばれ
ている。一般にこれは、ソフトウェアボリュームレンダ
リングシステムにおいて行なわれるが、スペースリーピ
ングは、RGBA値を割り当てる伝達関数が変わるたび
にボリュームデータ集合を前処理する必要がある。この
前処理工程は、実行にコストがかかるが、伝達関数があ
まり頻繁に変わらないときには、その結果はメリットが
ある。従来技術のハードウェアシステムにおいては、ス
ペースリーピングも前処理工程を必要とするが、ハード
ウェア速度でである。しかしながら、スペースリーピン
グを利用すると、メモリからパイプラインを通ってのデ
ータの規則的な流れが、ボクセルおよびサンプルのプル
ーニングならびにアーリーレイターミネーションの場合
と同様に混乱する。Skipping opaque parts of a volume is called "spaceleaping". Generally, this is done in a software volume rendering system, but space leaping requires preprocessing the volume data set every time the transfer function that assigns RGBA values changes. This preprocessing step is costly to perform, but the results are meritful when the transfer function does not change very often. In prior art hardware systems, space leaping also requires preprocessing steps, but at hardware speed. However, with the use of space leaping, the regular flow of data from the memory through the pipeline is disrupted, as is the case with voxel and sample pruning and early ray termination.
【0026】Knittelのトライアングル・キャスター・
システム(Triangle Caster System)においては、スペー
スリーピングは、最初にボリュームの非透明部分を、三
角形で形成された多面体凸閉包(convex polyhedral hul
l)で包み込むことにより達成される。閉包外のボリュー
ムの部分は、閉包上での奥行テストにより除外される。
1つの問題としては、この方法はホストシステム上での
かなりの量の処理を必要とすることで、この処理は、伝
達関数が変化するときはいつでもホストシステムで繰り
返されなければならなず、この方法が実時間対話式ボリ
ュームレンダリングに適さないことが考えられる。別の
問題としては、レザー式の薄いブレードを備えたタービ
ンのように、大きな陥凹部を有するオブジェクトは、ほ
とんど凸閉包(convex hull)内部の透明部分で構成され
るであろうということである。スペースリーピング用
に、レンダリングエンジン自身を用いることが望ましい
であろう。Knittel Triangle Casters
In the Triangle Caster System, space leaping is performed by first converting the non-transparent part of the volume to a convex polyhedral hull formed by triangles.
Achieved by wrapping in l). The portion of the volume outside the closure is excluded by the depth test on the closure.
One problem is that this method requires a significant amount of processing on the host system, which must be repeated on the host system whenever the transfer function changes, It is possible that the method is not suitable for real-time interactive volume rendering. Another problem is that objects with large depressions, such as turbines with razor-type thin blades, will consist mostly of transparent parts inside a convex hull. It may be desirable to use the rendering engine itself for space leaping.
【0027】[0027]
【発明が解決しようとする課題】従って、実時間パフォ
ーマンスで作動するが、画像から切り取られたり、画像
の他の部分により隠されたり、あるいは透明であるボク
セルおよびサンプルをレンダリングする必要のない、ハ
ードウェアボリュームレンダリングアーキテクチャを有
するのが望ましい。Accordingly, hard-working, real-time performance, but without having to render voxels and samples that are cropped from the image, hidden by other parts of the image, or transparent. It is desirable to have a wear volume rendering architecture.
【0028】[0028]
【課題を解決するための手段】この発明は、ボリューム
レンダリングシステムにおいて、ボリュームデータ集合
を画像としてレンダリングする方法に関する。ボリュー
ムデータ集合は、メモリ中に格納された多数のボクセル
を含む。ボリュームレンダリングシステムは、多数の並
列処理パイプラインを含む。画像は、メモリ中に格納さ
れた多数のピクセルを含む。SUMMARY OF THE INVENTION The present invention relates to a method for rendering a volume data set as an image in a volume rendering system. The volume data set contains a number of voxels stored in memory. Volume rendering systems include a number of parallel processing pipelines. An image contains a number of pixels stored in memory.
【0029】レイ集合は、ボリュームデータ集合を通し
て投じられる。ボリュームデータ集合は、レイ集合と整
列された多数のセクションに分割される。各集合の各レ
イに沿ったボクセルは、サンプルが画像に寄与する限り
においてのみ、画像を生成するために、多数のパイプラ
インの1つにおいてのみ逐次補間されたボクセルであ
る。A ray set is cast through a volume data set. The volume data set is divided into a number of sections aligned with the ray set. The voxels along each ray of each set are voxels that have been sequentially interpolated in only one of the multiple pipelines to produce an image only as long as the samples contribute to the image.
【0030】[0030]
【発明の実施の形態】好ましい実施の形態の詳細な説明 レイ整列セクション 図3に示されるように、本発明のボリュームレンダリン
グシステムは、ボリュームデータ集合200をレイ整列
セクション330〜332に分割する。各セクション
は、ボリュームデータ集合200のxy面上210のエ
リア340によってに定義される。セクションは、従来
技術のz軸に平行ではなく、選択された視線方向220
にボリュームを通して投影する。各レイ整列セクション
は、従来技術におけるボクセル集合というよりむしろレ
イの「バンドル(束)」すなわち集合として定義される。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Ray Alignment Section As shown in FIG. 3, the volume rendering system of the present invention divides the volume data set 200 into ray alignment sections 330-332. Each section is defined by an area 340 on the xy plane 210 of the volume data set 200. The sections are not parallel to the prior art z-axis, and are selected at the selected viewing direction 220.
To project through the volume. Each ray alignment section is defined as a "bundle" or set of rays, rather than a voxel set in the prior art.
【0031】各レイ整列セクションは、セクションのレ
イ集合の各レイについて、最終RGBA値を生成するの
に必要とされるすべてのサンプル点を包含する。Each ray-aligned section contains, for each ray of the section's ray set, all the sample points needed to generate the final RGBA value.
【0032】好ましい実施の形態においては、バンドル
を定義するレイのパターンは、典型的には、ボリューム
データ集合200のxy面210上の矩形または平行四
辺形である。しかしながら、その他のパターンも選択す
ることができる。例えば、セクション330は視線方向
220に平行なレイのサブセットであり、これはボリュ
ームアレイの面の矩形エリア340に当たり、次にxお
よびy方向に増大する方向にボリューム中を進む。In the preferred embodiment, the ray pattern defining the bundle is typically a rectangle or parallelogram on the xy plane 210 of the volume data set 200. However, other patterns can be selected. For example, section 330 is a subset of rays parallel to line-of-sight direction 220, which hits rectangular area 340 of the surface of the volume array and then travels through the volume in increasing directions in x and y.
【0033】図4は、yz平面におけるボリュームデー
タ集合200の断面図で、セクション330の側面を示
したものである。スライスは、ボリュームアレイのxy
面に平行なボクセルの2次元アレイである。これらは図
4では、「×」記号の垂直カラム410、412、41
4等として示してある。各スライスの第2の次元はペー
ジに垂直である。サンプル411および413の平面
は、ボクセルスライス間の“・”の垂直カラムにより示
される。サンプルの密度は、ボクセルのそれとは異なり
得る。例えば、ボリュームデータ集合がスーパーサンプ
リングされると、サンプルの密度はボクセルのそれより
も大きい。ほとんどのケースでは、サンプルはボクセル
と合致せず、従ってサンプルは重みを有するコンボルー
ションカーネル(convolution kernels:畳み込み核)を
用いて、近傍のボクセルから補間される。FIG. 4 is a cross-sectional view of the volume data set 200 on the yz plane, showing a side surface of the section 330. The slice is the xy of the volume array
2 is a two-dimensional array of voxels parallel to a plane. These are shown in FIG. 4 as vertical columns 410, 412, 41 of the "x" symbol.
4 and so on. The second dimension of each slice is perpendicular to the page. The planes of samples 411 and 413 are indicated by vertical columns of “•” between voxel slices. The density of the sample can be different from that of voxels. For example, if the volume data set is supersampled, the density of the samples will be greater than that of the voxels. In most cases, the samples do not match the voxels, so the samples are interpolated from neighboring voxels using weighted convolution kernels.
【0034】従来技術とは対照的に、本発明のレンダリ
ングシステムは各ボクセルスライスをその前のボクセル
スライスから、特定の目視方向についてレイの角度によ
り決まる量でオフセットする。例えば、セクションスラ
イス420、422および424は、セクション330
をレンダリングするのに必要なスライス410、41
2、および414のそれぞれサブセットである。セクシ
ョンスライス422は、セクションスライス420から
y方向へオフセットされること、およびセクションスラ
イス424は、セクションスライス422からy方向へ
オフセットされることに注目されたい。一般に、セクシ
ョンスライスは、その隣接するスライスからxおよびy
の両方向へオフセットされ得る。In contrast to the prior art, the rendering system of the present invention offsets each voxel slice from the previous voxel slice by an amount determined by the ray angle for a particular viewing direction. For example, section slices 420, 422 and 424
Slices 410, 41 needed to render
2 and 414, respectively. Note that section slice 422 is offset from section slice 420 in the y direction, and that section slice 424 is offset from section slice 422 in the y direction. In general, a section slice is x and y from its adjacent slice
In both directions.
【0035】サンプル値の補間およびセクションのエッ
ジに近いサンプルの勾配の推定は、隣接するセクション
中のエッジの近傍にあるボクセルに依存することに注目
されたい。従って、エッジの近くでは、セクションのボ
クセルは部分的に重なり合っている。重なりの量は、勾
配の推定およびボクセルからのサンプルの補間に必要な
コンボルーションカーネルのサイズにより決まる。Note that the interpolation of the sample values and the estimation of the gradient of the sample near the edge of the section depends on the voxels near the edge in the adjacent section. Thus, near the edges, the voxels of the sections partially overlap. The amount of overlap depends on the size of the convolution kernel required for gradient estimation and interpolation of samples from voxels.
【0036】レイ整列セクションには多くの利点があ
る。例えば、レイ全体のサンプルは、以下に説明するよ
うに、特定のボリュームレンダリングパイプラインに割
り当て得る。結果として、どのような中間的な値も、隣
接したパイプライン間を通過させる必要はない。各レイ
が1つのセクション内に完全に含まれているので、どの
ようなレイの中間的な値も、1つのセクションから別の
セクションへオンチップまたはオフチップメモリを介し
て伝達される必要がないからである。これらのどちら
も、ボリュームレンダリングパイプラインにおいて必要
な回路量がかなり減少するという結果になる。The ray alignment section has many advantages. For example, an entire ray sample may be assigned to a particular volume rendering pipeline, as described below. As a result, no intermediate values need be passed between adjacent pipelines. Since each ray is completely contained within one section, no intermediate values of any ray need be communicated from one section to another via on-chip or off-chip memory. Because. Both of these result in a significant reduction in the amount of circuitry required in the volume rendering pipeline.
【0037】レイ整列セクションの他の利点には、サン
プルポジションを、従来のグラフィックスエンジンによ
り生成された奥行バッファと効率的に比較するパイプラ
インの能力が含まれる。この結果として、任意のボリュ
ームクリッピングおよびレンダリングされたボリューム
へのポリゴングラフィックスの埋め込みがどちらも可能
になる。レイ整列セクションも、以下でより詳細に説明
されるスペースリーピングおよびアーリーレイターミネ
ーションのような多様な最適化を可能にする。Other advantages of the ray alignment section include the ability of the pipeline to efficiently compare sample positions with depth buffers generated by conventional graphics engines. This results in both arbitrary volume clipping and embedding of polygon graphics into the rendered volume. The ray alignment section also allows for various optimizations such as space leaping and early ray termination, which are described in more detail below.
【0038】ボクセルおよびサンプルのパイプライン処
理 レンダリングエンジン構造 図5は、本発明のレンダリングシステムよる、レイ整列
されたセクションに分割されたボリュームデータ集合を
レンダリングするための集積回路500および関連メモ
リモジュール510のブロック図である。Voxel and Sample Pipelining Rendering Engine Structure FIG. 5 illustrates an integrated circuit 500 and associated memory module 510 for rendering a volume data set divided into ray-aligned sections according to the rendering system of the present invention. It is a block diagram.
【0039】集積回路500は、メモリインタフェース
520,550、パイプラインコントローラ900、複
数のボリュームレンダリングパイプライン540
a、...、540dを含んでいる。図5には示してな
いが、実際のシステムで必要なのは、ホストコンピュー
タとの通信のためのバスインタフェースである。ユーザ
ーは、メモリ510中に格納されたボリュームデータ集
合をレンダリングする間、ホストと対話する。The integrated circuit 500 includes memory interfaces 520 and 550, a pipeline controller 900, and a plurality of volume rendering pipelines 540.
a,. . . , 540d. Although not shown in FIG. 5, what is needed in an actual system is a bus interface for communication with a host computer. The user interacts with the host while rendering the volume data set stored in the memory 510.
【0040】集積回路500は、特定目的SIMD(単
一指令多重データ)並列プロセッサとして作動し、制御
ロジックを提供するコントローラ900およびコントロ
ーラ指令に呼応して作動する実行エンジンから構成され
るボリュームレンダリングパイプライン540
a、...、540dを備えている。各々のパイプライ
ンも、オペレーション中にデータおよびコントロール情
報を格納するための多数のレジスターおよびバッファを
含んでいる。The integrated circuit 500 operates as a special purpose SIMD (Single Instruction Multiple Data) parallel processor, and comprises a controller 900 providing control logic and a volume rendering pipeline comprising an execution engine operating in response to controller instructions. 540
a,. . . , 540d. Each pipeline also includes a number of registers and buffers for storing data and control information during operation.
【0041】各パイプライン540a〜540dは、パ
イプラインの最初の工程にスライスバッファ582、以
下、勾配推定ユニット584、補間工程586、分類工
程588、照明工程590、フィルタ工程592、奥行
テスト、合成およびアーリーレイターミネーション(E
RT)工程594、そして奥行および画像バッファ59
6をパイプラインの最後の工程に含んでいる。Each pipeline 540a-540d includes a slice buffer 582, hereinafter a gradient estimation unit 584, an interpolation step 586, a classification step 588, an illumination step 590, a filter step 592, a depth test, a synthesis and Early Ray Termination (E
RT) step 594 and depth and image buffer 59
6 is included in the last step of the pipeline.
【0042】レンダリングエンジンオペレーション パイプラインのオペレーション中に、コントローラ90
0は多数の機能を実行する。コントローラは、図3のレ
イ整列されたセクションに従ってボリュームを分割し、
レイ整列されたセクションに関連したデータを予め定め
られた順序で処理する。コントローラは、メモリアクセ
ス指令をメモリインタフェース550に送出する。この
指令は、メモリ510とパイプライン540a〜540
d間でデータを転送する。例えば、コントローラは、イ
ンタフェースに読出し指令を送出し、ボクセルのスライ
スをメモリ510からスライスバッファに分散する。コ
ントローラは奥行バッファ596を初期化し、コントロ
ーラはピクセル値をメモリ510に書き戻す。Render Engine Operation During operation of the pipeline, the controller 90
0 performs a number of functions. The controller divides the volume according to the ray-aligned sections of FIG.
The data associated with the ray-aligned sections is processed in a predetermined order. The controller sends a memory access command to memory interface 550. This command is sent to the memory 510 and the pipelines 540a to
Transfer data between d. For example, the controller sends a read command to the interface to distribute slices of voxels from memory 510 to slice buffers. The controller initializes depth buffer 596 and the controller writes the pixel values back to memory 510.
【0043】コントローラは、コンボルーションカーネ
ルが使用する重み560も生成する。コンボルーション
カーネルは、勾配の推定と補間の間に用いられる。各セ
クションの完了時、コントローラは、画像をメモリおよ
び、必要に応じて、更新された奥行バッファに書き込む
指令を送出する。The controller also generates weights 560 for use by the convolution kernel. The convolution kernel is used between gradient estimation and interpolation. At the completion of each section, the controller sends a command to write the image to memory and, if necessary, to the updated depth buffer.
【0044】各セクションについて、ボリュームオブジ
ェクト内部へのポリゴンオブジェクトの埋め込みを可能
にするため、奥行および画像バッファの両方が読取られ
かつ書き込まれる。あるセクションについて奥行バッフ
ァを読取っている間、以下に説明するボクセルプルーニ
ングにおいてコントローラ900が使用するための、最
小および最大(Min、Max)値570が得られる。For each section, both the depth and the image buffer are read and written to allow the embedding of the polygon object inside the volume object. While reading the depth buffer for a section, the minimum and maximum (Min, Max) values 570 are obtained for use by the controller 900 in voxel pruning described below.
【0045】コントローラ900は、セクションのレイ
を複数のパイプライン540a〜540dの間で均等に
割り当てる。処理すべきセクションの準備においてコン
トローラが奥行および画像バッファを初期化する際、コ
ントローラはレイの分割に従って、奥行および画像バッ
ファ596a〜596dの間でセクションのデータを分
割する。例えば、好ましい実施の形態において、集積回
路500中に4つのボリュームレンダリングパイプライ
ンがあり、それにより各奥行および画像バッファ596
a〜596dはそのセクションについての全奥行および
画像値の四分の一を保持する。The controller 900 allocates the rays of the section equally among the plurality of pipelines 540a to 540d. As the controller initializes the depth and image buffers in preparation for the section to be processed, the controller divides the section data among the depth and image buffers 596a-596d according to ray splitting. For example, in a preferred embodiment, there are four volume rendering pipelines in the integrated circuit 500, thereby allowing each depth and image buffer 596
a-596d hold the full depth and quarter of the image value for that section.
【0046】コントローラ900によってスライスのボ
クセルの取り込みが引き起こされる際に、コントローラ
はそれらをスライスバッファ582a〜582dに向け
て発信し、その結果、各パイプラインはそのレイをレン
ダリングするのに必要なボクセルを有する。このケース
では、1つのボクセルが典型的には2つ以上のスライス
バッファに向けて発信される。なぜなら、特定のボクセ
ルが、多重レイのサンプルの補間に必要となり得るから
である。When the capture of voxels in a slice is triggered by the controller 900, the controller sends them to the slice buffers 582a-58d so that each pipeline has the necessary voxels to render the ray. Have. In this case, one voxel is typically sent to more than one slice buffer. This is because certain voxels may be required for interpolation of multiple ray samples.
【0047】各クロックサイクルにおいて、特定のパイ
プラインは、勾配の推定および1つのサンプル点の補間
に必要なボクセルをそのスライスバッファ582から取
得する。このサンプル点は、パイプラインの最後の工程
において画像バッファ596に合成されるまで、1サイ
クル毎に1工程ずつパイプラインを通過する。At each clock cycle, a particular pipeline obtains from its slice buffer 582 the voxels needed for gradient estimation and interpolation of one sample point. These sample points pass through the pipeline one cycle at a time until they are combined into the image buffer 596 in the last step of the pipeline.
【0048】パイプライン方式においては、コントロー
ラ900により、セクションのすべてのセクションスラ
イスからのボクセルストリームがスライスバッファ58
2a〜582dへ発信され、これはパイプライン540
a〜540dがボクセルを処理しかつサンプルを画像バ
ッファ596中に合成するのに充分速い。In the pipeline system, the controller 900 converts voxel streams from all section slices of a section into slice buffers 58.
2a to 582d, which is the pipeline 540
a through 540d are fast enough to process the voxels and combine the samples into the image buffer 596.
【0049】たとえ各セクションスライスが、その近隣
のスライスからオフセットされていても、コントローラ
はセクションスライスを整列させ、その結果、各レイに
ついてのサンプル点は常に同じパイプラインにより処理
される。従って、従来技術とは異なり、隣接するパイプ
ライン間の通信は回避される。この結果、集積回路50
0がかなり単純化される。The controller aligns the section slices, even if each section slice is offset from its neighboring slices, so that the sample points for each ray are always processed by the same pipeline. Thus, unlike the prior art, communication between adjacent pipelines is avoided. As a result, the integrated circuit 50
0 is considerably simplified.
【0050】スライスバッファ582と勾配推定工程5
84の相対的な位置は、スライスバッファに費やされる
余剰のオンチップメモリ量を減らすために交換し得る。
例えば、ボクセルがスライスバッファに格納される前
に、勾配を推定することができる。Slice buffer 582 and gradient estimation step 5
The relative positions of 84 may be swapped to reduce the amount of extra on-chip memory that is spent on slice buffers.
For example, the gradient can be estimated before the voxel is stored in the slice buffer.
【0051】レイ整列されたセクションのケースでは、
xおよびy方向のスーパーサンプリングは、取るに足ら
ないものになる。なぜならば、コントローラ900は、
ボクセルではなくレイに焦点を当てるからである。スー
パーサンプリングを達成するため、もしレイがxまたは
y方向にボクセルよりも近くに間隔をおいて配置される
ならば、適切なボクセルが、各レイについて責任がある
パイプラインに余分に向けられ得る。対照的に、従来技
術のパイプラインにおけるボクセルは、レイではなく、
パイプラインに関連付けられており、従って、スーパー
サンプリングには、パイプラインの間のかなりの通信お
よびその他の複雑性が要求された。例えば、米国特許願
第09/190,7112号参照。In the case of ray-aligned sections,
Supersampling in the x and y directions is insignificant. Because, the controller 900
It focuses on rays, not voxels. To achieve supersampling, if the rays are spaced closer than the voxels in the x or y direction, the appropriate voxels may be redirected to the pipeline responsible for each ray. In contrast, voxels in prior art pipelines are not rays,
Associated with the pipeline, and therefore supersampling required significant communication and other complexity between the pipelines. See, for example, US patent application Ser. No. 09 / 190,7112.
【0052】ボクセルおよびサンプルのプルーニング 本発明のパイプライン式ボリュームレンダリングシステ
ムにおいて、1つの目標は、処理される必要があるボク
セルおよびサンプルの数を最小限に抑えることであり、
それによって、性能を改善することである。従って、こ
れらのデータを識別するために多くの工程が踏まれる。
さらに、別の目標はできる限り早くそのようなデータを
識別することである。「可視」および「不可視」データ
の識別は、コントローラおよびパイプラインの様々な工
程によりなされる。Voxel and Sample Pruning In the pipelined volume rendering system of the present invention, one goal is to minimize the number of voxels and samples that need to be processed;
Thereby improving the performance. Therefore, many steps are taken to identify these data.
Further, another goal is to identify such data as soon as possible. The identification of "visible" and "invisible" data is made by various steps in the controller and pipeline.
【0053】例えば、コントローラがセクションを列挙
するにつれ、カット平面方程式がテストされ、クロッピ
ング境界がチェックされてセクションの特定のサンプル
が視線に含まれているかまたは視線から除外されている
かどうかが決定される。もしサンプルが視線から除外さ
れていれば、セクションの処理は、ボクセルを読むこと
なく、かつボリュームレンダリングパイプラインへサン
プルを送ることなく終了し得る。さらに、コントローラ
は、後に処理されたデータが現在のデータを見えなくし
得るかどうかを予期するために「先取り」をする。その
場合には、現在のデータの処理はすべて省略し得る。For example, as the controller enumerates sections, the cut plane equation is tested and the cropping boundaries are checked to determine if a particular sample of the section is included or excluded from the line of sight. . If a sample has been excluded from the line of sight, processing of the section may terminate without reading the voxel and without sending the sample to the volume rendering pipeline. In addition, the controller "preempts" to anticipate whether subsequently processed data may obscure the current data. In that case, all processing of the current data may be omitted.
【0054】同様に、コントローラは、各セクションに
ついて粗い奥行テストを実行する。コントローラは、ア
レイがメモリから画像および奥行バッファ596a〜5
96d中へフェッチされるにつれて、各奥行アレイの最
小値および最大値570を求めることによりこれを行な
う。これらの最小値および最大値570は、奥行および
画像バッファ596からコントローラ900に伝達され
る。もしコントローラが、セクション内のすべてのサン
プルのすべての奥行テストが不合格と決めることができ
るならば、そのセクションの処理は、ボクセルの読み取
りおよびパイプラインへサンプルを送ることなく終了で
きる。Similarly, the controller performs a coarse depth test for each section. The controller is configured to read from the memory the image and depth buffers 596a-5
It does this by finding the minimum and maximum 570 of each depth array as it is fetched into 96d. These minimum and maximum values 570 are communicated from the depth and image buffer 596 to the controller 900. If the controller can determine that all depth tests for all samples in a section have failed, processing of that section can be completed without reading voxels and sending samples to the pipeline.
【0055】コントローラは、以下に説明されるように
これらのテストをより細かく繰り返す。例えば、もしコ
ントローラが、特定のスライスまたはスライスのグルー
プのすべてのサンプルがクリップ、クロップ、または奥
行テストに失敗することが決定できるなら、これらのス
ライスはスキップされる。The controller repeats these tests more finely as described below. For example, if the controller can determine that all samples in a particular slice or group of slices fail the clip, crop, or depth test, those slices will be skipped.
【0056】本発明のパイプライン式ボリュームレンダ
リングシステムにおけるセクションはレイ整列されてい
るので、サンプル、スライス、またはセクション全体の
スキッピングはパイプライン540a〜540dについ
て何の問題もない。各パイプラインは独立したレイ集合
を処理し、各サンプル点は、他のパイプラインのサンプ
ルから独立してパイプラインを通過する。サンプルがパ
イプラインを流れる際に、各サンプルは「可視性」制御
情報を含むことのみが必要であり、その結果、サンプル
は最終画像バッファの正しい要素で合成される。もしセ
クションがボリュームのz軸と整列されたら、この制御
情報は必然的に非常に複雑なものとなるであろう。Because the sections in the pipelined volume rendering system of the present invention are ray-aligned, skipping samples, slices, or entire sections is not a problem for pipelines 540a-540d. Each pipeline processes an independent ray set, and each sample point passes through the pipeline independently of the samples of the other pipeline. As the samples flow through the pipeline, each sample need only include the "visibility" control information so that the samples are composited with the correct elements of the final image buffer. If the sections are aligned with the z-axis of the volume, this control information will necessarily be very complex.
【0057】従って、各サンプルは、関連した「可視
性」ビットを有している。可視性ビットが設定されてい
る限り、サンプルは、処理が有効である。サンプルが最
終画像に寄与しないこと、すなわちビットが設定されて
いないことが決定された時は、サンプルはそれ以上の処
理が無効になる。Thus, each sample has an associated "visibility" bit. As long as the visibility bit is set, the sample is valid for processing. If it is determined that the sample does not contribute to the final image, that is, the bit is not set, the sample is invalidated for further processing.
【0058】パイプラインを通過させられるサンプルに
ついては、それでも最終奥行テストが実行されなければ
ならないことに注目されたい。なぜなら、そのレイと関
連付けられた奥行バッファ値がセクションの最小と最大
の間のどこかに位置し得るからである。この最終奥行テ
ストは、工程594a〜594dにおいて、合成の間に
実行される。Note that for samples being passed through the pipeline, a final depth test must still be performed. This is because the depth buffer value associated with that ray may be located somewhere between the minimum and maximum of the section. This final depth test is performed during synthesis in steps 594a-594d.
【0059】アーリーレイターミネーション アーリーレイターミネーションは、レイに沿ったそれ以
上のサンプルが、いつ最終的に合成された結果に影響を
与えられなくなるかを認識する最適化である。例えば、
前・後(front-to-back)処理の間に、完全に不透明な表
面に遭遇すると、その表面の背後のサンプルはどれも不
可視になり、その結果、これらのサンプルは処理する必
要がない。同様に、レイが霧などの厚い半透明な物質を
通過する際、結局のところ、レイが不透明度を多く蓄積
して、それ以上レイに沿ったサンプルが全く見られなく
なり得る。別の例において、レイの奥行値が閾値を超え
ることがあり、その結果、そのレイに沿ったそれ以上の
サンプルはもはや奥行テストを通らない。Early Ray Termination Early ray termination is an optimization that recognizes when further samples along the ray will no longer affect the final synthesized result. For example,
If a completely opaque surface is encountered during front-to-back processing, any samples behind that surface will be invisible, so that these samples do not need to be processed. Similarly, as a ray passes through a thick translucent material, such as fog, the ray may eventually accumulate more opacity and no more samples along the ray can be seen. In another example, the depth value of a ray may exceed a threshold, so that further samples along that ray no longer pass the depth test.
【0060】これらのケースでは、コンポジタ594
は、レイの処理を終了できることを決め得る。このケー
スでは、コンポジタは、ERT(Early Ray Terminatio
n:アーリーレイターミネーション)信号572によっ
て、そのレイの処理を停止するようにコントローラに信
号を送る。コントローラがあるレイについてそのような
ERT信号を受け取ると、そのレイに関わるその後のボ
クセルおよびサンプルをスキップする。コントローラは
また、セクションのすべてのレイについてERT信号の
経過を追い、その結果、特定のセクション中のすべての
レイが終了される時、セクション全体の処理が終了す
る。In these cases, compositor 594
May determine that processing of the ray can be terminated. In this case, the compositor has an ERT (Early Ray Terminatio
(n: early ray termination) signal 572 sends a signal to the controller to stop processing that ray. When the controller receives such an ERT signal for a ray, it skips subsequent voxels and samples associated with that ray. The controller also keeps track of the ERT signal for all rays in the section, so that when all rays in a particular section are terminated, processing of the entire section is terminated.
【0061】典型的な実施の形態においては、コントロ
ーラはビットマスクを維持する。このマスクはセクショ
ンの各レイごとに1ビットを有している。マスクのすべ
てのビットが終了を示す時、そのセクションは終了され
る。In an exemplary embodiment, the controller maintains a bit mask. This mask has one bit for each ray of the section. When all bits of the mask indicate end, the section is ended.
【0062】ほとんどのケースにおいて、コンポジタ
が、あるレイを終了すべきと決めた時に、ボリュームレ
ンダリングパイプラインの前工程にそのレイについての
サンプルがまだあり得ることに注意されたい。従って、
アーリーレイターミネーションの意味を維持するため、
コンポジタが、あるレイがどのような基準に従っても終
了したと決めた後は、そのレイに沿ったその後のすべて
のサンプルを無視し、放棄する。このように、1つのレ
イのアーリー・ターミネーションの時間とそのレイの最
後のサンプルがパイプラインを通過し終えるまでの間に
は遅延があるであろう。Note that in most cases, when the compositor decides to terminate a ray, there may still be samples for that ray at a previous stage in the volume rendering pipeline. Therefore,
To maintain the meaning of early ray termination,
After the compositor has determined that a ray has finished according to any criteria, it ignores and discards all subsequent samples along that ray. Thus, there will be a delay between the early termination time of one ray and the last sample of that ray having finished passing through the pipeline.
【0063】好ましい実施の形態において、アーリーレ
イターミネーションについての不透明度の閾値は、アプ
リケーションプログラムにより設定できるレジスター中
で実現される。従って、たとえ人の眼が、終了されたサ
ンプルの背後のオブジェクトを検知できたとしても、レ
イを終了するために、どのようなレベルの不透明度も用
い得る。In a preferred embodiment, the opacity threshold for early ray termination is implemented in a register that can be set by an application program. Thus, any level of opacity may be used to terminate a ray, even though the human eye can detect the object behind the terminated sample.
【0064】スペースリーピング スペースリーピングにより、パイプラインは、ボリュー
ムの透明部分をスキップすることが可能になる。例え
ば、多くのボリュームモデルは、対象となるオブジェク
トまたはモデルの周囲に1つ以上の透明な「空」スペー
スを含んでいる。また、分類および照明機能により、あ
る種の組織または物質を透明にし得る。同様に、勾配の
大きさの調節に基づくフィルタリング機能により、ボリ
ュームのある部分を透明にし得る。これらの透明部分を
スキップすることにより、不可視サンプルの数が減らさ
れて、従ってボリューム全体をレンダリングするのに必
要な時間が減少する。Space Leaping Space leaping allows the pipeline to skip transparent parts of the volume. For example, many volume models include one or more transparent "empty" spaces around the object or model of interest. Also, the classification and lighting functions may make certain tissues or substances transparent. Similarly, a filtering function based on adjusting the magnitude of the gradient can make certain parts of the volume transparent. By skipping these transparent areas, the number of invisible samples is reduced, thus reducing the time required to render the entire volume.
【0065】図6および図7に示すように、本発明によ
るパイプライン式ボリュームレンダリングシステムは、
ボリュームアレイ610に対応する「空ビット」と呼ば
れるビットのアレイ620を維持することにより、スペ
ース・リーピングを実現している。三次元のボリューム
アレイ610については、対応する空ビットの三次元ア
レイ620がある。典型的には、空ビットアレイ中の1
つのビット720がボクセル710の1つのブロックに
対応している。もし空ビット720が設定されたら、対
応するブロック710のボクセルは、それらの近くを通
過するサンプルの可視性には寄与しないであろう。すな
わち、ブロック中のボクセルの各々において、ボリュー
ムは透明である。As shown in FIGS. 6 and 7, the pipeline type volume rendering system according to the present invention comprises:
By maintaining an array of bits 620 called “empty bits” corresponding to the volume array 610, space leaping is achieved. For the three-dimensional volume array 610, there is a corresponding three-dimensional array 620 of empty bits. Typically, 1 in the empty bit array
One bit 720 corresponds to one block of voxel 710. If the empty bit 720 is set, the corresponding voxels of the block 710 will not contribute to the visibility of samples passing near them. That is, in each of the voxels in the block, the volume is transparent.
【0066】図7に示すように、各空ビット720は、
例えば4×4×4ボクセル、すなわち合計64ボクセル
の立方体ブロックに対応し得る。ボクセルの4×4×4
の立方体アレイ710は、単一の空ビット720により
表されている。従って、空ビットアレイは、ボクセルの
1/64のビット数を有する。ボクセルが、8、16、
32、またはそれ以上のビットであり得るので、空ビッ
トアレイは、ボリュームアレイ自身の格納の1/51
2、1/1024、1/2048、またはそれ以下を必
要とするAs shown in FIG. 7, each empty bit 720 is
For example, it may correspond to a 4 × 4 × 4 voxel, ie a cubic block of 64 voxels in total. Voxel 4 × 4 × 4
Cubic array 710 is represented by a single empty bit 720. Thus, the empty bit array has 1/64 bits of voxel. Voxels are 8, 16,
Since there can be 32 or more bits, the empty bit array is 1/51 of the volume array's own storage.
Requires 2, 1/1024, 1/2048, or less
【0067】空ビットの意味は次の通りである。サンプ
ル点の補間に必要とされるすべてのボクセルがそれらの
空ビットにより透明であると表示されれば、そのサンプ
ル点自身は不可視であり、最終画像に寄与しないと見な
される。従って、コントローラ900は、それらのボク
セルの読み取りを省くことができ、かつボリュームレン
ダリングパイプラインにサンプル点を送ることを回避で
きる。The meaning of the empty bit is as follows. If all the voxels needed to interpolate a sample point are indicated as transparent by their empty bits, the sample point itself is considered invisible and does not contribute to the final image. Thus, the controller 900 can skip reading those voxels and avoid sending sample points to the volume rendering pipeline.
【0068】多くのボリュームデータ集合において典型
的であるように、あるボリュームの大きい部分が、それ
らの空ビットにより示されるように透明であれば、コン
トローラは、それらのボクセルの読み取りおよびそれら
のサンプルの処理を省き得る。ある領域の空ビットを単
に一緒にAND演算することにより、コントローラはそ
の領域を効率的にスキップできる。As is typical in many volume data sets, if a large portion of a volume is transparent, as indicated by their empty bits, the controller will read those voxels and sample their voxels. Processing can be omitted. By simply ANDing together the empty bits of a region, the controller can efficiently skip that region.
【0069】好ましい実施の形態においては、空ビット
のアレイ620は、特殊モードでの作動、言い換えれば
ホストによる冗長な前処理が全くないモードで、パイプ
ライン自身により生成される。このモードにおいて、視
線方向はボリュームの主軸の1つに整列され、サンプル
点は、ボクセルポジションと正確に整列するように設定
され、それゆえ、補間は些細なことになる。In the preferred embodiment, the array of empty bits 620 is generated by the pipeline itself in a special mode of operation, that is, a mode in which there is no redundant preprocessing by the host. In this mode, the line-of-sight direction is aligned with one of the main axes of the volume, and the sample points are set to be exactly aligned with the voxel positions, so interpolation is trivial.
【0070】次に、ボリュームは、色および不透明度を
割り当てるために所望の伝達関数ならびに勾配量および
その他の因子に基づいた所望のフィルタによって1度レ
ンダリングされる。合成工程594a〜594dで各R
GBAサンプルが試験され、サンプルの不透明度が予め
定めた閾値未満かどうかを決定する。もし真であれば、
そのサンプルおよび対応するボクセルは、透明であると
見なされる。もし4×4×4領域中のすべてのボクセル
が透明なら、対応するビットは真に設定される。しかし
ながら、その領域中のいずれかのボクセルが透明でなけ
れば、対応する空ビットは偽に設定される。The volume is then rendered once with the desired transfer function to assign color and opacity, and the desired filter based on the amount of gradient and other factors. In synthesis steps 594a to 594d, each R
The GBA sample is tested to determine if the opacity of the sample is below a predetermined threshold. If true,
The sample and the corresponding voxels are considered transparent. If all voxels in the 4x4x4 area are transparent, the corresponding bit is set to true. However, if any voxel in the region is not transparent, the corresponding empty bit is set to false.
【0071】ボリュームデータ集合の正常なレンダリン
グの間に、コントローラ900は、特定のセクションが
通過するボリュームの部分についての空ビットのアレイ
を読取る。もしすべてのビットがボリュームのその部分
が透明であることを示せば、ボリュームのその部分のボ
クセルのスライスは読まれず、これらのスライスに基づ
くサンプルは処理されない。During a normal rendering of a volume data set, the controller 900 reads an array of empty bits for the portion of the volume that a particular section passes through. If all bits indicate that part of the volume is transparent, the voxel slices of that part of the volume are not read and the samples based on these slices are not processed.
【0072】これは図8に示してある。空ビットの目的
のために、ボリュームデータ集合200は、ボリューム
の主軸に整列させた32×32×32のボクセルのブロ
ック810に分割してある。上記で説明したように、各
ブロックは、空ビットの64バイトのブロックにより表
される。セクション330は、視線方向220で表され
る角度でボリュームアレイを通過する。このセクション
は、ブロック811〜821と交差する。セクション3
30の処理の一環として、コントローラは、空ビットの
対応するブロックを読出し、ビットを一緒にAND演算
し、対応するボクセルのブロックおよびサンプルをスキ
ップできるかどうかを決定する。セクションがレイと整
列されているので、透明なサンプルは、本発明のパイプ
ラインの回路を余分に複雑にすることなくスキップし得
る。This is shown in FIG. For the purpose of empty bits, the volume data set 200 is divided into blocks 810 of 32 × 32 × 32 voxels aligned with the main axis of the volume. As described above, each block is represented by a block of 64 bytes of empty bits. Section 330 passes through the volume array at an angle represented by gaze direction 220. This section intersects blocks 811-821. Section 3
As part of the process of 30, the controller reads the corresponding block of empty bits, ANDs the bits together, and determines whether the corresponding block of voxels and samples can be skipped. Because the sections are aligned with the rays, transparent samples can be skipped without adding extra complexity to the circuitry of the pipeline of the present invention.
【0073】当然ながら、色および不透明度を割り当て
る分類ルックアップテーブルが変わったり、あるいは不
透明度に影響するフィルタ機能が変わると、空ビットア
レイ620は無効になり、再計算されなければならな
い。しかしながら、これはホストプロセッサ資源を必要
としない。Of course, if the classification look-up table that assigns color and opacity changes, or if the filter function that affects opacity changes, the empty bit array 620 becomes invalid and must be recalculated. However, this does not require host processor resources.
【0074】パイプラインコントローラ 図9に示すように、本発明のパイプライン式レンダリン
グシステムのコントローラ900は以下のように作動す
る。Pipeline Controller As shown in FIG. 9, the controller 900 of the pipelined rendering system of the present invention operates as follows.
【0075】コントローラには完全なレンダリングコン
テクスト901が提供される。このレンダリングコンテ
クストは、ボリュームをレンダリングするために必要な
すべての制御情報、例えば視線方向,ボリュームサイ
ズ、カットおよびクロップ平面を定義する方程式、境界
ボックス、倍率、奥行平面等を含む。The controller is provided with a complete rendering context 901. This rendering context includes all the control information needed to render the volume, such as gaze direction, volume size, equations defining cut and crop planes, bounding boxes, magnification, depth planes, and the like.
【0076】コントローラは、レイ整列セクション91
1に従って、ボリュームデータ集合のレイを分割910
するためにコンテクストを用いる。セクション911
は、予め定めた順序に従って処理するために列挙され
る。各セクションは、ボリュームを通して投じられたそ
のレイおよびレイに沿ってサンプルを作り出すのに必要
なボクセルに関する幾何学という形で表現され得る。The controller controls the ray alignment section 91
1. Divide 910 the rays of the volume data set according to 1.
Use context to do so. Section 911
Are listed for processing according to a predetermined order. Each section may be represented in terms of the geometry of the ray cast through the volume and the voxels needed to create a sample along the ray.
【0077】各セクション911について、工程920
は上記のような可視性テスト920を実行する。視野外
(「不可視」)にあるセクションはスキップされ、「可
視」セクション921のみがさらに処理される。For each section 911, step 920
Performs the visibility test 920 as described above. Out of sight
Sections at ("invisible") are skipped, and only "visible" section 921 is further processed.
【0078】工程930は、ボクセルの視点から各可視
セクション921を処理し、並行して、工程940は、
サンプルの視点からセクションを処理する。Step 930 processes each visible section 921 from the voxel point of view, and in parallel step 940 comprises
Process sections from a sample perspective.
【0079】工程930は、レイに沿ってスライスの順
に命令を実行する。各スライスまたはスライスグループ
については、可能であればどこででも、先を見越して、
ボクセル可視性テストが上記のように実行される。もし
ある特定のスライスが少なくとも1つの可視ボクセルを
有していれば、コントローラは、スライス読み取り指令
命令931をメモリインタフェース550に送出し、ボ
クセルのスライス420が、メモリ610からパイプラ
イン540のスライスバッファ582の1つに伝達され
る。もしそのスライスが可視性テストに失敗したら、そ
れはスキップされる。Step 930 executes the instructions in slice order along the ray. For each slice or slice group, look ahead wherever possible,
A voxel visibility test is performed as described above. If a particular slice has at least one visible voxel, the controller sends a read slice command 931 to the memory interface 550 and the slice 420 of the voxel is sent from the memory 610 to the slice buffer 582 of the pipeline 540. To one of the If the slice fails the visibility test, it is skipped.
【0080】同時に、工程940はサンプル可視性テス
トを実行する。ボクセルおよびサンプルは、たとえ対応
するボクセルが通過したとしても、異なる座標系に従っ
て配置されており、従ってサンプルはこのテストに失敗
することもあるし、逆もまた同様であることに注目され
たい。もしサンプルがパスしたら、サンプル補間指令9
41が補間重み(w)560と共に送出され、処理が開始
される。その後、パイプラインの様々な工程がさらなる
可視性テストを実行し、そのようなアーリーレイターミ
ネーション、奥行テスト、および特定サンプルの処理は
中止し得る。At the same time, step 940 performs a sample visibility test. Note that the voxels and samples are positioned according to a different coordinate system, even if the corresponding voxels have passed, so that the samples may fail this test and vice versa. If the sample passes, sample interpolation command 9
41 is sent out together with the interpolation weight (w) 560, and the process is started. Thereafter, various steps in the pipeline may perform additional visibility tests, and such early ray termination, depth testing, and processing of specific samples may be aborted.
【0081】ボリュームレンダリング性能における一層
の改善のために、付加的な最適化が可能なことが理解さ
れるであろう。例えば、いくつかの実施の形態において
は、サンプルスライスは四分円に分割され、各四分円
は、カット平面、クロッピング、および奥行テストに従
って独立してテストされる。It will be appreciated that additional optimizations are possible for further improvements in volume rendering performance. For example, in some embodiments, a sample slice is divided into quadrants, and each quadrant is independently tested according to a cut plane, cropping, and depth test.
【図1】 従来技術のボリュームレンダリングパイプラ
インのブロック図である。FIG. 1 is a block diagram of a prior art volume rendering pipeline.
【図2】 従来技術の、軸整列されたセクションへ分割
されたボリュームデータ集合の図である。FIG. 2 is a prior art diagram of a volume data set divided into axially aligned sections.
【図3】 レイ整列されたセクションへ分割されたボリ
ュームデータ集合の図である。FIG. 3 is a diagram of a volume data set divided into ray-aligned sections.
【図4】 レイ整列されたセクションの断面図である。FIG. 4 is a cross-sectional view of a ray-aligned section.
【図5】 本発明によるボリュームレンダリングパイプ
ラインのブロック図である。FIG. 5 is a block diagram of a volume rendering pipeline according to the present invention.
【図6】 ボリュームデータ集合に対応する空ビットの
3次元アレイの図である。FIG. 6 is a diagram of a three-dimensional array of empty bits corresponding to a volume data set.
【図7】 ボリュームデータ集合のブロックについての
空ビットのブロック図である。FIG. 7 is a block diagram of empty bits for a block of a volume data set.
【図8】 ボリュームデータ集合の断面図である。FIG. 8 is a sectional view of a volume data set.
【図9】 図5のレンダリングパイプライン用コントロ
ーラの流れ図である。FIG. 9 is a flowchart of the rendering pipeline controller of FIG. 5;
───────────────────────────────────────────────────── フロントページの続き (71)出願人 501184364 2955 Campus Drive, Su ite 325, San Mateo, California 94403, U.S. A. (72)発明者 ラリー・ディー・シーラー アメリカ合衆国、マサチューセッツ州、ボ イルストン、リンデン・ストリート 198 (72)発明者 ハリー・ガスパラキス アメリカ合衆国、マサチューセッツ州、ア クトン、デービス・ロード 9、ビー 7 (72)発明者 ヴィックラム・シンハ アメリカ合衆国、マサチューセッツ州、レ キシントン、カターディン・ドライブ 414 (72)発明者 ケニス・ダブリュ・コーラル アメリカ合衆国、マサチューセッツ州、ラ ンカスター、ルネンバーグ・ロード 2193 Fターム(参考) 5B080 AA17 CA04 FA15 FA17 GA02 ────────────────────────────────────────────────── (4) Continuation of the front page (71) Applicant 501184364 2955 Campus Drive, Suite 325, San Mateo, California 94403, U.S.A. SA (72) Inventor Larry Dee Sealer United States, Massachusetts, Boylston, Linden Street 198 (72) Inventor Harry Gasparakis United States, Massachusetts, Acton, Davis Road 9, Bee 7 (72) Inventor Viclam Singha, Catardine Drive, Lexington, Mass., USA 414 (72) Inventor Kennis W. Coral, Lancaster, Mass., Lancaster, Mass. 2193 F-term (reference) 5B080 AA17 CA04 FA15 FA17 GA02
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000365865AJP2002183746A (en) | 2000-11-30 | 2000-11-30 | How to render volume data sets |
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000365865AJP2002183746A (en) | 2000-11-30 | 2000-11-30 | How to render volume data sets |
| Publication Number | Publication Date |
|---|---|
| JP2002183746Atrue JP2002183746A (en) | 2002-06-28 |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000365865APendingJP2002183746A (en) | 2000-11-30 | 2000-11-30 | How to render volume data sets |
| Country | Link |
|---|---|
| JP (1) | JP2002183746A (en) |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7039723B2 (en) | 2001-08-31 | 2006-05-02 | Hinnovation, Inc. | On-line image processing and communication system |
| USRE42952E1 (en) | 1999-11-05 | 2011-11-22 | Vital Images, Inc. | Teleradiology systems for rendering and visualizing remotely-located volume data sets |
| WO2019025829A1 (en)* | 2017-07-31 | 2019-02-07 | Ecole Polytechnique Federale De Lausanne (Epfl) | A method for voxel ray-casting of scenes on a whole screen |
| CN110728744A (en)* | 2018-07-16 | 2020-01-24 | 青岛海信电器股份有限公司 | Volume rendering method and device and intelligent equipment |
| JP2020532816A (en)* | 2017-08-30 | 2020-11-12 | ゴー ゴースト, エルエルシーGo Ghost, Llc | How to modify raytracing samples after rendering and before rasterization |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05108840A (en)* | 1991-10-11 | 1993-04-30 | Toshiba Corp | Image processing apparatus and its length counter |
| JPH05189543A (en)* | 1992-01-10 | 1993-07-30 | Hitachi Ltd | Three-dimensional image information presenting method |
| JPH06274647A (en)* | 1993-03-17 | 1994-09-30 | Nec Corp | Local memory type parallel visualizer |
| JPH0729029A (en)* | 1993-07-09 | 1995-01-31 | Nec Corp | Parallel address generation device using three-dimensional digital differential analyzer |
| JPH11306380A (en)* | 1998-04-13 | 1999-11-05 | Mitsubishi Electric Inf Technol Center America Inc | Method and system for volume rendering |
| JPH11353496A (en)* | 1998-06-10 | 1999-12-24 | Ken Nishimura | Intersection search device for light ray tracing |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05108840A (en)* | 1991-10-11 | 1993-04-30 | Toshiba Corp | Image processing apparatus and its length counter |
| JPH05189543A (en)* | 1992-01-10 | 1993-07-30 | Hitachi Ltd | Three-dimensional image information presenting method |
| JPH06274647A (en)* | 1993-03-17 | 1994-09-30 | Nec Corp | Local memory type parallel visualizer |
| JPH0729029A (en)* | 1993-07-09 | 1995-01-31 | Nec Corp | Parallel address generation device using three-dimensional digital differential analyzer |
| JPH11306380A (en)* | 1998-04-13 | 1999-11-05 | Mitsubishi Electric Inf Technol Center America Inc | Method and system for volume rendering |
| JPH11353496A (en)* | 1998-06-10 | 1999-12-24 | Ken Nishimura | Intersection search device for light ray tracing |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| USRE42952E1 (en) | 1999-11-05 | 2011-11-22 | Vital Images, Inc. | Teleradiology systems for rendering and visualizing remotely-located volume data sets |
| USRE44336E1 (en) | 1999-11-05 | 2013-07-02 | Vital Images, Inc. | Teleradiology systems for rendering and visualizing remotely-located volume data sets |
| US7039723B2 (en) | 2001-08-31 | 2006-05-02 | Hinnovation, Inc. | On-line image processing and communication system |
| WO2019025829A1 (en)* | 2017-07-31 | 2019-02-07 | Ecole Polytechnique Federale De Lausanne (Epfl) | A method for voxel ray-casting of scenes on a whole screen |
| US11132829B2 (en) | 2017-07-31 | 2021-09-28 | Ecole polytechnique fédérale de Lausanne (EPFL) | Method for voxel ray-casting of scenes on a whole screen |
| JP2020532816A (en)* | 2017-08-30 | 2020-11-12 | ゴー ゴースト, エルエルシーGo Ghost, Llc | How to modify raytracing samples after rendering and before rasterization |
| JP7030200B2 (en) | 2017-08-30 | 2022-03-04 | ゴー ゴースト,エルエルシー | How to modify raytracing samples after rendering and before rasterization |
| CN110728744A (en)* | 2018-07-16 | 2020-01-24 | 青岛海信电器股份有限公司 | Volume rendering method and device and intelligent equipment |
| CN110728744B (en)* | 2018-07-16 | 2023-09-19 | 海信视像科技股份有限公司 | Volume rendering method and device and intelligent equipment |
| Publication | Publication Date | Title |
|---|---|---|
| US6654012B1 (en) | Early ray termination in a parallel pipelined volume rendering system | |
| EP1089234A2 (en) | Parallel pipelined volume rendering system | |
| EP3179447B1 (en) | Foveated rendering | |
| EP1014308B1 (en) | Method and apparatus for volume rendering with multiple depth buffers | |
| US10964086B2 (en) | Graphics processing | |
| US8013857B2 (en) | Method for hybrid rasterization and raytracing with consistent programmable shading | |
| US8325186B2 (en) | Method and apparatus for rendering shadows | |
| JP4977712B2 (en) | Computer graphics processor and method for rendering stereoscopic images on a display screen | |
| US20160379401A1 (en) | Optimized Stereoscopic Visualization | |
| US7812837B2 (en) | Reduced Z-buffer generating method, hidden surface removal method and occlusion culling method | |
| US7948487B2 (en) | Occlusion culling method and rendering processing apparatus | |
| JP2000348202A (en) | Displacement-warp rendering method for volume data set having voxels, apparatus for rendering volume data set | |
| JPH07152926A (en) | Method for shading of three-dimensional image | |
| JP2001357410A (en) | Graphic system for composing three-dimensional images generated separately | |
| KR102811807B1 (en) | Systems and methods for rendering reflections | |
| Wu et al. | Shear-image order ray casting volume rendering | |
| Meißner et al. | Volume Visualization and Volume Rendering Techniques. | |
| JP7100624B2 (en) | Hybrid rendering with binning and sorting of preferred primitive batches | |
| EP1093085B1 (en) | Parallel pipelined volume rendering system | |
| JP2002183746A (en) | How to render volume data sets | |
| EP1209629A1 (en) | Early ray termination in a parallel pipelined volume rendering system | |
| EP1089235A2 (en) | Space leaping in a parallel pipelined volume rendering system | |
| Han et al. | Triangle reordering for reduced overdraw in animated scenes | |
| EP1089225A2 (en) | Parallel pipelined volume rendering system | |
| JP3286294B2 (en) | System and method for displaying a three-dimensional object that generates object blur using motion vectors |
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination | Free format text:JAPANESE INTERMEDIATE CODE: A621 Effective date:20071126 | |
| A977 | Report on retrieval | Free format text:JAPANESE INTERMEDIATE CODE: A971007 Effective date:20100406 | |
| A131 | Notification of reasons for refusal | Free format text:JAPANESE INTERMEDIATE CODE: A131 Effective date:20100420 | |
| A02 | Decision of refusal | Free format text:JAPANESE INTERMEDIATE CODE: A02 Effective date:20100928 |