説明

ボリューム・レンダリング装置及び方法

【課題】 従来のボリューム・レンダリングは、ソフトウェアで実施すると処理が遅く、近似方式だとイメージが狂って品質が良くないという課題があった。
【解決手段】 原ボリューム・データを記憶するボクセル・メモリと、このボリューム・オブジェクトを視点から見た平面にスライスするボリューム平面のパラメータを計算し、また、マッピング・オブジェクトを視点座標系にスライスする3次元マッピング平面のパラメータも計算し、更に、3次元マッピング平面にグラフィックス処理をして2次元マッピング平面に変換するパラメータ設定手段と、ボクセルメモリ・アドレスと、3次元に拡張したマッピング平面を示す画像メモリ・アドレス生成手段と、ボリューム平面をマッピング平面にマッピングした内容を記憶する画像メモリと、データを画像メモリからのマッピング平面上に半透明のブレンディングされたデータを得るブレンディング手段を備えた。

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、画面に3次元ボクセル・データを表示するボリューム・レンダリング装置に関するものである。
【0002】
【従来の技術】ボリューム・レンダリングは、医学分野などのCTスキャナやMRIなどから得られた3次元離散空間に存在するデータ(ボリューム・データ)を、ディスプレイなどに可視化する方法である。このようなボリューム・データは、3次元格子上の点(ボクセル)にフィールドデータと呼ばれるデータを持つ。CTではこのフィールドデータは密度などが用いられ、この密度に応じてボクセルに色付けすることでボリューム・データを表示する。これにより、データの全体の様子を理解しやすくなる。
【0003】ボリューム・データの可視化方法として大きく2つの種類がある。まず1つ目の方法としては、ボリューム・データの中で等しいデータを持つボクセルを繋ぎ合わせた等値面を形成し、この等値面に対して面や線などのプリミティブを割り当てて表示するサーフェスレンダリング方法がある。もう1つは、ボクセル・データをレイキャスティング法などを使用して直接表示する方法である。まず、第1のサーフェスグラフィックスを使用する場合は、等しいボクセル・データを結んでできた等値面(2次元の等高線の拡張したもの)を作りあげ、この等値面に対して面やパッチをあてて、サーフェスグラフィックスでレンダリングすることで表示を行っている。即ち、スライス・バイ・スライス法とも呼ばれる。このような等値面を作り出す手法には、MARCHING CUBES法などの時間のかかる方法がある。このようなサーフェスグラフィックスを利用したボリューム・レンダリングでは、ボリューム・レンダリングの特徴であるボリューム・データ全体を眺めることができない。つまり、ある値をフィールドデータに持つボリューム・データしか表示することができない。
【0004】一方、第2の直接表示するボリューム・レンダリングの場合、表示する面(ディスプレイ上の面)のピクセルからレイを発生させ、レイトレーシングと同様な処理を行ってボクセル・データをサンプリングする必要がある。この計算は、レイトレーシング法のように、非常に多量の計算実行が必要である。このような方法は、文献Levoy,M.,■Display of Surefaces from Volume Data, ■IEEE Computer Graphics and Applications, Vol.8, No.3, pp.29-37, 1988.やGarrity, M.P.,■Raytracing Irregular Volume Data, ■Computer Graphics, Vol24, No.5, pp.35-40,1990に記載されている。このため、直接表示するためにA Generalized Object Display Processor Architecture(GODPA), Voxel ProcessorやCubeや3DP4などの並列計算機が開発されている。例えば、GODAPA装置では、Processingelement(PE)として64個、Intermediate processor(IP)として8個、Output Processor(OP)として1個と多量のプロセッサを必要としている。
【0005】また、以上のようなボリューム・レンダリング手法ではなく、本特許と同様ボリューム・データをスライスして、そのスライス画像を半透明表示することでボリューム・レンダリングを行う方法がある。この簡易でシェーディング法とも呼ばれる方法として、特開平5−266216の「ボリューム・レンダリングを行う方法及び装置」がある。この特許公報では、スライスした平面を三角形分割し、各三角形の頂点のボクセル・データから頂点の色データを求め、三角形内部に対しては、頂点からの補間で求めている。図16に構成図を示す。105はベクトル勾配を計算するベクトル勾配演算部、106は視点との距離を演算する距離演算部、107は等値面を抽出する等値面抽出部、108は色データと不透明度を計算する光学属性計算部、109はサーフェスレンダリング用のスキャンコンバージョンを含む3Dグラフィックスプロセッサ、110はボリューム・データを保持するボリューム・データ第一メモリ、111は視点座標を保持する視点座標メモリ、112はサンプリング間隔を保持するサンプリング間隔メモリ、113は勾配ベクタ演算部5と距離演算部6の結果を保持するボリューム・データ第二メモリである。114は等値面抽出部から抽出された三角形のデータを保持する三角形データ第一メモリ、116は色データと不透明度を加えた三角形データを保持する三角形データ第二メモリである。117はフレームバッファである。
【0006】以上のように構成された従来例の動作を、図17のフローチャートをもとに以下に説明する。まず、ボリューム・データをボリューム・データ第一メモリ110に、視点座標を視点座標メモリ111に、ボリューム・データをサンプリングするサンプリング間隔を、サンプリング間隔メモリ112に入力する(ステップ101)。次に、サンプリング点におけるデータ勾配ベクタを勾配ベクタ演算部で計算結果と、視点との距離を計算し、これらの結果をボリューム・データ第二メモリ113に入力する(ステップ102)。ボリューム・データ第二メモリのデータは、等値面抽出部107から等値面として距離の等しい点の集合を三角形の集合を取り出し、三角形データメモリ第一メモリ114に入力する(ステップ103)。光学属性計算部8では、三角形データ第一メモリ114のデータから、三角形の頂点の色データと不透明度の計算結果を、三角形データ第二メモリ116に入力する(ステップ104)。3Dグラフィックスプロセッサ109は、三角形データ第二メモリ116に保持されている三角形の頂点データから、図18R>8のようなスキャンコンバージョンによって、各ピクセルのデータを線形補間によって求める(ステップ105)。この際、ピクセルに対応するボリューム・データが存在するのに、補間によって求めるために、精度的に問題がある。図18の丸マークはピクセルを示し、図18R>8の従来例の点線丸が使用されないボリューム・データを示していおり、点線丸のピクセルのデータを求めるために、3頂点のボリューム・データから補間して求めている。この結果をフレームバッファ117に書き込む(ステップ106)ことで、ボリューム・レンダリングを実現している。
【0007】また、テクスチャ・マッピング装置としては、特開平5−298456のテクスチャ・マッピング方式がある。この方式は、2次元テクスチャ・マッピング装置を実現したものである。図19の191は多角形のエッジを左エッジと右エッジに分割する手段を有するマイクロプロセッサ、192はマイクロプロセッサ191により分割された左エッジの補間処理をおこなう左エッジ補間回路、193はマイクロプロセッサ191により分割された右エッジの補間処理を行う右エッジ補間回路、194は左エッジ補間回路192と、右エッジ補間回路193から出力される2つの点データを入力として、上記2点から決まるスキャンラインに平行な直線を補間するピクセル補間回路、195はテクスチャのデータを保持し、ピクセル補間回路194が出力するテクスチャ・アドレスを入力として、そのアドレスの示すテクスチャ・データを出力するテクスチャ・メモリ、196は左エッジ補間回路192と右エッジ193から構成され、図21のような多角形ABCDをスキャンライン上の線分L1R1,L2R2に分割するエッジのスキャン変換を行うスキャン変換部である。
【0008】図20は、図19に示される左エッジ補間回路192と、右エッジ補間回路193とピクセル補間回路194の一例を示す図である。201は表示画面のX座標を補間しながら生成する補間回路、202は表示画面のY座標を補間しながら生成する補間回路、203は表示画面のZ座標を補間しながら生成する補間回路、204はテクスチャ平面のX座標Xtを補間しながら生成する補間回路、205はテクスチャ平面のY座標Ytを補間しながら生成する補間回路である。
【0009】次に、これらの図と図21を用いて従来のテクスチャ・マッピング装置の動作について説明する。マイクロプロセッサ141に画面に表示する多角形の頂点データA,B,C,DのX,Y,Z座標値と、各頂点A,B,C,Dに対応するテクスチャの頂点Ma,Mb,Mc,Mdのテクスチャ・アドレスMx,Myを設定する。マイクロプロセッサ141は、画面上に描画される多角形のエッジを左エッジADCと右エッジABCに分割する。このとき、エッジの各頂点に対応するテクスチャのエッジもMaMbMcとMaMdMcに分割する。この多角形分割は、多角形を構成する頂点の中で、Y座標が最大値である頂点と最小値である頂点がエッジの端点になるように行なわれる。
【0010】次に、左エッジと右エッジのそれぞれの始点となる頂点AのX,Y,Z座標値と、頂点Aに対応するテクスチャの頂点MaのX座標値Mx,Y座標値Myが、左エッジ補間回路192と右エッジ補間回路193のそれぞれのX,Y,Z,Mx,Myの補間回路201,202,203,204,205に設定される。各補間回路の始点AのX,Y,Z,Mx,My値に差し込まれる補間値を、マイクロプロセッサ191が計算する。この補間値は、エッジ端点間の差分をYの差分で割ったものである。ただし、Yの補間値は1に固定である。これらの補間回路では、始点の値に順次、補間値を加算していくことで、Y座標の一番小さい点からY軸正方向に補間していき、左エッジ補間回路192は頂点L1,L2,Dを生成し、右エッジ補間回路193は頂点R1,R2,R3,R4,Bを生成する。
【0011】このエッジ補間処理では、Y方向に関しては左エッジ補間回路192、右エッジ補間回路193ともに同じ補間値(=1)を加算していくので、各エッジ補間回路から出力される左右エッジ上の点は、同一スキャンライン上の点となっている。例えば、A点から始めると、始めの補間によって左エッジ補間回路192からは頂点L1、右エッジ補間回路193からはL1と同一Yライン上に頂点R1が発生される。この2頂点は、Y方向に関して同一スキャンライン上の点となっている。
【0012】ピクセル補間回路194では、左右エッジ補間回路から出力される頂点間を結ぶような点を生成する。例えば、頂点L1と頂点R1の間を埋める様な点P1,P2を生成する。左エッジ補間回路192からの出力される頂点L1のデータX,Y,Z,Mx,My座標値は、ピクセル補間回路144の始点データとして各補間回路に入力される。また、マイクロプロセッサ191は、左右エッジ補間回路192,193から出力される頂点L1,R1のデータを読み込み、スキャンライン上L1R1間の点を生成するための補間値を計算する。この計算は、2頂点間のZ,R,G,Bの差分をXの差分で割ったものを用い、ピクセル補間回路194の各補間回路に設定する。ただし、このとき、ピクセル単位に補間処理を行うために、X方向の補間値は単位である1を、Y方向の補間値には同一Y値であるため0を設定する。ピクセル補間回路194は、エッジ補間回路と同様に動作し、スキャンライン上の点P1,P2を生成する。
【0013】ピクセル補間回路194から出力される点のX,Y,Z座標値は、フレームメモリに出力され、Mx,My座標はテクスチャ・メモリに入力される。テクスチャ・メモリではMx,My座標で示されるアドレスの色情報R,G,Bをフレームメモリに出力する。フレームメモリに出力されたX,Y,Z座標値と、R,G,Bの色データにより画面に描画が行われていた。
【0014】
【発明が解決しようとする課題】従来のボリューム・レンダリング装置は、以上のように構成されていたので、レイトレーシングを高速に行うためのボリューム・レンダリング用の特別なハードウェアを必要とするか、ソフトウェアで処理するため処理が遅いという課題があった。また、スライス断面を重ね合わせる特許公報では、三角形内部ピクセルのカラー値と不透明度は、サンプリングされた頂点間を補間することで求めているため、三角形内部は実際のボリューム・データとは異なったイメージが生成される可能性があり、また、ボリューム・データを拡大縮小した際に、ボリューム・データのサンプリングが粗くなる場合に、正しいレンダリングイメージを生成できないという課題があった。しかし、実際にはそのピクセルに対応するボリューム・データが存在しており、このピクセルに対応するボリュームでデータを使うことで本手法は表示品質を向上できる。
【0015】
【課題を解決するための手段】この発明は、上記のような課題を解消するためになされたもので、例えば、既存のテクスチャ・マッピング装置などのマッピング装置に改良を加え、制御方法を変更することで、簡単にボリューム・レンダリングができる装置を得ることを目的とする。この際に、ボリューム・データの解像度内では補間せずに、正しくボリューム・イメージを生成し、ボリューム・データの解像度を越える場合は、ボクセル・データ間で補間処理して、ボリューム・データを高品質に生成するボリューム・レンダリング装置を得ることを目的とする。
【0016】本発明に係るボリューム・レンダリング装置は、原ボリューム・データを記憶するボクセル・メモリと、このボリューム・データが表すボリューム・オブジェクトを視点から見た平面にスライスするボリューム平面のパラメータを計算し、またボリューム・オブジェクトをマッピングするマッピング・オブジェクトを視点座標系に設定してボリューム平面に対応するマッピング・オブジェクトをスライスする3次元マッピング平面のパラメータも計算し、更に上記3次元マッピング平面にグラフィックス処理をして2次元マッピング平面に変換するパラメータ設定手段と、ボリューム平面を示すボクセルメモリ・アドレスと、3次元に拡張したマッピング平面を示す画像メモリ・アドレスを必要に応じて補間して生成するアドレス生成手段と、ボリューム平面をマッピング平面にマッピングした内容を記憶し、また後述のブレンディング手段出力の画像を書き戻す画像メモリと、ボクセル・メモリからのデータを画像メモリからのマッピング平面にマッピングして半透明のブレンディングされたボリュームレンダリング・データを得るブレンディング手段を備えた。
【0017】また更に基本構成において、パラメータ設定手段は、ボリューム・オブジェクトをボリューム平面で切り出して得られる多角形を三角形に分割し、またマッピング・オブジェクトを3次元マッピング平面で切り出して得られた多角形も対応して三角形に分割し、この得られた対応三角形にグラフィックス処理をして2次元のマッピング平面上の三角形に変換するパラメータ設定手段とし、またアドレス生成手段も対応するようにした。更に、アドレス生成手段は、左右エッジから補間して生成するようにした。また更に、マッピングに際してボクセル・メモリから読み出すボクセル・データとして、指定されたアドレスに最も近いボクセルを選択するか、またはbilinear補間でデータを得るようにした。
【0018】この発明に係るボリューム・レンダリング方法は、原ボリューム・データが表すボリューム・オブジェクトに対応するマッピング・オブジェクトを設定するステップと、視点方向から見た平面にボリューム平面を設定するステップと、ボリューム・オブジェクトに対応するマッピング平面を設定するステップと、ボリューム平面上のデータをテクスチャ・データとしてマッピング平面上のデータとでテクスチャ・マッピング処理をするステップと、マッピング平面上のデータを半透明描画のためのブレンディングをしながら表示メモリに書き戻すステップを備えた。
【0019】
【発明の実施の形態】
実施の形態1.以下に、この発明のボリューム・レンダリング装置の構成を図1について説明する。図1において、11はボクセル・メモリで、描画対象となるボリューム・データを記憶する。12はパラメータ計算手段で、ボリューム空間内に設定したボリューム・オブジェクトとボリューム空間に設定した視点と、注視点からボリューム・オブジェクトをスライスするボリューム平面を決定し、ボリューム・オブジェクトをマッピングするマッピング・オブジェクトを視点座標系空間に設定し、更に、ボリューム平面をマッピングする3次元マッピング平面を視点座標系空間に決定し、その3次元マッピング平面をグラフィックス処理を施し、2次元のマッピング平面に変換する。13はアドレス生成手段で、ボリューム平面に含まれるボクセルを示すボクセルメモリ・アドレスと、マッピング平面を示す画像メモリ・アドレスを生成する。14は画像メモリで、ボリューム平面をマッピング平面にマッピングした内容を記憶し、画像メモリ・アドレスによって示されるデータのリード/ライトが可能である。15はブレンディング手段で、ボクセル・メモリから読み出したデータと、画像メモリ14から読み出したデータをブレンディングする。上記ボクセル・メモリ11ないし画像メモリ14は、テクスチャ・マッピング装置としても必須の構成要素であり、これをボリューム・レンダリング用に3次元に拡大アレンジし、ブレンディング手段15を付加している。
【0020】次に、図2に示した具体例を用いて、その動作について説明する。まず最初に、本手法の概要を説明する。本手法は、ボリューム・データを定義するボリューム・オブジェクトと、ボリューム・データをマッピングするマッピング・オブジェクトの2つのオブジェクトを用意する。例えば、両オブジェクトを6面体とすると、各頂点間に対応関係をもたせて、ボリューム・オブジェクトの内容をマッピング・オブジェクトにマッピングすることで、描画を行う方法である。このマッピング方法は、ボリューム・オブジェクトを視点からの距離に応じてスライスしたボリューム平面と、前述の対応関係に基づいて、ボリューム平面に対応するようなマッピング・オブジェクトにおけるマッピング平面を設定し、この2平面間でテクスチャ・マッピングと同様なマッピング処理を行う。切り出された複数のマッピング平面を画像メモリに書き込む際に、ブレンディングを行うことで、ボリューム・レンダリングを行う。即ち、元のボクセル・メモリからのデータを、視点面から見たマッピング・オブジェクト中の複数の距離面でスライスしてマッピングし、重層表示するので、正確なデータが得られ、テクスチャ・マッピングの装置又は思想が利用できて、しかも、距離データも織り込めることになる。
【0021】以下に、図3のフローチャートと図1の構成図をもとに動作を説明する。前提として、CTスキャナやMRI、超音波センサで得られた2次元断面画像が、画像処理などの手法や色計算などを施された上で、ボクセル・メモリにボリューム・データとして記憶されているとする。まず、3次元ボリューム・データを表示するために、ボクセル・メモリ11内にマッピングする領域を決めるボリューム・オブジェクトを設定する(ステップ1、従来のステップ101,102,104に相当)。次に、このボリューム・オブジェクトをマッピングするマッピング・オブジェクトを、視点座標系空間に設定する(ステップ2)。例えば、図2(a)のようなボクセル・メモリ11に定義されているボリューム・オブジェクトに対して、図2(d)のように、マッピング・オブジェクトとして立方体を設定する。このとき、視点座標系空間のマッピング・オブジェクトのAv,Bv,Cv,Dv,Ev,Fv,Gv,Hvと、ボクセル・メモリ空間のボリューム・オブジェクトのAb,Bb,Cb,Db,Eb,Fb,Gb,Hbをそれぞれ対応付ける。
【0022】更に、視点座標系空間とボクセル空間で同様に設定された視点と、視線方向から求まるボリューム・オブジェクトを切断するボリューム平面の方程式を求め(ステップ3)、前述の対応関係の基づいてボリューム平面に対応するマッピング・オブジェクトを切断するマッピング平面の方程式を求める(ステップ4、従来例のステップ103相当)。例えば、視線ベクトルを(a,b,c)とすると、これを法線ベクトルとする平面方程式は、以下の式(1)になる。
ax+by+cz=d (1)
ここでdは任意の定数で、視点と平面との距離の関係を示している。複数の断面の設定は、このdを変えて行う。図2(b)は、dを変えた平面列の一例である。この定数dは、ボリューム・オブジェクトの構成に応じて任意に設定可能である。以上のボリューム平面とマッピング平面の計算を、パラメータ計算手段12で行い、ボリューム平面のパラメータと、グラフィックス処理を施され2次元の画像メモリの空間に変換されたマッピング平面のパラメータを、アドレス生成手段13に設定する。図2(c)は、スライスされたボリューム平面、図2R>2(e)は、2次元の画像メモリ14の空間に変換されたマッピング平面を示す。
【0023】アドレス生成手段13は、ボリューム平面を構成するボクセルを示すボクセルメモリ・アドレスを、ボクセル座標系の直交3軸のそれぞれに対して補間処理を行いながら生成する。また、同様にマッピング平面を構成する画素を示す画像メモリ・アドレスを、画像メモリ内の直交2軸のそれぞれに対して、補間処理を行いながら生成する(ステップ5、従来例のステップ105相当)。こうして、マッピング平面に多層のデータを書き込んでいく。
【0024】次に、画像メモリ・アドレスとボクセルメモリ・アドレスは、ブレンディング手段15に設定される。ボクセルメモリ・アドレスで示されたボクセル・メモリ11のデータは、ブレンディング手段15に読み出され、更に、ブレンディング手段15は、画像メモリ・アドレスで指示される画像メモリ14のデータを読み出し、ボクセル・メモリ11から読み出したデータと、画像メモリ14から読み出されたデータをブレンディングする(ステップ6、従来例のステップ106に相当)。具体的には、図2(c)のボクセル・メモリのデータをS、画像メモリ中のスライスしたマッピング平面上の旧データをDold、ブレンディング後の新データをDnewとすると、Dnew=αS+(1−α)Dold (2)
但し、0<α<1として、ブレンディング後のデータを得る。ブレンディングされたデータは、画像メモリ14の読み出したアドレスと同じアドレスに書き込む。具体例を示すと、ボクセル・データから読み出すデータの集合は、図2の(c)のようなボリューム平面で表され、この平面をブレンディングしながらマッピング平面にマッピングすることで、図2(f)のようなボリュームレンダリング・イメージを生成する。
【0025】また、図22のように、ボリューム・データを透視効果を施したイメージを生成する場合に、従来例では、ボリューム・データ全部に対して奥行きを示すZ値で割り算をする必要がある。しかし、本実施例では、ステップ2のマッピング・オブジェクトを設定するときに、マッピング・オブジェクトを構成する頂点に対してのみ奥行きを示すZ値で割り算を行うことで、透視効果を実現することができる。
【0026】このように、本実施例は、正しい3次元透視を得るために、従来例のテクスチャ・マッピング装置を3次元を扱えるように拡張し、ブレンディング装置を新たに付け加えることで、容易に実現することが可能である。
【0027】実施の形態2.この発明の実施の形態2のボリューム・レンダリング装置の概念を、図4に基づいて説明する。図4(a)は、ボリューム平面とボクセル・メモリとの交わりが複雑な形になる場合である。このような場合、図4の(b)のように、切り出された多角形を三角形1,2,3,4に分割する。図4では、三角形ストリップ形式に分割しているが、どのような分割方法で可能である。実施の形態1の図3のフローチャートに、三角形分割(ステップ5b)を加えた動作フローチャートが図5である。画像メモリへ書き込むマッピング平面も、ボリューム平面で分割したものと同様な三角形1,2,3,4に分割する。パラメータ設定手段12は、この分割した三角形をアドレス生成手段13に設定し、画像メモリのスキャンラインに沿って三角形内のアドレスを補間してマッピングを行う。分割された三角形をすべて設定することで、複雑に切断された切断面を描画することができ、ボリューム・レンダリングのイメージを生成することができる。このように、三角形に分割するメリットは、n角形の場合のために、複数の処理制御を用意する必要が無い点である。
【0028】実施の形態3.この発明の実施の形態3の装置を、図6〜9に基づいて説明する。図6は、図1で示されるアドレス生成手段13を、本形態にアレンジした構成を示す図である。図において、41はパラメータ設定手段12により、図4(c)のようにマッピング平面から分割された三角形と、図4(b)のようにボリューム平面から分割された三角形のそれぞれの左エッジの補間処理を行う左エッジ補間回路、42はパラメータ設定手段12により、図4(c)のようにマッピング平面から分割された三角形と、図4(b)のようにボリューム平面から分割された三角形のそれぞれの右エッジの補間処理を行う右エッジ補間回路、43は左エッジ補間回路41と右エッジ補間回路42のそれぞれから出力されるマッピング平面から分割された三角形と、ボリューム平面から分割された三角形のエッジ上のデータを入力として、マッピング平面上の三角形の左右エッジ2点により決まる画像メモリ14と、ボクセル・メモリ11のラインを補間するライン補間回路である。
【0029】図7は、図6に示される左エッジ補間回路41と右エッジ補間回路42と右エッジと左エッジを結ぶラインを補間するライン補間回路43の一例を示す図である。51は画像メモリ14のマッピング平面上の三角形のX座標を補間しながら生成する補間回路、52は画像メモリ14のマッピング平面上の三角形のY座標を補間しながら生成する補間回路、53は画像メモリ14のマッピング平面上の三角形のZ座標を補間しながら生成する補間回路、54はボクセル・メモリ11のボリューム平面上の三角形のX座標を補間しながら生成する補間回路、55はボクセル・メモリ11のボリューム平面上の三角形のY座標を補間しながら生成する補間回路、56はボクセル・メモリ11のボリューム平面上の三角形のZ座標を補間する補間回路である。
【0030】図8は、図7で示される51,52,53,54,55,56の補間回路の一例である。61は補間を行う直線の始点を保持する始点レジスタ、62は補間データを保持する補間レジスタ、63は補間されたデータまたは始点レジスタ61のデータを保持する保持レジスタ、64は保持レジスタ63のデータと補間レジスタ62のデータを累積加算することで補間を行う加算器である。図9は、ボリューム平面と画像メモリ内のマッピング平面上の各データの対応を説明する図である。
【0031】次に、動作を説明する。まず、マッピング平面の分割された三角形のエッジを、左エッジと右エッジとに分離する。図9を基に説明すると、この分離は三角形を構成する頂点の中で、Y座標が最大値となる点と最小値になる点が、エッジの端点になるように分離をする。つまり、図9の場合では、右エッジはA−B、左エッジはA−C−Bになる。このとき、画像メモリ14内の三角形のエッジに対応するボリューム平面から分割された三角形のエッジも、左右に分離される。つまり、右エッジはMa−Mb、左エッジはMa−Mc−Mbになる。
【0032】次に、左エッジと右エッジのそれぞれの始点となる頂点AのX,Y,Z座標と、頂点Aに対応するボリューム平面から分割された三角形の頂点MaのXb,Yb,Zb座標が、左エッジ補間回路41と右エッジ補間回路42のそれぞれの補間回路51,52,53,54,55,56のそれぞれの始点レジスタ61に入力される。各エッジの端点間のX,Y,Z,Xb,Yb,Zbの変化量をΔX,ΔY,ΔZ,ΔXb,ΔYb,ΔZb、補間値をdX,dY,dZ,dXb,dYb,dZbとすると、補間値はパラメータ設定手段11で、次のように計算され、dX=ΔX/ΔY,dY=1,dZ=ΔZ/ΔY,dXb=ΔXb/ΔY,dYb=ΔYb/ΔY,dZb=ΔZb/ΔYとなる。これらの補間値は、エッジ補間回路51,52,53,54,55,56の補間レジスタ62に入力される。補間に必要なデータがレジスタに設定されると、各補間回路の始点レジスタ61のデータが保持レジスタ63に入力され、保持レジスタ63のデータと補間レジスタ62のデータが加算器64において加算され、加算されたデータは保持レジスタに保持される。保持レジスタ63のデータと補間レジスタ62のデータの加算の繰り返しにより、右エッジの場合は、R1,R2,R3,R4,Bを生成し、左エッジの場合は、L1,L2,Cを生成する。
【0033】このエッジ補間処理において、両エッジの始点のY座標は同一であり、dY=1とするために左右のエッジ補間回路41,42が同期動作を行うと、各エッジ補間回路41,42の出力データである左右エッジ上の点は、画像メモリ内の同一スキャンライン上の点となる。左エッジ補間回路41の出力データであるX,Y,Z,Xb,Yb,Zbは、ピクセル補間回路43のX,Y,Z,Xb,Yb,Zbのそれぞれの補間回路51,52,53,54,55,56の始点レジスタ61に入力される。また、パラメータ設定手段11は、左エッジ補間回路41と右エッジ補間回路42から出力される点のX,Y,Z,Xb,Yb,Zbデータを一旦読み込み、これら2頂点のデータから2頂点の補間値を計算して、ピクセル補間回路の補間レジスタ62に設定する。左エッジ補間回路41から出力される左エッジ上の点と、右エッジ補間回路42から出力される右エッジ上の点を結ぶ直線のX,Y,Z,Xb,Yb,Zbの変化量を、ΔX,ΔY,ΔZ,ΔXb,ΔYb,ΔZb、補間値をdX,dY,dZ,dXb,dYb,dZbとすると、補間値はパラメータ設定手段11で、次のように計算され、dX=1,dY=0,dZ=ΔZ/ΔX,dXb=ΔXb/ΔX,dYb=ΔYb/ΔX,dZb=ΔZb/ΔXと補間値が計算される。ピクセル補間回路43内の補間回路51,52,53,54,55,56の動作は、エッジ補間回路の場合と同じであり、補間に必要なデータがレジスタに設定されると、補間回路の始点レジスタ61のデータが保持レジスタ63に入力され、保持レジスタ63のデータと補間レジスタ62のデータが加算器64において加算される。加算されたデータは保持レジスタ63に入力され保持される。保持レジスタ63のデータと補間レジスタ62のデータの繰り返しにより、ライン上のアドレスを生成する。以上の処理によって、アドレス生成手段からボリューム平面が構成するボクセルメモリ・アドレスと、マッピング平面が構成する画像メモリ・アドレスが生成され、ボリューム・レンダリングを実現する。
【0034】実施の形態4.この発明の実施の形態4の装置を図10を用いて説明する。図10は、画像メモリ14bをフレームメモリと兼ねて、画像メモリとしてまるめこんだ整数データを記憶する整数型画像メモリとしたボリューム・レンダリング装置の構成図である。動作は実施の形態1の装置と同様である。ブレンディングする際に、書き込む値を整数型にすることで、画像メモリ以外にフレームメモリを持つ必要がなく、コストダウンを図れる。
【0035】実施の形態5.この発明の実施の形態5の装置を図11を用いて説明する。図11は、図1のボリューム・レンダリング装置の構成に96のフレームメモリ、97のホストCPU、98のディスプレイ、99のバスを追加したものである。基本的動作は、実施の形態1の装置と同じであり、ホスト97は描画するボリューム・データをボクセル・メモリに登録し、視点や注視点を設定し、パラメータ設定手段13へ指示を出す。画像メモリ14は、浮動小数点型のRGBデータを持つ。画像メモリが浮動小数点型のデータを持つので、複数枚のボリューム平面を重ね合わせた場合でも、整数型を持つ画像メモリの場合よりも精度良くボリューム・データのマッピングができる。複数枚のボリューム平面を重ね終えた後、ホスト97は画像メモリ14のデータを整数型に変換した後、フレームメモリ96に転送し、ディスプレイ98でボリューム・レンダリングされたイメージを表示する。
【0036】実施の形態6.動作を簡単にするため、実施の形態1の装置のボクセル補間器において、アドレス補間で示されたアドレスに最も近いボクセルからデータを読み出して、それをボクセルのデータとすることでボリューム・レンダリングを行う。図12は、この方法の概念を説明する図である。図12(a)で示されるボリューム空間におけるボリューム平面上のアドレスが、図1R>1(b)(指定されたアドレスの付近の拡大図)のように、ボクセルを示さない場合、最も近いボクセルDを選び、このボクセルDのデータを指定されたアドレスのデータとして用いることで、簡単にデータを読み出せる。図13は、その動作フローを示した図である。
【0037】実施の形態7.正確にデータ補間するため、実施の形態1の装置のボクセル補間器において、アドレス補間の際に、指定されたアドレス付近の8個のボクセルからbilinear補間して、それをボクセル・データとすることで、ボリューム・レンダリングをする。図14は、bilinear補間の概念を説明する図である。図14の(a)で示されるボリューム空間におけるボリューム平面上のアドレスが、図14(b)(指定されたアドレスの付近の拡大図)のように、ボクセルを示さない場合、周辺のボクセルによるbilinear補間を行う。bilinear補間は、ボクセルABEGのデータ補間よりUPにおけるデータを求め、ボクセルCDFHのデータ補間より、DOWNにおけるデータを求める。このUPとDOWN間のデータを補間することで、アドレスで示される位置のデータを求める。この補間処理により補間を行わない場合より計算量は多くなるが、高品質なボリューム・レンダリングが可能となる。図15(a)は、その動作フローを示す図である。図15(b)は、動作フローの各ステップでの補間計算の論理を示す論理式を示す図である。
【0038】
【発明の効果】この発明は、以上のように構成されているので、下記のような効果がある。3次元のボリューム・データをスライスした多数の2次元画像を、ブレンディングしながらマッピング処理するので、従来のマッピング装置を応用でき、簡単にボリューム・レンダリングが可能となる。また、深さ方向の距離計算が簡単になる。また、ボリューム・データを読み出す際に、補間処理を行うことで、ボリューム・データを拡大縮小した場合でも、正確に表示できる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1のボリューム・レンダリング装置の構成と概念を示す図である。
【図2】 図1のボリューム・レンダリング装置の処理内容を説明する図である。
【図3】 図1の装置の動作を示すフローチャート図である。
【図4】 この発明の実施の形態2のボリューム・レンダリング装置の三角形分割動作を説明する図である。
【図5】 実施の形態2の装置の動作を示すフローチャート図である。
【図6】 実施の形態3のボリューム・レンダリング装置のアドレス生成手段の構成図である。
【図7】 図6のアドレス生成手段内のエッジ補間回路とピクセル補間回路を示す図である。
【図8】 図7のの補間回路の詳細構成図である。
【図9】 ボリューム・レンダリング装置の三角形のエッジ分割と画像メモリ内の画素生成の対応を説明する図である。
【図10】 実施の形態4の画像メモリをフレームメモリと共用したボリューム・レンダリング装置の構成図である。
【図11】 実施の形態5の画像メモリとは別にフレームメモリを持つボリューム・レンダリング装置の構成図である。
【図12】 実施の形態6のボリューム・レンダリング装置で隣接ボクセルの選択動作を説明する図である。
【図13】 図12の選択動作を示すフローチャート図である。
【図14】 実施の形態7のボリューム・レンダリング装置でbilinear補間動作を説明する図である。
【図15】 図14の補間動作を示すフローチャート図である。
【図16】 従来のシェーディング法によるボリューム・レンダリング装置の構成を示すブロック図である。
【図17】 従来例の図16の装置の動作を示すフローチャート図である。
【図18】 従来例の補間シェーディングによるピクセルの精度を示す図である。
【図19】 従来のテクスチャ・マッピング装置の構成を示す図である。
【図20】 従来のテクスチャ・マッピング装置のエッジ補間回路とピクセル補間回路の構成図である。
【図21】 従来のテクスチャ・マッピング装置におけるエッジ分割動作を説明する図である。
【図22】 従来のテクスチャ・マッピング装置で透視変換を行うボリューム・レンダリングを説明する図である。
【符号の説明】
11 ボクセル・メモリ、12 パラメータ設定手段、13 アドレス生成手段、14 画像メモリ、15 ブレンディング手段。

【特許請求の範囲】
【請求項1】 原ボリューム・データを記憶するボクセル・メモリと、上記ボリューム・データが表すボリューム・オブジェクトを視点から見た平面にスライスするボリューム平面のパラメータを計算し、また上記ボリューム・オブジェクトをマッピングするマッピング・オブジェクトを視点座標系に設定して上記ボリューム平面に対応する上記マッピング・オブジェクトをスライスする3次元マッピング平面のパラメータも計算し、更に上記3次元マッピング平面にグラフィックス処理をして2次元マッピング平面に変換するパラメータ設定手段と、上記ボリューム平面を示すボクセルメモリ・アドレスと、上記3次元に拡張したマッピング平面を示す画像メモリ・アドレスを必要に応じて補間して生成するアドレス生成手段と、上記ボリューム平面を上記マッピング平面にマッピングした内容を記憶し、また後述のブレンディング手段出力の画像を書き戻す画像メモリと、上記ボクセル・メモリからのデータを画像メモリからのマッピング平面にマッピングして半透明のブレンディングされたボリュームレンダリング・データを得るブレンディング手段を備えたボリューム・レンダリング装置。
【請求項2】 パラメータ設定手段は、ボリューム・オブジェクトをボリューム平面で切り出して得られる多角形を三角形に分割し、またマッピング・オブジェクトを3次元マッピング平面で切り出して得られた多角形も対応して三角形に分割し、該得られた対応三角形にグラフィックス処理をして2次元のマッピング平面上の三角形に変換するパラメータ設定手段とし、またアドレス生成手段は、上記ボリューム・オブジェクトをボリューム平面で切り出して得られる分割三角形に含まれるボクセルを示すボクセルメモリ・アドレスと、上記マッピング・オブジェクトを3次元マッピング平面で切り出して得られた対応三角形に含まれる画像を示す画像メモリ・アドレスを生成するアドレス生成手段であることを特徴とする請求項1記載のボリューム・レンダリング装置。
【請求項3】 アドレス生成手段は、パラメータ設定手段でマッピング平面から分割された三角形と、ボリューム平面から分割された対応する三角形を各左エッジと右エッジに分け、内部データは上記左エッジと右エッジを補間して生成するアドレス生成手段であることを特徴とする請求項1記載のボリューム・レンダリング装置。
【請求項4】 画像メモリは、記憶する画像の色データを整数の値で保持する整数型の画像メモリとし、更に表示用のフレームメモリを兼ねるようにしたことを特徴とする請求項1記載のボリューム・レンダリング装置。
【請求項5】 画像メモリは、記憶する画像の色データを浮動小数点データとして保持する画像メモリとし、更に表示用のフレームメモリとは独立に設けたことを特徴とする請求項1記載のボリューム・レンダリング装置。
【請求項6】 また更に、マッピングに際してボクセル・メモリから読み出すボクセル・データとして、指定されたアドレスに最も近いボクセルを選択することを特徴とする請求項1記載のボリューム・レンダリング装置。
【請求項7】 また更に、マッピングに際してボクセル・メモリから読み出すボクセル・データに対して指定されたアドレスを中に含む8座標のボクセルを選択してbilinear補間でデータを得ることを特徴とする請求項1記載のボリューム・レンダリング装置。
【請求項8】 原ボリューム・データが表すボリューム・オブジェクトに対応するマッピング・オブジェクトを設定するステップと、視点方向から見た平面にボリューム平面を設定するステップと、ボリューム・オブジェクトに対応するマッピング平面を設定するステップと、上記ボリューム平面上のデータをテクスチャ・データとしてマッピング平面上のデータとでテクスチャ・マッピング処理をするステップと、マッピング平面上のデータを半透明描画のためのブレンディングをしながら表示メモリに書き戻すステップを備えたボリューム・レンダリング方法。

【図1】
image rotate


【図6】
image rotate


【図18】
image rotate


【図2】
image rotate


【図4】
image rotate


【図8】
image rotate


【図20】
image rotate


【図3】
image rotate


【図5】
image rotate


【図7】
image rotate


【図9】
image rotate


【図10】
image rotate


【図12】
image rotate


【図22】
image rotate


【図11】
image rotate


【図13】
image rotate


【図14】
image rotate


【図16】
image rotate


【図19】
image rotate


【図21】
image rotate


【図15】
image rotate


【図17】
image rotate


【公開番号】特開平9−50537
【公開日】平成9年(1997)2月18日
【国際特許分類】
【出願番号】特願平7−203191
【出願日】平成7年(1995)8月9日
【出願人】(000006013)三菱電機株式会社 (33,312)