(57)【特許請求の範囲】
【請求項１】
ガス状物体のコンピュータグラフィックス表示回路に関し、ガス状物体を構成する最小の表示単位（プリミティブ）を３次元座標値および密度で定義する手段と、
前記座標値のうち、ｘおよびｙ値をアドレスとしてプリミティブ毎にｚ値および密度を画像メモリに記憶するとともに、この画像メモリに新たなプリミティブを重ね書きする際、新たなｚ値と前記画像メモリに記憶されたｚ値とを比較して、それまでに書きこまれたｚの最大値と最小値をそれぞれ記憶する手段と、
前記画像メモリに記憶された密度と新たに書きこまれる密度とをそれぞれを加算する手段をもつガス状物体表示回路において、
ガス状物体のレンダリングを第一および第二の処理（パス）に分け、第一パスでは光源を投影中心とする３次元光源座標系でプリミティブを定義しこれを第一の画像メモリに記憶した後、第二パスにおいては視点を投影中心とした３次元視点座標系でプリミティブを定義し、プリミティブ密度、最大および最小のｚ値を第二の画像メモリに記憶するとともに、視点座標系座標値それぞれに対応する光源系座標値を同時に求め、この第二パスで得た光源座標系座標点のｚ値と、前記第一パスにおいて第一の画像メモリに記憶された最大および最小のｚ値とから視点座標系におけるプリミティブ座標点での光源軸上の補間密度を決定しこの補間密度を第二の画像メモリに記憶する際、視点に最も近い値を選択し記憶する第一の手段と、
第一および第二パスそれぞれの処理が終了した後、第一パスでは最大および最小のｚ値および密度を、また第二パスでは視点座標系ｚ値、密度および前記光源軸補間密度をそれぞれフィルタリングする手段として、画像メモリの少なくとも３×３の画素領域をサンプリング領域として走査順に読み出すとともに、それぞれのパスで記憶されたｚ値はサンプリング領域に含まれる有効値のみを用いて平均化する一方、視点座標系密度および補間密度はサンプリング領域全ての相関フィルタリングを行うとともに、フィルタリングされたこれら密度を、自然対数を底とする関数値とすることにより視点および光源軸上のプリミティブの透過度をそれぞれ決定する第二の手段をもつガス状物体表示回路。
【請求項２】
ガス状物体と面定義物体とはそれぞれ独立にレンダリングしてそれぞれの画像メモリに記憶した後、３次元空間内で合成する手段として、請求項１の回路において決定した補間密度から得た透過度をスカラー値として光源色と乗算して視点座標系のプリミティブの輝度を得る第一の手段と、
視点座標系プリミティブがもつｚ値の最大および最小値と、面定義物体のｚ値との差分値を求めるとともにこの差分値と前記視点座標系での密度とから、面定義物体前面に存在するプリミティブ密度を決定する第二の手段と、
この面定義物体前面のプリミティブ密度を、自然対数を底とする関数とすることにより面定義物体とガス状物体間の透過度を求める第三の手段と、
この透過度、前記プリミティブの輝度および面定義物体が持つ輝度とをそれぞれ用いてガス状物体と面定義物体を合成する第四の手段をもつガス状物体表示回路。
【請求項３】
ガス状物体のコンピュータグラフィックス表示回路に関し、ガス状物体を構成する最小の表示単位（プリミティブ）を３次元座標値および密度で定義する手段と、
前記座標値のうち、ｘおよびｙ値をアドレスとしてプリミティブ毎にｚ値および密度を画像メモリに記憶するとともに、この画像メモリに新たなプリミティブを重ね書きする際、新たなｚ値と前記画像メモリに記憶されたｚ値とを比較して、それまでに書きこまれたｚの最大値と最小値をそれぞれ記憶する手段と、
前記画像メモリに記憶された密度と新たに書きこまれる密度とをそれぞれを加算する手段をもつガス状物体表示回路において、
透視投影が行われている場合、プリミティブｚ値と、視点から投影面までの距離を変数とした透視関数を定義し、この関数から得られる値を前記プリミティブに与えられた密度のスカラー値としてガス状物体が視点から離れれば離れるほど密度値を減少する手段をもつガス状物体表示回路。
【請求項４】
ガス状物体のコンピュータグラフィックス表示回路に関し、ガス状物体を構成する最小の表示単位（プリミティブ）を３次元座標値および密度で定義する手段と、
前記座標値のうち、ｘおよびｙ値をアドレスとしてプリミティブ毎にｚ値および密度を画像メモリに記憶するとともに、この画像メモリに新たなプリミティブを重ね書きする際、新たなｚ値と前記画像メモリに記憶されたｚ値とを比較して、それまでに書きこまれたｚの最大値と最小値をそれぞれ記憶する手段と、
前記画像メモリに記憶された密度と新たに書きこまれる密度とをそれぞれを加算する手段をもつガス状物体表示回路において、
ガス状物体は複数の３次元格子点からなる幾何学形状によって定義されるとともに、前記プリミティブ座標値はこの格子点毎に乱数を変数とする任意関数により生成される手段と、それぞれの格子点には密度とライフタイム（Ｌｉｆｅ−ｔｉｍｅ）値を定義し、それぞれのプリミティブのもつ密度とそれぞれの格子点がもつ密度とをそれぞれ加算する一方、ライフタイム値はこの加算された密度に乗算してプリミティブの出現および消滅効果を得る手段をもつガス状物体表示回路。
【発明の詳細な説明】
【０００１】
［発明の属する技術分野］
本発明は雲、霧あるいは煙などのガス状物体をコンピュータグラフィックス映像として表現するハードウエア回路に関し、リアルタイムゲーム機器や仮想現実システムに応用される。
【０００２】
［従来の技術］
雲、霧などのガス状物体を表現する従来のハードウエア技法の多くは、テキスチャーマッピングを用いる。これはあらかじめ雲などの映像を２次元パターンとして記憶して、これをスクリーンにマッピングするものである。霧などの表現も透視率を設定して２次元パターンと３次元物体とをアルファーブレンディングして表現する。これらの方法はガス物体が２次元パターンで定義されており、３次元空間での視点の移動にともない物体形状を任意の角度から眺めることや、ガス状物体が視点を横切る場合の変化を表現させることができない。また一部のレンダリング方法として乱数をベースに３次元ノイズを生成しこれを面定義物体と合成する方法が特願平７−２０１２５１および９−３０１４２２にて、前者はシェーディング方法が、後者は面定義物体との合成が提案されているが自然現象に沿った数式モデルと異なるシェーディングあるいは合成法のため、表現力に制約があった。
【０００３】
［問題を解決するための手段］
本発明ではガス状物体の表示最小要素をプリミティブとし、プリミティブそれぞれを３次元座標値と密度で定義する。このプリミティブ密度は輝度や透過値のようにすでに可視化データに変換された値とは異なる。ガス状物体を構成する方法として本発明ではプリミティブの核となる幾何学的３次元点を設定し形状のフレーム（全体枠組み）を構築する。プリミティブはそれぞれの核毎に一様乱数を変数としたノイズ関数等によって発生する。密度はフレーム核およびプリミティブいずれにも付加されるが、単位空間当たりに存在する核およびプリミティブ数に対応して定義する方法がある。ガス状物体の輝度は主として太陽光源（輝度および光線方向）とプリミティブの密度に依存する。自然界においてはガス粒子に対する光線の乱反射による拡散と屈折による減衰で決定される。よってレンダリングにおいてもプリミティブ密度、光源輝度および光線方向でこの輝度を決定することが合理的である。本発明ではプリミティブの密度をプリミティブ毎にその座標値を用いて画像メモリに記憶する。３次元空間で重なり合うガス状物体を描画する場合、すでに画像メモリに密度が記憶された場所に新たな密度が重ね書きされることがある。この場合画像メモリに記憶される密度はそれらの加算値とする。この加算された密度は全てのレンダリングが終了しフィルタリングした後に輝度や透過度に変換する。一方、本発明では影付けに用いられている２パスｚバッファと同様に二つのパスを設けて輝度を決定する。しかし従来の影付けでは多角形の内挿補間点が影か照射部かを決定する方法として、内挿補間点とシャドウポリゴンそれぞれのｚの点座標値を比較する。本発明ではそれら方法とは異なりガス状物体のｚ軸上の分布範囲（最大、最小値）とその範囲内に存在する密度によって輝度を決定する。このためまず第一パスにおいては光源座標系でプリミティブ座標値を生成し、密度に関しては前記のように画像メモリの密度と加算する一方、ｚ値に関しては光源に最も近いｚ最小値Ｚ１ｍｉｎと、最も遠いｚ最大値Ｚ１ｍａｘをプリミティブｚ値と画像メモリ内のｚ値とを比較して求め、最小最大値を記憶する。すべてのプリミティブをレンダリングした後、記憶された密度およびｚ値をフィルタリングす。次に第二パスにおいて視点座標系のプリミティブ座標値を求めると同時に光源座標系座標値に変換する。これは第一および第二パスいずれもプリミティブ座標値を光源座標系で定義し、第二パスにおいてこの光源座標系座標値を視点座標値に座標変換する方法のいずれでも良い。第二パスにおいて視点座標系におけるプリミティブのｚ値と密度を画像メモリに記憶する場合にもｚ値に関しては第一パス同様に視点座標でのｚ値の最小値Ｚｇｍｉｎおよび最大値Ｚｇｍａｘを求める。第二パスではさらにプリミティブ座標点それぞれの光源軸上での補間密度ｄｈを記憶する。密度ｄ２およびｚ値の最小Ｚｇｍｉｎおよび最大値Ｚｇｍａｘは第一パス同様に、密度は画像メモリのオーバーライト時は加算、ｚ値は画像メモリ内の最小最大値との比較により求めるが、光源軸上の補間密度ｄｈは次の手順で求める。第二パスにおいてプリミティブの光源座標系座標値を（Ｌ２ｘ，Ｌ２ｙ，Ｌ２ｚ）とすると、これを視点座標値（Ｅｘ，Ｅｙ，Ｅｚ）に変換する。座標値（Ｌ２ｘ，Ｌ２ｙ）をアドレスとして第一パスの画像メモリに記憶された密度ｄ１とｚ値の最小値Ｚ１ｍｉｎおよび最大値Ｚ１ｍａｘを読み出す。次にこれら値とＬ２ｚによってｄ１を（１）式により比例配分する。この値ｄｈを第二の画像メモリの（Ｅｘ，Ｅｙ）アドレスに密度ｄ２、ｚ最小値Ｚｇｍｉｎあるいは最大値Ｚｇｍａｘと同時に記憶する。
ｄｈ＝ｄ１・（Ｌ２ｚ−Ｚ１ｍｉｎ）／（Ｚ１ｍａｘ−Ｚ１ｍｉｎ）        Ｚ１ｍｉｎ≦ｄ１≦Ｚ１ｍａｘ    （１）
光源軸補間密度ｄｈは第二パスにおいて視点軸上での重ね書きが生じた場合、画像メモリに記憶された値とｄ２のように加算するのではなく、Ｅｚ値に対する隠面消去法を用いてｚの最小値〔視点に最も近い〕となるプリミティブ点での補間密度のみを記憶する。補間密度ｄｈは第二パスの終了後、フィルタリングされ面定義物体と合成する時点で下記の式によって輝度ｌｇに変換される。
ｌｇ＝Ｃ・ｋ０・ｅｘｐ（−ｋ１・ｄｈ）          （２）
ここでＣは光源の輝度で３原色のそれぞれに（２）式が用いられる。ｋ０およびｋ１はガス状物体の特性および拡散減衰率に依存する係数である。ｅｘｐ（）指数関数である。（１）および（２）式より本発明では視点座標から見たプリミティブの所定の点における輝度は、その点を通過する光線軸上の密度および拡散率で決定される。
一方、面定義物体との合成は、第二パスで記憶されたガス状物体のｚ値の最小Ｚｇｍｉｎおよび最大Ｚｇｍａｘ値、視点軸上の加算密度ｄ２および（１）式の補間密度ｄｈが用いられる。面定義物体とは多角形で形状が表現される表示物体で、多角形の頂点に座標値および属性を定義しこれを内挿補間して描画するもので画像メモリには隠面消去のためのｚ値（通常ｚ値を記憶するメモリはｚバッファと呼ばれる）と、輝度がそれぞれ記憶される。このうち一般の表示システムでは輝度のみがビデオ走査順により画像メモリから読み出されＤ／Ａ変換を経てモニターに表示される。本発明では輝度とｚ値がメモリから同時に読み出される。ガス状物体の前記ｚ値の最小および最大値、加算密度および補間密度も同様に面定義物体画像メモリに同期して走査順に読み出され、ガス状物体と面定義物体との合成を下式により行う。ここで面定義物体の輝度およびｚ値をそれぞれＳおよびＺｓ、視点軸密度をｄ２、合成された輝度をｌｐとする。
ｌｐ＝α・Ｓ＋（１−α）・ｌｇ            （３）
ここで合成密度ｄｍおよび透過率αは下式で与えられる。
0004319308.tif 000002
（３）式のｌｇは（２）式で与えられる。
本発明では（３）および（４）式の処理は画像メモリのビデオ走査読み出しに同期して行う。よってこれらの処理は画素毎に比較演算される。（２）および（５）式はｄｈおよびｄｍをアドレスとするメモリテーブルを用いてそれぞれ輝度と透過率に変換する。
以上の説明ではメモリに記憶するｚ値は最大値と最小値としているが、一方を絶対値、他方を相対値（最大値と最小値間の距離）として記憶し、読み出し後に最大、最小値に変換することもできる。また（２）式には指数関数を用いているが、メモリテーブルにＲＡＭを使用することにより底をｅ−１０の範囲で設定することができる。
ガス状物体をプリミティブ点群として表現する場合、グラフィックスとして生成できる数は限られており数が少ないと点列としてのまだらな映像となる場合がある。これを避けるため本発明では第一および第二パスの処理終了後、フィルタリングを行う。
フィルタ対象は最大、最小ｚ値と密度であるが、ｚ値のフィルタリングは単純な空間フィルタリングができない。これは例えば３×３領域をリサンプリングする場合、この領域にはｚ値が含まれる点と、含まれない（プリミティブが存在しない）点のある可能性がありこれら全体を平均化するとプリミティブの存在し得ない場所に出現することになる。ｚ値は幾何学的データであり、領域フィルタは適用できない。本発明ではｚ値に関してはサンプリング領域に含まれる有効ｚ値のみを加算する一方、有効ｚ値の存在する画素数で除算する平均化を図りこれをサンプリング点のｚ値とする。有効ｚ値とは少なくとも１度は画像メモリに書かれた点のｚ値を意味する。密度に関しては領域内に含まれる全ての値の相関をとる。
視点の位置とは無関係に同一の物体に対してそのプリミティブの数を一定数で生成すると、透視変換時では遠方になるにしたがって画像メモリ上での密度が高くなり近傍と遠方では異なる表示効果となる。これを避けるにはｚ値に反比例して、遠方になるにしたがってプリミティブ数を低減するか、密度を低下する必要がある。本発明では透視変換関数、例えばｊ・ｈ／（ｚ−ｈ）を密度に乗算することで対応する。ここでｚはプリミティブのｚ軸上の値、ｈは視点から投影面までの距離、ｊは係数である。また局所的なガス状物体のフェードインアウトを表示する方法として本発明ではプリミティブ数の増減ではなく、ライフタイム値を前記形状フレームの核毎に定義し、これをそれぞれのプリミティブの密度に乗算する。この乗算はフレーム核とプリミティブの密度の加算値（前記ｄｈやｄｇ）が画像メモリに記憶される時点で行われる。フレーム核のライフタイム値は時間とともに変化する値でこの値が変化する毎に映像をリフレシュする。この結果、ガス状物体の部分的発生と消滅がプリミティブの密度や発生数とは独立して制御できる。以下具体的な実施例を用いて説明する。
【０００４】
［実施例］
図１は本発明のガス状物体表示回路を示す。図１は時間経過を含む構成図を示すもので、上段は第一パス、中段が第二パス、下段がビデオ読み出し時（第三パス）の回路構成となる。パス毎のプロセスは互いに独立しており、プロセスに対応して回路構成が変化することを示す。よって上段と中段には同一の回路番号があるが、これは第一および第二パスのそれぞれのプロセスで共有して使用されるものを示す。
図１において第一パスではプリミティブ発生器１は光源座標系のプリミティブ座標値（Ｌ１ｘ，Ｌ１ｙ，Ｌ１ｚ）および密度ｄ１を発生する。ｚ値Ｌ１ｚは画像メモリ４にそれまでに記憶されたｚ値の最小Ｚ１ｍｉｎおよび最大値Ｚ１ｍａｘとｚ値比較器２でそれぞれ比較し、それら値よりも大きいかあるいは小さい場合には該当する画像メモリに新たな値として置き換える。密度ｄ１はバッファ４に記憶された密度と演算器３において加算され画像メモリ４に書きこまれる。演算器３では乗算器と加算器で構成され、密度をスケーリングするライフタイム値Ｌｆがプリミティブ発生器１から与えられる。画像メモリ４は密度ｄ１、最小Ｚ１ｍｉｎおよび最大Ｚ１ｍａｘのｚ値を記憶するバッファで、例えばそれぞれ画素当たり８ビット、３２ビット、３２ビットで構成する。全てのプリミティブがレンダリングされた後、密度はフィルタ回路５において例えば４×４サンプリング領域のスプライン相関が画像メモリ全域に対してビデオ走査順に読み出され行われる一方、ｚ値はその領域内の有効データのみを用いて平均化を行う。有効データとは少なくとも一回以上ｚ値が書かれた点を意味し、その有効ｚ値と有効点数で除算した平均化を図る。
第二パスにおいてプリミティブ発生器は第一パス同様に光源座標系座標値（Ｌ２ｘ，Ｌ２ｙ，Ｌ２ｚ）と密度ｄ２を出力する。この光源系座標値は座標変換回路６において視点座標系座標値（Ｅｘ，Ｅｙ，Ｅｚ）に変換する。（Ｌ２ｘ，Ｌ２ｙ）はメモリ４のアドレスとして与え、第一パスで記憶しフィルタリングされた密度ｄ１、Ｚ１ｍｉｎおよびＺ１ｍａｘを読み出す。この読み出された値とＬ２ｚとから（１）式の演算が補間回路７で行われる。回路７で得られた補間密度ｄｈを第二の画像メモリ８のアドレス（Ｅｘ，Ｅｙ）に記憶する。一方、プリミティブ発生器からの密度ｄ２はアドレス（Ｅｘ，Ｅｙ）で画像メモリ８に記憶されるが、オバーライトされる場合はすでに記憶された密度ｄｇと演算器３にて累積した後記憶される。この際ライフタイム値Ｌｆと透視変換関数値Ｐｓが密度に乗算される。Ｅｚ値は視点軸上の最小Ｚｇｍｉｎ、最大Ｚｇｍａｘ値を比較しながらアドレス（Ｅｘ，Ｅｙ）で画像メモリ８に記憶する。第二パスが終了すると第一パス同様にフィルタリングをフィルタ５にて行う。ｄｇおよびｄｈについては４×４領域での相関フィルタを、ｚ値については有効データのみの平均化をメモリ全体で行う。こうして補間密度ｄｈ、視点軸上密度ｄｇ、ｚ最小Ｚｇｍｉｎおよび最大Ｚｇｍａｘ値が画像メモリ８に記憶される。
面定義物体はガス状物体のレンダリングとは独立して行われるが、その終了後、画像メモリ１１には輝度Ｓ（通常は３原色）とそのＺｓ値が記憶される。画像メモリ８と１１の内容はビデオ走査信号に同期して順次読み出される。ここで補間密度ｄｈは輝度変換回路９にて、また密度ｄｇはｚ値の位置関係を検出する比較器１２により制御される透視率変換回路１０にて輝度ｌｇおよび透視率αをそれぞれ得る。ｚ値比較回路１２および透視率変換回路１０では前記（４）および（５）式を演算する。これらから合成回路１３にて前記（３）式の処理が行われ面定義物体とガス状物体の画素毎の合成がビデオ走査順に完了する。
合成は以上のようにそれぞれの画像メモリをビデオモニターに表示する時点で行うこともできるし、実時間上の問題が少なければ、回路９，１０，１２，１３の機能あるいはハードウエアをもつプロセッサを設け、それぞれの画像メモリから所定のデータを読み出し、演算後再度メモリ（例えば画像メモリ１１）に書きこむ方法も可能である。
図２は図１における比較器２の詳細図を示す。ｚ値の最小Ｚ１ｍｉｎおよび最大Ｚ１ｍａｘ値は画像メモリ４のそれぞれ独立した領域に記憶する。これらは座標値（Ｌ１ｘ，Ｌ１ｙ）でアドレシングして同時に読み出し、プリミティブ発生器１からのｚ値（Ｚ１ｓ）と減算器２ａおよび２ｂにて比較し、Ｚ１ｓがより小さいあるいは大きい場合はその符号を受ける制御回路２ｃにより該当するマルチプレクサ２ｄあるいは２ｅにてＺ１ｓを選択する。Ｚ１ｓが最小，最大値の間にある場合にはメモリの最小および最大値がライトバックされる。図３は本発明の透視率変換回路１０および比較器１２の詳細回路を示す。透視率変換回路１０は画像メモリ８からのＺｇｍｉｎおよびＺｇｍａｘの差分値を減算器１０ａで求めた後、メモリテーブル１０ｃによりその逆数を求める。またＺｇｍｉｎと、面定義物体の画像メモリ１１からのｚ値Ｚｓとの差分値を減算器１０ｂで求め、この値と前記逆数を１０ｄにて乗算する。この乗算結果をさらに密度ｄｇと１０ｅにて乗算して前記の（４）式のＺｇｍｉｎ≦Ｚｓ≦Ｚｇｍａｘ時の密度を得る。マルチプレクサ１０ｆではこの値と、ｄｇおよびゼロ値のいずれかを（４）式にしたがって選択する。このマルチプレクサ１０ｆの選択は比較器１２で決定される。比較回路１２では面定義物体のｚ値ＺｓとＺｇｍｉｎおよびＺｇｍａｘとをそれぞれ減算器１２ａおよび１２ｂで比較し、それぞれの符号をマルチプレクサ制御回路１２ｃに加え前記（４）式の条件を判定し、マルチプレクサ１０ｆのガス状物体プリミティブの入力密度を選択する。選択された密度はメモリテーブルからなる透視率変換メモリテーブル回路１０ｇを通して透視率αを得る。メモリテーブルに記憶する値は（５）式に基づく。メモリテーブルはＲＡＭで構成する。
図４は本発明のガス状物体および面定義物体との合成回路１３の詳細図を示す。回路は（３）式に基づき処理される。乗算器１３ａでは面定義物体の輝度Ｓと図３のメモリテーブル１０ｇからの透視率αをそれぞれ乗算し、また減算器１３ｄにて１−αの減算をした後、輝度変換回路９で得られたガスプリミティブの輝度ｌｇと乗算器１３ｂにて乗算し、この結果と前記１３ａの結果を加算器１３ｃにて加算して合成輝度ｌｐを得る。
【０００５】
［発明の効果］
ガス状物体を３次元プリミティブとしてレンダリングすることにより視点に連動した映像表現や、視点が物体に入り込む場合の映像表現ができシュミレーションなどの仮想現実システムへの適用でリアリティーのある表示効果を得ることができる。
【図面の簡単な説明】
【図１】  本発明のガス状物体表示回路
【符号の説明】
１：プリミティブ発生器        ２：ｚ値比較器
３：演算器                    ４：第一の画像メモリ
５：フィルタ回路              ６：座標変換回路
７：補間回路                  ８：第二の画像メモリ
９：輝度変換回路              １０：透視率変換回路
１１：面定義物体画像メモリ    １２：ｚ値比較器
１３：合成回路
【図２】  本発明のｚ値比較回路
【符号の説明】
２ａ，２ｂ：減算器            ２ｃ：マルチプレクサ制御回路
２ｄ，２ｅ：マルチプレクサ    ４：画像メモリ
【図３】  本発明の透視率変換回路
【符号の説明】
１０ａ，１０ｂ：減算器        １０ｃ：メモリテーブル
１０ｄ，１０ｅ：乗算器        １０ｆ：マルチプレクサ
１０ｇ：透視率変換メモリテーブル回路
１２ａ，１２ｂ：減算器        １２ｃ：マルチプレクサ制御回路
【図４】  本発明の面定義およびガス状物体合成回路
【符号の説明】
１３ａ，１３ｂ：乗算器        １３ｃ：加算器
１３ｄ：減算器                ９：輝度変換回路
【図１】
0004319308.tif 000003
【図２】
0004319308.tif 000004
【図３】
0004319308.tif 000005
【図４】
0004319308.tif 000006