(57)【特許請求の範囲】
【請求項１】
透視光線を平行化することによってレンダリングされるボリュームに入射される透視光線の並列パイプライン処理を可能にするボリュームレンダリングシステムであって、
前記レンダリングされるボリュームを集合的に表す複数のボクセルを記憶するメモリと、
前記メモリから前記ボクセルのサブセットを選択的に受け取って、前記ボクセルのサブセットを１つのサンプルとして組み合わせる再サンプリングモジュールと、
前記サンプルを受け取って、前記サンプルを前記再サンプリングモジュールから受け取った別のサンプルと選択的に組み合わせて１つの画素を生成するレンダリングモジュールと、
前記メモリ、再サンプリングモジュール、およびレンダリングモジュールに連通した透視光線制御手段と、
を備えることを特徴とするボリュームレンダリングシステム。
【請求項２】
前記透視光線制御手段は、前記複数のボクセルのどれが前記ボクセルのサブセットを形成するかを識別するためのものであることを特徴とする請求項１に記載のボリュームレンダリングシステム。
【請求項３】
前記透視光線制御手段は、前記再サンプリングモジュールに対して、前記ボクセルのサブセットの各ボクセルに加える重みを指定するためのものであることを特徴とする請求項１に記載のボリュームレンダリングシステム。
【請求項４】
前記透視光線制御手段は、前記再サンプリングモジュールに対して、前記サンプルの生成時に組合わせられる前記ボクセルのサブセットのボクセルの範囲を指定するためのものであることを特徴とする請求項１に記載のボリュームレンダリングシステム。
【請求項５】
前記レンダリングモジュールは、さらにグラディエント予測部と、シェーディング部と、前記サンプルを合成するための合成部とを備えることを特徴とする請求項１に記載のボリュームレンダリングシステム。
【請求項６】
前記透視光線制御手段は、前記グラディエント予測部とシェーディング部とを調節するためのものであることを特徴とする請求項５に記載のボリュームレンダリングシステム。
【請求項７】
前記画素および前記レンダリングモジュールから受け取った別の画素を記憶する基本面画像メモリをさらに備えることを特徴とする請求項１に記載のボリュームレンダリングシステム。
【請求項８】
前記透視光線制御手段はさらに、前記サンプルの詳細レベルを計算するためのものであり、前記詳細レベルは、前記再サンプリングモジュールによって前記ボクセルのサブセットの各ボクセルに加えられる重みと、前記再サンプリングモジュールによって組合わせられる前記ボクセルのサブセットのボクセルの範囲とに影響を及ぼすことを特徴とする請求項１に記載のボリュームレンダリングシステム。
【請求項９】
前記透視光線制御手段はさらに、複数の透視光線の投射中心から基本面までの距離と、前記再サンプリングモジュールによって生成された前記サンプルの現在位置とに基づいて前記詳細レベルを計算するためのものであることを特徴とする請求項８に記載のボリュームレンダリングシステム。
【請求項１０】
透視光線を平行化することによってレンダリングされるボリュームに入射される透視光線の並列パイプライン処理を可能にするボリュームレンダリングシステムであって、
前記レンダリングされるボリュームを集合的に表す複数のボクセルを記憶するボクセルメモリと、
複数の多重分解能データセットを記憶するデータセットメモリと、
前記メモリから前記多重分解能データセットのサブセットを選択的に受け取って、前記多重分解能データセットのサブセットを１つのサンプルとして組み合わせる再サンプリングモジュールと、
前記サンプルを受け取って、前記サンプルを前記再サンプリングモジュールから受け取った別のサンプルと組み合わせて１つの画素を生成するレンダリングモジュールと、
前記データセットメモリ、再サンプリングモジュール、およびレンダリングモジュールに連通する透視光線制御手段と、
前記ボクセルメモリおよびデータセットメモリと連通するプロセッサと、
を備え、前記プロセッサは、前記多重分解能データセットが種々の分解能でレンダリングされる前記ボリューム内の各位置を表すように、前記ボクセルに基づいて前記多重分解能データセットを計算することを特徴とするボリュームレンダリングシステム。
【請求項１１】
前記透視光線制御手段は、前記複数の多重分解能データセットのいずれが前記多重分解能データセットのサブセットを形成するのかを識別するためのものであることを特徴とする請求項１０に記載のボリュームレンダリングシステム。
【請求項１２】
前記透視光線制御手段は、前記再サンプリングモジュールに対して、前記多重分解能データセットのサブセットの各多重分解能データセットに加える重みを指定するためのものであることを特徴とする請求項１０に記載のボリュームレンダリングシステム。
【請求項１３】
前記透視光線制御手段は、前記再サンプリングモジュールに対して、前記サンプルの生成時に組合わせられる前記多重分解能データセットのサブセットの多重分解能データセットの範囲を指定するためのものであることを特徴とする請求項１０に記載のボリュームレンダリングシステム。
【請求項１４】
前記レンダリングモジュールは、さらにグラディエント予測部と、シェーディング部と、前記サンプルを合成するための合成部とを備えることを特徴とする請求項１０に記載のボリュームレンダリングシステム。
【請求項１５】
前記透視光線制御手段は、前記グラディエント予測部とシェーディング部とを調節するためのものであることを特徴とする請求項１４に記載のボリュームレンダリングシステム。
【請求項１６】
前記画素および前記レンダリングモジュールから受け取った別の画素を記憶する基本面画像メモリをさらに備えることを特徴とする請求項１０に記載のボリュームレンダリングシステム。
【請求項１７】
前記透視光線制御手段はさらに、前記サンプルの詳細レベルを計算するためのものであり、前記詳細レベルは、前記多重分解能データセットのサブセットを形成するのがいずれの前記多重分解能データセットかに影響を及ぼすことを特徴とする請求項１０に記載のボリュームレンダリングシステム。
【請求項１８】
前記透視光線制御手段はさらに、複数の透視光線の投射中心から基本面までの距離と、前記再サンプリングモジュールによって生成された前記サンプルの現在位置とに基づいて、前記詳細レベルを計算するためのものであることを特徴とする請求項１７に記載のボリュームレンダリングシステム。
【請求項１９】
平行化された透視光線としてボリュームに入射される透視光線を並列パイプライン処理することにより、基本面の多次元ボリュームをレンダリングするボリュームレンダリング方法であって、
前記ボリュームの表現を複数のボクセルとしてボクセルメモリに記憶するステップと、
再サンプリングモジュールによって前記メモリから前記ボクセルのサブセットを回収するステップと、
前記再サンプリングモジュールによって処理される前記ボクセルのサブセットの範囲を決定するステップと、
前記再サンプリングモジュールによって処理される前記ボクセルのサブセットの各々に加えられる重みを決定するステップと、
前記ボクセルの範囲内の前記重み付きボクセルを前記再サンプリグモジュールによって合成して１つのサンプルを生成するステップと、
前記サンプルならびに前記再サンプリングモジュールから受け取った別のサンプルをレンダリングモジュールによってレンダリングするステップと、
を含むことを特徴とするボリュームレンダリング方法。
【請求項２０】
透視光線制御手段で計算されるサンプルの詳細レベルを計算し、前記再サンプリグモジュールに前記詳細レベルを提供し、前記範囲決定ステップと前記重み決定ステップで利用するステップをさらに含むことを特徴とする請求項１９に記載のボリュームレンダリング方法。
【請求項２１】
前記計算ステップは、
前記ボリュームに入射される透視光線のセットの投射中心からの距離を計算するステップと、
算出されたサンプルの前記ボリューム内における相対位置を計算するステップとに先行され、
前記距離および前記相対位置は前記詳細レベル計算ステップで利用されることを特徴とする請求項２０に記載のボリュームレンダリング方法。
【請求項２２】
平行化された透視光線としてボリュームに入射される透視光線を並列パイプライン処理することにより、基本面の多次元ボリュームをレンダリングするボリュームレンダリング方法であって、
前記ボリュームの表現を複数のボクセルとしてボクセルメモリに記憶するステップと、
異なる分解能における前記ボリューム内の各位置を表す多重分解能データセットのセットを前記ボクセルから生成するステップと、
再サンプリングモジュールによって前記メモリから前記多重分解能データのサブセットを回収するステップと、
前記再サンプリングモジュールによって処理される前記多重分解能データセットのサブセットの範囲を決定するステップと、
前記再サンプリングモジュールによって処理される前記多重分解能データセットの前記サブセットの各々に加えられる重みを決定するステップと、
前記多重分解能データセットの範囲内の前記重み付き多重分解能データセットを前記再サンプリグモジュールによって合成して１つのサンプルを生成するステップと、
前記サンプルならびに前記再サンプリングモジュールから受け取った別のサンプルからの画素をレンダリングモジュールによってレンダリングするステップと、
を含むことを特徴とするボリュームレンダリング方法。
【請求項２３】
透視光線制御手段で計算されるサンプルの詳細レベルを計算し、前記再サンプリングモジュールに前記詳細レベルを提供して前記範囲決定ステップと前記重み決定ステップで利用するステップをさらに含むことを特徴とする請求項２２に記載のボリュームレンダリング方法。
【請求項２４】
前記計算ステップは、
前記ボリュームに入射される透視光線のセットの投射中心からの距離を計算するステップと、
算出されたサンプルの前記ボリューム内における相対位置を計算するステップとに先行され、
前記距離および前記相対位置は前記詳細レベル計算ステップで利用されることを特徴とする請求項２３に記載のボリュームレンダリング方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ボリュームレンダリングシステムに関するものであり、更に詳細に述べると、並列パイプライン処理を利用した透視視覚化投影の立体データセットをレンダリングできるボリュームレンダリングシステムおよびボリュームレンダリング方法に関するものである。
【０００２】
【従来の技術】
表示パラメータセットの１つが与えられると、典型的ボリュームレンダリングシステムでは、データセットに平行光線を投射し、光線に沿って各サンプリング点の色値を算出し、それらを累算して最終画素値を求めることによって、ボリュームデータセットをまたは単にボリュームをレンダリングして二次元画像を生成する。一般的なボリュームデータセットには、ＣＴやＭＲＩデータなどの医学的データセットやコンピュータシミュレーションによって生成される科学的データセットなどがある。データセットで表現されるボリュームはボクセルと呼ばれる要素から構成され、データセットの各特性は各ボクセルによって表される。ボクセルは通常は三次元の規則格子の交点で定義され、ボクセル位置によって指示される三次元メモリアレイに記憶される。
【０００３】
そのようなボリュームをレンダリングすることに関する主たる問題の１つは、数多くのボクセルを処理しなくてはならないことにより計算のコストが高いことである。一般的なレイキャスティングのレンダリングプロセスは、ソフトウェアで、近傍のボクセルでの内挿(補間)という形を利用することによって各光線に沿ってサンプルの色値を算出し、それらの値を累算して光線の最終的な色を求める。レンダリングのコストは、ボクセルの総数に正比例する。データセットの一例は、各三次元座標が対応ボクセルを持ったＮ×Ｎ×Ｎのマトリックスとして表される。第１の例として、Ｎ＝２５６とすると、２５６３すなわち１６００万個のボクセルが存在することになる。レンダリング画像を十分詳細に示すためにはかなりの至近距離から光線が投影されるので、各ボクセルは光線サンプルの計算で平均ｋ回、合計で１６００万×ｋ回利用される。
【０００４】
ソフトウェアを利用した従来のボリュームレンダリングシステムでは、非常に多くの演算を実行しなくてはならないために動作上の問題があり、従って、実時間レンダリングを行うことは不可能であった。計算コストを削減するために何通りかの方法が利用されている。
【０００５】
その一例は早期光線終了であり、光線沿いの付加サンプルが光線の最終的な色にさほど貢献しないと予想される場合に光線を終了するというものである。別の一例はコヒーレンスの符号化であり、空領域のボクセルの処理を回避するためにデータセット中の空間的コヒーレンスを符号化する。しかしながら、上記２方法によって得られる性能の向上はデータセットに依存したものである。ソフトウェアを使用するボリュームレンダリングシステムの場合、データセットのボクセル値に依存しない実時間レンダリング操作を達成することは非常に難しい。一部のソフトウェアレンダリングシステムは、高性能コンピュータで実行されるように設計されている。しかしながら、これらは高価なボクセル１個あたりのメモリアクセスを統計的に妥当なものと納得させるほどのものではなく、まだその性能に問題がある。
【０００６】
ボリュームレンダリングプロセスを加速することによって実時間操作を達成しようという専用ハードウェアシステムも開発された。該システムでは、各光線のレンダリング操作にそれぞれ対応する複数のパイプラインが使用される。パイプラインは平行投影画像を生成する。この場合、光線は無限遠点からボリュームに投射されるのですべて平行である。この形態の平行光線投影ではレンダリング操作が規則的に実施されるので、ハードウェアでの並列パイプライン処理に適している。また、光線が平行であるので、いずれか基本面から等距離にある２本の隣接する光線のサンプル位置間の距離が一定であり、それぞれの基準ボクセル位置からの各サンプル位置の位置ずれも一定である。これによって、ボクセルの組合わせが異なっていても各光線に対応するハードウェアパイプラインはどれも同じサンプリングおよびレンダリング操作を実施することができる。これは、サンプルの位置ずれがサンプリング操作における内挿の重みを決定し、これら位置ずれは各光線ごとに同一であり、従って各パイプラインごとに同一だからである。
【０００７】
透視投影は更に別のタイプの投影で、ボリュームからある有限距離にある、投射中心(ＣＯＰ)と呼ばれる一点からボリュームに光線を投射する。このタイプの投影の場合、投射中心に近いボリュームの方が、投射中心から遠いボリュームよりも画像が大きく見える。この特性により、透視投影によって生成された画像の方が、平行投影によって生成された画像よりも人間の目に自然に映る。透視投影では光線が平行でないため、レンダリング操作は規則的ではなく、従って、ハードウェアでの並列パイプライン処理には適さない。具体的に述べると、サンプル位置から基本面までの距離が変化すると、２本の隣接する光線のサンプル位置間の距離が変化し、各基準ボクセル位置からサンプル位置までの位置ずれも変化する。これにより、各光線に対応する各ハードウェアパイプラインごとに独自のサンプリングおよびレンダリング操作が要求される。
【０００８】
例えば、透視光線に関する先行技術の一構成において、第１の光線に対応する各パイプラインが該光線に沿った全部のサンプルを計算して最終的な色を決定するなど、ハードウェアパイプラインによって種々の光線の計算を行うようになっている。パイプラインは第１の光線に関する処理を終えると、同様な演算を利用して次の光線を処理する。この構成における主問題は、複数のパイプラインが１個のボクセルにアクセスするために、メモリアクセスおよびメモリコンテンション(記憶域争奪)の総数が増大することである。この問題を軽減するために、ハードウェアパイプラインが１個のボクセルを１度だけ読んで、該ボクセルを必要とする全サンプルが計算されるまで該ボクセルを保存するようにハードウェアパイプラインを構成できる。この構成では、各パイプラインが種々の光線のサンプルの計算にインタリーブする。第１のパイプラインは、ボクセルを１つのパイプラインクロックでサンプル内挿に利用した後に、このボクセルを隣のパイプラインに転送する。該第１のパイプラインは、次のパイプラインクロックで、演算タイプに応じて、同じ光線または別の光線の同様なサンプル内挿のために隣のパイプラインから別のボクセルを受け取る。そのようなハードウェアパイプライン構成の例は、Hanspeter Pfisterによる“実時間ボリュームレンダリングのための構成(Architectures for Real‐Time Volume Rendering),”Ph.D. Thesis, Department of Computer Science, State University of New York at Stony Brook, December 1996 に記載されている。
【０００９】
先述した透視投影の問題は、この種のハードウェアパイプライン構成において特に深刻である。というのは、パイプラインは、メモリの通常のボクセル順序で種々の光線の種々のサンプルを計算するように構成されているからである。詳しく述べると、隣接する光線のサンプル間の距離増大のために、パイプラインによっては、与えられたボクセルを使って計算できるサンプルを持っていないことがある。透視投影に並列パイプライン処理技術を適用する場合におけるこの変則性に対し、従来のハードウェアパイプラインシステムは対処することができなかった。
【００１０】
【発明が解決しようとする課題】
以上のように、従来のボリュームレンダリングシステムでは、透視投影に並列パイプライン処理技術を適用する場合における変則性に対し対処することができないという課題があった。
【００１１】
この発明は上記の課題を解消するためになされたもので、透視光線を平行化することで透視投影に必要な計算を規則化して、透視投影に並列パイプライン処理技術を適用することを可能にしたボリュームレンダリングシステムおよびボリュームレンダリング方法を提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記の目的に鑑み、この発明は、透視光線を平行化することによってレンダリングされるボリュームに入射される透視光線の並列パイプライン処理を可能にするボリュームレンダリングシステムであって、前記レンダリングされるボリュームを集合的に表す複数のボクセルを記憶するメモリと、前記メモリから前記ボクセルのサブセットを選択的に受け取って、前記ボクセルのサブセットを１つのサンプルとして組み合わせる再サンプリングモジュールと、前記サンプルを受け取って、前記サンプルを前記再サンプリングモジュールから受け取った別のサンプルと選択的に組み合わせて１つの画素を生成するレンダリングモジュールと、前記メモリ、再サンプリングモジュール、およびレンダリングモジュールに連通した透視光線制御手段と、を備えることを特徴とするボリュームレンダリングシステムにある。
【００１３】
またこの発明は、前記透視光線制御手段は、前記複数のボクセルのどれが前記ボクセルのサブセットを形成するかを識別するためのものであることを特徴とする請求項１に記載のボリュームレンダリングシステムにある。
【００１４】
またこの発明は、前記透視光線制御手段は、前記再サンプリングモジュールに対して、前記ボクセルのサブセットの各ボクセルに加える重みを指定するためのものであることを特徴とする請求項１に記載のボリュームレンダリングシステムにある。
【００１５】
またこの発明は、前記透視光線制御手段は、前記再サンプリングモジュールに対して、前記サンプルの生成時に組合わせられる前記ボクセルのサブセットのボクセルの範囲を指定するためのものであることを特徴とする請求項１に記載のボリュームレンダリングシステムにある。
【００１６】
またこの発明は、前記レンダリングモジュールは、さらにグラディエント予測部と、シェーディング部と、前記サンプルを合成するための合成部とを備えることを特徴とする請求項１に記載のボリュームレンダリングシステムにある。
【００１７】
またこの発明は、前記透視光線制御手段は、前記グラディエント予測部とシェーディング部とを調節するためのものであることを特徴とする請求項５に記載のボリュームレンダリングシステムにある。
【００１８】
またこの発明は、前記画素および前記レンダリングモジュールから受け取った別の画素を記憶する基本面画像メモリをさらに備えることを特徴とする請求項１に記載のボリュームレンダリングシステムにある。
【００１９】
またこの発明は、前記透視光線制御手段はさらに、前記サンプルの詳細レベルを計算するためのものであり、前記詳細レベルは、前記再サンプリングモジュールによって前記ボクセルのサブセットの各ボクセルに加えられる重みと、前記再サンプリングモジュールによって組合わせられる前記ボクセルのサブセットのボクセルの範囲とに影響を及ぼすことを特徴とする請求項１に記載のボリュームレンダリングシステムにある。
【００２０】
またこの発明は、前記透視光線制御手段はさらに、複数の透視光線の投射中心から基本面までの距離と、前記再サンプリングモジュールによって生成された前記サンプルの現在位置とに基づいて前記詳細レベルを計算するためのものであることを特徴とする請求項８に記載のボリュームレンダリングシステムにある。
【００２１】
またこの発明は、透視光線を平行化することによってレンダリングされるボリュームに入射される透視光線の並列パイプライン処理を可能にするボリュームレンダリングシステムであって、前記レンダリングされるボリュームを集合的に表す複数のボクセルを記憶するボクセルメモリと、複数の多重分解能データセットを記憶するデータセットメモリと、前記メモリから前記多重分解能データセットのサブセットを選択的に受け取って、前記多重分解能データセットのサブセットを１つのサンプルとして組み合わせる再サンプリングモジュールと、前記サンプルを受け取って、前記サンプルを前記再サンプリングモジュールから受け取った別のサンプルと組み合わせて１つの画素を生成するレンダリングモジュールと、前記データセットメモリ、再サンプリングモジュール、およびレンダリングモジュールに連通する透視光線制御手段と、前記ボクセルメモリおよびデータセットメモリと連通するプロセッサと、を備え、前記プロセッサは、前記多重分解能データセットが種々の分解能でレンダリングされる前記ボリューム内の各位置を表すように、前記ボクセルに基づいて前記多重分解能データセットを計算することを特徴とするボリュームレンダリングシステムにある。
【００２２】
またこの発明は、前記透視光線制御手段は、前記複数の多重分解能データセットのいずれが前記多重分解能データセットのサブセットを形成するのかを識別するためのものであることを特徴とする請求項１０に記載のボリュームレンダリングシステムにある。
【００２３】
またこの発明は、前記透視光線制御手段は、前記再サンプリングモジュールに対して、前記多重分解能データセットのサブセットの各多重分解能データセットに加える重みを指定するためのものであることを特徴とする請求項１０に記載のボリュームレンダリングシステムにある。
【００２４】
またこの発明は、前記透視光線制御手段は、前記再サンプリングモジュールに対して、前記サンプルの生成時に組合わせられる前記多重分解能データセットのサブセットの多重分解能データセットの範囲を指定するためのものであることを特徴とする請求項１０に記載のボリュームレンダリングシステムにある。
【００２５】
またこの発明は、前記レンダリングモジュールは、さらにグラディエント予測部と、シェーディング部と、前記サンプルを合成するための合成部とを備えることを特徴とする請求項１０に記載のボリュームレンダリングシステムにある。
【００２６】
またこの発明は、前記透視光線制御手段は、前記グラディエント予測部とシェーディング部とを調節するためのものであることを特徴とする請求項１４に記載のボリュームレンダリングシステムにある。
【００２７】
またこの発明は、前記画素および前記レンダリングモジュールから受け取った別の画素を記憶する基本面画像メモリをさらに備えることを特徴とする請求項１０に記載のボリュームレンダリングシステムにある。
【００２８】
またこの発明は、前記透視光線制御手段はさらに、前記サンプルの詳細レベルを計算するためのものであり、前記詳細レベルは、前記多重分解能データセットのサブセットを形成するのがいずれの前記多重分解能データセットかに影響を及ぼすことを特徴とする請求項１０に記載のボリュームレンダリングシステムにある。
【００２９】
またこの発明は、前記透視光線制御手段はさらに、複数の透視光線の投射中心から基本面までの距離と、前記再サンプリングモジュールによって生成された前記サンプルの現在位置とに基づいて、前記詳細レベルを計算するためのものであることを特徴とする請求項１７に記載のボリュームレンダリングシステムにある。
【００３０】
またこの発明は、平行化された透視光線としてボリュームに入射される透視光線を並列パイプライン処理することにより、基本面の多次元ボリュームをレンダリングするボリュームレンダリング方法であって、前記ボリュームの表現を複数のボクセルとしてボクセルメモリに記憶するステップと、再サンプリングモジュールによって前記メモリから前記ボクセルのサブセットを回収するステップと、前記再サンプリングモジュールによって処理される前記ボクセルのサブセットの範囲を決定するステップと、前記再サンプリングモジュールによって処理される前記ボクセルのサブセットの各々に加えられる重みを決定するステップと、前記ボクセルの範囲内の前記重み付きボクセルを前記再サンプリグモジュールによって合成して１つのサンプルを生成するステップと、前記サンプルならびに前記再サンプリングモジュールから受け取った別のサンプルをレンダリングモジュールによってレンダリングするステップと、を含むことを特徴とするボリュームレンダリング方法にある。
【００３１】
またこの発明は、透視光線制御手段で計算されるサンプルの詳細レベルを計算し、前記再サンプリグモジュールに前記詳細レベルを提供し、前記範囲決定ステップと前記重み決定ステップで利用するステップをさらに含むことを特徴とする請求項１９に記載のボリュームレンダリング方法にある。
【００３２】
またこの発明は、前記計算ステップは、前記ボリュームに入射される透視光線のセットの投射中心からの距離を計算するステップと、算出されたサンプルの前記ボリューム内における相対位置を計算するステップとに先行され、前記距離および前記相対位置は前記詳細レベル計算ステップで利用されることを特徴とする請求項２０に記載のボリュームレンダリング方法にある。
【００３３】
またこの発明は、平行化された透視光線としてボリュームに入射される透視光線を並列パイプライン処理することにより、基本面の多次元ボリュームをレンダリングするボリュームレンダリング方法であって、前記ボリュームの表現を複数のボクセルとしてボクセルメモリに記憶するステップと、異なる分解能における前記ボリューム内の各位置を表す多重分解能データセットのセットを前記ボクセルから生成するステップと、再サンプリングモジュールによって前記メモリから前記多重分解能データのサブセットを回収するステップと、前記再サンプリングモジュールによって処理される前記多重分解能データセットのサブセットの範囲を決定するステップと、前記再サンプリングモジュールによって処理される前記多重分解能データセットの前記サブセットの各々に加えられる重みを決定するステップと、前記多重分解能データセットの範囲内の前記重み付き多重分解能データセットを前記再サンプリグモジュールによって合成して１つのサンプルを生成するステップと、前記サンプルならびに前記再サンプリングモジュールから受け取った別のサンプルからの画素をレンダリングモジュールによってレンダリングするステップと、を含むことを特徴とするボリュームレンダリング方法にある。
【００３４】
またこの発明は、透視光線制御手段で計算されるサンプルの詳細レベルを計算し、前記再サンプリングモジュールに前記詳細レベルを提供して前記範囲決定ステップと前記重み決定ステップで利用するステップをさらに含むことを特徴とする請求項２２に記載のボリュームレンダリング方法にある。
【００３５】
またこの発明は、前記計算ステップは、前記ボリュームに入射される透視光線のセットの投射中心からの距離を計算するステップと、算出されたサンプルの前記ボリューム内における相対位置を計算するステップとに先行され、前記距離および前記相対位置は前記詳細レベル計算ステップで利用されることを特徴とする請求項２３に記載のボリュームレンダリング方法にある。
【００３６】
【発明の実施の形態】
従来のボリュームレンダリングシステムの欠点を解消するために、本発明は、ボクセルを再サンプリングして投射中心から投射される透視光線に沿ってサンプルを生成する再サンプリングユニットセットを備えた再サンプリングモジュールと、基本面画像の画素を生成するレンダリングユニットを備えたレンダリングモジュールとを利用するボリュームレンダリングシステムおよびボリュームレンダリング方法から成る。このように、再サンプリングモジュールは、透視光線を平行化することによって透視投影に必要な計算を規則化する。
【００３７】
表示画面上にボリュームの実時間画像を生成する高度な機能を有するボリュームレンダリングシステムが供される。ボリュームを示すボクセルがボクセルメモリから読み出され、投射中心から投射される透視光線に沿ったサンプルを生成する際に再サンプリングが行われる。サンプルの計算に利用されるボクセルの数を決定するときに、詳細レベル値が利用される。この計算の一環として、各ボクセルの寄与に重みが割り当てられる。これらのサンプルを用いて色算出が行われ、基本面画像の画素が生成される。
【００３８】
ボリュームに入射される視線ベクトルとほぼ平行な物体座標系の視線軸である主視線軸に垂直なサンプルの各面について詳細レベルが算出される。２つの隣接する透視光線間の距離を推定し、特定平面のサンプルの計算に用いるボクセルならびに重みの数の決定に際し、ボリューム内のサンプル位置ならびに投射中心と基本面間の最短距離が利用される。
【００３９】
再サンプリングモジュールに接続された各パイプラインは、投射中心からの距離が大きくなると各ボクセルを検索し続け、そして透視光線制御器からの範囲および重み係数に従って各パイプラインからサンプルが生成される。これは、そのように生成された任意のサンプルは、一部の投影透視光線に有効でない場合があるという事実にもかかわらず行われる。これを補償するために、本願に開示されているシステムは、各サンプルに有効／無効指示を与えて、該関連サンプルを画素に及ぼす寄与としてレンダリングモジュールで処理するか否か示す。
【００４０】
現在開示されている方法および装置の効率をさらに向上するために、サンプリングに必要な操作数を削減することによって、ボクセルを選択的に組み合わせて、異なる詳細レベルの各々について多重分解能データセットを計算する。このように、１個のサンプルを計算するのに必要なボクセル数を限定することによって、再サンプリング操作を単純化できる。あるいは、計算対象のサンプルの詳細レベルを利用することにより、再サンプリングモジュールは、再サンプリングプロセスで使用する多重分解能データセットを検索選択できる。
【００４１】
本発明のボリュームレンダリングシステムは、ボクセルメモリから読み出されたボクセルを再サンプリングし、詳細レベル値を利用して投射中心から投射される透視光線に沿ったサンプルを生成する。上記サンプルを利用して色計算が実施され、基本面画像の画素が生成される。詳細レベルは、主視線軸に垂直な各サンプル平面において、現サンプル位置および投射中心と基本面の間の距離から算出される。主視線軸は、視線ベクトルと略平行なレンダリングされたボリュームの座標軸である。詳細レベルは、各平面の２本の隣接する透視光線間の距離の測定を与え、各平面の１個のサンプルを算出するのに必要なボクセルの数およびボクセルの重みを決定するのに利用される。種々の詳細レベルに合わせて用意される多重分解能データセットは、１個のサンプルを算出するのに必要なボクセルの数を限定することによって、再サンプリング操作を単純化するのに利用される。
【００４２】
図１に示すように本発明は、ボクセルメモリ１からの入力としてボクセルを受け取る再サンプリングモジュール２を供する。ボクセルは三次元データセットを集合的に特徴付ける。透視光線制御器４によって規定される光線は、ボリュームに入射され、光線に沿って計算された複数サンプルの色に対する寄与(貢献)を表す、画像平面上の画素を生成する。これらサンプルの各々は、各サンプリング点近傍のボクセルによって与えられる情報を考慮して生成される。透視光線のためのサンプルを生成するのに使用される、ボクセル数および各々に対応する重みは、以下に記載するように、透視光線制御器４の制御下の再サンプリングモジュール２で計算される。その後、サンプルを各画素に累算するために、サンプリングされたボクセルはレンダリングモジュール３に供給される。これらの構成要素は、１つまたは複数のＡＳＩＣまたは他の適切なハードウェア媒体によって実現される。
【００４３】
ここで図１を参照すると、ボクセルメモリ１から読み出されたボクセルＶ[ｐ−ａ]，・・・，Ｖ[ｐ＋ｂ]は、再サンプリングモジュール２の再サンプリングユニット(ｐ)２ａで加重および合計され、サンプルＳ[ｐ]が生成される。サンプルは次のように算出される。
【００４４】
Ｓ[ｐ]＝Ｖ[ｐ−ａ]×ｗ[ｐ−ａ]＋・・・＋Ｖ[ｐ]×ｗ[ｐ]＋
・・・＋Ｖ[ｐ＋ｂ]×ｗ[ｐ＋ｂ]
【００４５】
式中、ｗ[ｐ−ａ]，・・・，ｗ[ｐ]，・・・、ｗ[ｐ＋ｂ]は重みである。こうして得られたサンプルＳ[ｐ]は、色計算のためにレンダリングモジュール３に出力される。再サンプリング操作は透視光線制御器４によって制御される。該透視光線制御器４は、パラメータａとｂを生成することによってサンプルに繰り込むボクセルの数を決定し、さらに、任意の最も近いボクセルｐについて、パラメータｗ[ｐ−ａ]・・・，ｗ[ｐ＋ｂ]から、それぞれに対応する重みを決定する。透視光線制御器４は、投射中心から基本面までの距離Ｄ(４ｂ)および現サンプリング位置４ｃのｚ値に基づいて、ＬＯＤ＝ＬＯＧ２(1＋ｚ／Ｄ)(但し、ＬＯＧ２は底２に対する対数関数)によって詳細レベル(ＬＯＤ)を計算する詳細レベル制御部４ａと、ａ，ｂ，ｗ[ｐ−ａ]，・・・，ｗ[ｐ＋ｂ]を生成する範囲および重みジェネレータ４ｄとを備える。
【００４６】
図２に、本発明のボリュームレンダリングシステムにおける主要システム構成要素と、それらの間の制御フローを示す。ボクセルはボクセルメモリ１に記憶される。Ｎ個のボクセルＶ[０]〜Ｖ[Ｎ−１]が同時に読み出されて、Ｎ個のサンプリングユニット２ｂ、２ｃ、・・・、２ｄを有する再サンプリングモジュール２に送られる。各再サンプリングユニットは図１に記載の操作を実施する。再サンプリングモジュール２で生成されたＮ個のサンプルＳ[０]〜Ｓ[Ｎ−１]は、Ｎ個のレンダリングユニット３ａ、３ｂ、・・・、３ｄを有するレンダリングモジュール３に送られる。各レンダリングユニットは、再サンプリングモジュール２からサンプルを受け取って画素を生成する。レンダリングモジュール３はＮ個の画素Ｐ[０]〜Ｐ[Ｎ−１]を生成し、生成された画素は基本面画像メモリ５に記憶される。透視光線制御器４は、ボクセルメモリ１、再サンプリングモジュール２、レンダリングモジュール３、および基本面画像メモリ５を制御する。
【００４７】
該システムにおいて、各ボクセルはボクセルメモリ１から１度だけ読み出された後、そのボクセルを必要とするサンプルが算出されるまで再サンプリングモジュール２に保持される。一般に１個のボクセルは種々の透視光線に関する複数のサンプルで必要とされる。再サンプリングモジュール２で生成されたサンプルは、レンダリングモジュール３で同一透視光線について合成される。合成操作の結果、透視光線の１個の画素が得られる。得られた画素は、基本面画像メモリ５に記憶される。
【００４８】
図３に４つの座標系と、それらの間の変換則を示す。ボリューム内のボクセルの位置は物体座標６に定義される。物体座標６の点にビューイング(視線)変換が施され、スクリーン座標７の点が得られる。この変換は、ボリュームレンダリングによって生成される最終的な画像をスクリーン上に提供するのに要求される。ソフトウェアを使用するボリュームレンダリングシステムでは、スクリーン上の画素位置からボリュームへ光線を投射して、該光線に沿ったサンプリング点の色値を合成して最終的なスクリーン画像を生成することによって、この変換を効果的に実施する。
【００４９】
それに対し、本発明のシステムのビューイング変換は、置換変換とずらし変換とワープ変換の３つの変換に分かれている。置換変換では、物体座標６の各点を、置換座標８の対応点に変換する。
【００５０】
定義により、ビューイング(視線)行列は物体座標６からスクリーン座標７へのビューイング(視線)変換に関連付けられる。視線(viewing)ベクトルとは、基準平面に垂直な単位ベクトルである。スクリーン座標７で定義された視線ベクトルは、スクリーン座標７の視線ベクトルに逆視線行列を乗じることによって、物体座標６で定義される視線ベクトルに変換される。置換に関わる行列は、物体座標６の該視線ベクトルから算出されて３本の物体軸に置換する。該物体軸は、スクリーン座標で定義される視線ベクトルと最も平行な主視線軸と呼ばれる軸をｚ軸とし、他の２軸のベクトル成分は負でないようになっている。置換座標８において、スクリーンから投射される光線は、ｚ方向の正の非ゼロステップと、ｘおよびｙ方向の非負ステップを有する。本発明の本明細書に示されたシステムの場合、置換行列は予め算出しておく。対象ボリュームのスライスは、同一ｚ位置にある複数のボクセルから成る一平面として定義される。従って、Ｎ×Ｎ×Ｎという大きさのボリュームには、Ｎ個のスライスが存在する。
【００５１】
ずらし変換では、置換座標８の各点を基本面座標９の各点に変換する。基本面は置換ボリュームの第１のスライスを含む平面と定義される。基本面は、物体座標の視線ベクトルに最も垂直であるとともに、スクリーンに最も近い。本願明細書において「主題のシステム」とも呼ばれる本発明のシステムは、基本面から光線を投射して、該光線に沿った色値を合成することによってずらし変換を効果的に実施する。
【００５２】
ワープ変換は、基本面座標９の各点をスクリーン座標７の各点に変換する。つまり、基本面の画像がワープされて、最終的なスクリーン画像が生成される。この変換は、本発明のシステムに対する後処理操作である。
【００５３】
これらの変換の基本的な考え方は、P.G. Lacrouteによる“ビューイング変換のずらし−ワープ分解を使用したボリュームレンダリング(Volume Rendering Using a Shear‐Warp Factorization of the Viewing Transformation)”, Technical Report CSL‐TR‐95‐678, Computer Systems Laboratory, Stanford University, September 1995に記載されている。
【００５４】
図４は、基本面の画像を生成するために置換ボリュームに入射された透視光線を示す模式図である。２本の透視光線１４ａと１４ｂは、投射中心１３からスクリーンを通って置換ボリューム１０に入射される。基本面１１は第１のスライスと一致する。本発明のシステムは、投射中心(ＣＯＰ)からの透視光線を、各光線が第１のスライスのそれぞれのボクセルを通過するように投射する。各透視光線は、光線が通る第１のスライスのボクセルのインデックスによって一意に指示できる。さらに図５を参照すると、透視光線１４ａは、例えば、第１のスライスの、(ｉ，ｊ，０)すなわち、ｘ＝Ｉ，ｙ＝ｊ，ｚ＝０によって指示されるボクセルを通過するので、透視光線１４ａは(ｉ，ｊ)で示される。本発明のシステムは、光線１４ａに沿ったサンプリング点の色値を算出する。光線１４ａに沿った各サンプリング位置はボリュームの各スライスで採られる。例えば、光線１４ａの第１のサンプリング位置１６ａはｚ＝０のスライス１５ａにあり、同じ光線について、サンプリング位置１６ｅはｚ＝ｋのスライス１５ｂにある。
【００５５】
図５は、ずらし変換の模式図である。本発明のシステムは、その光線投射操作の際に当該操作を効果的に実施する。透視光線１４ａは、投射中心(ＣＯＰ)１３からボリューム１０に入射される。基本面１１に垂直な、投射中心１３から出る光線１８は、投射中心１３と基本面１１の間の距離Ｄを画定する。透視光線１４ａは、ｚ＝０の第１のスライスの(ｉ，ｊ)で示されるボクセルを通過し、スライス１５ａと１５ｂにおいてサンプル１６ａと１６ｅをそれぞれ有する。ずらし操作により、光線１４ａは、第１のサンプル位置１６ａから開始するとともに基本面１１に垂直な光線１７にずらされる。(ｘ，ｙ，ｋ)のサンプル１６ｅは、(ｉ，ｊ，ｋ)のサンプル１９にずらされる。本発明のシステムは、置換座標において光線１４ａに沿ったサンプル値を累算し、基本面１１上の(ｉ，ｊ)の画素を求める。光線１７によって生成される画素は光線１４ａによって生成される画素と同等であるが、前者は基本面座標で定義される。基本面画像は、基本面座標で定義される画素が集まったものであり、すぐにワープして最終的なスクリーン画像を生成することができる。
【００５６】
図６において、透視光線１４は投射中心１３から置換ボリューム１０に入射される。サイズＮ×Ｎ×Ｎのボリュームの場合、(ｉ，ｊ)によって指示される各透視光線はｉ＋ｊ×Ｎで計算される順序数で与えられる。順序数が小さい光線ほど早く投射される。本発明のシステムは透視光線群を投射する。同時に投射される透視光線の本数は、レンダリングパイプライン、またはレンダリングモジュール３のレンダリングユニット３ａの数によって決定される。透視光線の中には、例えば視野の外にあるために投射されないものがある点に注意されたい。
【００５７】
本発明のシステムでは、各ボクセルはボクセルメモリから１度だけ読み出され、そのボクセルを必要とする全部のサンプルが算出されるまで再サンプリングモジュール２に保持される。図７に、ボクセルメモリ１のボクセルデータの配列を、それぞれの読み出しタイミングと共に示す。ボクセルは、ビーム単位でボクセルメモリ１から読み出される。１本のビームは、ｙおよびｚ座標が同じであるボクセルの集合である。サイズＮ×Ｎのスライスにおいて、１つのスライスにはＮ本のビームが存在する。ｚ＝ｋのスライス２０は、ｙ＝０でビーム２０ａを備え、ｙ＝ｊでビーム２０ｂを備え、ｙ＝Ｎ−１でビーム２０ｃを備える。１本のビームがボクセルメモリ１から１クロックサイクルで読み出され、該ビームはｚ＝ｋ、ｙ＝ｊで示されるとすると、該ビームが読み出される時間はＴ＝Ｎ×ｋ＋ｊである。
【００５８】
図８に、レンダリングモジュール３のレンダリングユニットの構成を示す。レンダリングユニット３ｄは、対応する再サンプリングユニット(不図示)からサンプルＳ[ｉ]を受け取って、画素Ｐ[ｉ]を算出する。該レンダリングユニットは、グラディエント予測部２１ｄ、シェーディング部２２ｄ、および合成部２３ｄを備える。グラディエント予測部２１ｄは、サンプルＳ[ｉ]の位置のグラディエントベクトルを近傍サンプルから予測する。シェーディング部２２ｄは、サンプルＳ[ｉ]とそのグラディエントベクトルを利用してシェーディング(ずらし)操作を実施する。合成部２３ｄは、シェーディング(ずらし)されたサンプルを累算して画素Ｐ[ｉ]を生成する。これら操作の詳細な説明は、Hanspeter Pfisterによる“実時間ボリュームレンダリングのための構成(Architectures for Real‐Time Volume Rendering)”Ph.D. Thesis, Department of Computer Science, State University of New York at Stony Brook, December 1996を参照されたい。
【００５９】
図９に、透視光線に沿ったサンプルを算出するための複数の並列レンダリングユニットを模式的に示す。ボリューム２４のボクセルは、ボクセルメモリ１に記憶される。透視光線１４ｃは、再サンプリングモジュール２で算出されるサンプルの生成に利用される。算出されたサンプルは、レンダリングモジュール３のレンダリングユニット３ｉ〜３ｍの入力となる。各レンダリングユニットは、異なる光線のサンプルを処理してもよい。これは、各レンダリングユニットがｘ座標およびｙ座標が共通である一連のボクセルと関連付けられているからである。
【００６０】
図１に記載の加重および合計操作を実現するために、加重−合計部をビルディングブロックとして使用できる。図１０に、加重−合計部の構成例を示す。該加重−合計部２５は、重み付け器２５ａと２５ｂ、加算器２５ｅ、２つの乗算器２５ｃと２５ｄ、および出力レジスタ２５ｆ、２５ｇ、２５ｈを備える。重み付け器２５ａと２５ｂは、それぞれ重みＡとＢを記憶する。Ｉｎ０、Ｉｎ１、およびＩｎ２は入力データであり、Ｏｕｔ０、Ｏｕｔ１、およびＯｕｔ２は、それぞれレジスタ２５ｆ、２５ｇおよび２５ｈからの出力データである。レジスタ２５ｆと２５ｈは、それぞれＩｎ２とＩｎ０を記憶し、これらのデータを次の結合部に進める。レジスタ２５ｇは、Ｉｎ０×Ａ＋Ｉｎ１＋Ｉｎ２×Ｂを記憶する。
【００６１】
図１１に、それぞれ８近傍ボクセルから生成されるサンプルを算出するための加重−合計部１００〜１３９の配列を示す。例えば、サンプルＳ[ｉ]は、次のように算出される。
【００６２】
Ｓ[ｉ]＝Ｖ[ｉ−４]×ｗ[ｉ−４]＋Ｖ[ｉ−３]×ｗ[ｉ−３]＋
Ｖ[ｉ−２]×ｗ[ｉ−２]＋Ｖ[ｉ−１]×ｗ[ｉ−１]＋
Ｖ[ｉ]×ｗ[ｉ]＋Ｖ[ｉ＋１]×ｗ[ｉ＋１]＋
Ｖ[ｉ＋２]×ｗ[ｉ＋２]＋Ｖ[ｉ＋３]×ｗ[ｉ＋３]
【００６３】
式中、Ｖ[ｉ−４]〜Ｖ[ｉ＋３]はボクセルであり、ｗ[ｉ−４]〜ｗ[ｉ＋３]は重みである。サンプルＳ[ｉ]を計算するために、重みｗ[ｉ−４]〜ｗ[ｉ＋３]は、加重−合計部の重み付け器に次のようにロードされる。
【００６４】
要素                Ａ              Ｂ      
１０４            ｗ[ｉ]              ０
１１２            ｗ[ｉ−１]      ｗ[ｉ＋１]
１２０            ｗ[ｉ−２]      ｗ[ｉ＋２]
１２８            ｗ[ｉ−３]      ｗ[ｉ＋３]
１３６            ｗ[ｉ−４]          ０
【００６５】
ボクセルＶ[ｉ−４]〜Ｖ[ｉ＋３]は、次のように構成部１１２、１２０、１２８、および１３８に進められる。
【００６６】
ボクセル                    供給先構成部          
Ｖ[ｉ−４]          １００，１０９，１１８，１２７
Ｖ[ｉ−３]          １０１，１１０，１１９
Ｖ[ｉ−２]          １０２，１１１
Ｖ[ｉ−１]          １０３
Ｖ[ｉ]              無し
Ｖ[ｉ＋１]          １０５
Ｖ[ｉ＋２]          １０６，１１３
Ｖ[ｉ＋３]          １０７，１１４，１２１
【００６７】
この例では、サンプルの算出に最大８個のボクセルを利用できる。しかしながら、サンプルを算出するためのボクセルの数は８に限定されない。任意の個数にできる。それに対し、当該技術で周知のように、隣接する光線の距離が一定である平行投影の場合、サンプルの算出に利用されるボクセルは２個までである。
【００６８】
次に、透視光線制御器４によって実施される操作について説明する。説明をわかりやすくするために、Ｎ×Ｎ本の透視光線を同時に処理できるように、ボクセルメモリ１から１つのスライスのＮ×Ｎ個のボクセルが同時に読み出されるものと仮定する。この仮定の下に、再サンプリングモジュール２には、Ｎ×Ｎ個の再サンプリングユニットが存在する。透視光線(ｉ，ｊ)は、投射中心１３から投射された光線であり、ボリュームの第１のスライスのボクセル位置(ｉ，ｊ)を通過する。最大Ｎ×Ｎ本の透視光線が投射されるが、一部の透視光線は無効な場合がある。再サンプリングユニットも、サイズＮ×Ｎのスライスにおいてボクセルインデックス(ｉ，ｊ)で示される。
【００６９】
図１２に、透視光線制御器４によって実施される最高水準の操作のフローチャートを示す。最初にステップ２００で初期設定を行い、ステップ２１０でｚを初期スライス数０に設定し、その後に光線投射ループに進む。該ループはスライス数ｚによってコントロールされる。ステップ２２０で、ｚの値をチェックして、現スライス数がサイズＮ×Ｎ×Ｎのボリューム内の有効数かどうか、確認する。ｚがＮを上回っている場合、そのスライスがボリューム外のものであることを示すものであり、処理は終了する。そうでなければ、ステップ２３０で次のように現在のＬＯＤすなわち詳細レベルが計算される。
【００７０】
ＬＯＤ＝ＬＯＧ２(１＋ｚ／Ｄ)
【００７１】
式中、Ｄは投射中心と基本面の間の最短距離であり、ＬＯＧ２は底２に対する対数関数である。ステップ２４０で、算出された現ＬＯＤを利用して、いずれかの適切な論理に従って、各有効透視光線(ｉ，ｊ)の範囲と重みを算出する。次に、ステップ２５０で、透視光線制御器４は再サンプリングモジュール２の各再サンプリングユニットの再サンプリング操作を制御する。これらの操作の完了後、ステップ２６０で、ループを反復するごとに現スライス数ｚを１ずつ増やす。平行投影の場合、Ｄは無限遠と考えられ、ＬＯＤは定数０である。
【００７２】
図１３は、ボリュームに入射される選択透視光線の模式図である。ボリュームの第１のスライスと投射中心５１とを含む基本面５０の一部を示すこの正面図では、投射中心５１から基本面に複数の透視光線５２ａ〜５２ｅが投射されている。投射中心５１のｘおよびｙの位置によって、透視中心インデックス対(Ｃｉ，Ｃｊ)が決まる。各透視光線に対応する透視インデックス対は、透視中心(Ｃｉ，Ｃｊ)からのｘおよびｙの距離によって決まる。透視光線が(ｉ，ｊ)で示される場合、その透視インデックス対は(ｉ−Ｃｉ，ｊ−Ｃｊ)によって与えられる。例えば、透視光線５２ｃの透視インデックス対は(−１，３)である。
【００７３】
図１４に、透視光線制御器４によって実施される初期設定のフローチャートを示す。ステップ３００で、各透視光線(ｉ，ｊ)について有効フラグが有効または無効に設定される。有効ならば、ステップ３１０で光線(ｉ，ｊ)は投射される。投射されると、次にステップ３２０で光線＿有効[ｉ，ｊ]は真に設定され、投射されない場合にはステップ３３０で偽に設定される。次のステップ３４０で、各再サンプリングユニット(ｉ，ｊ)の制御パラメータの初期設定を行う。ステップ３５０で、透視インデックスｐｘ[ｉ，ｊ]とｐｙ[ｉ，ｊ]は、それぞれｉ−Ｃｉとｊ−Ｃｊに設定される。ここで、ＣｉとＣｊは、ＣＯＰからの、基本面に垂直な透視光線によって決定される。ステップ値ｄｘ[ｉ，ｊ]とｄｙ[ｉ，ｊ]は、それぞれｐｘ[ｉ，ｊ]／Ｄとｐｙ[ｉ，ｊ]／Ｄに設定され、サンプリング位置ｘ[ｉ，ｊ]とｙ[ｉ，ｊ]は、それぞれｉとｊに設定される。ステップ３６０で透視光線(ｉ，ｊ)が有効な場合、状態[ｉ，ｊ]はステップ３７０で有効に設定され、そうでない場合、状態[ｉ，ｊ]はステップ３８０で無効に設定される。
【００７４】
透視インデックスｐｘ[ｉ，ｊ]とｐｙ[ｉ，ｊ]とは一定で、レンダリング前に投射中心が選択されると、(ｉ，ｊ)によって割り出される各透視光線ごとに前述の透視インデックスが変化することはない。初期サンプリング位置ｘ[ｉ，ｊ]とｙ[ｉ，ｊ]は、それぞれｉとｊに設定されているので、(ｉ，ｊ)によって割り出される透視光線は、置換ボリュームの第１のスライスのボクセル位置(ｉ，ｊ)から開始すると考えられる。ｘおよびｙ方向の初期ステップ値は、ｐｘ[ｉ，ｊ]／Ｄとｐｙ[ｉ，ｊ]／Ｄに設定され、これらのステップ値は、投射中心と透視インデックスの距離の関数である。
【００７５】
図１５に、透視光線制御器４よって各サンプリングステップで実施される各透視光線(ｉ，ｊ)のための操作のフローチャートを示す。ステップ４００で、光線状態が「状態[ｉ，ｊ]＝有効」であると、ステップ４２０で光線がボリュームから出たか確認される。ステップ４２０で光線が出る場合、ステップ４４０で「状態[ｉ，ｊ]」は「無効」に設定され、「サンプル＿有効[ｉ，ｊ]」はステップ４８０で「偽」に設定され、ステップ４９０で光線ステップｄｘ[ｉ，ｊ]とｄｙ[ｉ，ｊ]が更新され、ステップ５００でサンプリング位置ｘ[ｉ，ｊ]とｙ[ｉ，ｊ]が更新される。ステップ４２０でボリュームから光線が出ない場合、ステップ４５０でサンプルＳ[ｉ，ｊ]が算出され、ステップ４７０で「サンプル＿有効[ｉ，ｊ]」は「真」に設定され、ステップ５００でサンプリング位置ｘ[ｉ，ｊ]とｙ[ｉ，ｊ]が更新される。ステップ４００で「状態[ｉ，ｊ]」が「有効」でない場合、ステップ４１０で光線がボリュームに入ったか確認される。入ったことが確認されると、ステップ４３０で「状態[ｉ，ｊ]」は「有効」に設定され、ステップ４５０、４７０、および５００の操作に続く。ステップ４１０で光線がボリュームに入っていないことが確認されると、ステップ４６０で「サンプル＿有効[ｉ，ｊ]」は「偽」に設定され、ステップ５００でサンプリング位置ｘ[ｉ，ｊ]とｙ[ｉ，ｊ]が更新される。
【００７６】
ステップ５００のサンプリング位置ｘ[ｉ，ｊ]とｙ[ｉ，ｊ]の更新は、ｘ[ｉ，ｊ]とｙ[ｉ，ｊ]の現在値に光線ステップｄｘ[ｉ，ｊ]とｄｙ[ｉ，ｊ]をそれぞれ加えることによって行われる。ステップ４９０の光線ステップｄｘ[ｉ，ｊ]とｄｙ[ｉ，ｊ]の更新は、次に来るだろうと予想される新たな隣接光線の光線ステップを計算することによって行われる。ステップ４２０で光線が出ると、レンダリングモジュールに信号が送られ光線の合成が終了するとともに、結果として得られた画素が基本面画像メモリに記憶される。
【００７７】
図１６にＤ＝６，Ｃｉ＝４で、サイズ１６×１６×１６のボリュームに入射された透視光線の例の模式図を示す。透視光線ＲＡＹ１〜ＲＡＹ５ ７１〜７５は、投射中心１３からボリューム６０に入射される。この場合、再サンプリングユニットは、スライス０と１においてＲＡＹ５ ７５の２つのサンプル、スライス３〜６においてＲＡＹ４ ７４の４つのサンプル、およびスライス１２〜１５においてＲＡＹ３ ７３の４つのサンプルを処理する。スライス２およびスライス７〜１１には、再サンプリングユニットのいずれかの光線に有効なサンプルは存在しない。この例では、最小のＬＯＤはＬＯＧ２(１＋０／６)＝０であり、最大のＬＯＤはＬＯＧ２(１＋１５／６)＝１．８１である。実用的には、ＬＯＤは実際にはＣＥＩＬ(ＬＯＧ２(１＋ｚ／Ｄ)で算出されるが、ここでＣＥＩＬ(ｘ)はｘ以上の最小の整数を返す上限決定関数(ceiling function)である。
【００７８】
投射中心の距離Ｄに応じて、ＬＯＤは任意に大きくできる。ＬＯＤが非常に大きい場合、サンプルの算出には多数のボクセルが必要である。再サンプリングモジュールを実際に実現する場合、ハードウェアのリソースの量が限られているので、サンプルを算出するためのボクセルの最大数を固定する必要がある。ＬＯＤが最大数を越えるボクセルを必要とする場合、０という重みは範囲外のボクセルへのものと考えられる。
【００７９】
本発明のシステムの拡張機能として、予め計算された多重分解能ボクセルデータセットの集合を使って、サンプルの算出に使用されるボクセルの範囲を縮小できる。多重分解能ボクセルデータセットは、異なる詳細レベルのために用意されたものである。ＬＯＤ＝Ｌの多重分解能ボクセルは、ＬＯＤ＝Ｌ−１の２×２×２個の多重分解能ボクセルをカバーするものである。また、ＬＯＤ＝０のボクセルは原ボクセルであって、ＬＯＤ＝Ｌの多重分解能ボクセルは、ＰＯＷＥＲ２(Ｌ)×ＰＯＷＥＲ２(Ｌ)×ＰＯＷＥＲ２(Ｌ)個の原ボクセルをカバーするものである。ここで、ＰＯＷＥＲ２(Ｌ)は２のＬ乗である。多重分解能ボクセルは、例えば、８個の下位ボクセルを単に平均化することによって求めることができる。この目的のために、さらに高性能なフィルタを利用することも可能である。
【００８０】
図１７に、ボクセルメモリ１の種々詳細レベルの多重分解能ボクセルデータセットのセットの例を示す。データセット１ａ、１ｂ、１ｃ、および１ｄは、それぞれＬＯＤ＝０、１、２、および３に記憶される。これらのデータセットのサイズは次の通りである。
【００８１】
ＬＯＤ     データセットサイズ
０         ８×８×８
１         ４×４×４
２         ２×２×２
３         １×１×１
【００８２】
選択器１ｅは、透視光線制御器４が算出した現ＬＯＤのデータセットの１つを選択する。適切なボクセルデータセットが選択されると、透視光線制御器によって新たなＬＯＤが算出されるまでは、そのデータセットからボクセルが読み出される。
【００８３】
種々詳細レベルの多重分解能ボクセルデータセットを使用することにより、再サンプリングモジュールを単純化することができる。これは、原ボクセルの数よりも少ない数の多重分解能ボクセルからサンプルを算出できるからである。詳細レベルは２本の隣接する透視光線間の距離を反映するので、この距離内の原ボクセルの数はＬＯＤによって決まる。ＬＯＤ＝Ｌの場合、２本の隣接する透視光線の距離内のＬＯＤ＝Ｌで最大２個の多重分解能ボクセルが存在するとともに、ＰＯＷＥＲ２(Ｌ)個程度の原ボクセルが存在する。従って、ＰＯＷＥＲ２(Ｌ)個の原ボクセルを利用する代わりに、ＬＯＤ＝Ｌで２個の多重分解能ボクセルからサンプルを算出できる。
【００８４】
図１８は、図１７に記載のものと同じ例の場合の模式図であって、種々の詳細レベルの多重分解能ボクセルを利用する。Ｌ＝０のボクセルはｚ＝０，１で使用され、Ｌ＝１のボクセルはｚ＝２，４，６で、Ｌ＝２のボクセルはｚ＝８，１２で使用される。この例では、ＬＯＤ＝Ｌのボクセルは、ｚ＝Ｌ×ｉで使用される。ここで、ｉは非負整数である。この想定のために、ｚ＝１のＬＯＤは１であるのに、Ｌ＝０のボクセルはｚ＝１で使用される。ｚ方向へのステップ送りは、サンプルがｚ＝Ｌ×ｉで取られるようにＬＯＤに合わせて調整される。
【００８５】
図１９に、種々の詳細レベルの多重分解能ボクセルデータセットを備えるボリュームの透視光線を制御することによって実施される、最高水準の操作のフローチャートを示す。ステップ２００、２１０、２２０、および２３０は、図１２のものと同一である。算出されたＬＯＤはステップ２３５でボクセルメモリに送られ、ＬＯＤに対応する多重分解能ボクセルデータセットに回収される。ステップ２４５は、多重分解能ボクセルについて算出された範囲と重みを利用する点を除き、図１２のステップ２４０と同様である。ステップ２５５は、多重分解能ボクセルを利用する点を除き、図１２のステップ２５０と同様である。ステップ２６５は、ＬＯＤとｚの現在位置から次のｚステップを算出する。ｚ位置は、ステップ２７０でｚの現在位置にｚステップを加算することによって更新される。
【００８６】
前述の本発明のシステムには数多くの潜在的変更態様が存在する。例えば、再サンプリングのためのボクセルの範囲は限定されることが好ましいが、任意にすることもできる。再サンプリングにおけるボクセルの重みは、任意の適切な関数または素子によって求めることができる。また、再サンプリングモジュールおよびレンダリングモジュールの個数は一定であるが、費用やサイズといった要因に応じて自由に決めてかまわない。多重分解能ボクセルデータセットは、任意の妥当手段によって生成できる。
【００８７】
本発明の概念の前述の実施の形態は一例として記載されているものであり、本発明の実際の適用範囲はクレームによって決定されるものである。
【００８８】
【発明の効果】
以上のように、この発明では、透視光線を平行化することによってレンダリングされるボリュームに入射される透視光線の並列パイプライン処理を可能にするボリュームレンダリングシステムであって、前記レンダリングされるボリュームを集合的に表す複数のボクセルを記憶するメモリと、前記メモリから前記ボクセルのサブセットを選択的に受け取って、前記ボクセルのサブセットを１つのサンプルとして組み合わせる再サンプリングモジュールと、前記サンプルを受け取って、前記サンプルを前記再サンプリングモジュールから受け取った別のサンプルと選択的に組み合わせて１つの画素を生成するレンダリングモジュールと、前記メモリ、再サンプリングモジュール、およびレンダリングモジュールに連通した透視光線制御手段と、そ備えるボリュームレンダリングシステムとした。再サンプリングモジュールが、透視光線を平行化することによって透視投影に必要な計算を規則化することにより、透視投影に並列パイプライン処理技術の適用を可能にしたボリュームレンダリングシステムが得られる。
【図面の簡単な説明】
【図１】  ボクセル毎に再サンプリング操作を実行してサンプルを生成する本発明によるボリュームレンダリングシステムの再サンプリングモジュールのブロック図である。
【図２】本発明によるボリュームレンダリングシステムの構成要素とそれらの間のデータおよび制御フローを示すブロック図である。
【図３】  ４つの座標系およびそれら座標間の変換則を示す図である。
【図４】  画面上の最終画像にワープされる基本面の画像を作成するために置換ボリュームに入射される透過光線を示す模式図である。
【図５】  光線入射における切り取り操作の模式図である。
【図６】  置換ボリュームに透視光線を入射する順序を示す模式図である。
【図７】  ボクセルメモリにおけるボクセルデータの配列の模式図である。
【図８】  レンダリングモジュール内のレンダリングユニットの構成を示すブロック図である。
【図９】  本発明による透視光線に沿ったサンプルを計算するための各レンダリングユニットを示す模式図である。
【図１０】  図１記載の再サンプリングモジュールの加重および合計操作を実行する加重−合計部の構成のブロック図である。
【図１１】  図１記載の再サンプリングモジュールのボクセルからサンプルを計算するための図１０記載の加重−合計部の配列のブロック図である。
【図１２】  本発明による透視光線制御器によって実施される最高水準の操作のフローチャート図である。
【図１３】  ボリュームに入射される選択透視光線の模式図である。
【図１４】  本発明による透視光線制御器によって実施される初期設定のフローチャート図である。
【図１５】  本発明による透視光線制御器によって各サンプリングステップにおいて実施される操作のフローチャート図である。
【図１６】  ボリュームに入射される透視光線の一例の模式図である。
【図１７】  ボクセルメモリの各詳細レベルに対応する本発明による多重分解能ボクセルデータセットを示す模式図である。
【図１８】  図１６記載の実施の形態に各詳細メモリに対応する多重分解能ボクセルデータセットを利用した場合の模式図である。
【図１９】  各詳細レベルに対応する多重分解能ボクセルデータセットに対して本発明による透視光線制御器によって実施される最高水準の操作のフローチャート図である。
【符号の説明】
１  ボクセルメモリ、  ２  再サンプリングモジュール、２ａ〜２ｄ  再サンプリングユニット、３  レンダリングモジュール、３ａ〜３ｄ  レンダリングユニット、４  透視光線制御器、５  基本面画像メモリ、６  物体座標、７  スクリーン座標、８  置換座標、９  基本面座標、１０  置換ボリューム、１１  基本面、１２  スクリーン、１３  投射中心、２１ｄ  グラディエント予測部、２２ｄ  シェーディング部、２３ｄ  合成部。
【図１】
0004197203.tif 000002
【図２】
0004197203.tif 000003
【図３】
0004197203.tif 000004
【図４】
0004197203.tif 000005
【図５】
0004197203.tif 000006
【図６】
0004197203.tif 000007
【図７】
0004197203.tif 000008
【図８】
0004197203.tif 000009
【図９】
0004197203.tif 000010
【図１０】
0004197203.tif 000011
【図１１】
0004197203.tif 000012
【図１２】
0004197203.tif 000013
【図１３】
0004197203.tif 000014
【図１４】
0004197203.tif 000015
【図１５】
0004197203.tif 000016
【図１６】
0004197203.tif 000017
【図１７】
0004197203.tif 000018
【図１８】
0004197203.tif 000019
【図１９】
0004197203.tif 000020