JP4205327B2 - ボリュームデータセットのレンダリング方法およびシステム - Google Patents
ボリュームデータセットのレンダリング方法およびシステム Download PDFInfo
- Publication number
- JP4205327B2 JP4205327B2 JP2001305438A JP2001305438A JP4205327B2 JP 4205327 B2 JP4205327 B2 JP 4205327B2 JP 2001305438 A JP2001305438 A JP 2001305438A JP 2001305438 A JP2001305438 A JP 2001305438A JP 4205327 B2 JP4205327 B2 JP 4205327B2
- Authority
- JP
- Japan
- Prior art keywords
- ray
- sample
- rendering
- data set
- volume data
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Description
【発明の属する技術分野】
この発明は、コンピュータ・グラフィックスの技術分野に係わり、特に、並列パイプライン制御ハードウエア・レンダリング・エンジンを用いてボリュームデータセット(体積もしくは三次元データセット)をレンダリングすることに関する。
【0002】
三次元データを可視化する必要があるコンピュータグラフィックス用アプリケーションにおいては、ボリュームレンダリング(三次元図形データを二次元画像データにすること)がしばしば用いられている。ボリュームデータ(三次元データ)は、物理学上または医学上のオブジェクト或るいは大気、地球物理学その他の科学的モデルをスキャン(走査)することにより得られ、このデータによれば、データを可視化することにより、当該データによって表される実世界の内在構造も理解が容易になる。
【0003】
ボリュームレンダリングでは、物理的オブジェクトの内部構造ならびに外部表面特徴が可視化される。ボクセル(三次元ピクセル)はボリュームレンダリングにおいて通常用いられる基本的データ項目である。すなわち、ボクセルとは、オブジェクト或るいはモデルの特定の三次元部分を表すデータである。各ボクセルの座標(xyz)で、ボクセルは、表示されるオブジェクト或るいはモデル内の位置に写像される。
【0004】
1つのボクセルは、オブジェクト或るいはモデルにおける特定の位置に関連する1つまたは複数の値を表す。従来、所与のボリュームに対し、ボクセルに含まれる値は、密度、組織のタイプ、弾力性或るいは速度のような数多の異なったパラメータの内の特定の1つのパラメータであり得る。レンダリング中、ボクセル値を、ボクセルの輝度値にしたがってカラーおよび不透明度(RGBα)値に変換し、二次元画像平面に射影することで観察することができる。
【0005】
レンダリング中、しばしば用いられる技術の1つにレイキャスティング(光線の投射)がある。この方法によれば、仮想上のレイ群がボクセルを通して投射される。レイは或る視点或るいは画像平面から発生される。ボクセルはレイ(光線)に沿う複数の点でサンプリング(標本化)される。なお、サンプリングした値をピクセル値に変換するための技術としては種々なものが知られている。いずれにせよ、ボリュームの処理は、後部から前部へ或るいは前部から後部に向かう順序で行うことができる。
【0006】
ボリュームレンダリングのための1つの伝統的なレイキャスティング技術として、Lecroute および Levoy のシヤーワープアルゴリズム(shear-warp algorithm)に基づくものがある。これに関しては、Lecroute および Levoy の "Fast Lolume Rendering Using a Shear-Warp Factorization of the Viewing Transformation"コンピュータグラフィックス、28(4)、451-458、(1994年8月)を参照されたい。
【0007】
上記の技術には、ボクセルが記憶された順序に密接に関連する順序でボリュームデータセットを逓進的に、すなわち、ステップ バイ ステップで取り扱えるという利点がある。上記順序は、「オブジェクトオーダー」と称されている。このオブジェクトオーダー方法には2つの利点がある。すなわち、ボリュームメモリを最適な仕方でアクセスすることが可能であることおよびサンプル値を決定するのに補間重みによる3回の乗算しか要求されないという利点である。その結果として、ボリュームデータを、最大速度で読み出して処理することができる。実時間で対話形のボリュームレンダリングを最初に可能にしたのは、このレイキャスティング技術であった。
【0008】
シヤーワープ(剪断変形-歪曲変形)技術は、ボリュームデータセットの「基底面」上のボクセルにより定義される格子にしたがいレイ(光線)を投射することによりそのパフォーマンスを実現する。ここで基底面とは、画像平面に最近似的に平行であるボリュームの表面に平行な面である。シヤーワープ技術においては、ボリュームを通して投光されるレイは、ボリューム自体における行および列に平行な行および列の格子上に位置する。この順序立った行列配列がオブジェクトオーダーのレンダリングを、特にメモリアクセスおよびサンプル値の補間に対して効果的にしている。
【0009】
しかしながら、得られる画像は基底面に整列されておって画像面には整列されていない。さらにまた、特殊な事例を除き、得られる基底面整列画像は、ボリュームオブジェクトの所望の最終画像から歪んでいる。したがって、シヤーワープ技術は実際には2段階法であって、「シヤー(剪断変形)」段階と称する第1の段階で画像は基底面にレンダリングされ、他方、第2の段階、すなわち「ワープ歪曲変形」段階と称する段階では、基底面画像の歪みが除去されて画像面上に正しく位置決めされる。
【0010】
したがって、ワープ段階は、実効的に、画像平面上に最終画像を生成するための基底面画像の再標本化もしくはリサンプリングであると言える。この結果、実際に実施する場合には、実現可能な画像品質に劣化が生ずる。
【0011】
ワープ段階は実施が困難ではなく、たとえば、OpenGL(登録商標)のような慣用の3D多角形グラフィックスのテクスチャマップ機能を使用して容易に実現できる。しかしながら、すべてのアプリケーション環境が、このようなグラフィックス機能もしくは能力を備えているシステム用に設計されている訳ではない。したがってワープ段階を実行するためには、システム設計に対し面倒な付加や所要のパフォーマンスを満足する余分のソフトウエアモジュールが要求される。
【0012】
別のレイキャスティング方法として、画像オーダー法(image order)として知られている方法がある。この方法においては、ボリュームデータセットに最終画像面上のピクセルからレイ(光線)を投射する。これにより、歪みを伴うことなく且つワープ段階を経ることなく直接正しい画像を生成することができる。このようにして得られる画像は、一般に、シヤーワープ技術で実現できる品質よりも高い品質を有する。このように画像オーダーレンダリング方法で高品質の画像が生成される理由は、最終画像面上の各ピクセルが該ピクセルを通る単一のレイから直接発生されることにある。これとは対照的にオブジェクトオーダー法では、最終画像面における各ピクセルは、基底面画像上の近接する多数のピクセルから合成される。したがって、オブジェクトオーダー方法の場合には、2回サンプリングが行われることになり、それにより画像品質が劣化する。
【0013】
しかしながら、画像オーダーレンダリング方法にはデメリットがある。すなわち、ボリュームデータを、シヤーワープ技術の場合のようにメモリから効率的に読み取ることができない。また、サンプル値の補間には、オブジェクトオーダーの場合には3回の乗算で済むのに対し、画像オーダー方法では、補間重みによる7回の乗算が必要とされる。したがって画像オーダーレンダリング方法は、実時間対話形ボリュームレンダリングが最小のボリュームデータセット以外には不可能であるという点で、オブジェクトオーダーレンダリング方法よりも非常に時間が掛かる。実際、従来の画像オーダー技術では、不可能とは言わないまでも、たとえば実時間医療撮像のような実際的な対話形アプリケーションは実施が非常に困難であった。
【0014】
レンダリングにおける別の問題点は、多角形のオブジェクトおよび他のオブジェクトの埋込み画像に関する問題である。画像オーダーレンダリング方法においては、このようなオブジェクトおよび画像の埋込みは直截的である。単に、オブジェクトを、従来より知られている3Dグラフィックスシステムを用いて、画像平面上に、最終ボリュームレンダ画像と同じピクセル解像度で描けば良い。埋込まれた多角形或るいは画像の再標本化、すなわちリサンプリングを行う必要はなく、したがって、埋込みの結果画像品質の劣化が生ずることはない。
【0015】
対照的にオブジェクトオーダーボリュームレンダリング技術(シヤーワープ技術)では、基底面上に歪んだ画像が発生するので、埋込みオブジェクトも基底面上に等化の歪を以て描かれることになる。このようにして埋込まれた多角形を有するレンダリングされた画像は次いで、ワープ段階で最終画像にワープされる。このワープ段階では、特に埋込まれた幾何学的パターンが鋭い縁もしくはエッジを有する場合に、描画された多角形の画像品質に由々しい劣化が生ずる。
【0016】
【発明が解決しようとする課題】
上の説明から明らかなように、オブジェクトオーダーレンダリングの優れたパフォーマンスを確保しつつ、画像オーダーボリュームレンダリングの卓越した品質を実現することが望ましい。
【0017】
【課題を解決するための手段】
この発明は、画像平面の各ピクセルを通してレイ(光線)を投射することにより、ピクセルからなる画像平面上にボクセルからなるボリュームデータセットをレンダリングするためのシステムおよび方法を提供するものである。ボリュームデータセットの表面を基底面として選択する。サンプル点を、基底面に平行な平面内に位置するように各レイに沿って定義する。パフォーマンスを高めるために、基底面に平行なスライスにおいてボリュームメモリから読み込む。各サンプル点に隣接するボクセルを補間して各サンプル点毎にサンプル値を求め、各レイのサンプル値を合成して各ピクセル毎にピクセル値を決定する。
【0018】
【発明の実施の形態】
この発明は、ボクセルからなるボリュームデータセットを画像平面におけるピクセルにレンダリングするためのシステムおよび方法を提供するものである。この発明の実施に当たっては、画像平面の各ピクセルを介してレイ(光線)を投射(casting)するレイキャスティング技術が用いられる。ボリュームの1つの表面を基底面として選択する。サンプル点が、選択された基底面に対し平行な平面内に配列されるように、該サンプル点を各レイに沿って定義する。各サンプル点に隣接するボクセルを補間してサンプル値を求める。各レイ(光線)のサンプル値を合成し、最終画像における各ピクセルに対しピクセル値を決定する。なお、この発明者等は、この方法を「xy−画像オーダーレンダリング」と呼称することにした。
【0019】
以下の説明においては、まず、この発明によるxy−画像オーダーボリュームレンダリングで用いられるいくつかの一般的概念について説明し、次いで、この発明によるパイプラインボリュームレンダリングシステムによって用いられる種々な座標系および変換について説明し、最後に、この発明によるxy−画像オーダーレンダリングを採用したレンダリングシステムを実現するための好適なハードウエア構成について説明する。
【0020】
序説
ボリュームレンダリングとは、コンピュータ端末、印刷ページその他の二次元の視覚媒体(「画像平面」と総称する)上にボリュームデータセットを表示もしくは可視化することである。また、ボリュームデータセットとは、三次元空間内の点と関連するデータ値の三次元アレイを言う。ボリュームデータセットにおける各データ値は、体積素もしくはボクセル(三次元のピクセル)と称する情報量である。多くの場合、ボリュームデータセットは実世界における三次元のオブジェクトを表し、それに関連の座標系は、当該オブジェクトが占める三次元の物理的空間を表す。しかしながら、ボリュームはまた、仮想オブジェクトのモデルであっても良い。
【0021】
各ボクセルの情報は、典型的に、オブジェクトの1つまたは複数の特性を表し、当該ボクセルの極く近傍における小さい空間領域に対しこのような特性を記述する。このような特性としては、たとえば、CTスキャンで得られる人体組織の密度、流体動力学的モデルにおける流体の速度或るいはその位置と関連するカラー(色)等が挙げられる。一般に、ボクセルのデータはスカラー量或るいはベクトル量であり得る。また、ボリュームデータセットのシーケンスで、時間とともに変化もしくは変動するオブジェクトを表すことができる。このようなシーケンスの各構成要素は、時間的に異なった時点で見た場合のシーケンスに含まれる三次元ボリュームデータセットである。
【0022】
ボクセルは、或る種の空間パターンにしたがって配列される。最も単純なボクセル配列は、直線形データセット、すなわち、物理的空間において互いに直角の軸を有する三次元格子である。このような直線形データセットの例として少数の例を挙げれば、3D(三次元)再現医療データ、コンピュータでの流体動力学的シミュレーションから得られるシミュレーションデータセット或るいは計算有限要素モデル等がある。このようなボリュームデータは、コンピュータメモリ内に三次元アレイとして表すことができ、オブジェクトにおける各ボクセルの位置は直截的に、メモリアレイにおける当該ボクセルの座標に対応する。
【0023】
格子
等方性の格子においては、ボクセル間の間隔は物理的空間の3つのすべての次元において同じである。異方性の格子においては、ボクセル間の間隔は所与の次元においては一定であるが次元毎に異なる。異方性データは、しばしば、縦軸方向におけるCTまたはMIRスキャンの解像度を他の2つの方向における解像度とは独立して制御することができる医療用途において往々に生ずるデータである。
【0024】
シヤー格子(剪断変形格子)では、格子の軸がオブジェクトの物理的世界において直角でない。このような格子もまた医療分野においては一般で用いられており、この分野では当該データセットはガントリー傾斜ボリュームデータセットと称されている。このようなシヤー格子は、CTスキャナのセンサがたとえば、身体の上側を縦軸線に対し直角ではない角度で通過する場合に起こり得る。
【0025】
好適な実施例においては、ボリュームデータは、8−ビット、16−ビットまたは32−ビットボクセルで各次元において2の16乗個までのボクセルを有することができる。尤も、他のサイズのボリュームやボクセルも可能である。ボリュームデータセットのボクセルは、多数の構成要素フィールドもしくはコンポーネントフィールドを有し得る。この場合、各フィールドはオブジェクトの異なった特性を表す。ボクセルのサイズ、位置およびフォーマットは、ランタイムベースでボクセルフォーマット記述子により特定することができる。
【0026】
当該技術分野においては、0.0〜1.0の範囲内の数を表すのにnビット値を使用するのが一般である。たとえば、8ビットのアルファ不透明度フィールドは、0〜255の範囲内の値を含み、0.0(完全透明)から1.0(完全不透明)までの不透明度を表す。本明細書において、これらの数は循環少数(repeating frations)と称する。この名称は、2進小数点の右側にnビット値を無限に繰り返す数を生成することによりnビット数を0.0〜1.0の範囲内の値に変換することが可能であるという事実に由来する。
【0027】
ボクセルの各フィールドは、たとえば、4ビットの合成体とされてもよい。外部的には、ボクセルフィールドは、記号無しの2進整数、[0〜1.0]の範囲内の記号無しの有理数、すなわち循環少数、或るいは範囲[−1.0〜1.0]の記号付きの有理数、すなわち範囲[0.0〜1.0]内の循環小数の大きさに記号ビットを加えたもののいずれであっても良い。内部的には、各ボクセルフィールドは[0.0〜1.0]の範囲内の数に基準化され変換される。
【0028】
ボリュームのレンダリングの結果として、典型的には、1つまたは複数の画像が得られる。この発明によるレンダリングエンジンでは、動的に変動する観察条件下で実時間画像が生成される。各画像はピクセルアレイ(ピクセル配列)として表示される。ここでピクセル(画素)とは、二次元の画像平面内の関連の点を中心とするグレイスケールまたはカラーの小さなパッチを表すデータ構造である。各ピクセルの3つの成分(RGB)は、当該ピクセルにおいて画像に貢献する原色「赤」、「緑」および「青」の各々の量を表す。また、第4の成分アルファ(α)は当該カラーパッチの不透明度或るいは透明度を表す。
【0029】
二次元の画像アレイすべてではないが、これらの中には二次元深度アレイ(two-dimensional depth array)がある。このような深度アレイは対応の座標に位置する画像アレイ内の各ピクセルに対し1つのエレメント(要素)を有する。深度アレイにおける各値は或る基準平面からの距離を表す。深度アレイは、典型的には、三次元空間において対応のピクセルにより表される画像の小さい部分の位置を表記するのに用いられる。また、深度アレイは、任意のクリップ面を表すのに用いたり或るいはボリュームとともに正しい位置に埋込みオブジェクトを位置決めするのに用いることができる。
【0030】
レイ(光線)
レンダリングは、ボリュームデータセットにレイを投ずることにより行われる。すなわち、仮想レイ(便宜上、光線とも称する)を画像平面の各ピクセル或るいは他の或る平面上の特定の点を通過せしめる。各レイに沿うサンプル点におけるカラーおよび不透明度値を累算し、累算値を当該レイに関連するピクセルに記憶する。この発明の実施の形態においては、ボリュームの選択された基底面に平行な平面に配列されたサンプル点が用いられる。
【0031】
レイに沿いカラーおよび不透明度を累算するために、5つの基本的な演算が行われる。すなわち、勾配の推定、補間、分類、照明および合成である。以下、これら動作もしくは演算についてさらに詳細に説明する。
【0032】
勾配
有らゆる処理に先行し、まずボクセルにおける、またはボクセルと関連する勾配を推定する。ここで勾配とは、ボクセルの或るフィールドまたはオブジェクトの或る性質の空間的変化率を表すベクトルである。すなわち、勾配とは、三次元の各次元における単位ステップ毎のフィールド値または性質における変化の単位数である。
【0033】
中心差分
図1の(a)に示すように、中心差分をとることにより勾配を推定する。すなわち、ボクセルViにおける勾配ベクトルの3つの成分を、3つの次元における隣接ボクセルの各々の対応のフィールドを減算することにより推定する。たとえば、ボクセル点V1102において、水平方向における勾配成分に対し右側のボクセルフィールドを左側の同じボクセルフィールドから減算し、且つ垂直方向における勾配成分に対しては、下側のボクセルのフィールドを該ボクセルの上側のボクセルの同じフィールドから減算することにより勾配G1101を推定する。第3次元における勾配成分も、後部のボクセルフィールドから前部のボクセルフィールドを減算することにより同様に得ることができる。なお、3つの勾配成分すべてに対し同じボクセルフィールドを使用する必要はないことを注記しておく。
【0034】
図1の(a)において、曲線103は、ボリュームデータセットによって表される2つの異なったタイプのマテリアル間の「面」もしくは境界、たとえば、骨と筋肉との間の界面或るいは皮膚と空気との間の界面を表す。ボクセルV1はこの境界上に位置するので、勾配の大きさは大であり、勾配自体はこの面もしくは境界に対する法線ベクトルに近似する。対照的に、ボクセルV2104およびV3105におけるボリューム内のマテリアルは比較的均質であるので、これらボクセルにおける勾配の大きさは非常に小さくランダムな方向に指向している。なお、ボクセルにおける点ばかりではなく面に沿う他の点における勾配、たとえば、サンプル点S4107における勾配G4106を求めるのも望ましいことは言うまでもない。
【0035】
勾配の補正
図1の(b)に示すように、勾配推定機能では、異方性を有するボリュームもしくはガントリー傾斜ボリュームに対して歪んだ勾配が生成される。この場合、1つの方向(垂直方向)におけるボクセル間の間隔は、他の方向(水平方向)におけるボクセル間間隔よりも大きくなる。したがって、垂直方向における中心差分は、水平方向における中心差分の場合よりも、実世界においてさらに大きく離間しているボクセルのフィールド間の差分となる。その効果として、勾配の垂直成分が水平成分に対して最小化され、それにより、面或るいは境界に対して実際に法線とはならないベクトルG6108が生成されてしまう。容易に理解されるように、これは、互いに直角の軸を有しないデータセット、または次元毎に変動するボクセル間間隔を有するデータセットに対し、システム上の問題となる。
【0036】
この問題に対処するために、この発明によれば勾配補正行列が提案される。この行列は、勾配の推定後各勾配に適用することができる。この行列の適用で、異方性およびシヤーの効果を反転する線形変換が行われ、その結果として変換された勾配は推定点における面に対して一層垂直な法線となる。
【0037】
座標系
図2に示すように、この発明のシステムは多数の座標系および変換を用いて動作する。これら座標系および変換の中には、従来の3D多角形グラフィックスで用いられているものに関連のものもあれば、また、この発明によるボリュームレンダリングに特殊なものもある。座標系は「空間」を定義する。なお、以降、術語「空間」および「座標系」は意味論的に互換性を有するものとする。図2を参照するに、左側に示した座標系は当該コンピュータグラフィックス分野において馴染み深いものであり、他方右側に示した座標系はこの発明による座標系である。
【0038】
オブジェクト座標系
オブジェクト座標系201は、レンダリングされるオブジェクト(ボリューム)のネイティブな(固有の)内部座標系である。3D多角形グラフィックスにおいては、これはオブジェクトの面を内部原点および標準視点に対して記述する座標のセット、すなわち集合である。しかしながら、ボリュームグラフィックスにおいては、オブジェクト座標はボクセルの三次元アレイと関連するアレイインデックス(指標)である。
【0039】
さらに詳細に述べると、この発明のシステムにおいて、ボリュームオブジェクトのオブジェクト座標系はボクセルが負でない整数座標に存在する三次元の直角座標系である。等方性のボリュームデータセット(集合)は、ボクセル値の三次元アレイとしてオブジェクト空間に表される。オブジェクト座標系の原点は、アレイ座標(0、0、0)により表されるボクセルの中心である。u、vおよびwが負でない整数であるアレイ座標(u、v、w)にけるボクセル値は、オブジェクト空間にける当該座標に中心が合わされた或るいはその近傍の空間領域におけるオブジェクトの1つもしくは複数の性質を表す。たとえば、或るオブジェクトのCTスキャンの場合、ボクセルは、該ボクセルに中心が合わされたガウスボリュームに亙るオブジェクトのマテリアルの密度または濃度の積分を表す。
【0040】
この発明においては、オブジェクト座標201を参照する場合、座標uvwおよびUVWを使用する。
【0041】
物理座標
オブジェクト空間自体は線形座標系である。すなわち、その軸は含意的に互いに直角であり、ボクセル間の間隔はどの次元においても正確に1単位の距離(1単位距離)である。これは必ずしもオブジェクト自体が存在する実世界に対応するものではない。特に、オブジェクトを表すボクセルは(たとえば、ガントリー傾斜ボリュームのように)互いに直角な座標にしたがって配列されていない場合があり得るし、また、ボクセル間の間隔は、異方性のボリュームについて既に述べたように、三次元の各々において同じである必要はない。
【0042】
したがって、物理座標202と称する第2の関連の座標系が導入される。これは、オブジェクトの内部原点またはオブジェクト内の他の指定された点に対しオブジェクトの実世界もしくは物理的世界における実際の位置にボクセルが存在するデカルト座標系、すなわち直角座標系である。特に、ボクセルはオブジェクト空間においては整数座標に位置するが、物理空間においては必ずしも整数座標に位置しない。また、厳密な意味においては必要ではないが、物理空間の軸のうちの1つをオブジェクト空間の対応の軸と同じにし、他方、他の2つの軸はオブジェクト座標201の軸に対しずれをもたらすなどして較正するのが便利である。
【0043】
たとえば、人体のCTスキャンにおいては、身体の頭部から足部へと延びる縦軸を固定し、スライスの間隔はスキャナのオペレータによって定める。他の2つの軸の角度は、CTスキャナのガントリーの傾きに依存し、これら2つの軸に沿うボクセルの間隔はスキャナのX線トランスジューサにおける電子的設定に依存する。
【0044】
したがって、ボクセルは、オブジェクト座標を用いた場合には整数位置にあるが、物理的座標系においては、身体の縦軸に対する実世界の三次元デカルト座標系における実際の非整数位置に置かれる。
【0045】
図3は、CTスキャナのスキャナ台上に横たわっている人間の頭部301のボクセル300の断面図である。実線で示す軸はオブジェクト空間の軸を表し、イタリック体で示した座標値はオブジェクト座標系におけるボクセルの位置を示す。物理空間の縦軸303は、オブジェクト空間の縦軸に重畳しており、したがって別々には見えない。物理空間の「垂直」の軸304は、室(ルーム)の垂直軸であり、縦軸に対し直角の点描矢印で示してある。スキャナのガントリー305の軸は斜めの矢印で示してある。また、ボールド書体の座標値は物理空間におけるボクセルの位置を示す。
【0046】
図2に示す補正変換(C)は、オブジェクト空間から物理空間への線形変換である。すなわち、この変換(C)203では、オブジェクト空間201の整数座標が、実世界におけるオブジェクト内の内部原点に対するボクセルの位置を反映する非整数座標に変換される。変換(C)203は、オブジェクトの性質ならびにボリュームデータセットを発生するためにオブジェクトをサンプリングした仕方に関係する。この変換は、オブジェクトと周囲環境もしくはシーン(場面)との関係には依存しない。
【0047】
物理座標系の導入には2つの理由がある。第1に、この物理座標系を採用することにより、シーン(場面)グラフマネージャで、ボリュームオブジェクトを生成するサンプリング方式の内在的な性質を特に意識する必要なしにオブジェクトをシーン、すなわち場面内に位置決めすることが可能となる。たとえば、オブジェクトを世界空間内で回転するのが望まれる場合には、1つの試行として、ガントリー傾斜/異方性を表しオブジェクトの原点を回転軸の中心に再配置するように変換Cを構築することである。次いで、内部表面に関係なく物理オブジェクトの回転を表すために連続した物理モデル化行列(PM)204を定義することができる。
【0048】
物理座標202を導入する第2の理由は、照明のための環境を提供することにある。オブジェクト空間201が物理空間202と同じでない場合には、オブジェクト空間においてボクセルから推定される勾配は実世界におけるそれらの表面に対して垂直にはならないであろう。したがって、補正変換203を用いて、照明計算で用いられるように勾配を補正する。
【0049】
世界スペース205は、シーン(場面)のすべてのオブジェクトが埋込まれている座標系である。各オブジェクトは、その特定のオブジェクト座標を世界座標に変換するモデル化変換(M)206を有している。この変換でオブジェクトは他のオブジェクトに対し或る「世界」内のオブジェクト位置に回転、較正もしくは変換される。なお、モデル化変換はコンピュータグラフィックスの分野において周知である。
【0050】
ボリュームオブジェクト、特に異方性格子またはガントリー傾斜格子にサンプリングされたオブジェクトの場合には、モデル化変換(M)206は、補正変換(C)203と物理モデル化変換(PM)204との連結、すなわちM=PM×Cと見做すことができる。物理モデル化変換は、異方性またはガントリー傾斜サンプリング特性を顧慮することなくオブジェクトを世界空間に位置決めし、基準化し且つ回転する。
【0051】
すなわち、補正変換(C)は、ボリュームオブジェクト自体ならびにボクセルを得るのに用いたサンプリングプロセス(標本化プロセス)によって決定される。補正変換は、場面もしくはシーン内の他のオブジェクトに対する当該オブジェクトの関係または該他のオブジェクトの観察方法には依存しない。変換(PM)204は世界または場面(シーン)内における他のオブジェクトに対する当該オブジェクトの位置および配向によって決定される。なお、変換(PM)は、ボリュームオブジェクトのサンプリング方法ならびにボクセルの間隔およびアラインメントには依存しない。
【0052】
カメラ座標207は、ビュワー(観察する主体)によって観察されるシーン(場面)を表す。このカメラ座標207は、OpenGL(登録商標)レンダリングシステムのカメラ機能「gluLookAt」によって行うことができるようなビュー変換(V)208により得ることができる。ビュー変換208は、カメラが実世界に対して運動するに伴い、たとえば、シーンの周囲を軌道運動するに伴い変化する。しかしながら、ビュー変換は、実世界のオブジェクトが回転する場合(すなわち、そのM変換(モデル化変換)206が変る場合)には変化しない。
【0053】
クリップ座標
クリップ座標209は、カメラにより観察される世界のビューを無限座標系から、円錐台表示窓或るいは平行六面体表示窓により画定される有限座標系に縮小する。射影変換(PJ)210はカメラ座標系207をクリップ座標系209に写像する。
【0054】
正規化された射影座標211は、x−、y−およびz−方向の各方向で範囲[−1.0〜 +1.0]内の標準座標集合に対しカメラから見たシーンの正規化を表す。透視投影の場合には、オブジェクトは、奥行き縮小して見え、平行線は遠方に収斂するように見える。正規化座標211は、透視分割(透視的に見た状態での分割)212、すなわち同次座標におけるスケーリング因子wを用いてクリップ座標209から得られる。直交透視の場合には、w=1である。
【0055】
画像座標
画像座標213は、スクリーン、ウインドウ或るいは出力装置、すなわち画像平面の座標である。多くの事例において、これは、オブジェクト或るいはシーンが表示されている画像の二次元座標系である。多くの3D多角形グラフィックスシステムは、画像の平面に対し垂直な軸が奥行き(深度)値の集合として表される2.5次元の座標系(two-and-a-half dimensional coordinate system)を有する。この発明によれば、画像平面に対し、真の三次元画像座標系が用いられる。
【0056】
本明細書において、説明の便宜上、画像座標系を、x−およびy−次元における1単位が正確に画像平面における1ピクセルに対応し、z−次元における1単位が深度値(奥行きの値)の最小増分に対応する三次元座標系であると定義する。この座標系は、埋込まれた多角形オブジェクトをレンダリングしたり、可視性およびオブジェクトの他のオブジェクトによるオクルージョンをチェックするのに用いられる。
【0057】
窓表示変換(VT)214では、正規化された射影座標211は、画像座標系213に写像される。ここで画像座標系の軸をxiyiD或るいはXiYiDで表す。
【0058】
この発明によるxy−画像オーダーレンダリングエンジン(後述する)においては、レイは画像座標系における整数位置に存在するピクセルの中心を垂直に通過する。画像平面は、少なくとも視点に対して、クリップ空間209の表示円錐台或るいは表示平行六面体の「近い方の面」と同程度の一定の深度を有する像座標系の任意の平面である。
【0059】
置換座標系
置換座標系220は、ボリュームオブジェクトのオブジェクト座標系201の変換に対応する。この変換について以下に詳述する。この変換では、オブジェクト空間のz−軸が実質的にレイに平行になるように、すなわち、ビュー方向(視点方向)に実質的に平行になるようにラベル、そして場合によりオブジェクト座標系の軸の方向を再配列する。1つの実施形態においては、この配向は、画像平面に最も近似的に平行であるボリュームの表面を基底面として選択することにより実現できる。したがって、レイはx−、y−およびz−次元の各々において、非負の方向にボリュームデータを横切る。なお、この発明において、置換座標系220を表すのに表記xvyvzvおよびXvYvZvを用いる。置換座標系220の原点、すなわち、(0、0、0)点ならびにオブジェクト座標201は実質的に互いに近接しているが、必ずしも同一点にある必要はない。
【0060】
ボクセルは、レンダリングメモリ1360(図13を参照し追って説明する)において、ミニブロック1401として組織化される。(図14参照)。ここで、各ミニブロックは2×2×2のボクセルアレイからなる。メモリ内のボリュームデータセットに対する各データアクセスで関連のアドレスにおけるミニブロックが取り出される。ビュー方向が、レンダリングエンジンがボリュームを1つまたは複数の軸に沿い負の方向にスキャンするような方向である場合には、ミニブロック境界に出発点を置くために、該出発点を当該次元において1ボクセル分だけ変位する。これは、置換変換P221を用いてオブジェクト座標201を置換座標220に変換する場合に当該次元においてバイアス値「1」を減算することにより実現される。
【0061】
オブジェクト - 置換座標
図4は、オブジェクト座標の置換座標への置換例を示す。図を参照するに、オブジェクト座標系の軸u401は置換座標系の負のz−軸402に置換されており、オブジェクト座標系の軸v403は負のx−軸404に置換されており、そして軸w405は正のy−軸406に置換されている。オブジェクト座標系の原点410(0u 、0v 、0w)は置換座標系の点(−1x、0y、1z)415に位置する。
【0062】
ボックス(箱状物)420は、該ボックスの1つの角のボクセルX421がuvw−座標系、すなわちオブジェクト座標系の座標(2、4、1)に位置し、xvyvzv−座標系では座標(−5、1、−3)となるように位置決めされている。
【0063】
置換座標系220は、ボクセルを読み取ってサンプル(標本)を順序立って処理するのに便利な手段である。この発明によるレンダリングパイプライン内部処理の多くは、オブジェクト座標ではなく置換ボクセル座標で表現される。特定のオブジェクトおよびモデリングのための置換座標の導出ならびにビュー変換(窓表示変換)を以下に説明する。
【0064】
オブジェクト空間においては、ボクセルは整数座標に位置するが、置換座標空間においては臨機的に非整数座標を用いる。この発明のレンダリングエンジンは、置換座標をボクセル間隔の1/256にまで分解もしくは解像することが可能である。なお、このように分解されたボクセルをサブボクセルと称することにする。また、この発明のレンダリングエンジンでは、サブボクセル位置を生成する増分計算において、精度を期すために追加ビットとして9ビットが用いられる。また、以下の説明において、時に応じ、術語「置換サブボクセル座標(系)」を用いるが、この術語は、因数「1/256」で基準化した置換座標を意味する。すなわち、この置換座標は8ビットの分数精度を有する。したがって、置換座標はこの発明を実施するのに必ずしも必要とされない。別の実施の形態においては、直接オブジェクト座標からサンプル座標にボリュームレンダリングを行う。
【0065】
サンプル座標系
サンプル空間とは、すべてのレイ(光線)が最も近似的に置換座標系のz−軸に対して平行であり且つすべてのサンプル点がx−、y−およびz−次元の各々において非負の整数座標に1単位ずつ離間して位置する座標系である。特定のレイのサンプル点の集合は、x−およびy−座標が一定でありz−座標が変化するサンプル座標系における点の集合である。サンプル座標系における点を表すのに表記xsyszsおよびXsYsZsを用いることにする。置換座標をサンプル座標に変換するのに再サンプリング変換R231を適用する。この変換について以下に詳細に説明する。
【0066】
XY−画像オーダー
特定の状況下においてサンプル空間をどのように定義するかはこのサンプル空間で何を行うかに依存する。この発明のボリュームレンダリング方法の主たる様相によれば、レイを画像平面のピクセルの中心に通し、該レイに沿うサンプル点をボリュームの置換座標系のzv−軸に平行なスライス(基底面に平行な平面)に組織化する。この手法をxy−画像オーダーレンダリング(xy-image order rendering)と称する。
【0067】
別法として、シヤーワーププロセスの変形プロセスを用いる。この場合には、レイを、「基底面」、すなわち画像平面に対し最も近似的に平行であるボリュームのxvyv−面と同面関係にある平面内のピクセル点の整列された矩形格子を通して投射する。これを、「オブジェクトオーダーレンダリング(object order rendering)」と称することにする。
【0068】
xy−画像オーダーレンダリングと関連し、サンプル座標系のx−およびy−軸を画像座標系213のx−およびy−軸と実質的に同じであると定義する。すなわち、この定義によれば、各ピクセル毎に1本のレイが存在する。以下に、xy−画像オーダーレンダリングについて詳細に説明する。
【0069】
ところで、zs−軸は画像座標系213の深度(奥行きもしくは距離)軸(D−軸と称する)とは異なる。特に、D−座標、すなわちサンプル点の深度は該サンプル点の画像平面からの距離の尺度である。サンプル空間においては、これとは対照的に一定のz−値の平面は置換空間xvyv−平面に対して平行であり、したがって必ずしも画像平面に対しては平行ではない。したがってサンプル空間から画像空間に移行するのに深度ワープ(depth warp)変換(D)240を行う。
【0070】
このように通常とは異なってサンプル座標230の定義を行う理由は、この発明では、効率的で順序立った仕方で、xy−画像順序であれ或るいはオブジェクト順序であれ一度にボクセルのスライスをアクセスすることによりボリュームレンダリングを行うからである。このようにして得られるボクセルスライスから本来的にボクセルスライスに対して平行であるサンプルスライスを得るためのリサンプリング(再サンプリング)が行われる。すなわち、同じサンプルスライスのすべてのサンプルは置換ボクセル座標220と同じzv−座標を有する。このことは、この発明の定義によれば、2回ではなく1回の補間を行うことによって得られる従来の画像順序化レンダリングで達成される画像品質と、補間を行うのに要求される乗算回数を減少するために平行なボクセルおよびサンプル平面を用いて得られる従来のオブジェクト順序化レンダリングで実現されるパフォーマンスとが組み合わされるという利点が得られる。
【0071】
図5はこの発明によるレイキャスティング(光線の投射)およびボクセルのサンプリングとともにボリュームデータセットを示す。図5において、ボリューム500の横断面が置換空間に示してある。画像平面501は、図の左上に位置しボリュームの外側にあってボリュームに対し任意の角度で傾いている。レイ502は、画像平面の各ピクセルからボリューム500を通過するように投射される。直交投影の場合には、レイは画像平面に対して垂直である。
【0072】
ボリュームのxv−およびzv−軸510が図5に示してあり、yv−軸は図の面に対して垂直である。画像平面のx−およびy−軸は一般に図の面に対して平行または垂直ではく、画像平面上のピクセルの矩形アレイは、レイに平行な軸を中心に回転し得る。表面503が基底面として選択される。1つの実施形態においては、選択される表面は画像平面501に対して最も(最近似的に)平行である。
【0073】
サンプル点520(各レイ502上の×印)は基底面503(xv−およびyv−軸)に対して平行な平面上に位置する。各サンプル点もまたレイ上に位置し、したがって、サンプル点のスライスは、置換座標で一定のzv−値を有する特定の平面と交差する。なお、サンプル点のスライスのzv−座標は必ずしも或るいは典型的に置換座標系における整数ではないことを注記しておく。しかしながら定義によって、サンプル空間内の対応のzs−座標値は整数であるとする。
【0074】
サンプル座標系の原点
以降の説明において、この発明によるサンプル座標系230の原点は、画像座標系213における(0、0、depth0)と一致するものと定義する。この定義において、depth0は、埋込まれた多角形オブジェクトをレンダリングする必要性に鑑みて割り当てられる深度値である。深度値が画像平面に向かう方向において増加するか或るいは減少するかは、3D多角形グラフィックスシステムにおける深度の表現のような外部因子の関数に依存する。
【0075】
サンプル座標系の原点を、レンダリング中に、ボリュームを横断するための出発点として用いる。この横断は、置換座標系220でのボクセルに対する該原点の位置を知る上で必要である。
【0076】
図6は、画像平面の視点からのボリューム600を示す。このボリュームは、任意量で基準化され、回転され且つ変換された直方体である。この図において、xs−およびys−軸601は図の平面内にあり、zs−軸は図6を見る方向に平行であって図の面に対し垂直であり且つ図の面に指向している。
【0077】
この特定の例においては、置換ボクセル座標系220の原点610は、右上の前部の角近傍に位置する。この発明による置換座標系の定義にしたがい、zv−軸603は視線の方向に最近似的に平行である。この例においては、zv−軸は、ボリュームの大きな薄い斜線を引いた面604に垂直な軸である。置換座標系の他の2つの軸605はレイが非負の方向を指向する右側座標系を形成するように選択されている。
【0078】
この場合、サンプル座標系230の原点602は、ボリュームより相当外側に位置し、置換座標系の原点に対し三次元すべてにおいて負方向にある。また、ボリューム自体の輪郭は、サンプル座標系でzs=0平面上に投影された場合に不規則な六角形を形作ることも理解されるであろう。なお、このことは、図6において太い破線620で示してある。
【0079】
ビュー切頭体
ボリュームレンダリングにとって特に関心のあるのはビュー切頭体またはビュー平行六面体である。これは、三次元すべてにおけるサンプル座標の部分集合或るいは範囲であり、実効的にはサンプル空間において直交するクリップ領域である。ビュー切頭体が完全にボリュームを含む場合もあれば、またビュー切頭体が完全にボリューム内に含まれる場合もある。さらにまた、ビュー切頭体がボリュームと交差する場合もあり得る。
【0080】
図7の(a)〜(c)は、ビュー切頭体のいくつかの例を示す図である。図7の(a)はボリューム700全体の画像を包入するのに充分な大きさのビュー切頭体701を示す。また、図7の(b)はボリューム700の像よりも小さいビュー切頭体702を示し、したがってこの場合には、ビュワーは関心のある特定領域に集中することができる。図7の(c)は、周囲空間に延在しているボリュームの縁に位置するビュー切頭体703を示す。これは、たとえば、他のオブジェクトをボリュームに隣接して表示したり或るいはボリューム内に埋込んで表示する場合に相当する。
【0081】
ビュー切頭体は、サンプル空間230において最小および最大の境界座標により特定される。すなわち、xsの最小および最大値、ysの最小および最大値ならびにzsの最小および最大値により特定される。これは、ビューポート変換214から得られる範囲に対応する。
【0082】
この発明では、ビュー切頭体外部のレイについては考慮しないし、また、ビュー切頭体外ではどのサンプル点の処理も行わない。他のオブジェクトの画像を埋込む場合には、ビュー切頭体内に存在するオブジェクトのピクセルおよび深度値だけを読み取る。更新した深度値を書き出す場合、或るいはレンダリングされたボリュームのピクセル値を書き出す場合には、ビュー切頭体内に位置するピクセルおよび深度アレイのエレメントに対してのみ書き込みを行う。
【0083】
サンプル座標系の変換
図2には、サンプル座標系に関する2つの変換が示してある。第1の変換は、リサンプリング(再サンプリング)変換(R)231であり、この変換では置換ボクセル座標がサンプル座標に写像(マッピング)される。これにより、置換座標220の各点(xv、yv、zv)はサンプル空間230において一致する点の座標(xs、ys、zs)に変換される。
【0084】
一般に、変換Rは、サンプル空間(xs、ys、zs)の点を置換空間において一致する位置(xv、yv、zv)にマッピングする逆変換R-1を有する。この発明によるハードウエアレンダリングエンジンは、実際に、R-1変換を効率的に実行する。
【0085】
この発明によれば、サンプル空間をxsyszs−順序(オーダ)で進捗し、各サンプル点毎に、逆リサンプリング変換R-1を増分的に適用することにより、xvyvzv−座標を得る。R-1の行列表現からレンダリングパラメータを取り出す。したがって一般には、サンプル空間をステップバイステップで進捗して、サンプル点を増分的にオブジェクト空間に写像(マッピング)する。
【0086】
サンプル空間に関連する他の変換は深度ワープ変換(D)240である。この変換では、サンプル空間230の座標が画像空間213の座標に写像される。深度ワープ変換は2つの目的に仕える。
【0087】
第1に、xy−画像オーダーボリュームレンダリングの場合には、後述するように深度ワープ変換でサンプル空間230のzs−座標が画像空間213の深度値に変換される。なお、深度ワープ変換240ではxs−およびys−座標は変更されないままに残る。
第2に、シヤーワーププロセスによるボリュームレンダリングの場合には、深度ワープ変換は、zs−座標を深度値に写像することに加えてワープステップ(歪曲変形ステップ)をも実行することができる。
【0088】
レンダリングパラメータの導出
シヤーワープ処理もしくはプロセスのためのレンダリングパラメータを導出するには、逆ビュー/モデリング化変換によりカメラ座標207でz−次元に単位ベクトルを投影してオブジェクト座標201における均等な表現を見出すことで充分である。これにより、レイの勾配および他のレンダリングパラメータを導出できる。原点の割当ては特に必要ではなく、レイ間の間隔ならびにレイに沿うサンプル間の間隔は経験的に決定できる。
【0089】
ここでは、xy−画像オーダーレンダリングを行う際に、レイが正確に画像平面内のピクセルの中心を通過するようにレンダリングパラメータおよび変換を決定する。
【0090】
xy−画像オーダーレンダリングの利点は、その結果得られる二次元画像を、直接、表示装置もしくは出力装置にコピーでき、従来技術の場合にようにワープ(歪曲変形)処理その他の事後処理段階が必要とされない点にある。
【0091】
このような変換を用い、ソフトウエアで、ビュー方向および(または)オブジェクトの配向に関係なくシーンもしくは場面内の該オブジェクトの位置を正確に制御することができる。後にこの分析手法を用いて、シヤーワーププロセス(剪断/歪曲変形)プロセスでレンダリングするための正確な設定量を演繹することについて述べるであろう。
【0092】
XY−画像オーダーレンダリングの概要
ボリュームオブジェクトをレンダリングすべきグラフィックスの脈絡から図2の左側に示してあるすべてのグラフィックス変換を知ることから出発する。これには、モデル化変換(モデリング変換)M206、ビュー変換V208、投影変換PJ210、透視分割212およびビューポート変換VT214が含まれる。以降、表記の便宜上、変換PJ、透視分割、および変換VTを単一の変換VPで集約的に表すことにする。なお、変換M、VおよびVPはすべて逆変換VP-1を有するものと仮定する。
【0093】
また、ボリュームオブジェクトを表示すべきビューポートに関する詳細が与えられているものとする。この詳細には、前面および後面の幅、高さおよび深度値depth Nearおよびdepth Farが含まれる。なお、深度値は、埋込まれた多角形オブジェクトをレンダリングするための慣用の多角形グラフィックスシステム、たとえばOpenGL(登録商標)で用いられている深度値と同じにすべきである。
【0094】
最後に、ビューポートにおいて各レイに沿うサンプル点の数も得られる。
【0095】
図8に示すように、xy−画像オーダーでボリュームレンダリングを行うのに下記のステップを実行する。
【0096】
ステップ810においては、積VP×V×Mを反転し、その結果を用いて画像平面内の単位ベクトルをオブジェクト空間での表現に写像する。この表現から、置換変換Pおよびその逆変換P-1を構築する。
【0097】
ステップ820においては、
【数1】
を構築する。この行列は、置換座標系の任意点の画像座標系内の同じ点への変換を表す。
【0098】
ステップ830において、行列Mp を
【数2】
、すなわち、リサンプリング変換と深度ワープ変換の積に分解する。DおよびR各々の行列表現には2つの未知の項目がある。
【0099】
冒頭に述べた仮定から、ステップ840でこれら未知の値の解を求めて、完全なDおよびRの行列表現を得る。
【0100】
ステップ850において、Rを反転しR-1を得る。これは、サンプル空間の点を置換空間における座標に写像する変換の行列表現である。DおよびR-1の行列項目を用いて、レンダリングパイプラインのレジスタの増分値(ステップの大きさもしくはサイズ)を設定する。
【0101】
好適な実施の形態においては、上記のステップを、ユーザによる特定の観察モードの選択に応答し、ホストコンピュータ内のグラフィックスドライバーソフトウエアによって実行する。次いで、行列項目を、レンダリングパイプラインの動作を制御するレジスタに書き込む。レジスタ値は本質的に、サンプル点に対するステップサイズ(ステップの大きさ)を制御する増分値(デルタ(Δ)値)である。
【0102】
置換変換
置換変換Pを得るために、画像座標からオブジェクト座標に単位ビューベクトルの変換を行う。ここで画像座標における単位ビューベクトルとは、画像平面からz−軸に沿いボリュームオブジェクトに指向するベクトルであり、画像空間の深度軸のオリエンテーションもしくは配向に依存し下記のいずれかの式で表される長さの深度の1単位である。
【数3】
【0103】
画像平面から離れるに伴い深度が増加すると仮定すると、VP、VおよびM変換の逆変換を適用してベクトル[du、dv、dw、1]Tを得ることによりオブジェクト空間にビューベクトルを表現することができる。ここでTは変換演算子であり、次式で与えられる。
【数4】
【0104】
このベクトルから、オブジェクト座標の軸の置換座標の軸への写像を、レイがz−軸に最近似的に平行で、非負のx−、y−およびz−方向においてボリュームを横切るように演繹することが可能である。
【0105】
z−軸の選択は直截的である。このz−軸は、構成要素もしくはコンポーネントの絶対値|du|、|dv|および|dw|の内の最大値に対応する軸である。したがって|du|が最大であるとすれば、ビュー方向はu−軸に最近似的に平行であり、したがってこのu−軸が置換座標のz−軸に写像される。同様にして|dv|が最大である場合には、v−軸が置換座標におけるz−軸に写像される。また、|dw|が最大である場合にはw−軸が置換座標のz−軸に写像される。2つのコンポーネントの絶対値が等しく、それが第3のコンポーネントよりも大きい場合には、2つの内のいずれかを選ぶことができる。また、|du|=|dv|=|dw|である場合には、どの軸を選択しても良い。
【0106】
上記のことは図9に図示してある。画像座標213から単位ビューベクトルの変換値をオブジェクト座標系201におけるuv−およびvw−平面に投影する。ベクトル901は、uv−平面上への単位ベクトルの投影であり、ベクトル902は、単位ベクトルのvw−平面への投影である。図9から明らかなように、ビューベクトルはu−軸に最近似的に平行である。すなわち、ビューベクトルとu−軸との角度は、ビューベクトルとv−軸およびビューベクトルとw−軸との間の角度よりも小さい。これは、|du|、すなわちu−成分の大きさが、|dv|或るいは|dw|のいずれよりも大きいことと等価である。
【0107】
下表1は、max(|du|,|dv|,|dw|)=|du|が成り立つ右側のシステムにおける軸の割当てを示す。
【0108】
【表1】
【0109】
z−軸の同定後、その方向ならびに他の2つの軸の割り当てをdu、dvおよびdwの記号から導出する。特に、レイは置換座標系においてx−、y−およびz−次元で非負の方向を指向しなければならない。したがって、便宜上、右側座標系を考察の対象にする。24の可能な右側座標系があり、その内の8つの座標系はそれぞれz−軸の写像に関するものである。さらに、他の24の可能な左側座標系がある。
【0110】
表1は、|du|が少なくとも|dv|或るいは|dw|のいずれとも同じ大きさである右側座標系への写像もしくはマッピングを示す。|dv|が|du|よりも大きく且つ少なくとも|dw|と同じ大きさである場合ならびに|dw|が|du|或るいは|dv|のいずれよりも大きい場合について、左側の座標系と関連し、表1に対応の表をどのようにして構築するかは説明するまでもなく理解できるであろう。
【0111】
表1から単位ビューベクトルがu−軸に最近似的に平行である8つのケースに対応する8個の置換行列Pを構築することができる。これら行列は図10に示してある。軸が他の負の軸に写像される置換の場合には、原点は当該次元において−1により変換されることを述べておく。したがって、図10に示したいくつかのP行列の4番目の列にはいくつかの非零値がある。置換行列Pから、逆置換行列P-1を得ることが可能である。
【0112】
中間変換M p
図8のステップ820で、次式で定まるMpと称する中間変換を行う。
Mp=VP×V×M×P-1 [1]
【0113】
VP、VおよびMはグラフィックスの脈絡から行列内で既知であり、そしてP-1は上記の置換変換から求めることができるので、Mpを行列乗算で求めることが可能である。
【0114】
図2を参照すれば明らかなように、Mpは、置換座標を画像座標に変換する。また、Mpは置換座標の原点を画像空間内の点に変換する。
【0115】
1つの3D空間から他の3D空間への線形変換は4つの列ベクトルから構成される同次座標における行列として表現することができる。最初から3つの列は、ソース空間の3つの各次元の単位ベクトルがどのようにしてそれぞれ目標空間内のベクトルに変換されるかを定義する。4番目の列は、ソース空間の原点が目標空間の原点にどのよう変換されるかを定義する。Mpはこのような線形変換であり、したがって、下記のように記述される。
【数5】
【0116】
上記行列において、列ベクトル[dxixv、dyixv、dDxv、0]T は置換空間におけるx−次元の単位ベクトル(すなわち、Xv)の画像空間、すなわちXiYiD−座標系における表現である。
【0117】
同様に、列ベクトル[dxiyv、dyiyv、dDyv、0]T および[dxizv、dyizv、dDzv、0]T も同様に、それぞれ、置換空間におけるy−およびz−次元の単位ベクトルの画像空間における表現である。画像空間座標[X0i、Y0i、Z0i、1]T は置換空間の零点もしくは原点を表す。
【0118】
Mp は式1から行列乗算により求めることができるので、式2における各項は既知の値となる。
【0119】
M p の分解
図2から、変換Mp は下式に等価であることが分かる。
Mp=D×R [3]
【0120】
すなわち、置換座標、すなわちXvYvZv−空間における点またはベクトルを、リサンプル変換Rを用いてサンプル空間、すなわちXsYsZs−空間の座標にマッピングもしくは写像することにより画像空間に写像(マッピング)し、次いでその結果を、深度ワープ変換Dを用いて画像空間に写像する。言うまでもないことであるが、式2は式1と同じ結果を生ずる。
【0121】
既述のxy−画像オーダーの定義により、サンプル空間におけるxs−およびys−座標は正確に、画像空間におけるxi −およびyi −座標と同じである。さらにまた、サンプル空間における零点を画像空間における点(0、0、depth0)に写像する。サンプル空間のzs −座標だけは深度ワープ変換により変換する。したがって、Dは下式で表される。
【数6】
【0122】
上式から明らかなように、サンプル空間内の任意の点[xs、ys、zs、1]T は下式で表される点として画像空間に写像される。
【数7】
【0123】
Dの第3行の4つの項目はいずれも既知ではない。しかしながら、これら項目はすべて、他の情報および他の仮定、特に、画像空間のx−およびy−次元はサンプル空間のこれら次元と同じであるという仮定から、画像空間のサブセット(部分集合)としてビューポートの仕様ならびに式3の行列Mpから演繹することができる。
【0124】
Rの行列表現もまた式3ならびにxy−画像オーダーの定義から次のように書き換えることができる。
【数8】
【0125】
これは、サンプル空間のxs−およびys−軸が正確に画像空間のxi−およびYi−軸と同じであるからである。したがって、Rの最初から2つの行における値はMpの最初から2つの行における値と正確に同じである。しかしながら、表記は各項毎に「i」を「s」で置換することにより変更してある。
【0126】
第3の行は上述の2つの行とは異なる。サンプル空間において、定数zsの平面は、置換空間における定数zvの平面に平行である。すなわち、基底面に平行である。したがって、xv或るいはyvのいずれかに変化があってもzsには全く変化は生じない。したがって、Rの第3行の最初から2つの項目は零である。また、第3行の最後の2つの項目、すなわちdzszvおよびZ0sは依然として未知である。
【0127】
Dにおける未知項目の解法
式5で示したRの左下の4分の1区分が零であることに注目されたい。したがってRは下記のように書き換えることができる。
【数9】
【0128】
上式中、A、BおよびCは2×2行列である。上述のように、AおよびBの項はすべて既知であるがCは依然として2つの未知項目を含んでいる。MpおよびDの行列式を式3に代入することにより次式が得られる。
【数10】
【0129】
特に第3行は下記のように表される。
【数11】
【0130】
Rの左下の4分の1区分は零であるので、下式が成り立つ。
【数12】
【0131】
転置をとると、式9は、
【数13】
したがって、
【数14】
に等価である。
【0132】
dxsxv、dysxv、dxsyvおよびdysyvはRから既知であり且つdDxvおよびdDyvはMpから既知であるので、行列反転および乗算を用いることにより、Dの2つの未知項目、すなわちdDxsおよびdDsを計算した。
【0133】
レイに沿うサンプル点の間隔
第3の未知項目、すなわちdDzsは下式で求められる。
【数15】
【0134】
すなわち、dDzsは、深度単位で測定してレイに沿うサンプル点間の距離、すなわち間隔を表す。式12は、深度単位で測定してビューポートの前部から後部までの全距離を該距離内に存在するサンプル数で除算することを意味する。なお、dDzsは、深度値が画像平面に向かって増加するか或るいは画像平面から離れるにつれて増加するかに依存して正かまたは負となる。
【0135】
レイに沿うサンプル点の間隔もしくは距離を計算するための好適な方法は、ビューポートにおけるボリュームオブジェクトの回転に関係なく且つボリュームデータセット自体に固有の異方性またはシヤー(剪断変形)に関係なく、サンプル段階毎に深度値に一定の変化を与えることである。画像処理の観点からは、このことは厳密には必要ではないが、これによって利点が得られると信じられる。なお、サンプル間間隔はまた他の方法を用いて決定することも可能であることを付記する。
【0136】
例として、図11の(a)および(b)は、異方性をもってサンプリングしたボリュームデータセット(集合)1100の断面を示す。これら図において、ボクセルは「×」印1101で表されており、矢印1102は2つのビュー方向(レイ方向)を表し、そして各矢印におけるハッシュマーク1103はレイに沿うサンプル点を表す。
【0137】
図11の(a)に示す矢印上のハッシュマークは、画像内で測定した場合でも、実世界で測定した場合でも或るいは物理空間で測定した場合でも、図11の(b)に示す矢印上のハッシュマークと同様に正確に同じ距離だけ互いに離間している。図11の(a)の場合には、ビューベクトルは近似的に水平であり、したがって、置換空間のzv−軸は水平軸である。サンプル点の間隔は、ボクセルスライス毎に実質的に2つのサンプルが得られるような間隔である。図11の(b)の場合、ビューベクトルは近似的に垂直であり、したがって、置換空間のzv−軸としては垂直軸が選ばれる。右側の矢印に沿うサンプル点の間隔は実質的に、ボクセルスライス毎に3サンプルが得られる間隔である。
【0138】
Depth 0の評価
サンプル空間の原点の深度depth0の値の選択は決して無益ではない。ビューポートに対してサンプル空間は歪んでいるので、原点の深度depth0はボリュームを見る方向で変化し得る。このことは、図12の(a)〜(c)を参照することにより一層良く理解できよう。なお、これら図は、ボリュームオブジェクトが3つの異なった仕方で位置設定されているビューポートの俯瞰図である。なお、ビューポートのy−次元は図の面に対して垂直である。
【0139】
各図において、画像平面は右側に、そしてビュー方向は視点1201から右に向かうベクトルにより示されている。また、ビューポートは実線で描いたボックス1202で示してあり、ビューポートの長さはビューベクトルに平行であり、深度値depth Near1206およびdepth Far1207はボックスの端を表す。画像平面は図の面に対して垂直であり、x−次元は上から見てxsに平行に図の面内に存在する。さらに、y−次元は図の面に対して垂直である。
【0140】
図12の(a)は、ボリュームオブジェクト、すなわち実線で示した輪郭を有する小さいボックス1203をその面の1つに対し垂直で見た状態で示している。この場合、depth0の割当ては容易である。すなわち、depth Near1206に設定することができる。したがってサンプル空間は、ビューポートに正確に適合もしくは嵌合する三次元空間である。サンプル空間のxz−断面は破線1204でその輪郭が示してある。このサンプル空間はビューポート内のすべての点を含む。たとえば、ビューポート内に多角形のオブジェクトを描いたとすると、該多角形オブジェクトはサンプル空間内に存在しボリュームオブジェクト内に部分的に埋込まれ得る。
【0141】
図12の(b)は、図の面に垂直な軸線を中心に回転したボリュームオブジェクトを示している。zv−軸は、置換変換に関して既に述べた方法により選択される。サンプル空間のスライスは、画像平面に最近似的に平行であるボリュームの面に対して平行であるので、サンプル空間はボリュームオブジェクトの回転量分だけ歪む。たとえば、多角形オブジェクトをビューポート内に埋込む目的でサンプル空間がビューポート内のすべての点を含むのが望ましいことを前提条件とすると、サンプルの前後の境界は、破線1202により示すように延伸しなければならない。サンプル空間のxs−およびzs−軸は矢印およびラベルで示してある。
【0142】
サンプル空間の原点は、破線で示した輪郭の左上の端によって表される角1205に位置する。サンプル空間のxs−およびys−次元は俯瞰図の場合と正確に同じである。しかしながら、サンプル空間の原点の深度値depth0は全く異なる。したがって、このサンプル空間の原点の深度値depth0は、depth Nearおよびdepth Far間ならびにビューポート内のすべての点が、該ビューポートにより特定される正しい深度値を有するように計算しなければならない。たとえば、破線で示した輪郭の左下の角1206は、depth Nearの深度値を有しなければならない。正しい深度値が、図12の(b)における位置1205のような位置においてハードウエアレジスタでサポートされている範囲を越える場合には、深度の計算は不正確になり得る。この発明の好適な実施の形態においては、この問題に対処するために、深度計算論理で記号(±)付きの深度を取り扱うことができ且つ最大深度を大きくすることができる。
【0143】
図12の(c)には、ビューポート内で他の方向に回転された上述のものと同じボリュームオブジェクトが示してある。したがって、zv−軸は図12の(b)に示した軸とは異なる。その結果、サンプル空間は他の方向に歪む。この場合、サンプル空間の原点の深度値depth0には、値depth Nearを割り当てることができるが、サンプル空間は画像平面の左側の点を含み、深度値はdepth Nearよりも画像平面に近くなる。
【0144】
yz−次元においてサンプル空間の類似の歪みを想像することは可能であるが描画することは困難である。さらにまた、図12の(b)に示すように、サンプル空間はxz−次元において1つの方向に歪み、そしてyz−次元においては、図12の(c)に示すように他の方向に歪む可能性がある。このような歪みもしくはスキューイングを可視化するためには3Dモデルが要求される。
【0145】
しかしながら、歪みもしくはスキューイングに関係なく、この発明によれば、Dに対する未知項目の解に関して先に述べたようにして、Dの項目からdepth0の値を求めることができる。まず、ビューポート内のサンプル空間のスライス零の4つの角は、下記のように表されるxsys−座標を有することに注目する。
【数16】
【0146】
上式中、widthおよびheightは、ビューポートの画像平面の幅および高さを表す。したがって、これら4つの角の深度値は、行列乗算により式4の深度変換Dから求めることができる。すなわち、それぞれ下記の通りである。
【数17】
【0147】
depth Nearがdepth Farよりも小さい場合、すなわち、深度値がビュワーからオブジェクトに向かって増加する場合には、これら4つの角の最大深度値を選択する。この最大深度値は、depth Nearより小さいかまたはそれに等しくすべきである。すなわち、最大深度値を有する角はビューポートの前面に位置するか或るいはそれよりも前に位置すべきである。便宜上、深度値depth Nearを割り当てることにする。すなわち、
【数18】
【0148】
逆に、depth Nearがdepth Farよりも大きい場合、すなわち深度値が画像平面に向かって増加する場合には、上記4つの角の内の最小のものを選択する。すなわち、
【数19】
【0149】
このようにして、深度行列Dの導出が完了する。ここで1つ注意を喚起しておく。すなわち、深度値は、ビューポート外部のサンプル空間領域、すなわち、図12の(b)および図12の(c)において視点の左側および右側の三角形の領域において深度カウンタの上/下限値を越えたりまたは下回わらないことである。
【0150】
R -1 レンダリングパラメータ
リサンプリング変換Rの残った未知項目を決定する。リサンプリング変換Rの第3および第4列とDの第3行とのドット積を取ることによりMpのエントリもしくは項目dDzvおよびZ0iが得られる。すなわち、
【数20】
および
【数21】
式13をdzszvについて解くと次式が得られる。
【数22】
【0151】
同様にして、式14をZ0sを解くと次式が得られる。
【数23】
【0152】
このようにして、RおよびDは今や双方ともに既知となる。Dの項目もしくはエントリを後述のようにレンダリングエンジンのレジスタに割り当てる。リサンプリング変換Rは、使用前に反転しなければならない。
【0153】
式15および16から、Rのすべての項目の値が今や既知となっている。したがって、サンプル空間を置換空間に変換するためには、単にRを反転するだけで良い。これは、通常の行列反転アルゴリズムにより直接行うことができる。
【0154】
R-1はサンプル空間の置換空間への線形変換を表す。したがって、これは、同次座標における行列として下記のように書き換えることができる。
【数24】
【0155】
この行列の項目もしくはエントリは、ボリュームデータセットをxy−画像オーダーにしたがってレンダリングするのに必要な値である。後述するように、これら値はレンダリングパイプラインのレンダリングレジスタに書き込まれる。
【0156】
サンプル空間のスライス内のサンプル点のスペーシング
既に述べたように、xy−画像オーダーレンダリングの場合には、サンプル空間は、画像平面上のピクセルを通るレイを含む。また、シヤーワープの場合には、基底面を通るレイを含む。この発明においては、サンプル空間のスライス(サンプル点の平面)は、置換空間のスライス(ボクセルの平面)に対して常に平行である。しかしながら、サンプル空間のx−およびy−軸は必ずしも置換されたボクセル空間の軸に対して平行ではない。したがって、ボクセルのスライスと交差するレイの格子は、図19に示すように、任意の角度にすることができる。さらにまた、画像平面上に矩形のパターンで組織化されたレイは、平行四辺形パターンでボクセルスライスと交差し得る。
【0157】
図19を参照するに、ボクセル1901は、シンボル「×」で示されており、矩形格子1902に整列されている。置換座標におけるxv−およびyv−軸1903は左上の隅に示してあり、ラベルXvおよびYvが付けられている。サンプル点は、画像平面から投射されたレイが同じスライスと交差する点である。これら点は中実のドット1904で示されており、非矩形格子上に配列されている。サンプル空間のx−およびy−軸1905は左下の隅にラベルXsおよびYsで示してある。
【0158】
下表2に示すレジスタdXvdXs、dYvdXs、dXvdYsおよびdYvdYsは、同じスライスにおける隣接の点のサブボクセル座標からサンプル空間における点の固定点サブボクセル座標を見付ける方法を指定する。
【0159】
【表2】
【0160】
詳述すると、レジスタdXvdXsは、xs−方向に1単位進むのに必要なXv−方向における単位数を格納する。これは、式17のdxvxsに相当し、図19に円で囲んだ参照数字1で示してある。レジスタ値dYvdXsは、xs−方向に1単位進むのに必要なYv−方向における単位数を示す。これは、式17のdyvxsに相当し、図19に円で囲んだ参照数字2で示してある。レジスタ値dYvdYsは、ys−方向に1単位進むのに必要なYv−方向における単位数を示す。これは、式17のdyvysに相当し、図19に円で囲んだ参照数字3で示してある。さらに、レジスタ値dXvdXsは、ys−方向に1単位進むのに必要なXv−方向における単位数を示す。これは、式17のdxvysに相当し、図19に円で囲んだ参照数字4で示してある。
【0161】
次に、この発明が教示するxy−画像順序でボリュームデータセットをレンダリングするレンダリングエンジンの好適な実施の形態について説明する。
【0162】
パイプライン編成
図13は、この発明によるボリュームレンダリングエンジン1300の全体的な編成もしくは構成を示す。エンジン1300は単一のASIC(特定用途向けIC)として実現するのが有利である。レンダリングエンジンの主たるモジュールは、メモリインターフェース1310、バス論理1320、シーケンサー1330および4本の並列パイプライン1340である。4本すべてのパイプラインを連絡する一対のスライスバッファ1350を除き、パイプライン(A、B、CおよびD)は互いに独立に動作する。
【0163】
メモリインターフェース1310は、レンダリングメモリを構成する8個の倍速(DDR)同期DRAM(ダイナミックRAM)チャンネル1360を制御する。レンダリングメモリとは、ボリュームレンダリングに必要とされるすべてのデータ1311、すなわちボクセル、入/出力画像、深度値、参照テーブルおよびコマンドキュー(待ち行列)のための一体的な記憶装置である。メモリインターフェース1310はメモリ1360に対するすべてのメモリアクセスを実行し、バス論理1320およびシーケンサー1330の要求を調停し、広帯域幅のアクセスおよび動作に際してモジュールおよびメモリ1360にアレイデータを分配する。
【0164】
バス論理
バス論理1320は、ホストコンピュータシステム10とのインターフェースを構成する。ホストコンピュータシステム10は、CPU11および主メモリ12を具備する。主メモリには、オペレーチングシステムと交信するグラフィックアプリケーションソフトウエアおよびグラフィックドライバを格納しておくことができる。ソフトウエアはCPUで実行される。好適な実施例においては、ホストコンピュータで表2のレンダリングレジスタ用の値を発生するのが有利である。
【0165】
ホストコンピュータ10がパーソナルコンピュータ(PC)或るいはワークステーションである場合には、バスは、たとえばPCI規格バージョン2.2にしたがい64ビットの66MHzPCIバス1321とすることができる。バス論理もメモリインターフェース1310を介してメモリ1360とデータ転送を行うためにDMA動作(直接メモリアクセス動作)を制御する。なお、DMA動作はバーストモードでのデータ転送である。
【0166】
この目的で、レンダリングエンジンはPCIバスマスタとして機能する。バス論理はまた、内部レジスタ1322および主メモリ12に対してアクセスを行う。これらアクセスは、個々のレジスタおよびメモリ内の個々の記憶場所に対する直接読出しおよび/または書込みである。これらのアクセスは、上記ホストコンピュータから開始することもできるし或るいはまたPCIバス上の他の何らかのデバイスにより開始することができる。バス論理はまた、レンダリングエンジンの動作の効率的な制御を行うためのレンダリングコマンド(指令)を解釈する。さらにまた、バス論理はレンダリング動作を制御するためにシーケンサー1330に直接レジスタ値を送ったり、シーケンサー、たとえば表2のレジスタからステータス情報を受ける。
【0167】
シーケンサー
シーケンサー1330はボリュームレンダリングエンジンを制御する。該シーケンサーは、メモリから取り出すべきデータを決定し、該データを4本のパイプライン1340に発送し、適時に個々のパイプラインに対し補間重みのような制御情報を送り、そしてレンダリング動作からの出力データを受ける。シーケンサ自体は多数のレジスタによって制御される有限状態機械である。これらレジスタは一般に、レジスタロード指令に応答してバス論理1310により書込まれる。内部的にはシーケンサは、一度に1セクションずつサンプル空間を段階的に処理するのに必要とされるカウンタの保守を行う。ここで、1セクションとは、たとえば24×24個までのピクセルを含む画像平面上の矩形領域である。別の見方として、セクションとは、レイならびにこれらレイに沿うすべてのサンプル点の集合と見做すことができる。シーケンサはまた、サンプル座標の置換ボクセル座標への変換をも制御して、4本のパイプラインの各ステージで必要とされる制御情報を発生する。
【0168】
パイプラインおよびミニブロック
図14は、4本のレンダリングパイプラインの詳細を示すとともに、これらパイプラインにどのようにしてデータおよびレンダリング動作が配分するかを示す図である。各パイプラインは勾配推定段1410、分類/補間段1420、イルミネータ段1430および合成段1440を備える。
【0169】
ボクセルは、メモリ1360内にミニブロック1401、すなわちそれぞれ2×2×2ボクセルの小立法体アレイとして記憶される。レンダリング動作中、シーケンサ1330はメモリインターフェースを介してミニブロックストリームを読み込む。これらミニブロックは、1クロックサイクル毎に1ミニブロックの速度でパイプラインに供給される。
【0170】
ミニブロックは、x−y−z−オーダーでボリュームデータから読出される。すなわち、ミニブロックはx−方向において逐次読出されて1セクションの行を埋め、次いでy−方向において行ベースでスライスを埋め、最後にz−方向においてスライス-バイ-スライスベースで当該セクション全体をレンダリングする。
【0171】
各ミニブロックがメモリインターフェース1310を介して到達する毎に、該ミニブロックはビュー方向にしたがい軸を配向することによって既述のように置換変換Pにしたがい置換される。そこで、ミニブロックは4つの1×1×2ボクセルアレイ1402に分解される。すなわち、z−方向に配列された4対のボクセルに分解され、図13に示すように、一対毎に各パイプラインに供給される。
【0172】
各ボクセル対は、勾配推定段1410を通されて、それにより、図1の(a)および図1の(b)を参照し説明したように、各ボクセル毎に勾配値が得られる。中心差分演算子を用いて勾配を求める結果として、出力ボクセルおよび勾配は、入力から各次元で1単位ずつ偏位している。この結果、パイプライン間で少量のデータ交換が要求される。
【0173】
勾配推定段から、ボクセルおよび勾配1403は分類/補間段1420に供給される。この段においては、ボクセルフィールドはRGBα値に変換されて、勾配とともにレイに沿うサンプル点における値に補間される。既述のように、サンプルスライスはボクセルスライスに対し平行である。なお、この段における分類および補間ステップはいずれの順序で実施しても良い。また、分類/補間段は、4本のパイプラインすべてにより共有される一対のスライスバッファ1360を有する。
【0174】
4個のパイプラインの4つの分類/補間段の出力1404は、サンプル空間における2×2点アレイ(点配列)におけるRGBα値および勾配のアレイである。なお、2×2点アレイはスタンプと称し図18に参照数字1805で示してある。スタンプの点は常にサンプル空間の同じスライス(平面)内に位置し、レイと整列している。画像平面上のピクセルをレイが通過する場合、これをxy−画像オーダーと称する。と言うのはxs−およびys−座標が画像空間の座標と同じであるからである。
【0175】
次に、RGBα値および勾配のスタンプは4つのイルミネータ1430へ供給される。これらイルミネータにおいては、反射率マップを用いて周知の Phong シェーディング(陰影付け)が行われる。各パイプラインのイルミネータは、レンダリング中データ交換を行わないという意味で、他のパイプラインのイルミネータから独立している。尤も当然のことながら、イルミネータはすべて同じクロックで同期的に動作する。
【0176】
勾配は、レンダリング動作が勾配の出力を指定する場合を除いて、イルミネータ段で消費される。レンダリング動作が勾配の出力を指定する場合には、パイプラインにおける赤、緑および青の色成分が3つの勾配成分により置換される。
【0177】
各パイプラインのイルミネータ段の出力1405はサンプル点の色寄与を表す照明されたRGBα値である。この出力は合成段に送られる。合成段1440では、レイのRGBα値がピクセルに結合される。1つのセクションのレンダリングの終わりで、4つの合成段の出力1406からは、一度に1つずつスタンプが読出されてレンダリングメモリ1360に格納される。
【0178】
以下、各ブロックの詳細について説明する。
【0179】
勾配の推定
図15は、1つのパイプラインの勾配推定段1500を示す。先に述べたように、8つのボクセルからなるミニブロックはz−次元で前後に配列された4対のボクセルに区分される。各ボクセル対は各パイプラインに供給される。すなわち、各サイクルの始めにパイプラインの頂部に置換座標(x、y、z)および(x、y、z+1)における一対のボクセル1501が入力される。ここでx、yおよびzは任意の値であるが、zは偶数である。
【0180】
ボクセル対は、16×16×2個の32ビットボクセルの大きさ或るいはそれより大きいサイズのスラブバッファ1510に書き込まれる。したがって、4組のパイプラインは、任意の視角における大きさのセクションのスライスをレンダリングするのに充分な大きさの集合的なスラブバッファを実現している。入力ボクセル対はまた、一対のz−中心差分モジュール1520の一方に供給される。一対の、すなわち2つの中心差分モジュール1520は、スラブバッファから読み取られた同じx−およびy−座標を有する一対のボクセルのフィールドを出力する。すなわち、上記一対のもしくは2つの中心差分モジュールは下記の式で表される2つの差分を計算する。
【数25】
【0181】
上式中Fz(x、y、z)は、勾配のz−成分のベースとなる座標(x、y、z)におけるボクセルのフィールドの値である。
【0182】
ここで、上記中心差分対は、z−方向においてボクセル座標から1単位だけ偏位している。したがって、1スライス遅延段1530を設けて、上記対のボクセルを遅延しこれらボクセルを、新たに算出した勾配のz−成分、すなわちGzと整列する。
【0183】
次いで、一対のボクセルおよび一対のGzを含む整列されたセットを16×1×2サイズの行バッファ1540、すなわちx−次元が16単位幅で、y−次元が1単位幅で、z−次元が2単位深度である行バッファに格納する。行バッファの各エレメントは、32ビットまでの元のボクセル値および対応のGz値(12ビットに記号)を記憶する。対の入力(ボクセル−Gz)値も一対のy−中心差分モジュール1550の一方に供給される。
【0184】
上記2つのモジュールの他方は、その入力にx−およびz−座標が同じであるが、y−座標がy−2である行バッファ1540内の対の(ボクセル−Gz)値を受ける。したがって、y−中心差分モジュールは下記の式で表される2つの差分を計算する。
【数26】
【0185】
上式中、Fy(x、y、z)は勾配のy−成分のベースとなる座標(x、y、z)におけるボクセルのフィールドの値である。
【0186】
パイプラインがスラブ内のボクセルGz値の行を処理する際に、該パイプラインは交互の行だけを処理する。介在する行、たとえばy−座標(y−1)は別のパイプラインによって処理される。これはミニブロックが区分化されてパイプラインに分配されるためにである。この結果、y−中心差分は、対の入力ボクセルGz値からy−次元において1単位だけずれることになる。このずれもしくは不整列を確定するために、パイプラインは同じx−座標であるがy−座標が異なるパイプラインと、その対の入力ボクセル−Gz値を交換する。対のボクセル−Gz値は1行サイクルだけ遅延される。これは、交換/遅延ブロック1555によって行われる。
【0187】
この勾配推定段のセクションの出力はしたがって、座標(x、y−1、z−1)および(x、y−1、z)の各々における元のボクセル、Gz値およびGy値である。
【0188】
このプロセスが、勾配Gxのx−成分に対してどのように繰り返されるかは容易に理解されるであろう。x−バッファ1558は1エレメント分だけ大きい深度を有し、座標(x−2、y−1、z−1)に対する元のボクセル、Gz値およびGy値を格納している。対のx−中心差分エンジン1560は下記の演算を実行する。
【数27】
【0189】
上式中、Fx(x、y、z)は、勾配のx−成分のベースとなるボクセルのフィールドの値である。この場合にも、元のボクセルならびにGzおよびGy値を含む入力値をブロック1565を介し反対側のx−座標のパイプラインの値と交換して各量を1ボクセル分の遅延で新たに計算したGx値と整合(位置合わせ)させなければならない。
【0190】
勾配推定段の最後のセクション1570では、勾配の最終的な「クリーンナップ(整理または整頓)」が行われる。まず、勾配は、Gx、GyおよびGzの成分がオブジェクト座標のGu、GvおよびGwに変換されるように「逆置換」される。第2に、必要に応じて既に述べたように、元のデータセットにおける異方性およびシヤーを補正するためにグラジェント補正行列を適用する。この場合,補正行列は3×3上部三角行列であって、勾配をオブジェクト空間201から物理空間202に変換する。図2を参照されたい。これにより一層正確なイルミネーションすなわち照明の実現が可能になる。
【0191】
第3に、勾配成分を勾配推定モジュールにおける内部精度から標準のフォーマットに丸めて、記号ビットを加え、範囲[0,..,1]内の循環小数として送り出す。
【0192】
勾配推定段1500には内部的な機能停止は起こらない。しかしながら、入力データが無い場合とか或るいは次続のモジュールが出力を受け付けることができない場合には、機能停止が有り得る。そこで勾配推定段の一番上に、入力ボクセル対を書き込むFIFO(先入れ先出し)メモリを設けておく。メモリインタフェースが処理に要する時間よりもメモリからデータを読出すのに長い時間をとる場合には、このFIFOを空にして、勾配推定段は単に待機する状態となる。
【0193】
同様に、パイプライン内の次続の段、すなわち分類/補間段が多くのボクセルおよび勾配を受け付けることができない場合には、勾配推定段は、読み取りおよびボクセル処理を停止するだけである。この場合にも、この種の機能停止中にデータの損失が起こらないようにするために、勾配推定段の一番下側に小さな容量のFIFOを設けておく。
【0194】
分類/補間段
図16は分類/補間段の概略図である。この分類/補間段は、ボクセルフィールド抽出ユニット1610と分類/不透明度重みユニット1620を有する。分類/不透明度重みユニット1620はマルチプレクサ1630を介してパイプラインのトップ近傍或るいは下部近傍に接続し、交差接続構造を実現することができる。分類/補間段はまた、原または分類ボクセルおよびそれらの勾配を記憶するための3対のスライスバッファ1640と、z−次元における原または分類ボクセルフィールドおよび勾配成分を補間する(サンプリング)するためのz−補間ユニット1650と、z−補間値および勾配のスライスを保持する2つのサンプルバッファ1660と、サンプルバッファ内のz−補間サンプル値をx−、y−次元で補間(サンプリング)してサンプル空間の点におけるそれらの値を得るxy−補間ユニット1670とを有する。
【0195】
前処理および分類
データ1601は、図15の勾配推定段から、関連の勾配とともにボクセルの流れもしくはストリームの形態で分類/補間段(CI)に達する。ボクセルは整数の置換座標、すなわちxv、yv、zvを有する。好適な実施の形態においては、レンダリングモードに依存するが、一対のボクセルおよび勾配を送るのに1クロックまたは2クロックを要する。
【0196】
特に、補間前の分類、すなわち「CI」モードでレンダリングを行う場合には、勾配推定モジュールは、一対のボクセルおよびグラジェントを発生するのに2クロックを必要とする。これに対し、補間後の分類、すなわち「IC」モードでレンダリングを行う場合には、勾配推定モジュールは、一対のボクセルおよび勾配を発生するのに1クロックを必要とする。これは、補間バッファ論理はクロック毎に2つのボクセルおよび勾配を受け付けることができるが、分類モジュールはクロック毎に単一のボクセルおよび勾配しか受け付けることができないためである。これによりゲートが節約される。と言うのは、クロック毎に2つのボクセルを受け付けることで、2回の分類テーブル参照しか必要とされないからである。ICモードで分類されるデータ量は減少する。その理由は、エッジ効果に起因し補間モジュールでデータ量が減少するからである。
【0197】
補間前であれ或るいは補間後であれ、ボクセルはフィールドベースで分類されて、それにより各フィールド毎にRGBα値が生成される。これらRGBα値は結合されて、それにより単一のRGBα値が形成される。なお、RGB値は、分類段1620で重み付けされた不透明度とすることもできる。次いでフィールドが結合され、分類結果が、関連の勾配とともにスライスバッファの1つに書き込まれる。ICモード、すなわち分類前に補間を行うモードでレンダリングする場合には、ボクセルフィールドおよび関連の勾配1602が一度に2つずつ一対のスライスバッファに書き込まれる。
【0198】
スライスバッファ
各パイプラインの分類/補間段は、3対のスライスバッファ1640、すなわち合計で6個のバッファを有する。各スライスバッファは、16×16個のエレメントを保持する。スライスバッファは下記のように利用される。任意所与の時点で2つのバッファが勾配推定段からの原または分類データ入力を書き込むように割当てられる。残りの4つのスライスバッファはz−補間ユニット1650により読み取られるように割当てられる。分類されたボクセルおよびそれらの勾配が勾配推定モジュールから一度に1つずつ到達するCIモードの場合には、書き込み用に割当てられた2つの交互のスライスバッファに、同じ値を有するボクセルが同じスライスバッファに書き込まれるようにして入力される。スライスバッファのスライスは置換されたz−座標で注記される。ICモードの場合には、分類されていないボクセルおよびそれらの勾配が一度に2つずつ到達する。これらは、同時に2つの隣接するスライスバッファに書き込まれる。
【0199】
最終的には、書き込み用に割当てられたスライスバッファ対は満杯になる。この時点で、分類/補間段は、スライスバッファ対が満杯である旨の信号を勾配推定モジュールに送る。そこで勾配推定モジュールは、上記信号が無くなるまで動作を停止する。最終的には、スライスは、下に述べるように、z−補間ユニット1650によって消費される。一対の隣接スライス内のデータすべてが処理された後に関連のバッファ対が書き込み用に割当てられて、それ以前に満杯になっているバッファは読み出し用に割当てられる。この時点で、勾配推定段への上記信号が無くなり、ボクセルおよび勾配データのフローが再び開始される。実際のアプリケーション例においては、勾配推定モジュールは、z−補間モジュール1650よりも相当進捗した場合にのみ動作を停止する。
【0200】
x−次元での補間
先に述べたように、z−補間ユニットは、置換空間1651内の座標で動作する。すなわち、ボクセル値およびそれと関連の勾配は、置換(xv、yv、zv)空間内の整数点におけるデータおよび変化率を表す。
【0201】
z−補間ユニットは、ボリュームをサンプル空間にリサンプリングする方向で第1のステップを実行する。すなわち、z−補間ユニットは、一度に1サンプルスライスのベースでデータを処理する。すなわち、該ユニットは、スライスバッファ1640の2つのボクセルスライスからボクセルおよび勾配を読み出し、z−次元において該ボクセルおよび勾配間で補間を行い、その結果を14×14個のサンプルスライスアレイ1660内の1つに格納する。ここで2つのスライスとは互いに隣接するスライスである。多くの場合、スライスは前に使用したスライス1660にオーバーラップする。しかしながら、サンプル空間内のスライスが1ボクセルスライス以上離間している場合、すなわちz−次元でのサンプリングでは、オーバーラップすることはない。
【0202】
z−補間ユニットの出力値は、置換されたx−およびy−座標ならびにサンプルのz−座標、すなわち(xv、yv、zs)の形態にある座標値を有する。このことは、図16に表記「混成空間」1652で示してある。
【0203】
図16に示した3対のスライスバッファは各スライス毎に16×16個のエレメントを有する。しかしながら、サンプルバッファ1660は14×14個のエレメントしか有しない。このようなサイズは、セクションのサイズ(24×24)の関数である。オブジェクトオーダーレンダリングにおいては、サイズs×sのセクションは、(s+8)/2×(s+8)/2個のスライスバッファ1650および(s+4)/2×(s+4)/2個のサンプルバッファ1660を必要とする。すなわち、z−補間ユニット1650は、サンプルバッファ1660の各行および列に多くとも14個のエレメントの書込みを行う。この不一致は、図17に例示するようにレイの角度に起因する。xy−画像オーダーレンダリングでは、最大のセクションの大きさすなわちサイズを支持するために大きなサイズが要求され得る。したがって、この発明の実施に当たっては、セクションサイズを可変にする。
【0204】
図17は、ボクセル点の4個のスライス(平面)1701およびz−補間サンプル点の3個のインターリーブドスライス(平面)の断面を示す。ボクセル点には×印を付け、サンプル点は円で示してある。サンプルおよびボクセルの平面は互いに平行である点に注目されたい。ビュー方向1703が最悪である場合、すなわち45度の角度である場合には、ボクセルの平面間のオフセットは、16個のボクセルの2つの行または列から僅か14個のサンプルしか得ることができないような大きさになる。
【0205】
z−補間段1650は、原ボクセルまたは分類ボクセルの各フィールドを独立に且つまた3つの勾配成分の各々を線形的に補間するように動作する。補間重みは8ビット数である。ボクセルフィールドの補間結果は直ちに丸めるが、低位の小数点1ビットは、各勾配成分の補間値用に保留しておく。
【0206】
このz−補間段は本質的に、オブジェクトオーダー補間段と同様に動作し、補間される値毎に1回の重み付け和乗算(weighted sum multiply)を必要とする。画像オーダーの場合には、従来技術と関連して説明したように、Z−次元における4回の重み付け和乗算が要求される。その理由は、ブジェクトオーダーおよびxy−画像オーダーでは、サンプルZ−平面がボクセルZ−平面に平行であり、その結果、隣接のサンプルが同じZ−補間を共有するからである。画像オーダーでは、平面は平行ではなく、したがって共有は生じ得ない。
【0207】
X−およびY−次元での補間
z−補間段の出力1603は、2つの14×14サンプルバッファ1660のつちの1つに書き込まれる。その間、他のサンプルバッファはxy−補間モジュール1670により読み出される。したがって、サンプルバッファ1660の各エレメントは、4つの12ビットのz−補間された原または分類ボクセルのフィールドと、3つの11ビット勾配成分と、9ビットと1つの下位ビットと、記号とを含む。
【0208】
総合すると、4本のパイプラインの4個の14×14z−補間スライスバッファ1640は、ボクセルが交互パターンで配列された単一の28×28z−補間スライスバッファから構成される。
【0209】
図18は、置換空間のxv−およびyv−次元1801および1802におけるボクセル位置の平面1800を示す。ボクセルは×印1803で示してある。「A」で印した位置におけるボクセルは、図14の上部における右ブロックの右上4分の1部分に対応する。すなわち、これらボクセルはパイプラインAによって処理されたものである。同様に、B、CおよびDで表した位置にあるボクセルはそれぞれ、パイプラインB、CおよびDにより処理されたものである。
【0210】
円1804は、サンプル点、すなわちレイ(光線)がサンプルスライスに交差する点を表す。図から理解されるように、各サンプル点は、それぞれパイプラインA、B、CおよびDのサンプルバッファから1つずつ合計4個のボクセルにより取り囲まれている。
【0211】
したがって、サンプル点の各値は、4本のパイプラインそれぞれに対して既知の値の間に補間を行うことによって得ることができる。これは、x−およびy−次元におけるサンプリング頻度数とは関係ない。すなわち、各パイプラインのxy−補間ユニット1670はそれ自身のサンプルバッファからの1個のz−補間値に加えて、ライン1604を介し3本の他のパイプラインからのサンプルバッファそれぞれからの値を読出す必要がある。実際、サンプルバッファは4本のパイプライン間で共有されている。各パイプラインはそれ自身のサンプルバッファに対してのみ書込みを行うが、読出しは4つすべてのサンプルバッファから行うことができる。
【0212】
4本のパイプラインはスタンプと称する2×2アレイの4個の点を補間する。1つのサンプル1805の輪郭は破線で示してある。この点から始めて、パイプラインを流れ下るすべてのデータはレイに沿うサンプル点におけるデータを表す。残りの段においては、一度に1つずつスタンプが処理される。レイは画像平面内のピクセルの中心を垂直に通過する。
【0213】
xy−補間モジュールの各出力1605は78ビット、すなわちそれぞれ12ビットに丸められた4つの補間された原または分類ボクセルフィールドと、それぞれ10ビットに丸められた3つの補間された勾配成分とを含む。
【0214】
xy−画像オーダーレンダリングの1つの利点は、xy−次元における補間に僅か3回の重み付け和乗算しか要求されないことである。すなわち2回の重み付け和乗算がy−次元における補間に必要とされ1回の重み付け和乗算が上記補間から得られる値をx−次元において補間するのに必要とされる。これは、オブジェクトオーダーレンダリングで要求される2回の乗算(yに対して1回でxに対して1回)に匹敵する。なお、オブジェクトオーダーレンダリングではy−次元における乗算を共用することが可能である。したがって、画像オーダーでは合計7回の乗算が必要とされ、オブジェクトオーダーでは合計3回の乗算が必要とされ、そしてxy−画像オーダーでは合計4回の乗算が要求される。
【0215】
レンダリングモードが既述のICモードである場合には、xy−補間ユニット1670から流れるデータは補間されたボクセルフィールドおよび補間された勾配成分を含む。分類/補間段における最後のステップは、これらの値をRGBα値に変換して不透明度重み付け関数を適用することである。これは、サンプル空間1653において行われる。レンダリングモードがCIモードでは、変換は既に原ボクセルのフィールドに対して行われており、色成分は既に個々に補間されている。
【0216】
以上の説明から明らかなように、この発明は、従来のシヤーワープボリュームレンダリング技術とは大きな相違のあるボリュームデータセットのためのパイプラインレンダリング方法を提供した。この発明の方法によれば、シヤーワープボリュームレンダリング技術の処理上の利点、すなわち、非常に順序立った仕方でスライス-バイ-スライスベースで且つ少ない乗算数(画像オーダーレンダリングに対して要求される数の半分)でボリュームを段階的に処理する能力と真の意味での「画像オーダー」レンダリングの視覚上の利点とが組み合わされる。
【0217】
その効果は、真の画像オーダーの場合と同様に最終画像のピクセル毎に1本のレイが投射される点に見られる。しかしながらまたこの発明では、サンプルがシヤーワープオーダーのスライスを似ねたスライス内の各レイに沿いサンプルが配置される。このようにすれば、従来のシヤーワープ技術よりも遥かに高い画像品質ならびに遥かに良好なパフォーマンスが得られるとともに、さらに、ワープステップを完全に省略することができる。また、この発明は、ボリュームデータセットに埋込まれた多角形のレンダリングも可能である。
【0218】
さらに明らかなように、この発明によるパイプライン編成はまた、シヤーワープオーダーによる処理をも支持する。この場合には、スタンプ1805は常にボリュームの軸と整列し、したがってスライスの軸とも常に整列する。シヤーワープオーダーは、式17の変換R-1でdysdxs=dxydys=0を設定することにより達成される。
【0219】
以上、この発明を好適な実施の態様を例として説明したが、この発明の精神および範囲内で他の種々な適応化および変更が可能であることは理解されるべきである。したがって、請求項の記述は、この発明の真の精神および範囲内に入るこのような変形および変更すべてを包摂するように解釈されるべきである。
【図面の簡単な説明】
【図1】 (a)および(b)はボクセルに対し勾配の推定を図解する略図である。
【図2】 この発明による座標系ならびに該座標系間で用いられる変換を示す略図である。
【図3】 ボクセルの横断面を示す略図である。
【図4】 置換軸を有するオブジェクトを示す。
【図5】 ボリュームデータセットを通して投射されるレイを示す。
【図6】 画像平面の視点から見たボリュームを示す。
【図7】 (a)〜(c)は、ビュー切頭体の3つのの例を示すブロックダイヤグラムである。
【図8】 この発明のレンダリングエンジンで用いられる方法のブロックダイヤグラムである。
【図9】 オブジェクト空間への単位ベクトルの投影を示す。
【図10】 8個の変換行列を示す。
【図11】 (a)および(b)は、それぞれ異方性をもってサンプリングしたボリュームデータセットの横断面を示す図である。
【図12】 (a)〜(c)は、ボリュームオブジェクトとともにビューポートを示す俯瞰図である。
【図13】 この発明によるレンダリングエンジンのブロックダイヤグラムである。
【図14】 4本の並列パイプラインおよびミニブロックのブロックダイヤグラムである。
【図15】 パイプラインの勾配推定段のブロックダイヤグラムである。
【図16】 パイプラインの分類/補間段のブロックダイヤグラムである。
【図17】 z−補間およびビュー方向を示す。
【図18】 サンプルスライスバッファ内のz−補間サンプルを示す。
【図19】 任意角度でボクセルのスライスと交差するレイの格子を示す。
【符号の説明】
10 ホストコンピュータシステム、11 CPU、12 主メモリ、101勾配、102 ボクセル点、103 曲線、104 105 ボクセル、106 勾配、107 サンプル点、108 ベクトル、201 オブジェクト座標系、202 物理座標系(空間)、203 補正変換(C)、204 物理モデル化行列(変換)(PM)、205 世界空間、206 モデル化変換(M)、207 カメラ座標系、208 ビュー変換(V)、209 クリップ座標系(空間)、210 投影変換(PJ)、211 正規化された投影座標、212透視分割、213 画像座標系、214 ビューポート変換(VT)、220置換座標系、230 サンプル座標系、231 リサンプリング変換(R)、240 深度ワープ変換(D)、300 ボクセル、301 人間の頭部、303 物理空間の縦軸、304 物理空間の垂直軸、305 ガントリー、320サンプル空間、401 オブジェクト座標系の軸、402 置換座標系z−軸、403 置換座標系v−軸、404 置換座標系x−軸、406 置換座標系y−軸、410 オブジェクト座標系の原点、420 ボックス(箱状物)、421 ボクセル、500 ボリューム、501 画像平面、502 レイ、503 基底面、510 xv−およびzv−軸、520 サンプル点、600 ボリューム、601 xs−およびys−軸、603 zv−軸、610 原点、700 ボリューム、701、702、703 ビュー切頭体、901、902 ベクトル、1201 視点、1202 ボックス、1206、1207 深度値、1300 ボリュームレンダリングエンジン、1310 バス論理、1310 メモリインターフェース、1311 データ、1320 バス論理、1321 66MHzの64ビットPCIバス、1322 内部レジスタ、1330 シーケンサー、1340 並列パイプライン、1350 スライスバッファ、1360 レンダリングメモリ、1401 ミニブロック、1404 分類/補間段の出力、1405 イルミネータ段の出力、1406 合成段の出力、1410 勾配推定段、1420 分類/補間段、1430 イルミネータ、1440 合成段、1500 勾配推定段、1501 ボクセル、1510 スラブバッファ、1520 z−中心差分モジュール、1530 スライス遅延段、1540 行バッファ、1550 y−中心差分モジュール、1555 交換/遅延ブロック、1558 x−バッファ、1560 x−中心差分エンジン、1565 ブロック、1570 セクション、1601 データ、1602 勾配、1604ライン、1610 ボクセルフィールド抽出ユニット、1620 分類/不透明度重みユニット、1620 分類段、1630 マルチプレクサ、1640 スライスバッファ、1650 z−補間ユニット、1651 置換空間、1653 サンプル空間、1660 サンプルバッファ、1670 xy−補間ユニット、1805 スタンプ、1901 ボクセル、1902 矩形格子、1905x−、y−軸。
Claims (10)
- コンピュータのソフトウエアにより実行され、複数個のボクセルを含むボリュームデータセットを複数個のピクセルを含む画像平面上にレンダリングする方法において、
画像平面の各ピクセルを通しレイを投射し、
各レイに沿う複数のサンプル点の各々に隣接するボクセルをサンプリングすることにより、ボリュームデータセットの表面に平行な平面に配列されている複数個のサンプル点の各々に対しサンプル値を求め、
各レイのサンプル点のサンプル値を合成してレイが投射された各ピクセル毎にピクセル値を求める段階を含み、
前記表面が前記画像平面に対し最も近似していることを特徴とするボリュームデータセットのレンダリング方法。 - コンピュータのソフトウエアにより実行され、複数個のボクセルを含むボリュームデータセットを複数個のピクセルを含む画像平面上にレンダリングする方法において、
画像平面の各ピクセルを通しレイを投射し、
各レイに沿う複数のサンプル点の各々に隣接するボクセルをサンプリングすることにより、ボリュームデータセットの表面に平行な平面に配列されている複数個のサンプル点の各々に対しサンプル値を求め、
各レイのサンプル点のサンプル値を合成してレイが投射された各ピクセル毎にピクセル値を求める段階を含み、
各レイを画像平面に対し垂直に投射することを特徴とするボリュームデータセットのレンダリング方法。 - コンピュータのソフトウエアにより実行され、複数個のボクセルを含むボリュームデータセットを複数個のピクセルを含む画像平面上にレンダリングする方法において、
画像平面の各ピクセルを通しレイを投射し、
各レイに沿う複数のサンプル点の各々に隣接するボクセルをサンプリングすることにより、ボリュームデータセットの表面に平行な平面に配列されている複数個のサンプル点の各々に対しサンプル値を求め、
各レイのサンプル点のサンプル値を合成してレイが投射された各ピクセル毎にピクセル値を求める段階を含み、
前記表面が前記ボリュームデータセットの基底面であることを特徴とするボリュームデータセットのレンダリング方法。 - コンピュータのソフトウエアにより実行され、複数個のボクセルを含むボリュームデータセットを複数個のピクセルを含む画像平面上にレンダリングする方法において、
画像平面の各ピクセルを通しレイを投射し、
各レイに沿う複数のサンプル点の各々に隣接するボクセルをサンプリングすることにより、ボリュームデータセットの表面に平行な平面に配列されている複数個のサンプル点の各々に対しサンプル値を求め、
各レイのサンプル点のサンプル値を合成してレイが投射された各ピクセル毎にピクセル値を求める段階を含み、
各サンプル点のx−およびy−座標が各ピクセルのx−およびy−座標と同一であり、前記サンプル点のz−座標軸が前記ボリュームデータセットのボクセルのz−座標軸に平行であることを特徴とするボリュームデータセットのレンダリング方法。 - コンピュータのソフトウエアにより実行され、複数個のボクセルを含むボリュームデータセットを複数個のピクセルを含む画像平面上にレンダリングする方法において、
画像平面の各ピクセルを通しレイを投射し、
各レイに沿う複数のサンプル点の各々に隣接するボクセルをサンプリングすることにより、ボリュームデータセットの表面に平行な平面に配列されている複数個のサンプル点の各々に対しサンプル値を求め、
各レイのサンプル点のサンプル値を合成してレイが投射された各ピクセル毎にピクセル値を求める段階を含み、
さらに、8個のボクセルをサンプリングして各サンプルのサンプル値を求める段階を含むことを特徴とするボリュームデータセットのレンダリング方法。 - コンピュータのソフトウエアにより実行され、複数個のボクセルを含むボリュームデータセットを複数個のピクセルを含む画像平面上にレンダリングする方法において、
画像平面の各ピクセルを通しレイを投射し、
各レイに沿う複数のサンプル点の各々に隣接するボクセルをサンプリングすることにより、ボリュームデータセットの表面に平行な平面に配列されている複数個のサンプル点の各々に対しサンプル値を求め、
各レイのサンプル点のサンプル値を合成してレイが投射された各ピクセル毎にピクセル値を求める段階を含み、
サンプル点が、それぞれ基底面に対して平行な2×2スタンプとして配列されることを特徴とするボリュームデータセットのレンダリング方法。 - 複数個のボクセルを含むボリュームデータセットを複数個のピクセルを含む画像平面上にレンダリングするシステムにおいて、
画像平面の各ピクセルを通しレイを投射するための手段と、
各レイに沿う複数のサンプル点の各々に隣接するボクセルをサンプリングすることにより、ボリュームデータセットの表面に平行な平面に配列されている複数個のサンプル点の各々に対しサンプル値を求めるための手段と、
各レイのサンプル点のサンプル値を合成してレイが投射された各ピクセル毎にピクセル値を求める手段と
を含み、
さらに、
主メモリに接続された中央プロセッサを有するホストコンピュータであって、前記表面を選択し、前記レイを投射し且つ前記サンプル点を定義するホストコンピュータと、
前記ホストコンピュータにバスにより接続された複数個の並列のレンダリングパイプラインであって、各レンダリングパイプラインが、サンプリング手段を含む補間段と前記合成手段を含む合成段とを備えていることを特徴とするボリュームデータセットのレンダリングシステム。 - 複数個のボクセルを含むボリュームデータセットを複数個のピクセルを含む画像平面上にレンダリングするシステムにおいて、
画像平面の各ピクセルを通しレイを投射するための手段と、
各レイに沿う複数のサンプル点の各々に隣接するボクセルをサンプリングすることにより、ボリュームデータセットの表面に平行な平面に配列されている複数個のサンプル点の各々に対しサンプル値を求めるための手段と、
各レイのサンプル点のサンプル値を合成してレイが投射された各ピクセル毎にピクセル値を求める手段と
を含み、
さらに、
ボクセルをボリュームとして記憶するためのレンダリングメモリと、一度に8個ずつボクセルを読出すメモリインターフェースとを含むことを特徴とするボリュームデータセットのレンダリングシステム。 - 複数個のボクセルを含むボリュームデータセットを複数個のピクセルを含む画像平面上にレンダリングするシステムにおいて、
画像平面の各ピクセルを通しレイを投射するための手段と、
各レイに沿う複数のサンプル点の各々に隣接するボクセルをサンプリングすることにより、ボリュームデータセットの表面に平行な平面に配列されている複数個のサンプル点の各々に対しサンプル値を求めるための手段と、
各レイのサンプル点のサンプル値を合成してレイが投射された各ピクセル毎にピクセル値を求める手段と
を含み、
サンプル点が、それぞれ基底面に対し平行な2×2スタンプとして配列され、
前記パイプラインの各々がさらに、前記スタンプの4つのサンプル点に陰影を付けるイルミネータを備えていることを特徴とするボリュームデータセットのレンダリングシステム。 - 各サンプル点のx−およびy−座標が各ピクセルのx−およびy−座標と同一であり、前記サンプル点のz−座標軸が前記ボリュームデータセットのボクセルのz−座標軸に対し平行であり、
各補間モジュールがさらに、
z−補間サンプルを得るためにz−次元で前記ボリュームをサンプリングするz−補間手段と、
サンプル点の値を得るために前記z−補間値をサンプリングするためのxy−補間手段と
を備えたことを特徴とする請求項8に記載のボリュームデータセットのレンダリングシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US67855000A | 2000-10-04 | 2000-10-04 | |
US09/678550 | 2000-10-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002183748A JP2002183748A (ja) | 2002-06-28 |
JP4205327B2 true JP4205327B2 (ja) | 2009-01-07 |
Family
ID=24723260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001305438A Expired - Fee Related JP4205327B2 (ja) | 2000-10-04 | 2001-10-01 | ボリュームデータセットのレンダリング方法およびシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US6680735B1 (ja) |
EP (1) | EP1195720B1 (ja) |
JP (1) | JP4205327B2 (ja) |
DE (1) | DE60133166T2 (ja) |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19835215C2 (de) * | 1998-08-05 | 2000-07-27 | Mannesmann Vdo Ag | Kombinationsinstrument |
US6621918B1 (en) | 1999-11-05 | 2003-09-16 | H Innovation, Inc. | Teleradiology systems for rendering and visualizing remotely-located volume data sets |
US7003175B2 (en) * | 2001-03-28 | 2006-02-21 | Siemens Corporate Research, Inc. | Object-order multi-planar reformatting |
US7477629B2 (en) * | 2001-06-14 | 2009-01-13 | Qualcomm Incorporated | Methods and apparatus for supporting session registration messaging |
US7039723B2 (en) * | 2001-08-31 | 2006-05-02 | Hinnovation, Inc. | On-line image processing and communication system |
US20030086595A1 (en) * | 2001-11-07 | 2003-05-08 | Hui Hu | Display parameter-dependent pre-transmission processing of image data |
WO2005013066A2 (en) * | 2003-07-25 | 2005-02-10 | New York University | Logic arrangement, data structure, system and method for miltilinear representation of multimodal data ensembles for synthesis, rotation and compression |
JP3836097B2 (ja) * | 2003-09-19 | 2006-10-18 | ザイオソフト株式会社 | 医用画像生成装置および方法、ならびに、プログラム |
US20050143654A1 (en) * | 2003-11-29 | 2005-06-30 | Karel Zuiderveld | Systems and methods for segmented volume rendering using a programmable graphics pipeline |
US20050219240A1 (en) * | 2004-04-05 | 2005-10-06 | Vesely Michael A | Horizontal perspective hands-on simulator |
JP2007536608A (ja) * | 2004-04-05 | 2007-12-13 | マイケル エー. ベセリー | 水平遠近法ハンズオン・シミュレータ |
US20050248566A1 (en) * | 2004-04-05 | 2005-11-10 | Vesely Michael A | Horizontal perspective hands-on simulator |
US7567248B1 (en) * | 2004-04-28 | 2009-07-28 | Mark William R | System and method for computing intersections between rays and surfaces |
EP1781893A1 (en) * | 2004-06-01 | 2007-05-09 | Michael A. Vesely | Horizontal perspective simulator |
US8541438B2 (en) * | 2004-06-18 | 2013-09-24 | 3M Innovative Properties Company | Substituted imidazoquinolines, imidazopyridines, and imidazonaphthyridines |
US7304645B2 (en) * | 2004-07-15 | 2007-12-04 | Harris Corporation | System and method for improving signal to noise ratio in 3-D point data scenes under heavy obscuration |
US7525543B2 (en) * | 2004-08-09 | 2009-04-28 | Siemens Medical Solutions Usa, Inc. | High performance shading of large volumetric data using screen-space partial derivatives |
JP2006099422A (ja) * | 2004-09-29 | 2006-04-13 | Konica Minolta Medical & Graphic Inc | 画像処理装置、およびプログラム |
US7576737B2 (en) | 2004-09-24 | 2009-08-18 | Konica Minolta Medical & Graphic, Inc. | Image processing device and program |
JP4461981B2 (ja) * | 2004-09-24 | 2010-05-12 | コニカミノルタエムジー株式会社 | 画像処理装置、及びプログラム |
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 |
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 |
WO2006112896A2 (en) * | 2004-11-30 | 2006-10-26 | Vesely Michael A | Horizontal perspective representation |
US7907167B2 (en) | 2005-05-09 | 2011-03-15 | Infinite Z, Inc. | Three dimensional horizontal perspective workstation |
US8717423B2 (en) | 2005-05-09 | 2014-05-06 | Zspace, Inc. | Modifying perspective of stereoscopic images based on changes in user viewpoint |
US20060252978A1 (en) * | 2005-05-09 | 2006-11-09 | Vesely Michael A | Biofeedback eyewear system |
US7875132B2 (en) * | 2005-05-31 | 2011-01-25 | United Technologies Corporation | High temperature aluminum alloys |
US20070043466A1 (en) * | 2005-08-18 | 2007-02-22 | Vesely Michael A | Stereoscopic display using polarized eyewear |
US20070040905A1 (en) * | 2005-08-18 | 2007-02-22 | Vesely Michael A | Stereoscopic display using polarized eyewear |
US7826684B2 (en) * | 2005-09-21 | 2010-11-02 | Siemens Medical Solutions Usa, Inc. | Optimization and view dependency reduction for processing slice-based volumes |
GB2434287B (en) * | 2006-01-17 | 2011-09-14 | Delcam Plc | Improvements Relating To Designing And Manufacturing An Article |
US7675517B2 (en) * | 2006-08-03 | 2010-03-09 | Siemens Medical Solutions Usa, Inc. | Systems and methods of gradient assisted volume rendering |
US7957601B2 (en) * | 2006-08-30 | 2011-06-07 | Siemens Medical Solutions Usa, Inc. | Systems and methods of inter-frame compression |
US7953614B1 (en) | 2006-11-22 | 2011-05-31 | Dr Systems, Inc. | Smart placement rules |
WO2008091583A2 (en) * | 2007-01-23 | 2008-07-31 | Dtherapeutics, Llc | Image-based extraction for vascular trees |
US20080232694A1 (en) * | 2007-03-21 | 2008-09-25 | Peter Sulatycke | Fast imaging data classification method and apparatus |
WO2009031200A1 (ja) * | 2007-09-04 | 2009-03-12 | Fujitsu Limited | データ記録プログラム、データ記録装置、データ記録方法および記録媒体 |
US8380533B2 (en) | 2008-11-19 | 2013-02-19 | DR Systems Inc. | System and method of providing dynamic and customizable medical examination forms |
US8547374B1 (en) * | 2009-07-24 | 2013-10-01 | Lockheed Martin Corporation | Detection and reconstruction of 3D objects with passive imaging sensors |
US8712120B1 (en) | 2009-09-28 | 2014-04-29 | Dr Systems, Inc. | Rules-based approach to transferring and/or viewing medical images |
US8717360B2 (en) | 2010-01-29 | 2014-05-06 | Zspace, Inc. | Presenting a view within a three dimensional scene |
US8725476B1 (en) * | 2010-05-04 | 2014-05-13 | Lucasfilm Entertainment Company Ltd. | Applying details in a simulation |
US8970592B1 (en) | 2011-04-19 | 2015-03-03 | Lucasfilm Entertainment Company LLC | Simulating an arbitrary number of particles |
US8786529B1 (en) | 2011-05-18 | 2014-07-22 | Zspace, Inc. | Liquid crystal variable drive voltage |
US9075899B1 (en) | 2011-08-11 | 2015-07-07 | D.R. Systems, Inc. | Automated display settings for categories of items |
US9633458B2 (en) * | 2012-01-23 | 2017-04-25 | Nvidia Corporation | Method and system for reducing a polygon bounding box |
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 |
US20140358298A1 (en) * | 2013-05-31 | 2014-12-04 | DWFritz Automation, Inc. | Alignment tool |
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 |
US20180345647A1 (en) | 2017-06-05 | 2018-12-06 | Autodesk, Inc. | Topology optimization for subtractive manufacturing techniques |
CN113366481B (zh) | 2018-11-09 | 2024-07-19 | 欧特克公司 | 在计算机辅助设计与制造的2.5轴减材制造约束下的基于边界的生成式设计 |
US11243510B2 (en) | 2020-05-20 | 2022-02-08 | Autodesk, Inc. | Computer aided generative design with tool size control to facilitate 2.5-axis subtractive manufacturing processes |
US11762368B2 (en) | 2020-05-20 | 2023-09-19 | Autodesk, Inc. | Computer aided generative design with layer boundary determination to facilitate 2.5-axis subtractive manufacturing processes |
CN111783142B (zh) * | 2020-07-06 | 2021-10-08 | 北京字节跳动网络技术有限公司 | 数据保护方法、装置、服务器和介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6236405B1 (en) * | 1996-07-01 | 2001-05-22 | S3 Graphics Co., Ltd. | System and method for mapping textures onto surfaces of computer-generated objects |
US5905657A (en) * | 1996-12-19 | 1999-05-18 | Schlumberger Technology Corporation | Performing geoscience interpretation with simulated data |
US6208347B1 (en) * | 1997-06-23 | 2001-03-27 | Real-Time Geometry Corporation | System and method for computer modeling of 3D objects and 2D images by mesh constructions that incorporate non-spatial data such as color or texture |
US6072496A (en) * | 1998-06-08 | 2000-06-06 | Microsoft Corporation | Method and system for capturing and representing 3D geometry, color and shading of facial expressions and other animated objects |
-
2000
- 2000-11-17 US US09/715,398 patent/US6680735B1/en not_active Expired - Lifetime
-
2001
- 2001-09-14 EP EP01122082A patent/EP1195720B1/en not_active Expired - Lifetime
- 2001-09-14 DE DE60133166T patent/DE60133166T2/de not_active Expired - Fee Related
- 2001-10-01 JP JP2001305438A patent/JP4205327B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6680735B1 (en) | 2004-01-20 |
DE60133166D1 (de) | 2008-04-24 |
EP1195720A2 (en) | 2002-04-10 |
EP1195720A3 (en) | 2005-05-04 |
EP1195720B1 (en) | 2008-03-12 |
DE60133166T2 (de) | 2009-03-19 |
JP2002183748A (ja) | 2002-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4205327B2 (ja) | ボリュームデータセットのレンダリング方法およびシステム | |
US6577305B1 (en) | Apparatus and method for performing setup operations in a 3-D graphics pipeline using unified primitive descriptors | |
Pfister et al. | The volumepro real-time ray-casting system | |
EP3129976B1 (en) | Varying effective resolution by screen location by altering rasterization parameters | |
JP4158167B2 (ja) | ボリューム・グラフィックス装置 | |
US6674430B1 (en) | Apparatus and method for real-time volume processing and universal 3D rendering | |
USRE42638E1 (en) | Resample and composite engine for real-time volume rendering | |
US7675526B2 (en) | System and method for multi-sampling primitives to reduce aliasing | |
KR102338831B1 (ko) | 구성가능한 변환 파라미터들을 갖는 다중 공간 렌더링 | |
AU757621B2 (en) | Apparatus and method for real-time volume processing and universal 3D rendering | |
US6512517B1 (en) | Volume rendering integrated circuit | |
US20030174136A1 (en) | Multipurpose memory system for use in a graphics system | |
JPH04222071A (ja) | テキスチュア・マッピング方法及びその装置 | |
US6636232B2 (en) | Polygon anti-aliasing with any number of samples on an irregular sample grid using a hierarchical tiler | |
US6532017B1 (en) | Volume rendering pipeline | |
JPH04222074A (ja) | テクスチャマッピングのための傾斜計算方法 | |
WO2002027661A2 (en) | Method and apparatus for the anti-aliasing supersampling | |
WO2008013605A1 (en) | Real-time gpu rendering of piecewise algebraic surfaces | |
Deakin et al. | Efficient ray casting of volumetric images using distance maps for empty space skipping | |
US7372461B2 (en) | Image processing apparatus and method of same | |
EP1195719A2 (en) | Rendering memory in a volume rendering system | |
EP1890267A2 (en) | Apparatus and method for real-time volume processing and universal 3D rendering | |
JP2002183749A (ja) | グラフィックデータの勾配の補正方法 | |
JP7223312B2 (ja) | ボリュームレンダリング装置 | |
EP1054384A2 (en) | Method and apparatus for translating and interfacing voxel memory addresses |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070529 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070814 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071114 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071126 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071214 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071219 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080115 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080121 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080214 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080408 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080704 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080811 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20081007 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081016 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111024 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121024 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121024 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131024 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |