(57)【特許請求の範囲】
【請求項１】
コンピュータグラフィックスの表示処理におけるガス状物体間およびガス状物体と面定義物体間の３次元空間での合成回路に関し、ガス状物体は３次元座標値、輝度および透過値のそれぞれを有し、そのレンダリングに於て新たに生成される前記ガス状物体を画像メモリに逐次記憶する際、画像メモリにすでに記憶された物体間の視点軸上での距離を求め、それぞれのガス状物体のうち、視点からより遠い位置の物体の輝度と前記距離の関数を乗算し、この結果に視点に近い位置の物体の輝度とを加算してガス状物体の合成輝度を得る手段として減算回路、除算、メモリテーブルおよび乗算回路を有し、また透過値は、それぞれの物体の透過値を加算する加算器を有してこれらガス状物体の合成輝度と透過値を決定し、これらを画像メモリに記憶する第一の手段と、面定義物体とガス状物体との合成においては、前記画像メモリに記憶された透過値を所定の関数により合成透過値に変換すると共に、ガス状および面定義物体間の視点軸上の距離からそれぞれの物体の前後位置によって異なる距離関数を定義し、この関数と前記合成透過値から得られた値をそれぞれの物体の輝度に乗算して、新たなガス状物体と面定義物体との合成輝度を決定するための、減算器、乗算器、メモリテーブルおよび加算器からなる回路を有する第二の手段をもつ画像合成回路。
【発明の詳細な説明】
この発明は自然現象例えば霧、雲などのガス状の形状をコンピュータ・グラフィックスによって３次元空間に生成し、動的に可視化するためのハードウェア回路とそのボリュームレンダリングに関するものである。
【０００１】
［従来の技術］
コンピュータ・グラフィックスによって三次元物体を表示する多くの形状モデルは曲面あるいはソリッドモデルが主体であり、これらの面に対して光源あるいは物体間の反射や影を計算することにより、リアルな映像を得ている。この曲面モデル等の物体とは異なり、霧や雲などの自然現象を表現することは形状の複雑性、動的な変化、乱反射等の計算を必要とすることから現在では多量の計算時間を要している。またこれらガス状物体を曲面モデルと三次元空間内で合成する処理も複雑であり、膨大な計算コストが必要とされる。このような観点から、ボリュームレンダリングとしてのガス状物体のハードウェアによるインプリメンテーション例はほとんどなく、多くはソフトウェアによって表現されていた。その一部のハードウェア手法においても、ガス状物体間の合成においては、次々とレンダリングプロセッサで作られたガス状物体がもつＺ値（視点座標軸）と画像メモリにすでに記憶された物体のもつＺ値とを比較し、もし新たに書き込むガス状物体のＺ値が画像メモリのガス状物体より視点に近い場合は、新たな物体の輝度を選択すると共に、その重なり数をその点の密度として計数し、また遠方にある場合には画像メモリにある物体の輝度を選択し重なり数を計数した。一方、面定義物体との合成ではガス状物体が面定義物体よりも視点に近い場合には前に求めたガス状物体の重なり数値をそのままとし、一方遠い場合には特定の値、例えばゼロに設定してその後これらの重なり数をフィルタリングし、この重なり数が存在する位置にはその重なり数に対応する密度をもつプリミティブ（ガス状物体の最小図形要素）が周辺に存在するものと見なし、この値から変換して得られる透過度と、プリミティブの輝度とを用いて面定義物体に対する合成を行っている。この方式では合成にプリミティブ間の距離の影響が考慮されていない。また重なり数を透過率としている。この方式では重なり計数がオーバーフローする場合（例えば２５６回以上）は画像メモリのサイズ等物理的な制約からその最大値に固定される問題点をもつ。一方、本発明の方式では従来方式とは異なり、まずプリミティブの輝度はそれぞれのプリミティブが重なり合った場合、そのプリミティブ間の距離を求め、距離の関数で合成輝度を決定し、また透過値はそれぞれのプリミティブ同志の透過値を加算したものを記憶しておく。一方、面定義物体との合成もガス状物体同様に、それぞれの物体間の距離を求め、さらにガス状物体の合成結果得られた輝度と透過値を用いて行うものであり、重なり数は用いない。輝度や透過度が距離によって減衰透過する本方式はより物理現象の性質にあった方法である。
この結果、この発明では、Ｚ値あるいは重なり数のフィルタリングを基本とする表示方式よりも表現力のあるリアルな映像を提供できるようになった。
【０００２】
［課題を解決するための手段］
本発明ではガス状物体と面定義物体との合成に関し二つのプロセスに分けられている。一つはガス状物体同志の合成と、その後の面定義物体との合成プロセスである。まずガス状物体同志の合成においては、そのプリミティブを乱数発生させ、この座標値にそれぞれ輝度と、また透過率を決定するための透過値（ここでは透過値は不透明度を表すものと定義し、透明値は透明度を表すものとする）をその属性として設定する。こうして生成されたプリミティブは画像メモリに順次記憶されるが乱数であるため、同一視点軸上（通常はＺ軸）に不特定数重ね書きされる。この場合この発明ではつぎのような関係の合成処理を行う。
0003966433.tif 000002
ここでＯｐ（透過値），Ｏｐｉ（ｉ番目の重ね書き透過値），ｋ（透過係数），Ａ（透過係数），Ｂ（指数），ｎ（オーバラップ数），Ｉｐ（合成輝度），Ｉｐｉ（ｉ番目の輝度），ｓ（合成減衰係数），ｊ（距離減衰係数），ｄｚｉ（ｉ番目のプリミティブ間の距離）を示す。プリミティブ間の合成は、まず輝度に関して、視点に近いプリミティブの輝度はそのままに、視点に遠い方のプリミティブに対しては、プリミティブ間の視点軸上の距離（通常Ｚ値）ｄｚｉを求めこれを関数１／（１＋ｊｄｚｉ）に代入した後、この値と遠いほうの輝度とを乗算したものと加算する。ｊは距離に関する減衰係数となる。即ち視点に近いプリミティブの輝度と、その点から離れるにしたがって減衰する他の一方の輝度とを加算し、これを全てのプリミティブのレンダリングが終了するまで繰り返し、この結果累積して得たものが最終的なプリミティブ間の合成輝度と定義する。またプリミティブの透過値はその合成に直接用いるのではなく、まずそれぞれを加算して画像メモリに記憶し（すなわち画像メモリに記憶されるものは（１）式のΣＯｐｉとなる）、面定義物体との合成時点でこれを（１）式に示すような関数で与えられる透過式の冪値として与えて合成透過値Ｏｐを決定しこれを用いるものとする。
通常（１）式のＢは指数で与えられる。このプロセスは前記透過式をそれぞれプリミティブ毎に計算した場合の負荷の増大を防ぐためである。よって、プリミティブ間で得られた画像メモリ内の透過値は変換前の値であり、正しい合成透過値ではない。一方、面定義物体との合成は次式の関係で定義される。
0003966433.tif 000003
ここでａは（１−Ｏｐ）の関係からなる透明値であり、Ｓは面定義物体の輝度、Ｇはガス状物体プリミティブの輝度、ｋ，ｊは距離に関わる減衰係数、ｄｚはプリミテイブと面定義物体とのｚ（視点軸）方向の距離また−ｄは面定義物体からガス状物体までの背面距離ｄを示す。透過値Ｏｐは（１）式によって求められ透明値ａに変換される。この式からガス状物体が面定義物体の手前にある場合（ｄｚ≧０）には、ガス状物体が視点に近づくにしたがってガス状物体の輝度は増し、面定義物体の輝度は減少するものとしている。この距離に対する増減の割合は係数ｋによって調整できる。またガス状物体が面定義物体の背面に位置する場合（ｄｚ＜０）には、隠面消去を行って背面輝度を削除するのではなく、面定義物体からの距離によってガス状物体の輝度を減少させるものである。またガス状物体が面定義物体から背面に特定の距離ｄ以上離れている場合、ガス状物体の輝度はカットオフされるものとする。以上からガス状物体プリミティブ間の合成と、面定義物体の合成はそれぞれの視点方向の距離間と、透過値によって求められる。ガス状物体のスムーズな分布特性を得るために画像メモリでガス状物体間のプリミティブ合成が終了した段階でフィルタリングが行われる。
また（２）式で透明値は（１−Ｏｐ）として透過値で表現し直接Ｏｐを与えることもできる。
【０００３】
［実施例］
本発明のガス状物体の関係を図１に示し、合成回路例を図２に示す。図１においてガス状物体は３次元座標点で与えられる。図１では二つの物体Ｚ０とＺｉが同一視点軸上にあり、距離ｄＺｉを保っている。この場合視点Ｅに入る物体の輝度はＺ０の輝度（前記（１）式におけるＩｐ（ｎｅａｒｅｓｔ））と、Ｚｉ点の輝度ΣＩｐｉを（１＋ｄＺｉ）で除算したものとの和となる。また透過値はそれぞれの和として求める。この結果、これを実現する回路は本発明の図２に示すように、新たに求められたソースプリミティブの視点座標値Ｚｓ値と画像メモリ６から読みだされたディスティネーションプリミティブの視点座標値Ｚｄとが減算器１にて減算され、その差分値（距離）を求めると共に、この正負符号によってマルチプレクサ２ａおよび２ｂのソース輝度Ｉｓあるいはディスティネーション輝度Ｉｄ（ＩｓあるいはＩｄがそれぞれ（１）式のＩ（ｎｅａｒｅｓｔ）あるいはΣＯｐｉとなる）を選択する。プリミティブ間の距離ｄＺｉはメモリテーブル３に加えられ、ｓ／（１＋ｊｄＺｉ）を求める。メモリテーブルにはｄＺｉを入力変数（アドレス）としてｓ／（１＋ｊｄＺｉ）が記憶されている。このメモリテーブルは減衰係数ｊおよびｓが物体によって異なるため書き換えが必要となり、通常はＲＡＭで構成する。
ｓ／（１＋ｊｄＺｉ）はマルチプレクサ２ａの出力値と乗算器４にて乗算された後にマルチプレクサ２ｂの出力値と、加算器５ａにて加算され画像メモリ６に記憶される。一方、透過値はソースＯｐｓとディスティネーションＯｐｄそれぞれが加算器５ｂにて加算された後、画像メモリ６に記憶される。
ガス状物体生成プロセッサの画像メモリに記憶されたプリミティブは面定義物体描画プロセッサから出力される面定義物体と合成される。この合成に関わる本発明の物体間の関係図３に示す。図３ａは輝度Ｉｇ、視点軸点ｚ０をもつガス状物体が、輝度Ｉｓ、視点軸点ｚ１からなる面定義物体の手前にある場合、３ｂは後ろにある場合を示す。輝度の合成はすでに知られたアルハーブレンディングの線形混合式が用いられるが、本発明ではこのアルハー値（透明値）を前記（２）式の関係に基づき以下の方式で求める。図３ａの関係の場合、透明値はガス状物体がもつ透明値と１／（１＋ｋｄＺ）との積で与える。ここで透明値は前記（１）式の関係から求められた透過値Ｏｐから得たものである。
この結果、面定義物体とガス状物体との距離ｄＺが大きくなり、ガス状物体が視点に近くなるにしたがって、ガス状物体の輝度が強調される。一方、図３ｂの場合は、ガス状物体が面定義物体から離れるにしたがって、（２）式に基づき、面定義物体が強調される。これらの関係を回路図４に示す。
図４に於てガス状物体はそれぞれ輝度Ｉｇ、視点軸点Ｚ０および透過値Ａｇを持つ。また面定義物体は輝度Ｉｓと視点軸値Ｚ１をもつ。視点座標値Ｚ０とＺ１はそれぞれ減算器７ａにて減算されその差分値ｄＺを出力する。この値は減衰率ｋあるいはｊと、乗算器８ａにて乗算され、メモリーテーブル９に与えられ、１／（１＋ｋｄＺ）あるいは１／（１＋ｊｄＺ）を出力する。一方、差分値ｄＺは減衰率ｊと乗算器８ｂにて乗算された後、加算器１０ａにて（Ａｇ＋ｊｄＺ）が求められる。またマルチプレクサ１１は減算器７ａの符号でＡｇか（Ａｇ＋ｊｄＺ）かの選択を行う。以上から輝度は１１で選択された値とテーブル９の出力値が乗算器８ｃにて乗算され、この値が一方でＩｇと、他方でＩｓとそれぞれ乗算器８ｄおよび８ｅで乗算された後加算器１０ｂにて加算され、最終輝度Ｉｐを得る。８ｅでの出力は減算器７ｂに於て反転された後加算される。これらのプロセスは（２）式を実行するためのものである。こうして得られた合成輝度は直接あるいは別の画像メモリに記憶されたのち表示される。
【０００４】
［効果］
本発明のハードウエア化により、ガス状物体と面定義物体が３次元空間内で高速に合成でき、仮想現実システムの描画に不可欠なリアルタイム表示が可能と成る。
【図面の簡単な説明】
【図１】  本発明のガス状物体の関係図
【符号の説明】
Ｅ              視点
Ｚ０，Ｚ１      ガス状物体の視点軸上の座標値
ｄＺｉ          ガス状物体間の距離
【図２】  本発明のガス状物体間の合成回路
【符号の説明】
１              減算器
２ａ，２ｂ      マルチプレクサ
３              メモリテーブル
４              乗算器
５ａ，５ｂ      加算器
６              画像メモリ
【図３】  本発明のガス状と面定義物体との関係
【符号の説明】
Ｅ              視点
Ｚ０            ガス状物体の視点軸座標値
Ｚ１            面定義物体の視点軸座標値
Ｉｇ            ガス状物体の輝度
Ｉｓ            面定義物体の輝度
ｄＺ            ガス状および面定義物体間の距離
【図４】  本発明のガス状と面定義物体との合成回路
【符号の説明】
７ａ，７ｂ      減算器
８ａ，８ｂ，８ｃ，８ｄ，８ｅ  乗算器
９              メモリテーブル
１０ａ，１０ｂ  加算器
１１            マルチプレクサ
【図１】
0003966433.tif 000004
【図２】
0003966433.tif 000005
【図３】
0003966433.tif 000006
【図４】
0003966433.tif 000007