JP2000194878A - ボリュ―ムを画像平面上にレンダリングする方法及びシステム、並びに三次元ボリュ―ムを二次元画像平面上にレンダリングする方法 - Google Patents
ボリュ―ムを画像平面上にレンダリングする方法及びシステム、並びに三次元ボリュ―ムを二次元画像平面上にレンダリングする方法Info
- Publication number
- JP2000194878A JP2000194878A JP11292822A JP29282299A JP2000194878A JP 2000194878 A JP2000194878 A JP 2000194878A JP 11292822 A JP11292822 A JP 11292822A JP 29282299 A JP29282299 A JP 29282299A JP 2000194878 A JP2000194878 A JP 2000194878A
- Authority
- JP
- Japan
- Prior art keywords
- volume
- rendering
- clip surface
- image plane
- depth
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)
Abstract
(57)【要約】
【課題】 複雑な不透明な内部構造と半透明な内部構造
を含む容積測定のオブジェクトとモデルをレンダリング
する方法およびシステムを提供する。 【解決手段】 まず、多角形によって定められたボリュ
ームの半透明の部分を層に分割する。層は前から後ろへ
の順序でソートされる。近い色バッファは透明色に設定
され、近い深度バッファは近いクリップ表面に設定され
る。次に、遠い色バッファを背景色に初期化し、遠い深
度バッファを遠いクリップ表面に初期化し、現在の層を
遠い色バッファと深度バッファに描き、ボリュームを近
いクリップ表面から遠いクリップ表面へと、近い色バッ
ファと深度バッファ内にレンダリングすることにより、
層はソートされた順序で処理される。全ての層が処理さ
れた後に、遠い色バッファは背景色に再初期化され、遠
い深度バッファは遠いクリップ表面に再初期化され、近
いクリップ表面から遠いクリップ表面へと、ボリューム
は近い色バッファと深度バッファ内にレンダリングされ
る。
を含む容積測定のオブジェクトとモデルをレンダリング
する方法およびシステムを提供する。 【解決手段】 まず、多角形によって定められたボリュ
ームの半透明の部分を層に分割する。層は前から後ろへ
の順序でソートされる。近い色バッファは透明色に設定
され、近い深度バッファは近いクリップ表面に設定され
る。次に、遠い色バッファを背景色に初期化し、遠い深
度バッファを遠いクリップ表面に初期化し、現在の層を
遠い色バッファと深度バッファに描き、ボリュームを近
いクリップ表面から遠いクリップ表面へと、近い色バッ
ファと深度バッファ内にレンダリングすることにより、
層はソートされた順序で処理される。全ての層が処理さ
れた後に、遠い色バッファは背景色に再初期化され、遠
い深度バッファは遠いクリップ表面に再初期化され、近
いクリップ表面から遠いクリップ表面へと、ボリューム
は近い色バッファと深度バッファ内にレンダリングされ
る。
Description
【0001】
【発明の属する技術分野】この発明は、概してコンピュ
ーターグラフィックスに関するもので、特にオブジェク
トすなわちモデルの内部構造をレンダリングすることに
関する。
ーターグラフィックスに関するもので、特にオブジェク
トすなわちモデルの内部構造をレンダリングすることに
関する。
【0002】
【従来の技術】三次元(3D)オブジェクトすなわち合
成モデルをレンダリングする分野は、多角形レンダリン
グ(polygon rendering)とボリュームレンダリング(v
olumerendering)の2つの主要な領域に区分することが
できる。多角形レンダリングは表面トポロジーにのみ関
係するのに対して、ボリュームレンダリングはオブジェ
クトすなわちモデルの内部構造も扱う。
成モデルをレンダリングする分野は、多角形レンダリン
グ(polygon rendering)とボリュームレンダリング(v
olumerendering)の2つの主要な領域に区分することが
できる。多角形レンダリングは表面トポロジーにのみ関
係するのに対して、ボリュームレンダリングはオブジェ
クトすなわちモデルの内部構造も扱う。
【0003】(多角形レンダリング)多角形レンダリン
グ用に設計されたプロセッサおよび工程において、オブ
ジェクトすなわちモデルの表面は多角形、例えば三角形
や線で描写される。これらの基本的幾何学的な構成は、
外部表面を表す構成「フラグメント:fragments」を生
成するために使用される。フラグメントは、表面上にあ
る単一の画像ピクセルをレンダリングする(「描く:dr
aw」)のに必要な全ての情報(データ)、例えば、ピク
セルのxおよびy座標、ピクセルの赤、緑および青の色
彩値、不透明度を表すアルファ値、深度値、テクスチャ
座標などとして定める。フラグメントはピクセルとして
レンダリングされる前に、色(または画像)バッファに
混合することができる。
グ用に設計されたプロセッサおよび工程において、オブ
ジェクトすなわちモデルの表面は多角形、例えば三角形
や線で描写される。これらの基本的幾何学的な構成は、
外部表面を表す構成「フラグメント:fragments」を生
成するために使用される。フラグメントは、表面上にあ
る単一の画像ピクセルをレンダリングする(「描く:dr
aw」)のに必要な全ての情報(データ)、例えば、ピク
セルのxおよびy座標、ピクセルの赤、緑および青の色
彩値、不透明度を表すアルファ値、深度値、テクスチャ
座標などとして定める。フラグメントはピクセルとして
レンダリングされる前に、色(または画像)バッファに
混合することができる。
【0004】(ボリュームレンダリング)ボリュームレ
ンダリング用に設計されたプロセッサおよび工程におい
て、基本的構築ブロックは三次元ボクセルである。目視
方向または投影方向(ビューフラスタム(view frustu
m)に応じて、ボリュームサンプルを生成するようにボ
クセルを補間することができる。補間されたボリューム
サンプルは、上記に定義したようなフラグメントに等し
いものと見なすことができる。ボリュームレンダリング
は、画像平面と等しいものと見なすことができるベース
平面、すなわち色彩値の2D配列を生成する。このよう
な一致によって、多角形レンダリングをボリュームレン
ダリングやレンダリングシステムに一般的に使用される
アプリケーションプログラミングインターフェイスと統
合することがより容易になる。
ンダリング用に設計されたプロセッサおよび工程におい
て、基本的構築ブロックは三次元ボクセルである。目視
方向または投影方向(ビューフラスタム(view frustu
m)に応じて、ボリュームサンプルを生成するようにボ
クセルを補間することができる。補間されたボリューム
サンプルは、上記に定義したようなフラグメントに等し
いものと見なすことができる。ボリュームレンダリング
は、画像平面と等しいものと見なすことができるベース
平面、すなわち色彩値の2D配列を生成する。このよう
な一致によって、多角形レンダリングをボリュームレン
ダリングやレンダリングシステムに一般的に使用される
アプリケーションプログラミングインターフェイスと統
合することがより容易になる。
【0005】多角形またはボリュームの3Dレンダリン
グにおける自然発生的な1つの問題は、オブジェクトの
位置を比較し、閉塞(occlusion)、クリップ(cli
p)、クロッピング(cropping)などを判断する目的
で、三次元をどのようにすれば最もよくレンダリングで
きるかを対処することである。
グにおける自然発生的な1つの問題は、オブジェクトの
位置を比較し、閉塞(occlusion)、クリップ(cli
p)、クロッピング(cropping)などを判断する目的
で、三次元をどのようにすれば最もよくレンダリングで
きるかを対処することである。
【0006】(多角形レンダリングにおける深度)例え
ば、一般的に使用されているグラフィックレンダリング
ツールであるオープンGL(Open GL)は、画像バッフ
ァの平面(x、y)位置にある各ピクセルの単一の深度
(z)値を記憶する。ここで、各フラグメントはそのフ
ラグメントの対応する深度との選択可能な比較や対応す
るピクセルに関連した深度値(depth value)に応じ
て、画像バッファに混合されるか捨てられる。通常、深
度比較演算子は未満比較の演算子であり、深度バッファ
は所定の背景色および深度値で初期化される。フラグメ
ントの深度が対応する深度未満である場合には、サンプ
ルは混合され、それ以外の場合には、サンプルは捨てら
れる。
ば、一般的に使用されているグラフィックレンダリング
ツールであるオープンGL(Open GL)は、画像バッフ
ァの平面(x、y)位置にある各ピクセルの単一の深度
(z)値を記憶する。ここで、各フラグメントはそのフ
ラグメントの対応する深度との選択可能な比較や対応す
るピクセルに関連した深度値(depth value)に応じ
て、画像バッファに混合されるか捨てられる。通常、深
度比較演算子は未満比較の演算子であり、深度バッファ
は所定の背景色および深度値で初期化される。フラグメ
ントの深度が対応する深度未満である場合には、サンプ
ルは混合され、それ以外の場合には、サンプルは捨てら
れる。
【0007】より複雑なアプリケーションに適合するた
めに、オープンGLは8個の関係比較の何れか1つの選
択を可能にしている。不透明なフラグメントについて
は、比較演算は、あたかもレンダリングされる前にその
フラグメントがソートされていたかのように、結果を同
じにさせる。例えば、未満比較はより小さい深度値を有
するフラグメントを選択し、より大きな深度値を有する
フラグメントを捨てる。これは、視点に対して後ろ(よ
り深い深度)から前(より浅い深度)へとフラグメント
をソートすることに等しい。
めに、オープンGLは8個の関係比較の何れか1つの選
択を可能にしている。不透明なフラグメントについて
は、比較演算は、あたかもレンダリングされる前にその
フラグメントがソートされていたかのように、結果を同
じにさせる。例えば、未満比較はより小さい深度値を有
するフラグメントを選択し、より大きな深度値を有する
フラグメントを捨てる。これは、視点に対して後ろ(よ
り深い深度)から前(より浅い深度)へとフラグメント
をソートすることに等しい。
【0008】オープンGLを使うと、半透明の深度バッ
ファされた三角形をレンダリングするのに良い方法はな
い。不透明な三角形は如何なる順序でもレンダリング可
能であり、深度情報の制御の下での混合は、隠された線
や表面を場面から削除する公知な方法を提供する。しか
し、半透明の三角形については、画像バッファにおいて
結果として得られるピクセル値は、三角形が表示される
順序に左右される。従って、オープンGLにおいては、
不透明でない幾何図形(多角形)をレンダリングする一
般的な技術は、まず不透明な三角形をレンダリングし
て、次に半透明な三角形をソートし、最後に後ろから前
への順序で三角形をレンダリングすることである。2つ
の半透明な三角形が、それぞれ他の三角形を部分的に遮
断するような方法で交差している場合には、三角形はレ
ンダリングされる前に、まずより小さい遮断しない三角
形に分割しなければならない。
ファされた三角形をレンダリングするのに良い方法はな
い。不透明な三角形は如何なる順序でもレンダリング可
能であり、深度情報の制御の下での混合は、隠された線
や表面を場面から削除する公知な方法を提供する。しか
し、半透明の三角形については、画像バッファにおいて
結果として得られるピクセル値は、三角形が表示される
順序に左右される。従って、オープンGLにおいては、
不透明でない幾何図形(多角形)をレンダリングする一
般的な技術は、まず不透明な三角形をレンダリングし
て、次に半透明な三角形をソートし、最後に後ろから前
への順序で三角形をレンダリングすることである。2つ
の半透明な三角形が、それぞれ他の三角形を部分的に遮
断するような方法で交差している場合には、三角形はレ
ンダリングされる前に、まずより小さい遮断しない三角
形に分割しなければならない。
【0009】実際に、オープンGL深度バッファは動的
クリップ表面を定める。深度バッファは、画像平面によ
り近いフラグメントをより遠いフラグメントと分離し、
これに基づいてフラグメントを選択的に捨てることを可
能にしている。更に、深度バッファはレンダリングの間
に動的に更新されるので、時期の遅いフラグメントが時
期のより早いフラグメントとは異なった方法で扱われる
ようにクリップ表面を「移動する」。
クリップ表面を定める。深度バッファは、画像平面によ
り近いフラグメントをより遠いフラグメントと分離し、
これに基づいてフラグメントを選択的に捨てることを可
能にしている。更に、深度バッファはレンダリングの間
に動的に更新されるので、時期の遅いフラグメントが時
期のより早いフラグメントとは異なった方法で扱われる
ようにクリップ表面を「移動する」。
【0010】半透明の多角形をレンダリングするもう一
つの公知の方法は、三角形のソートおよび細分を必要と
しない。その代わり、この方法は2つの深度バッファ
(depth buffer)を備えた多重レンダリングパス(mult
iple rendering passes)を使用する。2つの深度バッ
ファは半透明のフラグメントをソートするために使用さ
れる。しかし、オープンGLは単一の深度バッファをサ
ポートするだけなので、その方法はオープンGLでは使
用できない。他の方法は、後ろから前(back-to-fron
t)ではなく前から後ろ(front-to-back)に三角形をソ
ートする。前から後ろへの順序は、より近いオブジェク
トによって遮断されるオブジェクトを無視することを含
む早期の光線停止(early ray termination)に近いも
のを可能にするので、より効率的である。これらの方法
の全ては、基本的にあたかも個々のピクセル位置でその
フラグメントの全てが後ろから前または前から後ろにレ
ンダリングされるかのように、(当初は)順序づけられ
ていない一組の三角形をレンダリングしようとする。
つの公知の方法は、三角形のソートおよび細分を必要と
しない。その代わり、この方法は2つの深度バッファ
(depth buffer)を備えた多重レンダリングパス(mult
iple rendering passes)を使用する。2つの深度バッ
ファは半透明のフラグメントをソートするために使用さ
れる。しかし、オープンGLは単一の深度バッファをサ
ポートするだけなので、その方法はオープンGLでは使
用できない。他の方法は、後ろから前(back-to-fron
t)ではなく前から後ろ(front-to-back)に三角形をソ
ートする。前から後ろへの順序は、より近いオブジェク
トによって遮断されるオブジェクトを無視することを含
む早期の光線停止(early ray termination)に近いも
のを可能にするので、より効率的である。これらの方法
の全ては、基本的にあたかも個々のピクセル位置でその
フラグメントの全てが後ろから前または前から後ろにレ
ンダリングされるかのように、(当初は)順序づけられ
ていない一組の三角形をレンダリングしようとする。
【0011】(ボリュームレンダリングにおける深度)
ボリュームをレンダリングする場合には、後ろから前で
はなく前から後ろにレンダリングする方がよいであろ
う。前から後ろへのレンダリングは、早期の光線停止を
行うことを可能にする。しかし、この2つの順序の間の
相違は単に効率の問題である。すなわち、アンダー混合
(Under blending)での前から後ろへの順序は、オーバ
ー混合(Over blending)での後ろから前への順序と同
じ結果を生じさせるはずである。多くの場合に、レンダ
リングする順序は個人の嗜好に基づいて選択することが
できる。
ボリュームをレンダリングする場合には、後ろから前で
はなく前から後ろにレンダリングする方がよいであろ
う。前から後ろへのレンダリングは、早期の光線停止を
行うことを可能にする。しかし、この2つの順序の間の
相違は単に効率の問題である。すなわち、アンダー混合
(Under blending)での前から後ろへの順序は、オーバ
ー混合(Over blending)での後ろから前への順序と同
じ結果を生じさせるはずである。多くの場合に、レンダ
リングする順序は個人の嗜好に基づいて選択することが
できる。
【0012】オープンGLと一致するには、ボリューム
レンダリングの間に使用される深度バッファは、オープ
ンGLの深度バッファがフラグメントに影響するのと同
じ方法でボリュームサンプルに影響すべきである。各ボ
リュームサンプルの深度は、深度バッファにおける対応
する値に対して比較されるべきであって、サンプルの色
は、その比較の結果次第で混合されるか捨てられるかさ
れなければならない。色バッファの初期値は、何れか他
のオブジェクトの背景色または画像を定める。初期値
は、捨てられてないサンプルの裏で混合されなければな
らない。
レンダリングの間に使用される深度バッファは、オープ
ンGLの深度バッファがフラグメントに影響するのと同
じ方法でボリュームサンプルに影響すべきである。各ボ
リュームサンプルの深度は、深度バッファにおける対応
する値に対して比較されるべきであって、サンプルの色
は、その比較の結果次第で混合されるか捨てられるかさ
れなければならない。色バッファの初期値は、何れか他
のオブジェクトの背景色または画像を定める。初期値
は、捨てられてないサンプルの裏で混合されなければな
らない。
【0013】(複合ボリュームレンダリング)いくつか
のオブジェクトがボリュームとして表示されて他のオブ
ジェクトが多角形としてモデル化されている多くのアプ
リケーションがある。全てのオブジェクトを同じ最終画
像で描くのが望ましい。更に、これらのオブジェクトは
互いに浸透してもよい。例えば、多角形としてモデル化
されているマーカー、ツールおよび他のオブジェクト
は、ボリュームとして表示されるオブジェクトに埋め込
まれる必要があり、何れの目視方向についてもボリュー
ムに対して正しい並置状態でレンダリングされなければ
ならない。例示の医療アプリケーションにおいては、人
間の心臓を表すボリュームオブジェクトおよび人間の肺
と気管支を表す他のボリュームオブジェクトは、心臓が
肺に対して正しい並置状態になるように同じ画像上にレ
ンダリングされなければならない。
のオブジェクトがボリュームとして表示されて他のオブ
ジェクトが多角形としてモデル化されている多くのアプ
リケーションがある。全てのオブジェクトを同じ最終画
像で描くのが望ましい。更に、これらのオブジェクトは
互いに浸透してもよい。例えば、多角形としてモデル化
されているマーカー、ツールおよび他のオブジェクト
は、ボリュームとして表示されるオブジェクトに埋め込
まれる必要があり、何れの目視方向についてもボリュー
ムに対して正しい並置状態でレンダリングされなければ
ならない。例示の医療アプリケーションにおいては、人
間の心臓を表すボリュームオブジェクトおよび人間の肺
と気管支を表す他のボリュームオブジェクトは、心臓が
肺に対して正しい並置状態になるように同じ画像上にレ
ンダリングされなければならない。
【0014】ボリュームレンダリングの間に不透明な幾
何図形が混合される場合を想定する。後ろから前への条
件においては、これはまず不透明な幾何図形をレンダリ
ングして、次に、その結果得られる深度画像を深度バッ
ファおよびベース平面にコピーすることによって行うこ
とができる。次に、深度比較を未満演算に設定し、ボリ
ュームを後ろから前にレンダリングする。この一連の操
作は、不透明な幾何図形の裏にあるボリュームサンプ
ル、換言すれば、深度バッファよりも大きいかそれと等
しい深度値を有するボリュームサンプルを捨てる。前に
あるサンプル、すなわち深度バッファ未満の深度値を有
するサンプルを混合するためにオーバー操作が使われ
る。
何図形が混合される場合を想定する。後ろから前への条
件においては、これはまず不透明な幾何図形をレンダリ
ングして、次に、その結果得られる深度画像を深度バッ
ファおよびベース平面にコピーすることによって行うこ
とができる。次に、深度比較を未満演算に設定し、ボリ
ュームを後ろから前にレンダリングする。この一連の操
作は、不透明な幾何図形の裏にあるボリュームサンプ
ル、換言すれば、深度バッファよりも大きいかそれと等
しい深度値を有するボリュームサンプルを捨てる。前に
あるサンプル、すなわち深度バッファ未満の深度値を有
するサンプルを混合するためにオーバー操作が使われ
る。
【0015】前から後ろへのボリュームレンダリングで
も同じ効果を達成できる。ZGを深度バッファ、CGをベ
ース平面から分離した色バッファとし、次のように操作
する。例えばオープンGLを使用して不透明な幾何図形
をレンダリングし、その結果得られる画像と深度値をC
GとZGにそれぞれコピーする。次に、ベース平面をRG
Bα=0に初期化する。このステップの後にボリューム
をレンダリングする。各サンプルについては、サンプル
の位置のz座標をZGにおける対応する値と比較し、サ
ンプルが未満テストをパスしなければ、またサンプルが
深度バッファZGの正面に厳密になければ、そのサンプ
ルを捨てる。捨てられなかったサンプルをアンダー操作
を使ってベース平面に混合する。最終ステップとして、
CGの内容を同様にアンダー操作を使ってベース平面の
下で混合する。これによってオーバー操作で、および不
透明幾何図形色に初期化されるベース平面で、後ろから
前にレンダリングするのと同じ効果が得られる。
も同じ効果を達成できる。ZGを深度バッファ、CGをベ
ース平面から分離した色バッファとし、次のように操作
する。例えばオープンGLを使用して不透明な幾何図形
をレンダリングし、その結果得られる画像と深度値をC
GとZGにそれぞれコピーする。次に、ベース平面をRG
Bα=0に初期化する。このステップの後にボリューム
をレンダリングする。各サンプルについては、サンプル
の位置のz座標をZGにおける対応する値と比較し、サ
ンプルが未満テストをパスしなければ、またサンプルが
深度バッファZGの正面に厳密になければ、そのサンプ
ルを捨てる。捨てられなかったサンプルをアンダー操作
を使ってベース平面に混合する。最終ステップとして、
CGの内容を同様にアンダー操作を使ってベース平面の
下で混合する。これによってオーバー操作で、および不
透明幾何図形色に初期化されるベース平面で、後ろから
前にレンダリングするのと同じ効果が得られる。
【0016】これらの技術は不透明な幾何図形に限定さ
れないが、次のように、半透明の幾何図形の単一の層も
サポートすることができる。オープンGLで幾何図形を
レンダリングする。その結果得られるRGBαおよびz
値をCGとZGにそれぞれコピーする。ベース平面をRG
Bα=0にクリアする。不透明な幾何図形のようにボリ
ュームをレンダリングし、ZGに対する未満テストを通
らなかった全てのサンプル値を捨てる。深度テストに通
らない、不透明になる、あるいはボリュームの終わりに
達する(何れかが最初に生じる)かの何れかにより、全
ての光線が停止するまで続ける。
れないが、次のように、半透明の幾何図形の単一の層も
サポートすることができる。オープンGLで幾何図形を
レンダリングする。その結果得られるRGBαおよびz
値をCGとZGにそれぞれコピーする。ベース平面をRG
Bα=0にクリアする。不透明な幾何図形のようにボリ
ュームをレンダリングし、ZGに対する未満テストを通
らなかった全てのサンプル値を捨てる。深度テストに通
らない、不透明になる、あるいはボリュームの終わりに
達する(何れかが最初に生じる)かの何れかにより、全
ての光線が停止するまで続ける。
【0017】次に、アンダー操作を使ってCGの内容を
混合し、その結果をベース平面に戻して記憶する。次に
2番目のパスにおいて、ベース平面をクリアしない。ボ
リュームを深度テスト以上でレンダリングする、すなわ
ち深度バッファの正面にあるサンプルを捨てて、アンダ
ー操作で混合しながらそれらの以上を受け入れる。結果
はボリュームを介しての半透明の幾何図形の「シート」
である。最後に、その結果得られるベース平面の裏で背
景色を混合する。これも単一のパスで行うことができ
る。如何なるサイクルをも失わずに2つのサンプルの間
で混合操作を実行するために、「幾何図形を今混合す
る」ことを意味するもう一つのz値テストを、混合段階
のもう一つのセットと共に単に付加する。
混合し、その結果をベース平面に戻して記憶する。次に
2番目のパスにおいて、ベース平面をクリアしない。ボ
リュームを深度テスト以上でレンダリングする、すなわ
ち深度バッファの正面にあるサンプルを捨てて、アンダ
ー操作で混合しながらそれらの以上を受け入れる。結果
はボリュームを介しての半透明の幾何図形の「シート」
である。最後に、その結果得られるベース平面の裏で背
景色を混合する。これも単一のパスで行うことができ
る。如何なるサイクルをも失わずに2つのサンプルの間
で混合操作を実行するために、「幾何図形を今混合す
る」ことを意味するもう一つのz値テストを、混合段階
のもう一つのセットと共に単に付加する。
【0018】
【発明が解決しようとする課題】しかし、これらの技術
には重大な限界がある。単一の深度バッファは埋め込み
多層半透明(不透明でない)幾何図形をサポートしな
い。アプリケーションには、マーカーや医療用のアプリ
ケーションにおける補綴具などの不透明な幾何図形を有
する可能性があるものもある。地質調査などの他のアプ
リケーションは、埋め込まれた断層平面または他の半透
明の幾何図形およびマーカーを含むことができる。これ
らの半透明のオブジェクトは重なる可能性があり、ボリ
ュームに混合するように多層の幾何図形を生成する。更
に、ボリュームオブジェクトと多角形オブジェクトを同
じ場面で結合しながら扱う必要がある、半透明と不透明
の幾何図形を混合する可能性は多くある。
には重大な限界がある。単一の深度バッファは埋め込み
多層半透明(不透明でない)幾何図形をサポートしな
い。アプリケーションには、マーカーや医療用のアプリ
ケーションにおける補綴具などの不透明な幾何図形を有
する可能性があるものもある。地質調査などの他のアプ
リケーションは、埋め込まれた断層平面または他の半透
明の幾何図形およびマーカーを含むことができる。これ
らの半透明のオブジェクトは重なる可能性があり、ボリ
ュームに混合するように多層の幾何図形を生成する。更
に、ボリュームオブジェクトと多角形オブジェクトを同
じ場面で結合しながら扱う必要がある、半透明と不透明
の幾何図形を混合する可能性は多くある。
【0019】従って、この発明は上述した点に鑑みてな
されたもので、複雑な不透明な内部構造と半透明な内部
構造を含む容積測定のオブジェクトとモデルをレンダリ
ングすることができる、ボリュームを画像平面上にレン
ダリングする方法及びシステム、並びに三次元ボリュー
ムを二次元画像平面上にレンダリングする方法を提供す
るものである。
されたもので、複雑な不透明な内部構造と半透明な内部
構造を含む容積測定のオブジェクトとモデルをレンダリ
ングすることができる、ボリュームを画像平面上にレン
ダリングする方法及びシステム、並びに三次元ボリュー
ムを二次元画像平面上にレンダリングする方法を提供す
るものである。
【0020】
【課題を解決するための手段】この発明に係るボリュー
ムを画像平面上にレンダリングする方法は、開始クリッ
プ表面と終了クリップ表面とを定めるステップと、上記
開始クリップ表面と終了クリップ表面に対して所定の関
係を有するボリュームの部分を処理するステップと、上
記処理の結果および上記開始クリップ表面と上記終了ク
リップ表面とを結合することから次の開始クリップ表面
を生成すると共に、次の終了クリップ表面を生成するス
テップと、停止条件が満たされるまで、次の開始クリッ
プ表面および終了クリップ表面に関する処理と生成を繰
り返すステップとを含むものである。
ムを画像平面上にレンダリングする方法は、開始クリッ
プ表面と終了クリップ表面とを定めるステップと、上記
開始クリップ表面と終了クリップ表面に対して所定の関
係を有するボリュームの部分を処理するステップと、上
記処理の結果および上記開始クリップ表面と上記終了ク
リップ表面とを結合することから次の開始クリップ表面
を生成すると共に、次の終了クリップ表面を生成するス
テップと、停止条件が満たされるまで、次の開始クリッ
プ表面および終了クリップ表面に関する処理と生成を繰
り返すステップとを含むものである。
【0021】また、各クリップ表面は、クリップ深度値
として関連する深度バッファに記憶されることを特徴と
するものである。
として関連する深度バッファに記憶されることを特徴と
するものである。
【0022】また、上記ボリュームは、複数のボクセル
を含み、ボクセルを補間してボリュームサンプルを生成
し、各ボリュームサンプルは関連したサンプル深度値を
有することを特徴とするものである。
を含み、ボクセルを補間してボリュームサンプルを生成
し、各ボリュームサンプルは関連したサンプル深度値を
有することを特徴とするものである。
【0023】また、上記所定の関係は、上記サンプル深
度値と上記クリップ深度値とを比較することを特徴とす
るものである。
度値と上記クリップ深度値とを比較することを特徴とす
るものである。
【0024】また、上記定めるステップ、処理するステ
ップ、生成するステップおよび繰り返すステップは、前
から後ろへの順序で行われることを特徴とするものであ
る。
ップ、生成するステップおよび繰り返すステップは、前
から後ろへの順序で行われることを特徴とするものであ
る。
【0025】また、上記定めるステップ、処理するステ
ップ、生成するステップおよび繰り返すステップは、後
ろから前への順序で行われることを特徴とするものであ
る。
ップ、生成するステップおよび繰り返すステップは、後
ろから前への順序で行われることを特徴とするものであ
る。
【0026】また、各深度バッファは、色バッファと関
連づけられてピクセル値を記憶することを特徴とするも
のである。
連づけられてピクセル値を記憶することを特徴とするも
のである。
【0027】また、上記開始クリップ表面に関連づけら
れた色バッファは、透明色に初期化され、上記終了クリ
ップ表面に関連づけられた色バッファは、背景色に初期
化されることを特徴とするものである。
れた色バッファは、透明色に初期化され、上記終了クリ
ップ表面に関連づけられた色バッファは、背景色に初期
化されることを特徴とするものである。
【0028】また、上記ボリュームは、複数の埋め込み
オブジェクトを含むことを特徴とするものである。
オブジェクトを含むことを特徴とするものである。
【0029】また、上記複数の埋め込みオブジェクトの
少なくとも1つは、半透明であることを特徴とするもの
である。
少なくとも1つは、半透明であることを特徴とするもの
である。
【0030】また、上記終了クリップ表面の一部は、上
記複数の埋め込みオブジェクトの表面によって定められ
ることを特徴とするものである。
記複数の埋め込みオブジェクトの表面によって定められ
ることを特徴とするものである。
【0031】また、上記複数の埋め込みオブジェクトの
それぞれは、多角形によって特定され、上記多角形は、
深度順にソートされて上記終了クリップ表面を定めるこ
とを特徴とするものである。
それぞれは、多角形によって特定され、上記多角形は、
深度順にソートされて上記終了クリップ表面を定めるこ
とを特徴とするものである。
【0032】また、上記ボリュームは、複数のボリュー
ムオブジェクトを含むことを特徴とするものである。
ムオブジェクトを含むことを特徴とするものである。
【0033】また、上記終了クリップ表面の一部は、上
記複数の埋め込みボリュームオブジェクトの不透明度の
しきい値テストによって定められることを特徴とするも
のである。
記複数の埋め込みボリュームオブジェクトの不透明度の
しきい値テストによって定められることを特徴とするも
のである。
【0034】また、上記終了クリップ表面の一部は、大
きさおよび方向の傾きテストによって定められることを
特徴とするものである。
きさおよび方向の傾きテストによって定められることを
特徴とするものである。
【0035】また、この発明に係る三次元ボリュームを
二次元画像平面上にレンダリングする方法は、多角形に
よって定められた上記ボリュームの部分を複数の層に分
割するステップと、上記複数の層を前から後ろへの順序
でソートするステップと、近い色バッファを透明色に初
期化するステップと、近い深度バッファを近いクリップ
表面に初期化するステップと、遠い色バッファを上記透
明色に初期化し、遠い深度バッファを上記フロントクリ
ップ表面に初期化し、現在の層を遠い色バッファおよび
深度バッファに描き、上記近いクリップ表面から上記遠
いクリップ表面に、上記近い色バッファと深度バッファ
内へと、上記複数の層のそれぞれを処理した後に上記ボ
リュームをレンダリングし、上記遠い色バッファを上記
背景色に再初期化し、上記遠い深度バッファを上記遠い
クリップ表面に再初期化し、上記近いクリップ表面から
上記遠いクリップ表面に、上記近い色バッファおよび深
度バッファ内へと上記ボリュームをレンダリングするこ
とにより、上記複数の層のそれぞれを処理するステップ
とを含むものである。
二次元画像平面上にレンダリングする方法は、多角形に
よって定められた上記ボリュームの部分を複数の層に分
割するステップと、上記複数の層を前から後ろへの順序
でソートするステップと、近い色バッファを透明色に初
期化するステップと、近い深度バッファを近いクリップ
表面に初期化するステップと、遠い色バッファを上記透
明色に初期化し、遠い深度バッファを上記フロントクリ
ップ表面に初期化し、現在の層を遠い色バッファおよび
深度バッファに描き、上記近いクリップ表面から上記遠
いクリップ表面に、上記近い色バッファと深度バッファ
内へと、上記複数の層のそれぞれを処理した後に上記ボ
リュームをレンダリングし、上記遠い色バッファを上記
背景色に再初期化し、上記遠い深度バッファを上記遠い
クリップ表面に再初期化し、上記近いクリップ表面から
上記遠いクリップ表面に、上記近い色バッファおよび深
度バッファ内へと上記ボリュームをレンダリングするこ
とにより、上記複数の層のそれぞれを処理するステップ
とを含むものである。
【0036】さらに、この発明に係るボリュームを画像
平面上にレンダリングするシステムは、開始クリップ表
面の深度値を記憶する第一の深度バッファと、終了クリ
ップ表面の深度値を記憶する第二の深度バッファと、上
記開始クリップ表面と上記終了クリップ表面とに対して
所定の関係を有するボリュームの部分を処理する手段
と、上記処理の結果からおよび、上記開始クリップ表面
と上記終了クリップ表面とを結合することから、次の開
始クリップ表面を生成し、上記第二の深度バッファに次
の終了クリップ表面を記憶する手段と、停止条件が満た
されるまで、上記処理を繰り返し、上記次の開始クリッ
プ表面および終了クリップ表面に関して、生成する手段
とを含むものである。
平面上にレンダリングするシステムは、開始クリップ表
面の深度値を記憶する第一の深度バッファと、終了クリ
ップ表面の深度値を記憶する第二の深度バッファと、上
記開始クリップ表面と上記終了クリップ表面とに対して
所定の関係を有するボリュームの部分を処理する手段
と、上記処理の結果からおよび、上記開始クリップ表面
と上記終了クリップ表面とを結合することから、次の開
始クリップ表面を生成し、上記第二の深度バッファに次
の終了クリップ表面を記憶する手段と、停止条件が満た
されるまで、上記処理を繰り返し、上記次の開始クリッ
プ表面および終了クリップ表面に関して、生成する手段
とを含むものである。
【0037】
【発明の実施の形態】以下、この発明について説明す
る。この発明は、他のオブジェクトをそのボリュームに
埋め込むことができる方法で、三次元ボリュームを、二
次元画像平面上にレンダリングする方法および装置を提
供する。
る。この発明は、他のオブジェクトをそのボリュームに
埋め込むことができる方法で、三次元ボリュームを、二
次元画像平面上にレンダリングする方法および装置を提
供する。
【0038】この発明による方法においては、近くのク
リップ表面(a near clip surface)と遠くのクリップ
表面(a far clip surface)を定めるために、2つの深
度バッファ(depth buffer)を採用している。多色バッ
ファも採用しており、それぞれが各クリップ表面に対応
する。
リップ表面(a near clip surface)と遠くのクリップ
表面(a far clip surface)を定めるために、2つの深
度バッファ(depth buffer)を採用している。多色バッ
ファも採用しており、それぞれが各クリップ表面に対応
する。
【0039】次に、各光線からの色および不透明度が近
くの色バッファから初期化され、集積された色および不
透明度が遠い色バッファと混合されて、2つのクリップ
表面の間にあるボリュームの部分がレンダリングされ
る。
くの色バッファから初期化され、集積された色および不
透明度が遠い色バッファと混合されて、2つのクリップ
表面の間にあるボリュームの部分がレンダリングされ
る。
【0040】2つのクリップ表面および色バッファは次
に結合されて、新たなクリップ表面と新たな色バッファ
が結合された結果から生成される。結合されたクリップ
表面と次のクリップ表面との間にあるボリュームの部分
は、その前の部分と同様の方法でレンダリングされる。
これらのステップは、色と不透明度が同時に部分に集積
されボリューム全体がレンダリングされ、部分の間に導
かれた多様な色バッファの色および不透明度と結合され
るまで繰り返される。
に結合されて、新たなクリップ表面と新たな色バッファ
が結合された結果から生成される。結合されたクリップ
表面と次のクリップ表面との間にあるボリュームの部分
は、その前の部分と同様の方法でレンダリングされる。
これらのステップは、色と不透明度が同時に部分に集積
されボリューム全体がレンダリングされ、部分の間に導
かれた多様な色バッファの色および不透明度と結合され
るまで繰り返される。
【0041】各色および深度バッファは、ボリュームに
埋め込まれたオブジェクトの表面の一部または全体を表
す。表面の間にボリュームをレンダリングし、各表面の
色および不透明度を混合することにより、埋め込みオブ
ジェクトを有するボリュームを含む場面が達成できる。
更に、埋め込みオブジェクトの表面は半透明でもよく、
それによってボリュームの部分および他の遮断されたオ
ブジェクトがこれらの表面を通って現れることが可能に
なる。これらの手段により、複雑な不透明および半透明
の構造を表示することができる。
埋め込まれたオブジェクトの表面の一部または全体を表
す。表面の間にボリュームをレンダリングし、各表面の
色および不透明度を混合することにより、埋め込みオブ
ジェクトを有するボリュームを含む場面が達成できる。
更に、埋め込みオブジェクトの表面は半透明でもよく、
それによってボリュームの部分および他の遮断されたオ
ブジェクトがこれらの表面を通って現れることが可能に
なる。これらの手段により、複雑な不透明および半透明
の構造を表示することができる。
【0042】(システム構造)図1に、この発明に使用
できる一般的な環境を示した。システム100は、二次
元(2D)画像平面上に三次元(3D)オブジェクトす
なわちモデルをレンダリングする。システム100は、
メモリバス130によってグラフィックメモリ110に
接続されたグラフィックプロセッサ120を含む。グラ
フィックプロセッサ120は汎用バス150によってコ
ンピュータシステム(CPU)140に接続されてい
る。CPU140は入出力装置160および170に接
続されている。入力装置はグラフィックデータの発生源
となることができ、そのデータを操作するよう命令す
る。出力装置は表示装置を含むことができる。
できる一般的な環境を示した。システム100は、二次
元(2D)画像平面上に三次元(3D)オブジェクトす
なわちモデルをレンダリングする。システム100は、
メモリバス130によってグラフィックメモリ110に
接続されたグラフィックプロセッサ120を含む。グラ
フィックプロセッサ120は汎用バス150によってコ
ンピュータシステム(CPU)140に接続されてい
る。CPU140は入出力装置160および170に接
続されている。入力装置はグラフィックデータの発生源
となることができ、そのデータを操作するよう命令す
る。出力装置は表示装置を含むことができる。
【0043】グラフィックメモリ110は、多様な種類
のグラフィックデータを記憶するように配置することが
できる。例えば、メモリ110は、ボクセルデータとピ
クセル(色)データをそれぞれ記憶するように、ボクセ
ルメモリ112および色バッファ(C)114を含むこ
とができる。色バッファは画像バッファまたはピクセル
メモリとしても知られている。メモリ110の部分は、
使用される特定のレンダリング手法に応じて、他の目的
用に配置することができる点に注意すべきである。例え
ば、ボリュームがその時点でセクションをレンダリング
するようになっている場合には、セクションメモリを使
うことができる。
のグラフィックデータを記憶するように配置することが
できる。例えば、メモリ110は、ボクセルデータとピ
クセル(色)データをそれぞれ記憶するように、ボクセ
ルメモリ112および色バッファ(C)114を含むこ
とができる。色バッファは画像バッファまたはピクセル
メモリとしても知られている。メモリ110の部分は、
使用される特定のレンダリング手法に応じて、他の目的
用に配置することができる点に注意すべきである。例え
ば、ボリュームがその時点でセクションをレンダリング
するようになっている場合には、セクションメモリを使
うことができる。
【0044】CPU140は従来のものである。グラフ
ィックデータおよび制御命令は入力装置160を介して
与えられ、レンダリングされた画像は出力装置170に
与えられる。入力データはリアルなオブジェクトすなわ
ちモデルを表すことができる。入力データは顕微鏡、カ
メラ、望遠鏡、スキャナー、変換器などによって得るこ
とができ、例えば物理的システムのようなモデルに統合
的に生成することができる。
ィックデータおよび制御命令は入力装置160を介して
与えられ、レンダリングされた画像は出力装置170に
与えられる。入力データはリアルなオブジェクトすなわ
ちモデルを表すことができる。入力データは顕微鏡、カ
メラ、望遠鏡、スキャナー、変換器などによって得るこ
とができ、例えば物理的システムのようなモデルに統合
的に生成することができる。
【0045】入力データ(ボクセル)の出力データ(ピ
クセル)への変換は、以下で詳述するグラフィックプロ
セッサ120によって行われる。プロセッサの機能性
も、通常、非常に遅いスピードではあるが、ソフトウェ
ア工程によって達成できるものと理解すべきである。
クセル)への変換は、以下で詳述するグラフィックプロ
セッサ120によって行われる。プロセッサの機能性
も、通常、非常に遅いスピードではあるが、ソフトウェ
ア工程によって達成できるものと理解すべきである。
【0046】(多重深度バッファ)この発明によれば、
メモリ110の部分に、多重深度バッファ116、例え
ば近い(開始)深度バッファ(Zn)118および遠い
(終了)深度バッファ(Zf)119が配置される。多
重深度バッファ116の使用および利点を以下で詳細に
説明する。三次元のグラフィックオブジェクトをレンダ
リングするために、少なくとも2つの深度バッファを使
用する。実際に深度バッファは、レンダリングするオブ
ジェクトの部分を選択するのに使用される「クリップ:
clip」表面を定める。前から後ろへのレンダリングにつ
いては、近い深度バッファは開始クリップ表面を定め、
遠い深度バッファは終了クリップ表面を定める。更に深
度バッファを付加することにより、追加的なクリップ表
面を定めることができることを理解すべきである。
メモリ110の部分に、多重深度バッファ116、例え
ば近い(開始)深度バッファ(Zn)118および遠い
(終了)深度バッファ(Zf)119が配置される。多
重深度バッファ116の使用および利点を以下で詳細に
説明する。三次元のグラフィックオブジェクトをレンダ
リングするために、少なくとも2つの深度バッファを使
用する。実際に深度バッファは、レンダリングするオブ
ジェクトの部分を選択するのに使用される「クリップ:
clip」表面を定める。前から後ろへのレンダリングにつ
いては、近い深度バッファは開始クリップ表面を定め、
遠い深度バッファは終了クリップ表面を定める。更に深
度バッファを付加することにより、追加的なクリップ表
面を定めることができることを理解すべきである。
【0047】(システム操作)図2を参照して、グラフ
ィックプロセッサまたは工程120の一般的操作を説明
する。高性能を達成するためにはハードウェアの実施が
好ましいが、上記のように、グラフィックプロセッサ1
20の機能性はソフトウェア工程によっても達成でき
る。事実、一つの特徴として、グラフィックプロセッサ
120を、パラレルデータ処理パイプラインを使って単
一の半導体チップで実施している。
ィックプロセッサまたは工程120の一般的操作を説明
する。高性能を達成するためにはハードウェアの実施が
好ましいが、上記のように、グラフィックプロセッサ1
20の機能性はソフトウェア工程によっても達成でき
る。事実、一つの特徴として、グラフィックプロセッサ
120を、パラレルデータ処理パイプラインを使って単
一の半導体チップで実施している。
【0048】図2に示すように、パイプラインプロセッ
サすなわち工程200は次のように進行する。ボクセル
201はまず切り取られて(205)、視野またはビュ
ーフラスタム(view frustum)の外にあるボリュームの
部分を除去する。残りのサンプル値206は区分されて
補間され、傾きが推測される(210)。区分、補間お
よび傾き推測のサブステップが行われる順序は、様々な
アプリケーションに対して変化してもよい。
サすなわち工程200は次のように進行する。ボクセル
201はまず切り取られて(205)、視野またはビュ
ーフラスタム(view frustum)の外にあるボリュームの
部分を除去する。残りのサンプル値206は区分されて
補間され、傾きが推測される(210)。区分、補間お
よび傾き推測のサブステップが行われる順序は、様々な
アプリケーションに対して変化してもよい。
【0049】何れの場合においても、ステップ210で
はサンプル値に色(RGB)および不透明度(α)値2
11を、各サンプルポイントにおける傾きの推測と共に
割り当てる。これらの結果得られるRGBα値211は
次に照らされて(220)、強調や影が取り入れられ、
それによって、より現実的な3Dオブジェクトの画像を
提供する。照らすステップ220は反射率マップを利用
してもよい。
はサンプル値に色(RGB)および不透明度(α)値2
11を、各サンプルポイントにおける傾きの推測と共に
割り当てる。これらの結果得られるRGBα値211は
次に照らされて(220)、強調や影が取り入れられ、
それによって、より現実的な3Dオブジェクトの画像を
提供する。照らすステップ220は反射率マップを利用
してもよい。
【0050】最後に、照らされたサンプル221はステ
ップ230で合成される。このステップもオプションの
追加的な切り取りステップを含んでもよい。合成とは、
光線に沿ったサンプルポイントでの色および不透明度値
の集積および混合のステップと、この情報を2D画像の
ピクセル231に割り当てるステップを言う。
ップ230で合成される。このステップもオプションの
追加的な切り取りステップを含んでもよい。合成とは、
光線に沿ったサンプルポイントでの色および不透明度値
の集積および混合のステップと、この情報を2D画像の
ピクセル231に割り当てるステップを言う。
【0051】(多重深度バッファへの導入)図3に示す
ように、図1の各深度バッファ118および119は、
対応する「クリップ:clip」表面または形状を定める。
近い深度バッファ118は近い、すなわち開始クリップ
表面318を定め、遠い深度バッファ119は遠い、す
なわち終了クリップ表面319を定める。オブジェクト
は、立体として示される不透明部分310と影を示す半
透明部分320を含む。近いクリップ表面および遠いク
リップ表面は、ボリューム300がどのようにレンダリ
ングされるかを定める。
ように、図1の各深度バッファ118および119は、
対応する「クリップ:clip」表面または形状を定める。
近い深度バッファ118は近い、すなわち開始クリップ
表面318を定め、遠い深度バッファ119は遠い、す
なわち終了クリップ表面319を定める。オブジェクト
は、立体として示される不透明部分310と影を示す半
透明部分320を含む。近いクリップ表面および遠いク
リップ表面は、ボリューム300がどのようにレンダリ
ングされるかを定める。
【0052】利点として、この発明は、例えば浸透する
オブジェクトなどの徹底的に異なった特性や任意の幾何
学的形状を有するオブジェクトの部分のレンダリングを
可能にする。ボリュームの部分は、レンダリングから除
外されるように、切り取り出すことができる。更に、こ
の発明は多角形レンダリング技術とボリュームレンダリ
ング技術とを統合することを可能にする。
オブジェクトなどの徹底的に異なった特性や任意の幾何
学的形状を有するオブジェクトの部分のレンダリングを
可能にする。ボリュームの部分は、レンダリングから除
外されるように、切り取り出すことができる。更に、こ
の発明は多角形レンダリング技術とボリュームレンダリ
ング技術とを統合することを可能にする。
【0053】(一般的方法)図4は、この発明による一
般的なボリュームレンダリング方法のステップを示して
いる。ステップ410は、開始クリップ表面と終了クリ
ップ表面を定めている。開始クリップ表面と終了クリッ
プ表面とに対して所定の関係を有するボリュームの部分
は、ステップ420で処理される。ステップ430は、
開始クリップ表面と終了クリップ表面を結合することに
より、次の開始クリップ表面を生成する。ステップ43
0は、次の終了クリップ表面も生成する。ステップ44
0は、停止条件が満たされるまで、処理を繰り返し、次
の開始クリップ表面と終了クリップ表面に関して、生成
する。
般的なボリュームレンダリング方法のステップを示して
いる。ステップ410は、開始クリップ表面と終了クリ
ップ表面を定めている。開始クリップ表面と終了クリッ
プ表面とに対して所定の関係を有するボリュームの部分
は、ステップ420で処理される。ステップ430は、
開始クリップ表面と終了クリップ表面を結合することに
より、次の開始クリップ表面を生成する。ステップ43
0は、次の終了クリップ表面も生成する。ステップ44
0は、停止条件が満たされるまで、処理を繰り返し、次
の開始クリップ表面と終了クリップ表面に関して、生成
する。
【0054】(二重比較)図5は、ボリュームの部分を
処理している間の、その部分と2つのクリップ表面との
間の関係を判断する手段を示している。この手段は、2
つのリレーショナルコンパレータ510および520を
含む。これらのコンパレータは、ボクセルメモリ112
に記憶された各ボリュームサンプルの深度を、深度バッ
ファ118および119の深度値と比較するためのもの
である。両方のテストを通った場合には(AND53
0)、サンプルをレンダリングし、通らなかった場合に
はサンプルを捨てる。何れかのテストを通った場合にサ
ンプルをレンダリングするようなモードを提供すること
もできる(OR540)。モード(AND/OR)はマ
ルチプレクサ550によって選択することができる。所
定のリレーショナル演算子は、未満、等しい、より大き
いまたはそれらの組み合わせ、あるいは常にレンダリン
グするまたは常にレンダリングしないとすることができ
る。
処理している間の、その部分と2つのクリップ表面との
間の関係を判断する手段を示している。この手段は、2
つのリレーショナルコンパレータ510および520を
含む。これらのコンパレータは、ボクセルメモリ112
に記憶された各ボリュームサンプルの深度を、深度バッ
ファ118および119の深度値と比較するためのもの
である。両方のテストを通った場合には(AND53
0)、サンプルをレンダリングし、通らなかった場合に
はサンプルを捨てる。何れかのテストを通った場合にサ
ンプルをレンダリングするようなモードを提供すること
もできる(OR540)。モード(AND/OR)はマ
ルチプレクサ550によって選択することができる。所
定のリレーショナル演算子は、未満、等しい、より大き
いまたはそれらの組み合わせ、あるいは常にレンダリン
グするまたは常にレンダリングしないとすることができ
る。
【0055】多重深度バッファを有することは、例えば
従来のテクスチャベースのボリュームレンダリングで達
成できるよりも遥かに複雑な、多角形幾何図形とボリュ
ームオブジェクトの組み合わせた場面をレンダリングす
る多くの機会を作り出す。更に、実時間でレンダリング
することを可能にする。この方法を、特定のサンプルの
アプリケーションに関して詳細に説明する。他のアプリ
ケーション用の変形は以下に記載する。
従来のテクスチャベースのボリュームレンダリングで達
成できるよりも遥かに複雑な、多角形幾何図形とボリュ
ームオブジェクトの組み合わせた場面をレンダリングす
る多くの機会を作り出す。更に、実時間でレンダリング
することを可能にする。この方法を、特定のサンプルの
アプリケーションに関して詳細に説明する。他のアプリ
ケーション用の変形は以下に記載する。
【0056】(多重深度バッファにおける深度情報の処
理)ステップ610は近い色バッファ(Cn)を透明
色、例えば透明な黒(RGBα=0)に初期化する。ス
テップ620は、近い(開始)深度バッファ(Zn)を
近いクリップ表面、すなわちビューフラスタム(view f
rustum)の前平面になるものに初期化する。
理)ステップ610は近い色バッファ(Cn)を透明
色、例えば透明な黒(RGBα=0)に初期化する。ス
テップ620は、近い(開始)深度バッファ(Zn)を
近いクリップ表面、すなわちビューフラスタム(view f
rustum)の前平面になるものに初期化する。
【0057】クリップ表面は多くの方法で定めることが
できる。例えば、オープンGLでは、アプリケーション
はクリップ表面を定めるために、多角形を層の中でソー
トすることがある。他の方法では、クリップ表面はボリ
ュームに定められている。不透明度または傾きのしきい
値は、埋め込みオブジェクトの表面を見つけるのに使用
することができる。
できる。例えば、オープンGLでは、アプリケーション
はクリップ表面を定めるために、多角形を層の中でソー
トすることがある。他の方法では、クリップ表面はボリ
ュームに定められている。不透明度または傾きのしきい
値は、埋め込みオブジェクトの表面を見つけるのに使用
することができる。
【0058】次に、各クリップ表面(630)につい
て、ステップ640〜643を行う。遠い色バッファ
(Cf)はクリップ表面に初期化される。遠い深度バッ
ファ(Zf)を遠いクリップ表面の深度に初期化する。
近いクリップ表面よりも大きいかそれと等しい、および
遠いクリップ表面よりも小さい深度値を有するサンプル
のみを選択することにより、ボリュームの部分をレンダ
リングする。近い色バッファおよび深度バッファで結果
(集積されたRGBα値)を結合し、次のクリップ表面
について繰り返す。
て、ステップ640〜643を行う。遠い色バッファ
(Cf)はクリップ表面に初期化される。遠い深度バッ
ファ(Zf)を遠いクリップ表面の深度に初期化する。
近いクリップ表面よりも大きいかそれと等しい、および
遠いクリップ表面よりも小さい深度値を有するサンプル
のみを選択することにより、ボリュームの部分をレンダ
リングする。近い色バッファおよび深度バッファで結果
(集積されたRGBα値)を結合し、次のクリップ表面
について繰り返す。
【0059】停止条件が満たされた場合に、例えば、ボ
リューム全体がレンダリングされた場合に、ステップ6
50は近い色バッファを画像に書き出す。各クリップ表
面は画像平面全体を覆う必要はないことに注意すべきで
ある。クリップ表面によって覆われていない各ピクセル
については、遠いクリップ表面の対応する深度値は、近
いクリップ表面の深度値よりも小さい値に設定すべきで
ある。この技術によって、特定のクリップ表面によって
覆われていないボリュームの部分は、レンダリングの間
に選択されない。
リューム全体がレンダリングされた場合に、ステップ6
50は近い色バッファを画像に書き出す。各クリップ表
面は画像平面全体を覆う必要はないことに注意すべきで
ある。クリップ表面によって覆われていない各ピクセル
については、遠いクリップ表面の対応する深度値は、近
いクリップ表面の深度値よりも小さい値に設定すべきで
ある。この技術によって、特定のクリップ表面によって
覆われていないボリュームの部分は、レンダリングの間
に選択されない。
【0060】一般的な方法の多数のアプリケーションを
ここで説明する。例えば、2つの深度バッファを備えた
この発明は、任意の3D表面に対してボリュームを切り
取ることを可能にしている。また、マルチパスアルゴリ
ズムを使って、複雑な半透明の幾何図形を任意にボリュ
ームに埋め込むことも可能にしている。例えば、ボリュ
ームの表面から出るところのような、多重深度バッファ
に書き込む能力を含めることにより、同じ場面に多重浸
透ボリュームオブジェクト(multiple interpenetratin
g volume object)をレンダリングすることが可能にな
る。これは、例えば心臓と肺を別のオブジェクトとして
ではあるが、それらが互いに対して適切な並置状態にあ
るようにレンダリングする場合に役立つ。
ここで説明する。例えば、2つの深度バッファを備えた
この発明は、任意の3D表面に対してボリュームを切り
取ることを可能にしている。また、マルチパスアルゴリ
ズムを使って、複雑な半透明の幾何図形を任意にボリュ
ームに埋め込むことも可能にしている。例えば、ボリュ
ームの表面から出るところのような、多重深度バッファ
に書き込む能力を含めることにより、同じ場面に多重浸
透ボリュームオブジェクト(multiple interpenetratin
g volume object)をレンダリングすることが可能にな
る。これは、例えば心臓と肺を別のオブジェクトとして
ではあるが、それらが互いに対して適切な並置状態にあ
るようにレンダリングする場合に役立つ。
【0061】(任意の表面へのクリッピング)ZnとZf
をそれぞれ2つの深度バッファ118および119とす
る。次のようにある3D表面に任意に切り取ることがで
きる。前に面する多角形をZnに、後ろに面する多角形
をZfにレンダリングする。次に、深度モードを選択し
て、Znに関するより大きいテストとZfに関する未満テ
ストの両方(論理AND)を通るサンプルをレンダリン
グする。これは、図5の回路で行うことができる。その
結果、サンプルポイントは、それらがZnとZfの間にあ
る場合にのみレンダリングされる。各光線はそのz座標
がZfに達した時点で停止できることに注意されたい。
をそれぞれ2つの深度バッファ118および119とす
る。次のようにある3D表面に任意に切り取ることがで
きる。前に面する多角形をZnに、後ろに面する多角形
をZfにレンダリングする。次に、深度モードを選択し
て、Znに関するより大きいテストとZfに関する未満テ
ストの両方(論理AND)を通るサンプルをレンダリン
グする。これは、図5の回路で行うことができる。その
結果、サンプルポイントは、それらがZnとZfの間にあ
る場合にのみレンダリングされる。各光線はそのz座標
がZfに達した時点で停止できることに注意されたい。
【0062】任意の3D表面をボリューム300の内部
から切り取ることもできる。上記のように、前に面する
多角形をZnに、後ろに面する多角形をZfにレンダリン
グする。次に深度モードを選択して、Znに関する未満
テストまたはZfに関するより大きいテストの何れか
(論理OR)を通るサンプルをレンダリングする。その
結果、サンプルポイントは、それらがZfおよびZn外に
あるときにのみレンダリングされる。
から切り取ることもできる。上記のように、前に面する
多角形をZnに、後ろに面する多角形をZfにレンダリン
グする。次に深度モードを選択して、Znに関する未満
テストまたはZfに関するより大きいテストの何れか
(論理OR)を通るサンプルをレンダリングする。その
結果、サンプルポイントは、それらがZfおよびZn外に
あるときにのみレンダリングされる。
【0063】深度比較テストは、パイプライン200の
始めと合成段階230で行うことができることに注意さ
れたい。これは、パイプライン200の後の深度テスト
によって従属サンプルが切り取り出されるボクセルをス
キップすることを可能にする。ボクセルをスキップする
ことはメモリへのアクセスを減少させる。
始めと合成段階230で行うことができることに注意さ
れたい。これは、パイプライン200の後の深度テスト
によって従属サンプルが切り取り出されるボクセルをス
キップすることを可能にする。ボクセルをスキップする
ことはメモリへのアクセスを減少させる。
【0064】(多層半透明幾何図形の埋め込み)任意の
半透明の幾何図形をボリュームに埋め込むために、ま
ず、各層において、層毎でピクセル毎に1つの深度値の
みがあるように、幾何図形を層に分割することが必要で
ある。必要な層の数は、わずか半透明幾何図形の最悪な
ケースの深度の複雑さに1をプラスしただけである。通
常は、この数は少ない。後ろの層は不透明な場面背景を
含む。以下で、任意の幾何図形から層を生成する方法を
説明する。
半透明の幾何図形をボリュームに埋め込むために、ま
ず、各層において、層毎でピクセル毎に1つの深度値の
みがあるように、幾何図形を層に分割することが必要で
ある。必要な層の数は、わずか半透明幾何図形の最悪な
ケースの深度の複雑さに1をプラスしただけである。通
常は、この数は少ない。後ろの層は不透明な場面背景を
含む。以下で、任意の幾何図形から層を生成する方法を
説明する。
【0065】一組の深度バッファZGnおよびそれに対応
する画像または色バッファRGBα Gnがある。これらは
共に、深度画像と呼ばれる。Z1とZ2を2つの深度バッ
ファにさせ、C1とC2を2つの色バッファにさせる。以
下で分かるように、C1はベース平面である。ここで、
C1をRGB=0にクリアし、Z1をフロントクリップ表
面、すなわちビューフラスタム(view frustum)のフロ
ントクリップ表面か、より一般的なクリップ表面の何れ
かに設定する。ここでZ2←ZG0を設定し、C2←RGB
G0を設定する。アンダーを使って前から後ろのボリュー
ムをC1にレンダリングし、Z1とZ2の間にないサンプ
ルを捨てる。これは、ビューフラスタム(view frustu
m)内にあり、ZG0の前にあるサンプルをレンダリング
する。このレンダリングが完了すると、アンダーを使っ
てC1をC2と混合し、その結果をC 2に残す。
する画像または色バッファRGBα Gnがある。これらは
共に、深度画像と呼ばれる。Z1とZ2を2つの深度バッ
ファにさせ、C1とC2を2つの色バッファにさせる。以
下で分かるように、C1はベース平面である。ここで、
C1をRGB=0にクリアし、Z1をフロントクリップ表
面、すなわちビューフラスタム(view frustum)のフロ
ントクリップ表面か、より一般的なクリップ表面の何れ
かに設定する。ここでZ2←ZG0を設定し、C2←RGB
G0を設定する。アンダーを使って前から後ろのボリュー
ムをC1にレンダリングし、Z1とZ2の間にないサンプ
ルを捨てる。これは、ビューフラスタム(view frustu
m)内にあり、ZG0の前にあるサンプルをレンダリング
する。このレンダリングが完了すると、アンダーを使っ
てC1をC2と混合し、その結果をC 2に残す。
【0066】Z1←Z2とC1←C2を設定する。次に、Z
2←ZG1とC2←RGBαG1を設定し、ボリュームを再び
レンダリングする。これはZG0とZG1の間にあるサンプ
ルをレンダリングし、それらを以前のサンプルと幾何図
形の最初の層の下で混合する。各幾何図形の層について
これを繰り返す。これはボリュームにおけるその場所に
おいて順番に各幾何図形の層を混合する。最後の幾何図
形の層は背景であり、不透明でなければならない。
2←ZG1とC2←RGBαG1を設定し、ボリュームを再び
レンダリングする。これはZG0とZG1の間にあるサンプ
ルをレンダリングし、それらを以前のサンプルと幾何図
形の最初の層の下で混合する。各幾何図形の層について
これを繰り返す。これはボリュームにおけるその場所に
おいて順番に各幾何図形の層を混合する。最後の幾何図
形の層は背景であり、不透明でなければならない。
【0067】このマルチパス工程は、単に幾何図形をレ
ンダリングしボリュームをレンダリングするのとほぼ同
じくらい速くなるように実行できる。光線停止とスペー
スリーピングでの前から後ろへのレンダリングを使用す
るのであれば、近い深度バッファの正面にある最小数の
サンプルを処理する。
ンダリングしボリュームをレンダリングするのとほぼ同
じくらい速くなるように実行できる。光線停止とスペー
スリーピングでの前から後ろへのレンダリングを使用す
るのであれば、近い深度バッファの正面にある最小数の
サンプルを処理する。
【0068】この工程は、上記の切り取り工程と同様
に、各サンプルが深度バッファに指定された深度値の
前、後ろまたはそれと一致するの何れかである単一のポ
イントであると推測していることに注意されたい。例え
ば「ゼリーのキューブ」や他の何かの形状のような区域
として各サンプルを見て、あたかもサンプル区域を二分
するかのように深度値を扱うことを可能にする。これ
は、幾何図形の切り取り境界で、ある程度のアンチエイ
リアシング(anti-aliasing)を提供することができ
る。
に、各サンプルが深度バッファに指定された深度値の
前、後ろまたはそれと一致するの何れかである単一のポ
イントであると推測していることに注意されたい。例え
ば「ゼリーのキューブ」や他の何かの形状のような区域
として各サンプルを見て、あたかもサンプル区域を二分
するかのように深度値を扱うことを可能にする。これ
は、幾何図形の切り取り境界で、ある程度のアンチエイ
リアシング(anti-aliasing)を提供することができ
る。
【0069】(同じ場面における多重ボリュームオブジ
ェクト)多重深度バッファへ書き込む能力を付加するこ
とにより、同じ場面に多重浸透ボリュームオブジェクト
をレンダリングすることができる。しかし、2つのボリ
ュームオブジェクトは、同じボクセル位置に関して透明
でない値を有していないものと推定している。すなわ
ち、少量の重なり合いは以下に説明するように正しく扱
われるが、ボリュームは他のボリュームの空きスペース
でのみ互いに浸透してもよい。
ェクト)多重深度バッファへ書き込む能力を付加するこ
とにより、同じ場面に多重浸透ボリュームオブジェクト
をレンダリングすることができる。しかし、2つのボリ
ュームオブジェクトは、同じボクセル位置に関して透明
でない値を有していないものと推定している。すなわ
ち、少量の重なり合いは以下に説明するように正しく扱
われるが、ボリュームは他のボリュームの空きスペース
でのみ互いに浸透してもよい。
【0070】これは、事前にボリュームオブジェクトを
ソートすることを要求しないマルチパス工程で行う。
ソートすることを要求しないマルチパス工程で行う。
【0071】まず、上記のようにZ1をフロントクリッ
プ表面に初期化し、C1をRGBα=0にクリアする。
Z2を全てのボリュームの後ろに、C2を背景色に初期化
する。次に、以下のように、ある順序でボリュームオブ
ジェクトのそれぞれをレンダリングする。
プ表面に初期化し、C1をRGBα=0にクリアする。
Z2を全てのボリュームの後ろに、C2を背景色に初期化
する。次に、以下のように、ある順序でボリュームオブ
ジェクトのそれぞれをレンダリングする。
【0072】Z1とZ2の間にあるサンプルのみを受け入
れて、アンダーを使って光線に沿ってサンプルを混合す
るが、結果を合成バッファに維持する。傾きまたはαし
きい値テストを使って、各光線に沿って各ボリュームの
バック表面を検出する。光線に沿ったサンプルポイント
で表面が検出された場合には常に、その光線を停止す
る。そのサンプルのz座標をZ2に対してテストし、そ
れがZ2における対応する深度値未満であれば、Z2にお
ける深度値をz座標と置き換えて、C2における色彩値
を合成バッファからその光線に対して集積された色と置
き換える。このように、全てのボリュームオブジェクト
がレンダリングされるまで、次のボリュームオブジェク
トについても繰り返す。最後に、C1をC2と混合して、
結果をC2に残す。
れて、アンダーを使って光線に沿ってサンプルを混合す
るが、結果を合成バッファに維持する。傾きまたはαし
きい値テストを使って、各光線に沿って各ボリュームの
バック表面を検出する。光線に沿ったサンプルポイント
で表面が検出された場合には常に、その光線を停止す
る。そのサンプルのz座標をZ2に対してテストし、そ
れがZ2における対応する深度値未満であれば、Z2にお
ける深度値をz座標と置き換えて、C2における色彩値
を合成バッファからその光線に対して集積された色と置
き換える。このように、全てのボリュームオブジェクト
がレンダリングされるまで、次のボリュームオブジェク
トについても繰り返す。最後に、C1をC2と混合して、
結果をC2に残す。
【0073】これは最初のパスの終わりを示す。結果と
して得られるZ2とC2は、結合された場面の最も前の後
ろに面する表面を反映する。何れの光線についてもこの
ようであって、Z2におけるその深度値は、観察者に最
も近いオブジェクトの後ろからその光線が出る点であ
り、C2はその点までの集積された色である。全てのオ
ブジェクトをレンダリングすることにより、観察者に最
も近い各バック表面の部分は抽出されて、C2およびZ2
で捕らえられる。
して得られるZ2とC2は、結合された場面の最も前の後
ろに面する表面を反映する。何れの光線についてもこの
ようであって、Z2におけるその深度値は、観察者に最
も近いオブジェクトの後ろからその光線が出る点であ
り、C2はその点までの集積された色である。全てのオ
ブジェクトをレンダリングすることにより、観察者に最
も近い各バック表面の部分は抽出されて、C2およびZ2
で捕らえられる。
【0074】次のパスについては、Z1←Z2とC1←C2
を設定する。次に、Z2を全てのボリュームの後ろに、
C2を背景色に設定する。上記のステップを各ボリュー
ムオブジェクトについて再び繰り返す。Z1の裏のサン
プルのみを見る。このパスは次の後ろに面する表面を抽
出して、それをZ2およびC2で捕らえる。次にその結果
を以前の集積されたC1と混合する。
を設定する。次に、Z2を全てのボリュームの後ろに、
C2を背景色に設定する。上記のステップを各ボリュー
ムオブジェクトについて再び繰り返す。Z1の裏のサン
プルのみを見る。このパスは次の後ろに面する表面を抽
出して、それをZ2およびC2で捕らえる。次にその結果
を以前の集積されたC1と混合する。
【0075】これ以上、C2およびZ2に集積されるもの
がなくなるまで、これらのパスを繰り返す。結合された
場面は、レンダリングの順序および半透明性に関わら
ず、互いに対して適切な並置状態で全てのボリュームを
キャプチャしている。例えば、この方法を使用して、心
臓と肺を個別のオブジェクトとしてレンダリングして、
見る角度がどうであっても、場面の正しい位置に現れる
ようにさせることができる。レンダリングが再度サンプ
リングする能力も含むのであれば、ボリュームオブジェ
クトは互いに登録される必要はなく、同じボクセル間隔
を有する必要もない。
がなくなるまで、これらのパスを繰り返す。結合された
場面は、レンダリングの順序および半透明性に関わら
ず、互いに対して適切な並置状態で全てのボリュームを
キャプチャしている。例えば、この方法を使用して、心
臓と肺を個別のオブジェクトとしてレンダリングして、
見る角度がどうであっても、場面の正しい位置に現れる
ようにさせることができる。レンダリングが再度サンプ
リングする能力も含むのであれば、ボリュームオブジェ
クトは互いに登録される必要はなく、同じボクセル間隔
を有する必要もない。
【0076】上記の工程は、2つのボリュームの透明で
ない部分の間に幾分重なりがあるものの、正しい結果を
概算する。光線に沿って、この工程はボリューム内の各
隣接する透明でない領域を、透明でない領域の後ろの表
面で単一のRGBα値に合成し、次に、これらの中間値
をソートして合成する。従って、2つのボリュームが透
明でない領域の若干の重なりを有している場合には、重
なるボクセルは互いを適切に遮断しないが、最終画像で
共に表示されるであろう。
ない部分の間に幾分重なりがあるものの、正しい結果を
概算する。光線に沿って、この工程はボリューム内の各
隣接する透明でない領域を、透明でない領域の後ろの表
面で単一のRGBα値に合成し、次に、これらの中間値
をソートして合成する。従って、2つのボリュームが透
明でない領域の若干の重なりを有している場合には、重
なるボクセルは互いを適切に遮断しないが、最終画像で
共に表示されるであろう。
【0077】この発明を利用できる分野は、医療画像、
構造エンジニアリング、地質学、天体物理学、気象モデ
リングなど多数ある。特別な用語や例を用いてきた。こ
の発明の精神および範囲の中で、様々な他の応用や変更
を行えることが理解されるであろう。従って、この発明
の真の精神および範囲の中に入るような変形や変更の全
てを包含することが、添付の特許請求の範囲の目的であ
る。
構造エンジニアリング、地質学、天体物理学、気象モデ
リングなど多数ある。特別な用語や例を用いてきた。こ
の発明の精神および範囲の中で、様々な他の応用や変更
を行えることが理解されるであろう。従って、この発明
の真の精神および範囲の中に入るような変形や変更の全
てを包含することが、添付の特許請求の範囲の目的であ
る。
【0078】
【発明の効果】以上のように、この発明によれば、複雑
な不透明な内部構造と半透明な内部構造を含む容積測定
のオブジェクトとモデルをレンダリングすることができ
る。
な不透明な内部構造と半透明な内部構造を含む容積測定
のオブジェクトとモデルをレンダリングすることができ
る。
【図1】 この発明を用いたレンダリングシステムを表
すブロック図である。
すブロック図である。
【図2】 図1のシステムが用いる工程を表す流れ図で
ある。
ある。
【図3】 2つの深度表面の間のボリュームすなわちモ
デルを表す線図である。
デルを表す線図である。
【図4】 クリップ表面の間のボリュームの部分をレン
ダリングする工程を表す流れ図である。
ダリングする工程を表す流れ図である。
【図5】 合成の間にボリュームサンプルを選択するか
捨てる二重コンパレータ回路を表す概略図である。
捨てる二重コンパレータ回路を表す概略図である。
【図6】 この発明による工程を表す流れ図である。
100 システム、112 ボクセルメモリ、114
色バッファ、116 多重深度バッファ、118 近い
深度バッファ、119 遠い深度バッファ、120 グ
ラフィックプロセッサ、130 メモリバス、140
CPU、150 汎用バス、160 入力装置、170
出力装置、200 パイプライン、201 ボクセ
ル、205 切り取りステップ、206 サンプル値、
210 傾き推測ステップ、211 RGBα値、22
0 照らすステップ、221 照らされたサンプル、2
30 合成ステップ、231 ピクセル、310 不透
明部分、318 開始クリップ表面、319 終了クリ
ップ表面、320 半透明部分、510 リレーショナ
ルコンパレータ、520 リレーショナルコンパレー
タ、550 マルチプレクサ。
色バッファ、116 多重深度バッファ、118 近い
深度バッファ、119 遠い深度バッファ、120 グ
ラフィックプロセッサ、130 メモリバス、140
CPU、150 汎用バス、160 入力装置、170
出力装置、200 パイプライン、201 ボクセ
ル、205 切り取りステップ、206 サンプル値、
210 傾き推測ステップ、211 RGBα値、22
0 照らすステップ、221 照らされたサンプル、2
30 合成ステップ、231 ピクセル、310 不透
明部分、318 開始クリップ表面、319 終了クリ
ップ表面、320 半透明部分、510 リレーショナ
ルコンパレータ、520 リレーショナルコンパレー
タ、550 マルチプレクサ。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 597067574 201 BROADWAY, CAMBRI DGE, MASSACHUSETTS 02139, U.S.A. (72)発明者 ヒュー・シー・ラウア アメリカ合衆国、マサチューセッツ州、コ ンコード、ボーダー・ロード 69 (72)発明者 ラリー・ディー・ジーラー アメリカ合衆国、マサチューセッツ州、ボ イルストン、リンデン・ストリート 198
Claims (17)
- 【請求項1】 ボリュームを画像平面上にレンダリング
する方法であって、 開始クリップ表面と終了クリップ表面とを定めるステッ
プと、 上記開始クリップ表面と終了クリップ表面に対して所定
の関係を有するボリュームの部分を処理するステップ
と、 上記処理の結果および上記開始クリップ表面と上記終了
クリップ表面とを結合することから次の開始クリップ表
面を生成すると共に、次の終了クリップ表面を生成する
ステップと、 停止条件が満たされるまで、次の開始クリップ表面およ
び終了クリップ表面に関する処理と生成を繰り返すステ
ップとを含むボリュームを画像平面上にレンダリングす
る方法。 - 【請求項2】 請求項1に記載のボリュームを画像平面
上にレンダリングする方法において、各クリップ表面
は、クリップ深度値として関連する深度バッファに記憶
されることを特徴とするボリュームを画像平面上にレン
ダリングする方法。 - 【請求項3】 請求項2に記載のボリュームを画像平面
上にレンダリングする方法において、上記ボリューム
は、複数のボクセルを含み、ボクセルを補間してボリュ
ームサンプルを生成し、各ボリュームサンプルは関連し
たサンプル深度値を有することを特徴とするボリューム
を画像平面上にレンダリングする方法。 - 【請求項4】 請求項3に記載のボリュームを画像平面
上にレンダリングする方法において、上記所定の関係
は、上記サンプル深度値と上記クリップ深度値とを比較
することを特徴とするボリュームを画像平面上にレンダ
リングする方法。 - 【請求項5】 請求項1に記載のボリュームを画像平面
上にレンダリングする方法において、上記定めるステッ
プ、処理するステップ、生成するステップおよび繰り返
すステップは、前から後ろへの順序で行われることを特
徴とするボリュームを画像平面上にレンダリングする方
法。 - 【請求項6】 請求項1に記載のボリュームを画像平面
上にレンダリングする方法において、上記定めるステッ
プ、処理するステップ、生成するステップおよび繰り返
すステップは、後ろから前への順序で行われることを特
徴とするボリュームを画像平面上にレンダリングする方
法。 - 【請求項7】 請求項2に記載のボリュームを画像平面
上にレンダリングする方法において、各深度バッファ
は、色バッファと関連づけられてピクセル値を記憶する
ことを特徴とするボリュームを画像平面上にレンダリン
グする方法。 - 【請求項8】 請求項7に記載のボリュームを画像平面
上にレンダリングする方法において、上記開始クリップ
表面に関連づけられた色バッファは、透明色に初期化さ
れ、上記終了クリップ表面に関連づけられた色バッファ
は、背景色に初期化されることを特徴とするボリューム
を画像平面上にレンダリングする方法。 - 【請求項9】 請求項1に記載のボリュームを画像平面
上にレンダリングする方法において、上記ボリューム
は、複数の埋め込みオブジェクトを含むことを特徴とす
るボリュームを画像平面上にレンダリングする方法。 - 【請求項10】 請求項9に記載のボリュームを画像平
面上にレンダリングする方法において、上記複数の埋め
込みオブジェクトの少なくとも1つは、半透明であるこ
とを特徴とするボリュームを画像平面上にレンダリング
する方法。 - 【請求項11】 請求項9に記載のボリュームを画像平
面上にレンダリングする方法において、上記終了クリッ
プ表面の一部は、上記複数の埋め込みオブジェクトの表
面によって定められることを特徴とするボリュームを画
像平面上にレンダリングする方法。 - 【請求項12】 請求項11に記載のボリュームを画像
平面上にレンダリングする方法において、上記複数の埋
め込みオブジェクトのそれぞれは、多角形によって特定
され、上記多角形は、深度順にソートされて上記終了ク
リップ表面を定めることを特徴とするボリュームを画像
平面上にレンダリングする方法。 - 【請求項13】 請求項1に記載のボリュームを画像平
面上にレンダリングする方法において、上記ボリューム
は、複数のボリュームオブジェクトを含むことを特徴と
するボリュームを画像平面上にレンダリングする方法。 - 【請求項14】 請求項13に記載のボリュームを画像
平面上にレンダリングする方法において、上記終了クリ
ップ表面の一部は、上記複数の埋め込みボリュームオブ
ジェクトの不透明度のしきい値テストによって定められ
ることを特徴とするボリュームを画像平面上にレンダリ
ングする方法。 - 【請求項15】 請求項13に記載のボリュームを画像
平面上にレンダリングする方法において、上記終了クリ
ップ表面の一部は、大きさおよび方向の傾きテストによ
って定められることを特徴とするボリュームを画像平面
上にレンダリングする方法。 - 【請求項16】 三次元ボリュームを二次元画像平面上
にレンダリングする方法であって、 多角形によって定められた上記ボリュームの部分を複数
の層に分割するステップと、 上記複数の層を前から後ろへの順序でソートするステッ
プと、 近い色バッファを透明色に初期化するステップと、 近い深度バッファを近いクリップ表面に初期化するステ
ップと、 遠い色バッファを上記透明色に初期化し、 遠い深度バッファを上記フロントクリップ表面に初期化
し、 現在の層を遠い色バッファおよび深度バッファに描き、 上記近いクリップ表面から上記遠いクリップ表面に、上
記近い色バッファと深度バッファ内へと、上記複数の層
のそれぞれを処理した後に上記ボリュームをレンダリン
グし、 上記遠い色バッファを上記背景色に再初期化し、 上記遠い深度バッファを上記遠いクリップ表面に再初期
化し、 上記近いクリップ表面から上記遠いクリップ表面に、上
記近い色バッファおよび深度バッファ内へと上記ボリュ
ームをレンダリングすることにより、上記複数の層のそ
れぞれを処理するステップとを含む三次元ボリュームを
二次元画像平面上にレンダリングする方法。 - 【請求項17】 ボリュームを画像平面上にレンダリン
グするシステムであって、 開始クリップ表面の深度値を記憶する第一の深度バッフ
ァと、 終了クリップ表面の深度値を記憶する第二の深度バッフ
ァと、 上記開始クリップ表面と上記終了クリップ表面とに対し
て所定の関係を有するボリュームの部分を処理する手段
と、 上記処理の結果からおよび、上記開始クリップ表面と上
記終了クリップ表面とを結合することから、次の開始ク
リップ表面を生成し、上記第二の深度バッファに次の終
了クリップ表面を記憶する手段と、 停止条件が満たされるまで、上記処理を繰り返し、上記
次の開始クリップ表面および終了クリップ表面に関し
て、生成する手段とを含むボリュームを画像平面上にレ
ンダリングするシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/219059 | 1998-12-22 | ||
US09/219,059 US6310620B1 (en) | 1998-12-22 | 1998-12-22 | Method and apparatus for volume rendering with multiple depth buffers |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000194878A true JP2000194878A (ja) | 2000-07-14 |
Family
ID=22817681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11292822A Pending JP2000194878A (ja) | 1998-12-22 | 1999-10-14 | ボリュ―ムを画像平面上にレンダリングする方法及びシステム、並びに三次元ボリュ―ムを二次元画像平面上にレンダリングする方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6310620B1 (ja) |
EP (1) | EP1014308B1 (ja) |
JP (1) | JP2000194878A (ja) |
AT (1) | ATE274218T1 (ja) |
DE (1) | DE69919497T2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011248675A (ja) * | 2010-05-27 | 2011-12-08 | Fujitsu Ltd | 隠蔽処理プログラム、可視化処理方法及び装置 |
JP2013013650A (ja) * | 2011-07-06 | 2013-01-24 | Hitachi Aloka Medical Ltd | 超音波画像処理装置 |
WO2013105464A1 (ja) * | 2012-01-13 | 2013-07-18 | 独立行政法人海洋研究開発機構 | 画像処理装置、画像処理方法、画像処理プログラム、および、画像処理システム |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19835215C2 (de) * | 1998-08-05 | 2000-07-27 | Mannesmann Vdo Ag | Kombinationsinstrument |
US6727900B1 (en) * | 1998-09-07 | 2004-04-27 | Renesas Technology Corp. | Semiconductor integrated circuit device |
JP4399910B2 (ja) * | 1998-09-10 | 2010-01-20 | 株式会社セガ | ブレンディング処理を含む画像処理装置及びその方法 |
GB9904901D0 (en) * | 1999-03-03 | 1999-04-28 | Canon Kk | Computer graphics apparatus |
US6407737B1 (en) * | 1999-05-20 | 2002-06-18 | Terarecon, Inc. | Rendering a shear-warped partitioned volume data set |
US6424346B1 (en) * | 1999-07-15 | 2002-07-23 | Tera Recon, Inc. | Method and apparatus for mapping samples in a rendering pipeline |
US6421057B1 (en) * | 1999-07-15 | 2002-07-16 | Terarecon, Inc. | Configurable volume rendering pipeline |
US6621918B1 (en) | 1999-11-05 | 2003-09-16 | H Innovation, Inc. | Teleradiology systems for rendering and visualizing remotely-located volume data sets |
GB2389503B (en) * | 1999-11-11 | 2004-04-21 | Canon Kk | Computer graphics apparatus |
US6664961B2 (en) | 2000-12-20 | 2003-12-16 | Rutgers, The State University Of Nj | Resample and composite engine for real-time volume rendering |
RU2215326C2 (ru) * | 2001-06-29 | 2003-10-27 | Самсунг Электроникс Ко., Лтд. | Иерархическое основанное на изображениях представление неподвижного и анимированного трехмерного объекта, способ и устройство для использования этого представления для визуализации объекта |
US7039723B2 (en) | 2001-08-31 | 2006-05-02 | Hinnovation, Inc. | On-line image processing and communication system |
KR100450823B1 (ko) * | 2001-11-27 | 2004-10-01 | 삼성전자주식회사 | 깊이 이미지 기반 3차원 물체의 표현을 위한 노드 구조 |
US7113183B1 (en) * | 2002-04-25 | 2006-09-26 | Anark Corporation | Methods and systems for real-time, interactive image composition |
US7440590B1 (en) | 2002-05-21 | 2008-10-21 | University Of Kentucky Research Foundation | System and technique for retrieving depth information about a surface by projecting a composite image of modulated light patterns |
US7423655B1 (en) | 2002-06-24 | 2008-09-09 | Adobe Systems Incorporated | Revealing clipped portion of image object |
EP1455307A1 (en) * | 2003-03-06 | 2004-09-08 | MeVis GmbH | Partial volume visualization |
US20050143654A1 (en) * | 2003-11-29 | 2005-06-30 | Karel Zuiderveld | Systems and methods for segmented volume rendering using a programmable graphics pipeline |
US20050122338A1 (en) * | 2003-12-05 | 2005-06-09 | Michael Hong | Apparatus and method for rendering graphics primitives using a multi-pass rendering approach |
US7787672B2 (en) | 2004-11-04 | 2010-08-31 | Dr Systems, Inc. | Systems and methods for matching, naming, and displaying medical images |
US7920152B2 (en) | 2004-11-04 | 2011-04-05 | Dr Systems, Inc. | Systems and methods for viewing medical 3D imaging volumes |
US7885440B2 (en) | 2004-11-04 | 2011-02-08 | Dr Systems, Inc. | Systems and methods for interleaving series of medical images |
US7970625B2 (en) | 2004-11-04 | 2011-06-28 | Dr Systems, Inc. | Systems and methods for retrieval of medical data |
US7660488B2 (en) | 2004-11-04 | 2010-02-09 | Dr Systems, Inc. | Systems and methods for viewing medical images |
US20060203010A1 (en) * | 2005-03-14 | 2006-09-14 | Kirchner Peter D | Real-time rendering of embedded transparent geometry in volumes on commodity graphics processing units |
US8150111B2 (en) | 2005-03-15 | 2012-04-03 | The University Of North Carolina At Chapel Hill | Methods, systems, and computer program products for processing three-dimensional image data to render an image from a viewpoint within or beyond an occluding region of the image data |
US7893938B2 (en) * | 2005-05-04 | 2011-02-22 | Siemens Medical Solutions Usa, Inc. | Rendering anatomical structures with their nearby surrounding area |
TWI286713B (en) * | 2005-05-05 | 2007-09-11 | Via Tech Inc | Rendering method and related device |
JP4646712B2 (ja) * | 2005-07-05 | 2011-03-09 | パナソニック株式会社 | コンピュータグラフィックス描画方法及び描画装置 |
US7953614B1 (en) | 2006-11-22 | 2011-05-31 | Dr Systems, Inc. | Smart placement rules |
US7961187B2 (en) * | 2007-03-20 | 2011-06-14 | The University Of North Carolina | Methods, systems, and computer readable media for flexible occlusion rendering |
US20080232694A1 (en) * | 2007-03-21 | 2008-09-25 | Peter Sulatycke | Fast imaging data classification method and apparatus |
US8193472B2 (en) * | 2007-03-23 | 2012-06-05 | Nihon Dennetsu Co., Ltd. | Susceptor |
US20080284798A1 (en) * | 2007-05-07 | 2008-11-20 | Qualcomm Incorporated | Post-render graphics overlays |
KR101327791B1 (ko) * | 2007-09-11 | 2013-11-20 | 삼성전자주식회사 | 영상 매칭 장치 및 방법 |
US8380533B2 (en) | 2008-11-19 | 2013-02-19 | DR Systems Inc. | System and method of providing dynamic and customizable medical examination forms |
US8712120B1 (en) | 2009-09-28 | 2014-04-29 | Dr Systems, Inc. | Rules-based approach to transferring and/or viewing medical images |
US9075899B1 (en) | 2011-08-11 | 2015-07-07 | D.R. Systems, Inc. | Automated display settings for categories of items |
US9626792B2 (en) * | 2012-10-16 | 2017-04-18 | Adobe Systems Incorporated | Rendering an infinite plane |
US9495604B1 (en) | 2013-01-09 | 2016-11-15 | D.R. Systems, Inc. | Intelligent management of computerized advanced processing |
GB2520365B (en) | 2013-12-13 | 2015-12-09 | Imagination Tech Ltd | Primitive processing in a graphics processing system |
US10929508B2 (en) | 2015-04-30 | 2021-02-23 | Merge Healthcare Solutions Inc. | Database systems and interactive user interfaces for dynamic interaction with, and indications of, digital medical image data |
US11315315B2 (en) * | 2019-08-23 | 2022-04-26 | Adobe Inc. | Modifying three-dimensional representations using digital brush tools |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3816726A (en) * | 1972-10-16 | 1974-06-11 | Evans & Sutherland Computer Co | Computer graphics clipping system for polygons |
US4882679A (en) * | 1987-11-27 | 1989-11-21 | Picker International, Inc. | System to reformat images for three-dimensional display |
US5088054A (en) * | 1988-05-09 | 1992-02-11 | Paris Ii Earl A | Computer graphics hidden surface removal system |
US5226113A (en) * | 1989-10-30 | 1993-07-06 | General Electric Company | Method and apparatus for volumetric projection rendering using reverse ray casting |
US5574835A (en) * | 1993-04-06 | 1996-11-12 | Silicon Engines, Inc. | Bounding box and projections detection of hidden polygons in three-dimensional spatial databases |
US5579455A (en) * | 1993-07-30 | 1996-11-26 | Apple Computer, Inc. | Rendering of 3D scenes on a display using hierarchical z-buffer visibility |
US5515484A (en) * | 1993-10-06 | 1996-05-07 | Silicon Graphics, Inc. | Method and apparatus for rendering volumetric images |
JP3527796B2 (ja) * | 1995-06-29 | 2004-05-17 | 株式会社日立製作所 | 高速3次元画像生成装置および方法 |
US5819017A (en) * | 1995-08-22 | 1998-10-06 | Silicon Graphics, Inc. | Apparatus and method for selectively storing depth information of a 3-D image |
JPH09245191A (ja) * | 1996-03-06 | 1997-09-19 | Sega Enterp Ltd | 透明度変換方法及びその装置、画像処理装置 |
US5949423A (en) * | 1997-09-30 | 1999-09-07 | Hewlett Packard Company | Z buffer with degree of visibility test |
-
1998
- 1998-12-22 US US09/219,059 patent/US6310620B1/en not_active Expired - Lifetime
-
1999
- 1999-10-14 JP JP11292822A patent/JP2000194878A/ja active Pending
- 1999-11-03 EP EP99121745A patent/EP1014308B1/en not_active Expired - Lifetime
- 1999-11-03 DE DE69919497T patent/DE69919497T2/de not_active Expired - Lifetime
- 1999-11-03 AT AT99121745T patent/ATE274218T1/de not_active IP Right Cessation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011248675A (ja) * | 2010-05-27 | 2011-12-08 | Fujitsu Ltd | 隠蔽処理プログラム、可視化処理方法及び装置 |
US8743123B2 (en) | 2010-05-27 | 2014-06-03 | Fuhitsu Limited | Visualization processing method and apparatus with mask surface |
JP2013013650A (ja) * | 2011-07-06 | 2013-01-24 | Hitachi Aloka Medical Ltd | 超音波画像処理装置 |
WO2013105464A1 (ja) * | 2012-01-13 | 2013-07-18 | 独立行政法人海洋研究開発機構 | 画像処理装置、画像処理方法、画像処理プログラム、および、画像処理システム |
JP2013145467A (ja) * | 2012-01-13 | 2013-07-25 | Japan Agengy For Marine-Earth Science & Technology | 画像処理装置、画像処理方法、画像処理プログラム、および、画像処理システム |
Also Published As
Publication number | Publication date |
---|---|
DE69919497D1 (de) | 2004-09-23 |
DE69919497T2 (de) | 2005-08-18 |
EP1014308A2 (en) | 2000-06-28 |
US6310620B1 (en) | 2001-10-30 |
EP1014308A3 (en) | 2002-07-17 |
ATE274218T1 (de) | 2004-09-15 |
EP1014308B1 (en) | 2004-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1014308B1 (en) | Method and apparatus for volume rendering with multiple depth buffers | |
Everitt | Interactive order-independent transparency | |
CN111508052B (zh) | 三维网格体的渲染方法和装置 | |
Heidelberger et al. | Detection of collisions and self-collisions using image-space techniques | |
US5613048A (en) | Three-dimensional image synthesis using view interpolation | |
Matusik et al. | Polyhedral visual hulls for real-time rendering | |
Raskar | Hardware support for non-photorealistic rendering | |
EP1089234A2 (en) | Parallel pipelined volume rendering system | |
US6670955B1 (en) | Method and system for sort independent alpha blending of graphic fragments | |
US20050231503A1 (en) | Block-based fragment filtration with feasible multi-GPU acceleration for real-time volume rendering on conventional personal computer | |
JP2001357410A (ja) | 別々に生成された3次元イメージを合成するグラフィックス・システム | |
JP4499291B2 (ja) | 3次元コンピュータ生成画像のシェーディング及びテクスチャリング | |
Li et al. | A hybrid hardware-accelerated algorithm for high quality rendering of visual hulls | |
Wan et al. | Interactive stereoscopic rendering of volumetric environments | |
US6924805B2 (en) | System and method for image-based rendering with proxy surface animation | |
EP1093085B1 (en) | Parallel pipelined volume rendering system | |
Yu | Efficient visibility processing for projective texture mapping | |
Trapp et al. | Occlusion management techniques for the visualization of transportation networks in virtual 3D city models | |
JP2002529869A (ja) | コンピュータによる3次元シェーディング及びテクスチャリング・システムに使用する深度ソート | |
Raskar et al. | Blending multiple views | |
Hermosilla et al. | NPR effects using the geometry shader | |
Bogomjakov et al. | Reduced depth and visual hulls of complex 3D scenes | |
US8094151B1 (en) | Method for depth peeling and blending | |
EP1089225A2 (en) | Parallel pipelined volume rendering system | |
JP2001109904A (ja) | ボリューム・レンダリング・システムにおけるボリューム・データ・セットのレンダリング方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20030610 |