(57)【特許請求の範囲】
【請求項１】
ボクセルデータの各ボクセル値を変換して得られる各ボクセルの不透明度と前記ボクセルデータのグラディエントから得られるシェーディング係数とを用いてレイキャスティングによりボリュームレンダリングを行う３次元画像表示方法において、
前記レイキャスティングは仮想始点から発する仮想光線に沿ってあらかじめ設定された間隔で刻まれたレイ到達点ごとに算出される部分反射光を積算して仮想反射光を得ることにより仮想投影面に画像を形成する手法であって、前記レイ到達点における複数個の近傍座標点を決める座標差分を任意に指定して前記近傍座標点を決定するステップと、前記近傍座標点それぞれの周囲のボクセルのボクセル値から前記近傍座標点それぞれの補間ボクセル値を算出するステップと、前記補間ボクセル値を用いて前記レイ到達点におけるグラディエントを算出するステップと、を含むことを特徴とする３次元画像表示方法。
【請求項２】
請求項１に記載の３次元画像表示方法を実施するための３次元画像表示装置。
【請求項３】
ボクセルデータの各ボクセル値を変換して得られる各ボクセルの不透明度と前記ボクセルデータのグラディエントから得られるシェーディング係数とを用い、仮想始点から発する仮想光線に沿ってあらかじめ設定された間隔で刻まれたレイ到達点ごとに算出される部分反射光を積算して仮想反射光を得ることにより仮想投影面に画像を形成するレイキャスティングによりボリュームレンダリングを行う３次元画像表示プログラムにおいて、コンピュータを、
前記レイ到達点における複数個の近傍座標点を決める座標差分を任意に指定して前記近傍座標点を決定する手段、前記近傍座標点それぞれの周囲のボクセルのボクセル値から前記近傍座標点それぞれの補間ボクセル値を算出する手段、前記補間ボクセル値を用いて前記レイ到達点におけるグラディエントを算出する手段、として機能させることを特徴とする３次元画像表示プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はレイキャスティングによりボリュームレンダリングを行う３次元画像表示方法、装置およびプログラムに関し、特に、レイキャスティングにおいて使用されるボクセルデータのグラディエントの算出方法に関する。
【０００２】
【従来の技術】
コンピュータを用いた画像処理技術の進展により人体の内部構造を直接観測することを可能にしたＣＴ（Ｃｏｍｐｕｔｅｄ  Ｔｏｍｏｇｒａｐｈｙ）の出現は医療分野に革新をもたらした技術であり、生体の断層画像を用いた医療診断が広く行われている。さらに近年は、断層画像だけではわかり難い物体内部の３次元構造を可視化する技術として、ＣＴにより得られる物体の３次元ディジタルデータから３次元構造のイメージを直接描画するボリュームレンダリングが注目されている。
【０００３】
ボリュームレンダリングの優れた手法としてレイキャスティングが知られている。レイキャスティングは、仮想始点から物体に対して仮想光線（レイ）を照射し、物体内部からの仮想反射光の画像を仮想投影面に形成することにより、物体内部の３次元構造を透視するイメージ画像を形成する手法である。レイキャスティングについては、例えば、「新世代３次元ＣＴ診断」（１９９５年１１月１日、株式会社南江堂発行）に基本的な理論が述べられている。
【０００４】
以下にレイキャスティングの要点を説明する。物体の３次元領域の構成単位となる微小単位領域をボクセルと称し、ボクセルの濃度値等の特性を表わす固有のデータをボクセル値と称する。物体全体はボクセル値の３次元配列であるボクセルデータで表現される。通常、ＣＴにより得られる２次元の断層画像データを断層面に垂直な方向に沿って積層し、必要な補間を行うことにより３次元配列のボクセルデータが得られる。
【０００５】
仮想始点から物体に対して照射された仮想光線に対する仮想反射光は、ボクセル値に対して人為的に設定される不透明度に応じて生ずるものとする。さらに、仮想的な表面を捕捉するためにボクセルデータのグラディエントすなわち法線ベクトルを求め、仮想光線と法線ベクトルのなす角の余弦から陰影付けのシェーディング係数を計算する。仮想反射光は、ボクセルに照射される仮想光線の強度にボクセルの不透明度とシェーディング係数を乗じて算出される。
【０００６】
図４はレイキャスティングによる投影画像形成の概念を説明する図である。図４において、４１０は仮想投影面、４２０はボクセルデータで表現される３次元物体であり、４２１、４２２、４２３は、仮想投影面４１０上の座標点Ｏ（ｕ，ｖ）から３次元物体４２０に照射される仮想光線に沿って、仮想反射光を算出するために一定の間隔で刻まれたレイ到達点に位置するボクセルＶ（ｎ−１）、Ｖｎ、Ｖ（ｎ＋１）である。一般には仮想光線の方向およびレイ到達点を刻む間隔は、ボクセルデータの３次元配列の軸方向やボクセル間隔と一致しないので、補間計算により各レイ到達点におけるボクセルの特性値を求める必要がある。
【０００７】
仮想光線上のｎ番目のレイ到達点に位置するボクセルＶｎについて、そのボクセル値に対して与えられた不透明度をαｎ、ボクセルデータのグラディエントから得られたシェーディング係数をβｎとする。ここで、ボクセルＶｎに入射する仮想光線がボクセルＶｎの不透明度により減衰するものとして、その減衰分を減衰光とし、減衰光の分だけ減衰した光を残存光とする。ボクセルＶｎを通過した残存光が次のボクセルＶ（ｎ＋１）に入射する仮想光線となる。また、減衰光の分がボクセルＶｎの反射光を与えるものであると考える。ボクセルＶ（ｎ−１）からの残存光をＩ（ｎ−１）、ボクセルＶｎの残存光をＩｎ、ボクセルＶｎの減衰光をＤｎ、ボクセルＶｎによる部分反射光をＦｎとすると、＊を乗算記号として、以下の式を得る。
【０００８】
Ｄｎ＝αｎ＊Ｉ（ｎ−１）
Ｆｎ＝βｎ＊Ｄｎ＝βｎ＊αｎ＊Ｉ（ｎ−１）
Ｉｎ＝Ｉ（ｎ−１）−Ｄｎ＝（１−αｎ）＊Ｉ（ｎ−１）
【０００９】
仮想投影面４１０上の座標（ｕ，ｖ）に投影される仮想反射光Ｅ（ｕ，ｖ）は、レイ到達点ごとに算出される上記部分反射光を積算したものである。なお、この手法は物体内部の３次元構造の仮想的な透視画像を形成することが目的であり、実世界の物理現象に関する計算ではないので、ボクセルからの反射光に対する減衰は考えない。Ｏ（ｕ，ｖ）から照射する仮想光線の強度をＩ（０）とし、表記法として、Σ（ｉ＝１；ｎ）Ａｉを数列Ａ１からＡｎまでのｎ項の和記号、Π（ｉ＝１；ｎ）Ａｉを数列Ａ１からＡｎまでのｎ項の積記号とすると、次の式を得る。
Ｅ（ｕ，ｖ）＝Σ（ｉ＝１；終端条件）Ｆｉ＝Ｉ（０）＊（Σ（ｉ＝１；終端条件）βｉ＊αｉ＊（Π（ｊ＝１；ｉ−１）（１−αｊ）））
【００１０】
ここで、終端条件は仮想光線が物体を通り抜けるか、残存光が０になったときである。このようにして、仮想投影面４１０上のすべての座標（ｕ，ｖ）についてＥ（ｕ，ｖ）を算出することにより仮想的な３次元イメージの透視画像が形成される。
【００１１】
仮想投影面上の座標点から照射される仮想光線は仮想投影面に垂直な平行光線となるので、この方法は平行投影法と称されている。この方法は外側から見た物体内部の透視画像が得られるので直観的に理解し易いが、例えば医療分野では、臓器の内腔面を外側から観察することになるという欠点がある。これに対して、空間の任意の始点から放射状に仮想光線を照射して透視画像を形成する透視投影法がある。例えば、始点を人体の血管内部に置くことにより、血管内腔面を表面にして表示することが可能になる。
【００１２】
図５は透視投影法によるレイキャスティングの概念を説明する図である。図５において、５１０は空間におかれた任意の始点Ｏ（Ｏｘ，Ｏｙ，Ｏｚ）、５２０はボクセルデータで表現される３次元物体、５３０は仮想投影面である。始点５１０から照射される仮想光線に沿って仮想反射光を算出するためのレイ到達点が一定の間隔で刻まれる。５２１は始点Ｏ（Ｏｘ，Ｏｙ，Ｏｚ）からレイ到達点Ｒ（Ｒｘ，Ｒｙ，Ｒｚ）に至るレイベクトル、５２２はレイ到達点を刻む間隔を表わすステップベクトルΔＳ＝（ΔＳｘ，ΔＳｙ，ΔＳｚ）、５３１は仮想投影面５３０上の座標（ｕ，ｖ）に投影された仮想反射光Ｅ（ｕ，ｖ）である。ここで、Ｒｘ、Ｒｙ、Ｒｚ、ΔＳｘ、ΔＳｙ、ΔＳｚは（ｕ，ｖ）の関数になる。
【００１３】
図５では仮想投影面５３０が仮想光線の到達方向にあるが、始点５１０を仮想的な眼球の水晶体と考えると、この眼球の網膜５１２上の座標（ｕ，ｖ）に仮想反射光５１１がＥ’（ｕ，ｖ）として投影され、これを始点５１０に対して対称方向に拡大表示したものが仮想投影面５３０上の仮想反射光Ｅ（ｕ，ｖ）であると考えることができる。
【００１４】
ここで、仮想光線上のｎ番目のレイ到達点Ｒｎに位置するボクセルＶｎ（Ｒｘｎ，Ｒｙｎ，Ｒｚｎ）について、そのボクセル値に対して与えられた不透明度をα（Ｒｘｎ，Ｒｙｎ，Ｒｚｎ）、ボクセルデータのグラディエントから得られたシェーディング係数をβ（Ｒｘｎ，Ｒｙｎ，Ｒｚｎ）、ボクセルＶ（ｎ−１）からの残存光をＩ（ｎ−１）、ボクセルＶｎの残存光をＩｎ、ボクセルＶｎの減衰光をＤｎ、ボクセルＶｎによる部分反射光をＦｎとすると、平行投影法と同様に、以下の式を得る。
【００１５】
Ｄｎ＝α（Ｒｘｎ，Ｒｙｎ，Ｒｚｎ）＊Ｉ（ｎ−１）
Ｆｎ＝β（Ｒｘｎ，Ｒｙｎ，Ｒｚｎ）＊Ｄｎ＝β（Ｒｘｎ，Ｒｙｎ，Ｒｚｎ）＊α（Ｒｘｎ，Ｒｙｎ，Ｒｚｎ）＊Ｉ（ｎ−１）
Ｉｎ＝Ｉ（ｎ−１）−Ｄｎ＝（１−α（Ｒｘｎ，Ｒｙｎ，Ｒｚｎ））＊Ｉ（ｎ−１）
【００１６】
平行投影法と同様に、仮想投影面５３０上の座標（ｕ，ｖ）に投影される仮想反射光Ｅ（ｕ，ｖ）を求めると、前述の表記法を用いて次の式を得る。
【００１７】
Ｅ（ｕ，ｖ）＝Σ（ｉ＝１；終端条件）Ｆｉ＝Ｉ（０）＊（Σ（ｉ＝１；終端条件）β（Ｒｘｉ，Ｒｙｉ，Ｒｚｉ）＊α（Ｒｘｉ，Ｒｙｉ，Ｒｚｉ）＊（Π（ｊ＝１；ｉ−１）（１−α（Ｒｘｊ，Ｒｙｊ，Ｒｚｊ））））
【００１８】
終端条件は仮想光線が物体を通り抜けるか、残存光が０になったときである。このようにして、仮想投影面５３０上のすべての座標（ｕ，ｖ）についてＥ（ｕ，ｖ）を算出することにより仮想的な３次元イメージの透視画像が形成される。
【００１９】
以上説明したような原理に基づいて行なわれる従来のレイキャスティングによる３次元画像表示方法の処理フローチャートを図６に示す。以降の説明では、投影法について図５を参照するが、平行投影法と透視投影法とを区別せずに一般化して述べる。また、図６の説明において、処理フローチャートの各ステップを（ステップの符号）で表記する。
【００２０】
図６において、（６０１）は、使用するボクセルデータを格子点（Ｘ，Ｙ，Ｚ）についてＶ（Ｘ，Ｙ，Ｚ）と表現することを示す。（６０２）では、各格子点（Ｘ，Ｙ，Ｚ）のグラディエントＧ（Ｘ，Ｙ，Ｘ）＝（Ｇｘ，Ｇｙ，Ｇｚ）を、格子点（Ｘ，Ｙ，Ｚ）の近傍のボクセルデータから計算してメモリ等に格納する。例えば６近傍であれば、グラディエントＧ（Ｘ，Ｙ，Ｚ）のベクトル成分（成分比）は以下の式になる。
【００２１】
Ｇｘ（Ｘ，Ｙ，Ｘ）＝Ｖ（（Ｘ＋１），Ｙ，Ｚ）−Ｖ（（Ｘ−１），Ｙ，Ｚ）Ｇｙ（Ｘ，Ｙ，Ｘ）＝Ｖ（Ｘ，（Ｙ＋１），Ｚ）−Ｖ（Ｘ，（Ｙ−１），Ｚ）Ｇｚ（Ｘ，Ｙ，Ｘ）＝Ｖ（Ｘ，Ｙ，（Ｚ＋１））−Ｖ（Ｘ，Ｙ，（Ｚ−１））
【００２２】
（６０３）では、投影面の各座標（ｕ，ｖ）への反射光Ｅ（ｕ，ｖ）を求めるために、投影面のピクセルサイズをＷ＊Ｈとして、以降の処理フローに対して、０≦ｕ＜Ｗ、０≦ｖ＜Ｈの繰り返し制御を行う。
【００２３】
（６０４）では、始点座標ＯおよびステップベクトルΔＳ＝（ΔＳｘ，ΔＳｙ，ΔＳｚ）を決定する。始点Ｏは、平行投影法では投影面のピクセル座標（ｕ，ｖ）にあり、透視投影法では空間に任意に設定した固定点である。ステップベクトルΔＳはレイ到達点を刻む間隔を長さに持つベクトルであり、平行投影法では光線方向に一定の向きを持ち、透視投影法では仮想光線方向に応じて向きが変化する。
【００２４】
（６０５）では、投影面の座標（ｕ，ｖ）の現在の値に対して反射光Ｅ（ｕ，ｖ）を求める計算の繰り返し制御を行うために、レイ到達点を始点Ｏに設定し、反射光と残存光について、Ｅ＝０、Ｉ＝Ｉ（０）に初期化する。
【００２５】
（６０６）では、レイ到達点Ｒ（Ｒｘ，Ｒｙ，Ｒｚ）の補間ボクセル値Ｖ（Ｒｘ，Ｒｙ，Ｒｚ）を、レイ到達点Ｒの周囲の格子点のＭ個のボクセルデータから算出する。通常はレイ到達点Ｒを囲む立方格子点８個のボクセルデータから、ｘ方向、ｙ方向、ｚ方向それぞれの補間計算を行う。求めた補間ボクセル値から、あらかじめ設定した変換関数により、レイ到達点Ｒの不透明度α（Ｒｘ，Ｒｙ，Ｒｚ）を得る。
【００２６】
次に、レイ到達点Ｒ（Ｒｘ，Ｒｙ，Ｒｚ）におけるシェーディング係数β（Ｒｘ，Ｒｙ，Ｒｚ）を算出する。従来のレイキャスティングにおいては、レイ到達点Ｒの周囲の格子点のグラディエントからそれぞれの格子点のシェーディング係数を求め、この格子点のシェーディング係数から補間計算によりレイ到達点Ｒにおける補間シェーディング係数を算出していた。
【００２７】
すなわち、（６０７）では、レイ到達点Ｒ（Ｒｘ，Ｒｙ，Ｒｚ）の周囲の格子点のＭ個のグラディエントＧｍ（ｍ＝１，２，．．，Ｍ）、通常はレイ到達点Ｒを囲む立方格子点８個のグラディエントを取得し、それぞれのグラディエントと始点Ｏからレイ到達点Ｒに至るレイベクトルのなす角度θｍ（ｍ＝１，２，．．，Ｍ）からそれぞれの格子点におけるシェーディング係数βｍ＝ＡＢＳ（ｃｏｓθｍ）を得る。ここでＡＢＳ（ｃｏｓθｍ）はｃｏｓθｍの絶対値である。次に、βｍから補間計算によりレイ到達点Ｒにおける補間シェーディング係数β（Ｒｘ，Ｒｙ，Ｒｚ）を算出する。
【００２８】
（６０８）では、不透明度αとシェーディング係数βから、レイ到達点Ｒにおける減衰光Ｄおよび部分反射光Ｆを求める。これらを用いて、（６０９）では、残存光Ｉおよび反射光Ｅを更新し、レイ到達点Ｒ（Ｒｘ，Ｒｙ，Ｒｚ）をステップベクトルΔＳだけ進める。（６１０）では、繰り返し制御のための終端条件をチェックする。終端条件が満たされると、（６１１）で、以上の計算から得られたＥの値を座標（ｕ，ｖ）のピクセル値とし、（６０３）に戻る。
【００２９】
以上のようにして（６０３）から（６１１）の一連の処理を繰り返し、投影面のＷ＊Ｈ個のピクセル座標（ｕ，ｖ）すべてについて反射光Ｅ（ｕ，ｖ）を計算することにより、始点Ｏから観察した物体内部の３次元構造を透視するイメージ画像を投影面上に描画することができる。
【００３０】
【発明が解決しようとする課題】
レイキャスティングによりボリュームレンダリングを行う３次元画像表示は、ボクセルデータから直接物体構造を描画することができるため、特に、人体において、骨、内臓等の組織が複雑に入り組んでいる場合にあっても、これらをほぼ明確に分離描画することができ、人体の内部組織の空間的な位置関係を直観的に効率よく把握できるという利点がある。
【００３１】
一方で、ボリュームレンダリングには、３次元空間に連続的に存在する物理量を離散的に測定して得られた有限個のボクセルデータで表現することに基づく原理的な精度の問題がある。精度に影響を与える要因として、測定ノイズやサンプリング間隔等のデータ取得に起因するものと、そのデータに対する計算法に起因するものがある。前者に対しては、空間フィルタリング等により画像のコントラストを改善する方法が提案されている。
【００３２】
計算法に関しては、レイキャスティングではグラディエントから得られるシェーディング係数が３次元画像の画質に直接影響するために、微妙な３次元形状が抽出できるようなグラディエントの計算方法がシェーディング手法として研究されている。前述した格子点（Ｘ，Ｙ，Ｚ）のグラディエントＧ（Ｘ，Ｙ，Ｘ）の算出法は、優れた立体感のある画像が得られるとされるグレーレベルグラディエント法によるものであり、図６の説明では最低限の６近傍の例を示したが、例えば２６近傍のボクセルデータを使用することにより精度を上げることができる。
【００３３】
しかしながら、図６の処理フローチャートに示した従来の計算法においては、レイ到達点Ｒ（Ｒｘ，Ｒｙ，Ｒｚ）のシェーディング係数β（Ｒｘ，Ｒｙ，Ｒｚ）として、レイ到達点Ｒの周囲の格子点（離散的な位置）におけるグラディエントを用いて求めたそれぞれの格子点のシェーディング係数βｍから補間計算により算出した補間シェーディング係数を使用するため、シェーディング係数βｍの計算点とレイ到達点Ｒとの間にずれがあり、これが画像に好ましくないアーティファクトを生ずる等の３次元画像の画質劣化を招く原因となる。また、従来の計算法においては、格子点のグラディエントを予め計算してＨＤＤまたはメモリに格納しているため、画像データの読み込み時にグラディエントを事前計算するために時間がかかるとともに、常に一定量の記憶領域が占有されるという問題もある。
【００３４】
本発明は上記事情に鑑みてなされたもので、レイ到達点Ｒ（Ｒｘ，Ｒｙ，Ｒｚ）に計算中心を置いたグラディエントの算出を可能にする計算法を提供することにより、レイ到達点Ｒのシェーディング係数β（Ｒｘ，Ｒｙ，Ｒｚ）を、レイ到達点Ｒの周囲の格子点（離散的な位置）におけるグラディエントに基づいて算出するのではなく、前記レイ到達点Ｒに計算中心を置いたグラディエントから算出することを可能にし、レイキャスティングにより描画される３次元画像の画質を向上させる３次元画像表示方法、装置およびプログラムを提供することを目的とする。
【００３５】
【課題を解決するための手段】
本発明の請求項１に係る３次元画像表示方法は、前述したレイキャスティングの手法によりボリュームレンダリングを行う３次元画像表示方法において、レイ到達点における複数個の近傍座標点を決める座標差分を任意に指定して前記近傍座標点を決定するステップと、前記近傍座標点それぞれの周囲のボクセルのボクセル値から前記近傍座標点それぞれの補間ボクセル値を算出するステップと、前記補間ボクセル値を用いてレイ到達点におけるグラディエントを算出するステップとを含むものである。また、請求項３に係る３次元画像表示プログラムは、ボクセルデータの各ボクセル値を変換して得られる各ボクセルの不透明度と前記ボクセルデータのグラディエントから得られるシェーディング係数とを用い、仮想始点から発する仮想光線に沿ってあらかじめ設定された間隔で刻まれたレイ到達点ごとに算出される部分反射光を積算して仮想反射光を得ることにより仮想投影面に画像を形成するレイキャスティングによりボリュームレンダリングを行う３次元画像表示プログラムにおいて、コンピュータを、前記レイ到達点における複数個の近傍座標点を決める座標差分を任意に指定して前記近傍座標点を決定する手段、前記近傍座標点それぞれの周囲のボクセルのボクセル値から前記近傍座標点それぞれの補間ボクセル値を算出する手段、前記補間ボクセル値を用いて前記レイ到達点におけるグラディエントを算出する手段、として機能させるものである。
【００３６】
請求項１および請求項４に係る発明によれば、レイ到達点におけるグラディエントの算出に必要な複数個の近傍座標点のボクセル値を求め、次に、その近傍座標点ボクセル値からレイ到達点におけるグラディエントを算出することで、レイ到達点のシェーディング係数をレイ到達点の周囲の格子点（離散的な位置）におけるグラディエントに基づいて算出する従来の計算法に比べて、レイ到達点とグラディエント計算中心が一致しており、レイキャスティングにより描画される３次元画像の画質を向上させることができる。また、格子点でのグラディエントを事前に計算して保持しておく必要がないため、メモリ資源を有効に活用することができる。
【００３７】
本発明の請求項２に係る３次元画像表示方法は、請求項１に記載の３次元画像表示方法において、レイ到達点の座標に対する前記近傍座標点の座標差分を任意に指定することを可能にするものである。また、請求項５に係る３次元画像表示プログラムは、請求項４に記載の３次元画像表示プログラムにおいて、前記レイ到達点の座標に対する前記近傍座標点の座標差分が任意に指定されるものである。
【００３８】
請求項２および請求項５に係る発明によれば、レイ到達点の近傍座標点を決定する座標差分の任意指定を可能にすることにより、ボクセルデータの性質に応じた指定や描画結果を観測しながらの可変的な指定が可能になり、描画する対象に応じて近傍座標点を最適に決定することができ、描画される３次元画像の画質をさらに向上させることができる。
【００３９】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。図１は本発明の一実施の形態に係るレイキャスティングによる３次元画像表示方法を示す処理フローチャートである。図１の説明において、処理フローチャートの各ステップを（ステップの符号）で表記する。
【００４０】
図１において、（１０１）は、使用するボクセルデータを格子点（Ｘ，Ｙ，Ｚ）についてＶ（Ｘ，Ｙ，Ｚ）と表現することを示す。ここで、図６に示した従来の処理フローチャートの場合と異なり、各格子点（Ｘ，Ｙ，Ｚ）のグラディエントＧ（Ｘ，Ｙ，Ｘ）の算出は行なわない。
【００４１】
（１０２）では、投影面の各座標（ｕ，ｖ）への反射光Ｅ（ｕ，ｖ）を求めるために、投影面のピクセルサイズをＷ＊Ｈとして、以降の処理フローに対して、０≦ｕ＜Ｗ、０≦ｖ＜Ｈの繰り返し制御を行う。
【００４２】
（１０３）では、始点座標ＯおよびステップベクトルΔＳ＝（ΔＳｘ，ΔＳｙ，ΔＳｚ）を決定する。始点Ｏは、平行投影法では投影面のピクセル座標（ｕ，ｖ）にあり、透視投影法では空間に任意に設定した固定点である。ステップベクトルΔＳはレイ到達点を刻む間隔を長さに持つベクトルであり、平行投影法では仮想光線方向に一定の向きを持ち、透視投影法では仮想光線方向に応じて向きが変化する。
【００４３】
（１０４）では、投影面の座標（ｕ，ｖ）の現在の値に対して反射光Ｅ（ｕ，ｖ）を求める計算の繰り返し制御を行うために、レイ到達点を始点Ｏに設定し、反射光と残存光について、Ｅ＝０、Ｉ＝Ｉ（０）に初期化する。
【００４４】
（１０５）では、レイ到達点Ｒ（Ｒｘ，Ｒｙ，Ｒｚ）の補間ボクセル値Ｖ（Ｒｘ，Ｒｙ，Ｒｚ）を、レイ到達点Ｒの周囲のＭ個のボクセルデータから算出する。通常はレイ到達点Ｒを囲む立方格子点のボクセルデータから、ｘ方向、ｙ方向、ｚ方向それぞれの補間計算を行う。本実施形態では、立法格子点８個のボクセルデータから補間計算を行うものとする。求めた補間ボクセル値から、あらかじめ設定した変換関数により、レイ到達点Ｒの不透明度α（Ｒｘ，Ｒｙ，Ｒｚ）を得る。
【００４５】
前記補間計算は、例えば、レイ到達点Ｒを含むｚ方向に垂直な平面と８個のボクセルデータの格子点からなる立方体との交差線が描く正方形の４個の頂点の補間ボクセル値を、前記８個のボクセルデータからｚ方向の補間により求め、次に、レイ到達点Ｒを含むｘ方向の直線と前記正方形との交点の２点の補間ボクセル値を、前記４個の正方形の頂点の補間ボクセル値からｙ方向の補間により求め、最後に目的の補間ボクセル値を、この２点の補間ボクセル値からｘ方向の補間により求めることができる。
【００４６】
（１０６）では、レイ到達点Ｒ（Ｒｘ，Ｒｙ，Ｒｚ）のグラディエントを求めるために、グラディエントを算出するのに必要なＮ個の近傍座標点ＲＡｎ（ＲＡｘｎ，ＲＡｙｎ，ＲＡｚｎ）を決定する。近傍座標点はｘ方向、ｙ方向、ｚ方向それぞれに必要なので、最小限６近傍とするが、目的に応じて多近傍を選ぶことができ、例えば２６近傍等とすることもできる。
【００４７】
（１０７）では、各近傍座標点ＲＡｎ（ＲＡｘｎ，ＲＡｙｎ，ＲＡｚｎ）の補間ボクセル値ＶＡｎ（ＲＡｘｎ，ＲＡｙｎ，ＲＡｚｎ）を、各近傍座標点ＲＡｎの周囲のそれぞれＰ個のボクセルデータから算出する。通常は各近傍座標点ＲＡｎそれぞれを囲む立方格子点８個のボクセルデータから、ｘ方向、ｙ方向、ｚ方向それぞれの補間計算を行う。
【００４８】
（１０８）では、Ｎ個の近傍座標点ＲＡｎの補間ボクセル値ＶＡｎから、レイ到達点ＲのグラディエントＧ（Ｒｘ，Ｒｙ，Ｒｚ）を算出する。得られたグラディエントと始点Ｏからレイ到達点Ｒに至るレイベクトルとのなす角度θからレイ到達点Ｒのシェーディング係数β（Ｒｘ，Ｒｙ，Ｒｚ）＝ＡＢＳ（ｃｏｓθ）を得る。
【００４９】
（１０９）では、不透明度αとシェーディング係数βから、レイ到達点Ｒにおける減衰光Ｄおよび部分反射光Ｆを求める。これらを用いて、（１１０）では、残存光Ｉおよび反射光Ｅを更新し、レイ到達点Ｒ（Ｒｘ，Ｒｙ，Ｒｚ）をステップベクトルΔＳだけ進める。（１１１）では、繰り返し制御のための終端条件をチェックする。終端条件が満たされると、（１１２）で、以上の計算から得られたＥの値を座標（ｕ，ｖ）のピクセル値とし、（１０２）に戻る。
【００５０】
以上のようにして（１０２）から（１１２）の一連の処理を繰り返し、投影面のＷ＊Ｈ個のピクセル座標（ｕ，ｖ）すべてについて反射光Ｅ（ｕ，ｖ）を計算することにより、始点Ｏから観察した物体内部の３次元構造を透視するイメージ画像を投影面上に描画することができる。
【００５１】
図２はレイ到達点Ｒ（Ｒｘ，Ｒｙ，Ｒｚ）におけるシェーディング係数β（Ｒｘ，Ｒｙ，Ｒｚ）の算出方法について、従来のレイキャスティングによる方法と、本発明に係るレイキャスティングによる方法とを比較して説明する図である。図２において、２１０はレイ到達点Ｒであり、２２０は仮想光線を示し、図は便宜的に２次元で表現している。以下の説明も便宜的に２次元で説明する。
【００５２】
図２の（ａ）は、従来のレイキャスティングによるシェーディング係数の算出方法を示すものである。レイ到達点Ｒの周囲の格子点Ｒ１、Ｒ２、Ｒ３、Ｒ４におけるそれぞれのグラディエントと仮想光線２２０のなす角度から各格子点におけるシェーディング係数β１、β２、β３、β４を求める。ここで用いる格子点Ｒ１、Ｒ２、Ｒ３、Ｒ４のグラディエントは、図６の（６０１）で全格子点について算出しておいたものである。次に、各格子点のシェーディング係数β１、β２、β３、β４から補間計算によりレイ到達点Ｒの補間シェーディング係数βを算出する。
【００５３】
図２の（ｂ）は、本発明に係るレイキャスティングによるグラディエント算出方法を示すものである。図２の（ｂ）において、ＲＡ１、ＲＡ２、ＲＡ３、ＲＡ４はレイ到達点Ｒの近傍座標点であり、Ｖ１１、Ｖ１２、Ｖ１３、Ｖ１４は近傍座標点の１つであるＲＡ１の周囲の格子点におけるボクセルデータを示している。
【００５４】
グラディエントを算出するには、まず、それぞれの近傍座標点ＲＡｎの補間ボクセル値ＶＡｎを、それぞれの近傍座標点ＲＡｎを囲むボクセルデータから補間計算により求める。例えば、近傍座標点ＲＡ１の補間ボクセル値を、近傍座標点ＲＡ１を囲むボクセルデータＶ１１、Ｖ１２、Ｖ１３、Ｖ１４から補間計算する。次に、近傍座標点の補間ボクセル値ＶＡｎからレイ到達点ＲのグラディエントＧを求める。図２の（ｂ）の例では、（ＶＡ１−ＶＡ３）と（ＶＡ２−ＶＡ４）を直交成分に持つベクトルがグラディエントを与える。
【００５５】
このようにして、レイ到達点Ｒ（Ｒｘ，Ｒｙ，Ｒｚ）のグラディエントＧ（Ｒｘ，Ｒｙ，Ｒｚ）を近傍座標点の補間ボクセル値ＶＡｎから算出することで、レイ到達点Ｒとグラディエントの計算中心が一致するため、このグラディエントを用いてシェーディング係数β（Ｒｘ，Ｒｙ，Ｒｚ）を求めることにより、レイ到達点Ｒの周囲の格子点のグラディエント基づいて補間計算により補間シェーディング係数を求める従来の方法に比べて、レイキャスティングにより描画される３次元画像の画質を向上させることができる。
【００５６】
図３は、本発明に係るレイキャスティングによるグラディエント算出方法におけるレイ到達点の近傍座標点の決定方法を説明する図である。図３において、３１０はレイ到達点Ｒであり、３２０は仮想光線を示し、図は便宜的に２次元で表現している。
【００５７】
近傍座標点ＲＡｎのレイ到達点Ｒからの距離、すなわちｘ方向、ｙ方向、ｚ方向のいずれかの方向の座標差分は、図３の（ａ）に示すように、ボクセルデータの格子間距離、すなわちボクセル間の単位距離にするのが最も簡明である。これに対して、図３の（ｂ）の例では、近傍座標点ＲＡｎのレイ到達点Ｒからの距離をボクセルデータの格子間距離の１／２にしている。図示例では、いずれも差分計算の方向をボクセルの配列方向と同一にしているが、必ずしもボクセルの配列方向と同一にする必要はない。すなわち、任意に指定可能な座標差分とは、レイ到達点Ｒからの距離および方向を考慮して決定される。
【００５８】
この近傍座標点の決め方は描画される３次元画像の画質に影響を与えるが、その最適値はボクセルデータの性質によって異なる。本発明の請求項２に係るレイキャスティングによるグラディエント算出方法は、このレイ到達点の近傍座標点を決める座標差分を任意に指定することを可能にするものである。近傍座標点の位置をボクセルデータの性質に応じて指定することにより、あるいは描画結果を観測しながら可変的に指定することにより、描画する対象に応じて近傍座標点を最適に決定することができる。
【００５９】
【発明の効果】
以上説明したように、本発明によれば、レイ到達点のシェーディング係数をレイ到達点の周囲の格子点（離散的な位置）におけるグラディエントに基づいて算出せずに、レイ到達点におけるグラディエントの算出に必要な複数個の近傍座標点のボクセル値を求め、その近傍座標点ボクセル値からグラディエントを算出することでレイ到達点と計算中心が一致するグラディエントが得られ、このグラディエントを用いてシェーディング係数を求めることにより、レイキャスティングにより描画される３次元画像の画質を向上させることができる。さらに、格子点でのグラディエントを事前に計算して保持しておく必要がないため、メモリ資源を有効に活用することができる。
【００６０】
さらに本発明によれば、レイ到達点の近傍座標点を決定する座標差分の任意指定を可能にすることにより、ボクセルデータの性質に応じた指定や描画結果を観測しながらの可変的な指定が可能になり、描画する対象に応じて近傍座標点を最適に決定することができ、描画される３次元画像の画質をさらに向上させることができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係るレイキャスティングによる３次元画像表示方法を示す処理フローチャートである。
【図２】レイ到達点におけるシェーディング係数の算出方法について、従来の方法と本発明に係る方法とを比較して説明する図である。
【図３】本発明に一実施の形態に係るレイキャスティングによる３次元画像表示方法において、グラディエントを算出するためのレイ到達点の近傍座標点の決定方法を説明する図である。
【図４】レイキャスティングによる投影画像形成の概念を説明する図である。
【図５】透視投影法によるレイキャスティングの概念を説明する図である。
【図６】従来のレイキャスティングによる３次元画像表示方法を示す処理フローチャートである。
【符号の説明】
２１０、３１０  レイ到達点
２２０、３２０  仮想光線
４１０、５３０  仮想投影面
４２０、５２０  ボクセルデータで表現される３次元物体
４２１、４２２、４２３  レイ到達点に位置するボクセル
５１０  始点
５１１、５３１  仮想反射光
５１２  仮想網膜
５２１  レイベクトル
５２２  ステップベクトル
【図１】
0003542779.tif 000002
【図２】
0003542779.tif 000003
【図３】
0003542779.tif 000004
【図４】
0003542779.tif 000005
【図５】
0003542779.tif 000006
【図６】
0003542779.tif 000007