(57)【要約】【課題】粒子を分類することなくガス状物体にシェーディングを付けるための回路又はシステムを提供することをこの発明の目的とする。【解決手段】第１の側面は，蓄積パスのシステムに関し，ガス状物体の断片位置（ｉ，j）を得る手段；断片位置に関係するｚ値Ｚ１及びＺ２を得る手段；断片位置に関係する表面の深さ値ＺＳを保存する手段；ＺＳ−Ｚ１／Ｚ２−Ｚ１を計算する手段；表面の深さ値ＺＳ及び２つのｚ値，又は「ＺＳ−Ｚ１」が０より大きいこと及び「Ｚ２−ＺＳ」が０より大きいことを比較する手段；Ｚ１がＺＳより大きいときにＤＺとして０を，ＺＳがＺ１以上でありＺ２より小さいときにＤＺとしてＺＳ−Ｚ１／Ｚ２−Ｚ１を，ＺＳがＺ２より大きいときにＤＺとして１を出力する手段を具備する三次元コンピュ−タグラフィック用のガス状物体の減衰要素ＤＺを計算するシステムに関する。【選択図】図２
2011159328.tif 000002
【特許請求の範囲】
【請求項１】
視覚空間座標で光方向を得るための手段と；
視覚座標系でガス状物体と境界を有する箱を得るための手段と；
視覚座標系でガス状物体のシェーディング値を計算するための手段と；
ｚインターセクションを考慮した累積密度を透明度α値に変換するための手段と；
シェーディング計算の結果を用いてｚインターセクションを考慮しない累積密度をＲＧＢ色に変換するための手段と；そして
シェーディングの付けられたガス状物体像を表面物体像と結合するための手段と
を具備する累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体像に変換するシステム。
【請求項２】
バッファ像のすべての断片（ｉ，j）を得るための手段と；
ｚ値を用いないで，視覚座標系でのガス状物体と境界を有する箱（ＸＭｉｎ，ＹＭｉｎ），（ＸＭａｘ，ＹＭａｘ）を得るための手段と；
バッファ像に保存されたｚインターセクションを考慮しない最大密度ＡＣＣ１を得るための手段と；
視覚空間座標で光方向を得るための手段と；
ＸＹ平面における視覚座標で前記物体にシェーディングを付けるための手段と；
Ｚ軸に沿って視覚座標で前記物体にシェーディングを付けるための手段と；
Ｚインターセクションを考慮した累積密度を透明度α値に変換するための手段と；
シェーディング計算の結果を用いてｚインターセクションを考慮しない累積密度をＲＧＢ色に変換するための手段と；
表面物体のバッファＲＧＢＡ像を得るための手段であるフレームバッファと；そして，
前記断片（ｉ，j）に関係するシェーディングの付けられたガス状物体の色を，前記断片（ｉ，j）に関係する表面物体の断片の色と結合するための手段と；
を備える累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体に変換するためのシステム。
【請求項３】
バッファ像のすべての断片（ｉ，j）を得るための手段と；
バッファＡＣＣ１及びＡＣＣ２に保存された前記断片（ｉ，j）に関係する密度を得るための手段と；
ｚ値を用いないで，視覚座標系でのガス状物体と境界を有する箱（ＸＭｉｎ，ＹＭｉｎ），（ＸＭａｘ，ＹＭａｘ）を得るための手段と；
バッファ像ＡＣＣ１に保存されたｚインターセクションを考慮しない場合の最大密度ＡＣＣ１を得るための手段と；
視覚空間座標（ＬＸ，ＬＹ，ＬＺ）での光方向を得るための手段と；
ＸＹ平面でシェーディングを制御するスカラ−値のタプル（ＬＸＹＡｔｔ，ＬＸＹＭｉｎ，ＬＸＹＭａｘ）を得るための手段と
Ｚ平面でシェーディングを制御するスカラ−値の組（ＬＺＡｔｔ，ＬＺＭｉｎ，ＬＺＭａｘ）を得るための手段と；
シェーディングのための全体的な周囲の色を制御する全体的な最小及び最大の周囲のＲＧＢ色（ＲＭｉｎＡＭＢ，ＧＭｉｎＡＭＢ，ＢＭｉｎＡＭＢ）及び（ＲＭＡＸＡＭＢ，ＧＭＡＸＡＭＢ，ＢＭＡＸＡＭＢ）を得るための手段と；
前記断片（ｉ，j）に関係する光方向ＬＸでのシェーディングの寄与を計算するための手段と；
前記断片（ｉ，j）に関係する光方向ＬＹでのシェーディングの寄与を計算するための手段と；
前記断片（ｉ，j）に関係する視覚座標系におけるＸＹ平面でのシェーディングの寄与を計算するための手段と；
前記断片（ｉ，j）に関係するＺ軸に沿っての視覚座標でのシェーディングの寄与を結合するための手段と；
前記断片（ｉ，j）に関係するＸＹ平面でのシェーディング及びＺ軸に沿ってのシェーディングを結合するための手段と；
前記断片（ｉ，j）に関係する結果として生じたシェーディングと全体的な周囲の色とを結合するための手段と；
前記断片（ｉ，j）に関係するガス状物体のＲＧＢ色を得るための手段と；
Ｚインターセクションを考慮した蓄積密度をα値（透明度）に変換するための手段と；
表面物体のバッファＲＧＢＡ像，フレームバッファを得るための手段と；そして
前記断片（ｉ，j）に関係するシェーディングの付いたガス状物体の色を，前記断片（ｉ，j）に関係する表面物体の断片の色と結合するための手段と
を備える，累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体に変換するためのシステム。
【請求項４】
バッファ像のすべての断片（ｉ，j）を得るための手段と；
バッファＡＣＣ１及びＡＣＣ２に保存される前記断片（ｉ，j）に関係する密度であって，それぞれＡＣＣ１[i][j]及びＡＣＣ２[i][j]を得るための手段と；
ｚ値を用いないで，視覚座標系でのガス状物体と境界を有する箱（ＸＭｉｎ，ＹＭｉｎ），（ＸＭａｘ，ＹＭａｘ）を得るための手段と；
バッファ像ＡＣＣ１に保存されたｚインターセクションを考慮しない最大密度ＡＭＡＸを得るための手段と；
視覚空間座標（ＬＸ，ＬＹ，ＬＺ）で光方向を得るための手段と；
ＸＹ平面でシェーディングを制御するスカラ−値のタプル（ＬＸＹＡｔｔ，ＬＸＹＭｉｎ，ＬＸＹＭａｘ）を得るための手段と；
Ｚ平面でシェーディングを制御するスカラ−値のタプル（ＬＺＡｔｔ，ＬＺＭｉｎ，ＬＺＭａｘ）を得るための手段と；
シェーディングのための全体的な周囲の色を制御する全体的な最小及び最大の周囲のＲＧＢ色（ＲＭｉｎＡＭＢ，ＧＭｉｎＡＭＢ，ＢＭｉｎＡＭＢ）及び（ＲＭＡＸＡＭＢ，ＧＭＡＸＡＭＢ，ＢＭＡＸＡＭＢ）を得るための手段と；
IＬＸとして定義され，「IＬＸ=ＬＸ*（i−ＸＭｉｎ）／（ＸＭａｘ−ＸＭｉｎ）」である前記断片（ｉ，j）に関係する光方向ＬＸでシェーディングの寄与を計算するための手段と；
IＬＹとして定義され，「IＬＹ=ＬＹ*（j−ＹＭｉｎ）／（ＹＭａｘ−ＹＭｉｎ）」である前記断片（ｉ，j）に関係する光方向ＬＹでシェーディングの寄与を計算するための手段と；
IＬＸＹに等しく，Ｄｅｌｔａ_IＬＸＹ=（１.０−ＬＸＹＡｔｔ*（ＡＣＣ１[i][j]／ＡＭＡＸ））*（IＬＸ+IＬＹ）として，IＬＸＹ=（１−Ｄｅｌｔａ_IＬＸＹ）* ＬＸＹＭｉｎ+Ｄｅｌｔａ_IＬＸＹ*ＬＸＹＭａｘで定義される，前記断片（ｉ，j）に関係する視覚座標系でのＸＹ平面におけるシェーディングの寄与を計算するための手段と；
IＬＺに等しく，Ｄｅｌｔａ_IＬＺ=（１.０−ＬＺＡｔｔ*（ＡＣＣ１[i][j]／ＡＭＡＸ））*（ＬＺ）」として，IＬＺ=（１−Ｄｅｌｔａ_IＬＺ）* ＬＺＭｉｎ + Ｄｅｌｔａ_IＬＸＹ*ＬＺＭＡＸで定義される，前記断片（ｉ，j）に関係するＺ軸に沿っての視覚座標でシェーディングの寄与を計算するための手段と；
ＩＬとして定義され，IＬ=IＬＸＹ+IＬＺである前記断片（ｉ，j）に関係するＸＹ平面でのシェーディング及びＺ軸に沿ってのシェーディングを結合するための手段と；
前記断片（ｉ，j）に関係するガス状物体のシェーディングの付けられたＲＧＢ色（ＲＧ，ＧＧ，ＢＧ）を計算するための手段，ここでＲＧ，ＧＧ及びＢＧのそれぞれのチャンネルは，「ＲＧ =（１.０−IＬ）*（ＲＭｉｎＡＭＢ）+IＬ*（ＲＭＡＸＡＭＢ）」，「ＧＧ=（１.０−IＬ）*（ＧＭｉｎＡＭＢ）+IＬ*（ＧＭＡＸＡＭＢ）」及び「ＢＧ=（１.０−IＬ）*（ＢＭｉｎＡＭＢ）+IＬ *（ＢＭＡＸＡＭＢ）」として定義される；
ｚインターセクションを考慮した累積密度を，ルックアップテ−ブルで定められるα値（透明度）に変換するための手段，ここでｚインターセクションを考慮した累積密度ＡＣＣ２[i][j]は，ルックアップテ−ブルの入力として用いられ，α値ＡＧはテーブルの出力である；
表面物体のバッファＲＧＢＡ像，フレームバッファ，及び（ＲＳ，ＧＳ，ＢＳ，ＡＳ）を得るための手段；そして，
ここで（Ｒ，Ｇ，Ｂ，Ａ）を「Ｒ=（１−ＡＧ）*ＲＳ+ＡＧ*ＲＧ」，「Ｇ=（１−ＡＧ）*ＧＳ+ＡＧ*ＧＧ」，「Ｂ=（１−ＡＧ）*ＢＳ+ＡＧ*ＢＧ」及び「Ａ=（１−ＡＧ）*ＡＳ+ＡＧ*ＡＧ」として定義した場合に，前記断片（ｉ，j）に関係するシェーディングの付いたガス状物体の色（ＲＧ，ＧＧ，ＢＧ，ＡＧ）を，前記断片（ｉ，j）に関係する表面物体の断片の色（ＲＳ，ＧＳ，ＢＳ，ＡＳ）と結合するための手段，
を具備する累積密度を表面物体に表示されるシェーディングが付けられたガス状物体の像に変換するためのシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は一般に三次元コンピュ−タグラフィックス用のグラフィック回路に関する。より詳しくは，表面物体と結合されるガス状物体用の蓄積密度の像を計算するためのシステムに関する。
【背景技術】
【０００２】
文献では，シェーディングのついたガス状物体をレンダリングするための全てのアルゴリズムは，２か３つのパスを使って定められる。これらのパスは，通常以下の通りに定められる。最初のパスの間，ガス状物体は光座標系でレンダリングされる。そして，いくつかの情報が保存される。第２のパスは通常のレンダリングパスである。そして，ガス状物体はカメラ空間でレンダリングされる。いくつかのアルゴリズムでは，ガス状物体は表面物体と直接結合される。そして，この第２のパスの後，像は表示される準備が整う。いくつかの他のアルゴリズムでは，ガス状物体及び表面物体の組合せは，ポスト合成と呼ばれる追加のパスにおいてなされる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
粒子を並べ替えることなくガス状物体にシェーディングを付けるための回路又はシステムを提供することが，この発明の目的である。
本発明の別の目的は，現在全てのアルゴリズムで存在するレンダリングパスを追加し，シェーディングパスを省くことなくガス状物体にシェーディングを付けるための回路又はシステムを提供することである。
とても小さなハ−ドウェア回路（例えば４０Ｋゲ−ト未満）でガス状物体をレンダリングするための回路又はシステムを提供することが本発明のさらに別の目的である。
発明のさらに別の目的は，１つのバッファを用いてガス状物体をレンダリングするための回路又はシステムを提供することである。
発明のさらに別の目的は，コンピュ−タグラフィックスでガス状物体を定めるための新しい回路又はシステムを提供することである。
発明のさらに別の目的は，ガス状物体をリアルタイムにレンダリングするための３次元コンピュ−タグラフィックスの回路又はシステムを提供することである。
【課題を解決するための手段】
【０００４】
発明によると，上記課題のいずれかひとつを解決するガス状物体のレンダリングへの新しいアプロ−チが提供される。発明の主な特徴は，レンダリング段階で，密度に関係する情報だけがバッファで蓄積され，そして，表面物体とのインターセクション及びガス状物体はガス状物体を構成する粒子をレンダリングせずに計算されることである。
【０００５】
本発明の第１の側面は，蓄積パスのためのシステムに関する。より詳しくは，本発明の第１の側面は基本的には，三次元コンピュ−タグラフィック用のガス状物体の減衰要素ＤＺを計算するための，ガス状物体の断片位置（ｉ，j）を得るための手段と；Ｚ１及びＺ２を，断片位置（ｉ，j）でガス状物体の部分的な厚みを定義する２つの深さ値として，断片位置（ｉ，j）に関係するｚ値Ｚ１及びＺ２を得るための手段と；前記断片位置（ｉ，j）に関係する表面の深さ値ＺＳを保存するための手段と；前記ＺＳ，前記Ｚ１及び前記Ｚ２を用いてＺＳ−Ｚ１／Ｚ２−Ｚ１を計算するための手段と；前記表面の深さ値ＺＳと前記２つのｚ値，又は「ＺＳ−Ｚ１」が０より大きいかと「Ｚ２−ＺＳ」が０より大きいかを比較するための手段；そして前記Ｚ１が前記ＺＳより大きいときに減衰要素ＤＺとして０を，前記ＺＳが前記Ｚ１以上であり前記Ｚ２より小さいときに前記ＤＺとして前記ＺＳ−Ｚ１／Ｚ２−Ｚ１を，前記ＺＳが前記Ｚ２より大きいときに前記ＤＺとして１を出力するための手段を具備するシステムに関する。
【０００６】
第１の側面の好ましい態様は，以下の「ＺＳ−Ｚ１／Ｚ２−Ｚ１」を計算するための手段が入力としてＺ１及びＺ２を用いて「Ｚ２−Ｚ１」を計算するための手段；入力として値「Ｚ２−Ｚ１」を用いて「１／（Ｚ２−Ｚ１）」を計算するための手段；入力として値ＺＳ及びＺ１を用いて「ＺＳ−Ｚ１」を計算するための手段；入力として値ＺＳ及びＺ２を用いて「Ｚ２−ＺＳ」を計算するための手段；そして入力として「ＺＳ−Ｚ１」及び「１／（Ｚ２−Ｚ１）」を用いて「（ＺＳ−Ｚ１）／（Ｚ２−Ｚ１）」を計算するための手段を具備する上記したシステムに関する。
【０００７】
第１の側面の好ましい態様は，ＺＳ−Ｚ１／Ｚ２−Ｚ１を計算するための手段が，入力としてＺ１及びＺ２を用いて，「Ｚ２−Ｚ１」を計算する加算器２５０；入力として値「Ｚ２−Ｚ１」を用いて，「１／（Ｚ２−Ｚ１）」を計算するための逆数ルックアップテ−ブル２５１；入力として値ＺＳ及びＺ１を用いて，「ＺＳ−Ｚ１」を計算するための加算器２５３；入力として値ＺＳ及びＺ２を用いて，「Ｚ２−ＺＳ」を計算するための加算器２５４；そして，入力として「ＺＳ−Ｚ１」及び「１／（Ｚ２−Ｚ１）」を用いて，「（ＺＳ−Ｚ１）／（Ｚ２−Ｚ１）」を計算するための乗算器２５２を具備する上記のいずれかのシステムである。
【０００８】
第１の側面の好ましい態様は，ガス状物体の断片位置（ｉ，j）を得るための手段；断片位置（ｉ，j）に関係するテクスチャー値Ｔｕｖを得るための手段；断片位置（ｉ，j）に関係する断片密度値Ｄを得るための手段；入力にＤ及びＴｕｖを用いて，「Ｄ１」として定義される「Ｄ*Ｔｕｖ」を計算するための手段；入力として減衰要素であるＤＺ及びＴｕｖを用いて，「Ｄ２」として定義される「ＤＺ*Ｄ１」を計算するための手段；入力として断片位置（ｉ，j）を用いてＡＣＣ１[i][j]及びＡＣＣ２[i][j]を得て，累積密度ＡＣＣ１[i][j]及びＡＣＣ２[i][j]を保存するための手段，ここでＡＣＣ１[i][j]はｚインターセクションを考慮した累積密度，ＡＣＣ２[i][j]はｚインターセクションを考慮しない累積密度である；入力にＤ１及びＡＣＣ１[i][j]を用いて，「ＡＤ１」として定義される「ＡＣＣ１[i][j]+Ｄ１」を計算するための手段；そして，入力にＤ２及びＡＣＣ２[i][j]を用いて，「ＡＤ２」として定義される「ＡＣＣ２[i][j]+Ｄ２」を計算するための手段を具備する三次元コンピュ−タグラフィックス用のガス状物体の減衰要素ＤＺ，及びｚインターセクションを考慮したガス状物体の累積密度ＡＤ２を考慮して，ｚインターセクションを考慮せずに累積密度ＡＤ１を計算するためのシステムに関する。
【０００９】
第１の側面の好ましい態様は，前記ＤＺがガス状物体の断片位置（ｉ，j）を得るための手段；断片位置（ｉ，j）に関係するｚ値Ｚ１及びＺ２を得るための手段，ここでＺ１及びＺ２は断片位置（ｉ，j）でガス状物体の部分的な厚さを定める２つの深さ値である；断片位置（ｉ，j）に関係する表面深さ値ＺＳを保存するための手段；ＺＳ，Ｚ１及びＺ２を用いて，ＺＳ−Ｚ１／Ｚ２−Ｚ１を計算するための手段；表面深さ値及び２つのｚ値，又は「ＺＳ−Ｚ１」が０より大きいこと及び「ＺＳ−Ｚ２」が０より大きいことを比較するための手段；そして；Ｚ１がＺＳより大きいときにＤＺとして０を，ＺＳがＺ１以上でありＺ２より小さいときにＤＺとしてＺＳ−Ｚ１／Ｚ２−Ｚ１を，ＺＳがＺ２より大きいときにＤＺとして１を出力するための手段を具備するシステムによって得られる上記のいずれかに記載のシステムに関する。
【００１０】
この発明の第２の側面は，ポスト合成のためのシステムに関する。それは，基本的には，
視覚空間座標で光方向を得るための手段；視覚座標系でガス状物体と境界を有する箱を得るための手段；視覚座標系でガス状物体のシェーディング値を計算するための手段；ｚインターセクションを考慮した累積密度を透明度α値に変換するための手段；シェーディング計算の結果を用いてｚインターセクションを考慮しない累積密度をＲＧＢ色に変換するための手段；そして，シェーディングの付けられたガス状物体像を表面物体像と結合するための手段を有する累積密度を表面物体で示されるシェーディングの付けられたガス状物体の像に変換するシステムに関する。
【００１１】
第２の側面の好ましい態様は， バッファ像のすべての断片（ｉ，j）を得るための手段；
視覚座標系でのガス状物体のｚ値を用いないガス状物体と境界を有する箱の座標（ＸＭｉｎ，ＹＭｉｎ），（ＸＭａｘ，ＹＭａｘ）を得るための手段；バッファ像に保存されたｚインターセクションを考慮しない最大密度ＡＣＣ１を得るための手段；視覚空間座標で光方向を得るための手段；ＸＹ平面において視覚座標で物体にシェーディングを付けるための手段；Ｚ軸に沿って視覚座標で物体にシェーディングを付けるための手段；Ｚインターセクションを考慮した累積密度を透明度α値に変換するための手段；シェーディング計算の結果を用いてｚインターセクションを考慮しない累積密度をＲＧＢ色に変換するための手段；表面物体のバッファＲＧＢＡ像，フレームバッファを得るための手段；そして，断片（ｉ，j）に関係するシェーディングの付けられたガス状物体の色を，断片（ｉ，j）に関係する表面物体の断片の色と結合するための手段を有する累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体の像に変換するシステムに関する。
【００１２】
第２の側面の好ましい態様は， バッファ像のすべての断片（ｉ，j）を得るための手段；バッファＡＣＣ１及びＡＣＣ２に保存された断片（ｉ，j）に関係する密度を得るための手段；（ＸＭｉｎ，ＹＭｉｎ），（ＸＭａｘ，ＹＭａｘ），ｚ値を用いない視覚座標系でのガス状物体と境界を有する箱を得るための手段；バッファ像ＡＣＣ１に保存されたｚインターセクションを考慮しない最大密度ＡＣＣ１を得るための手段；視覚空間座標（ＬＸ，ＬＹ，ＬＺ）で光方向を得るための手段；ＸＹ平面でシェーディングを制御するスカラ−値の組（ＬＸＹＡｔｔ，ＬＸＹＭｉｎ，ＬＸＹＭａｘ）を得るための手段；Ｚ平面でシェーディングを制御するスカラ−値の組（ＬＺＡｔｔ，ＬＺＭｉｎ，ＬＺＭａｘ）を得るための手段；シェーディングのための全体的な周囲の色を制御する全体的な最小及び最大の周囲のＲＧＢ色（ＲＭｉｎＡＭＢ，ＧＭｉｎＡＭＢ，ＢＭｉｎＡＭＢ）及び（ＲＭＡＸＡＭＢ，ＧＭＡＸＡＭＢ，ＢＭＡＸＡＭＢ）を得るための手段；断片（ｉ，j）に関係する光方向ＬＸでのシェーディングの寄与を計算するための手段；断片（ｉ，j）に関係する光方向ＬＹでのシェーディングの寄与を計算するための手段；断片（ｉ，j）に関係する視覚座標系におけるＸＹ平面でのシェーディングの寄与を計算するための手段；断片（ｉ，j）に関係するＺ軸に沿っての視覚座標でのシェーディングの寄与を結合するための手段；断片（ｉ，j）に関係するＸＹ平面でのシェーディング及びＺ軸に沿ってのシェーディングを結合するための手段；断片（ｉ，j）に関係する結果として生じたシェーディングと全体的な周囲の色とを結合するための手段；断片（ｉ，j）に関係するガス状物体のＲＧＢ色を得るための手段；Ｚインターセクションを考慮した蓄積密度をα値（透明度）に変換するための手段；表面物体のバッファＲＧＢＡ像，フレームバッファを得るための手段；そして，断片（ｉ，j）に関係するシェーディングの付いたガス状物体の色を，断片（ｉ，j）に関係する表面物体の断片の色と結合するための手段を有する累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体の像に変換するシステムに関する。
【００１３】
第２の側面の好ましい態様は， バッファ像のすべての断片（ｉ，j）を得るための手段；
バッファに保存される断片（ｉ，j）に関係する密度，それぞれがＡＣＣ１[i][j]及びＡＣＣ２[i][j]であるＡＣＣ１及びＡＣＣ２を得るための手段；（ＸＭｉｎ，ＹＭｉｎ），（ＸＭａｘ，ＹＭａｘ），ｚ値を用いない視覚座標系でのガス状物体と境界を有する箱を得るための手段；バッファ像ＡＣＣ１に保存されたｚインターセクションを考慮しない最大密度ＡＭＡＸを得るための手段；視覚空間座標（ＬＸ，ＬＹ，ＬＺ）で光方向を得るための手段；ＸＹ平面でシェーディングを制御するスカラ−値の組（ＬＸＹＡｔｔ，ＬＸＹＭｉｎ，ＬＸＹＭａｘ）を得るための手段；Ｚ平面でシェーディングを制御するスカラ−値の組（ＬＺＡｔｔ，ＬＺＭｉｎ，ＬＺＭａｘ）を得るための手段；シェーディングのための全体的な周囲の色を制御する全体的な最小及び最大の周囲のＲＧＢ色（ＲＭｉｎＡＭＢ，ＧＭｉｎＡＭＢ，ＢＭｉｎＡＭＢ）及び（ＲＭＡＸＡＭＢ，ＧＭＡＸＡＭＢ，ＢＭＡＸＡＭＢ）を得るための手段；IＬＸとして定義され，「IＬＸ=ＬＸ*（i−ＸＭｉｎ）／（ＸＭａｘ−ＸＭｉｎ）」である断片（ｉ，j）に関係する光方向ＬＸでシェーディングの寄与を計算するための手段；IＬＹとして定義され，「IＬＹ=ＬＹ*（j−ＹＭｉｎ）／（ＹＭａｘ−ＹＭｉｎ）」である断片（ｉ，j）に関係する光方向ＬＹでシェーディングの寄与を計算するための手段；IＬＸＹに等しく，Ｄｅｌｔａ_IＬＸＹ=（１.０−ＬＸＹＡｔｔ*（ＡＣＣ１[i][j]／ＡＭＡＸ））*（IＬＸ+IＬＹ）として，IＬＸＹ=（１−Ｄｅｌｔａ_IＬＸＹ）* ＬＸＹＭｉｎ+Ｄｅｌｔａ_IＬＸＹ*ＬＸＹＭａｘで定義される，断片（ｉ，j）に関係する視覚座標系でのＸＹ平面におけるシェーディングの寄与を計算するための手段；IＬＺに等しく，Ｄｅｌｔａ_IＬＺ=（１.０−ＬＺＡｔｔ*（ＡＣＣ１[i][j]／ＡＭＡＸ））*（ＬＺ）」として，IＬＺ=（１−Ｄｅｌｔａ_IＬＺ）* ＬＺＭｉｎ + Ｄｅｌｔａ_IＬＸＹ*ＬＺＭＡＸで定義される，断片（ｉ，j）に関係するＺ軸に沿っての視覚座標でシェーディングの寄与を計算するための手段；ＩＬとして定義され，IＬ=IＬＸＹ+IＬＺである断片（ｉ，j）に関係するＸＹ平面でのシェーディング及びＺ軸に沿ってのシェーディングを結合するための手段；断片（ｉ，j）に関係するガス状物体のシェーディングの付けられたＲＧＢ色（ＲＧ，ＧＧ，ＢＧ）を計算するための手段，ここでＲＧ，ＧＧ及びＢＧのそれぞれのチャンネルは，「ＲＧ =（１.０−IＬ）*（ＲＭｉｎＡＭＢ）+IＬ*（ＲＭＡＸＡＭＢ）」，「ＧＧ=（１.０−IＬ）*（ＧＭｉｎＡＭＢ）+IＬ*（ＧＭＡＸＡＭＢ）」及び「ＢＧ=（１.０−IＬ）*（ＢＭｉｎＡＭＢ）+IＬ *（ＢＭＡＸＡＭＢ）」として定義される；ｚインターセクションを考慮した累積密度を，ルックアップテ−ブルで定められるα値（透明度）に変換するための手段，ここでｚインターセクションを考慮した累積密度ＡＣＣ２[i][j]は，ルックアップテ−ブルの入力として用いられ，α値ＡＧはテーブルの出力である；表面物体のバッファＲＧＢＡ像，フレームバッファ，（ＲＳ，ＧＳ，ＢＳ，ＡＳ）を得るための手段；そして，断片（ｉ，j）に関係するシェーディングの付いたガス状物体の色（ＲＧ，ＧＧ，ＢＧ，ＡＧ）を，断片（ｉ，j）に関係する表面物体の断片の色（ＲＳ，ＧＳ，ＢＳ，ＡＳ）と結合するための手段，ここで「Ｒ=（１−ＡＧ）*ＲＳ+ＡＧ*ＲＧ」，「Ｇ=（１−ＡＧ）*ＧＳ+ＡＧ*ＧＧ」，「Ｂ=（１−ＡＧ）*ＢＳ+ＡＧ*ＢＧ」及び「Ａ=（１−ＡＧ）*ＡＳ+ＡＧ*ＡＧ」により，（Ｒ，Ｇ，Ｂ，Ａ）として定義される，を有する累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体の像に変換するシステムに関する。
【発明の効果】
【００１４】
すなわち，本発明の新しい回路は，例えば，２つのパスだけを使ってシェーディングされたガス状物体をレンダリングすることを可能にする。全ての既存のアルゴリズム，回路又は特許では少なくとも２回レンダリングされるのに対し，本発明におけるガス状物体は一度だけレンダリングされればよい。このパスの間，密度に関係する情報だけは，バッファ像に蓄積される。表面物体及びガス状物体によるインターセクションは，アルゴリズムのこのレベルで起こる。それから，ポスト合成が行われる。ガス状物体は処理されない，すなわち粒子はレンダリングされないで，バッファイメ−ジの断片だけは処理される。この過程では，シェーディング値は光方向及びバッファ像だけを使って計算される。全ての断片を処理した後に，像は表示されるように準備される。
【発明を実施するための最良の形態】
【００１５】
この発明では，単純のために，ガス状物体は粒子の組と定義される。それぞれの粒子は，ビルボ−ド球と定義される。コンピュ−タグラフィックでは，ビルボ−ドは通常いつも見る方向と同一直線上にある四角形として定義される。四角形として定義されることで，四角形に属するすべての断片に対して結果として生じる深さ値は等しい。ビルボ−ド球は，ビルボ−ド四角形の拡張である。同様に，通常見る方向と同一直線上にある参照四角形が使われ，生じる深さ値（以下Ｚ１という）はそれぞれの断片に対して一定である，その上，以下Ｚ２とよばれる別の深さ値がそれぞれの断片に対して定義される。この第２の深さ値にはガウス分布がある，すなわち，それは四角形の中央で断片に対する最大値を持つ，そして，断片が四角形の境界に近づくと，０に減少する。本発明における簡略化は，従来のビルボ−ド四角形の使用である，そして，一定値として１／（Ｚ２−Ｚ１）を定義する。この場合，遠近法による投影のためにわずかに人工的に見えるかもしれない。
【００１６】
図１は，イメージを得るためのレンダリングシーケンスを示す。図１に示すように，表面物体がレンダリングされる。そして，深さバッファ像，及びフレームバッファと呼ばれるＲＧＢＡ色画像を生じる。表面物体の三次元化が完成すると，蓄積段階とポスト合成段階が行われる。以降，最初に蓄積段階，それから，ポスト合成段階を解説する。
【００１７】
図２は，ｚインターセクションを考慮した場合と，ｚインターセクションを考慮しない場合とで，密度の蓄積の計算を可能にする回路又はシステムを示す。図２のシステムには２つの下位システムがある，１つは減衰要素ＤＺを計算するための下位システムである，そして，他は減衰要素ＤＺを用いてガス状物体の累積密度を計算するための下位システムである。
【００１８】
最初の下位システムにおいて，ＤＺは以下の式１に基づいて計算される：
【００１９】
【数１】
2011159328.tif 000003
・・・（１）
すなわち，Ｚ１がＺＳより大きいとき，ＤＺは０と等しく，ＺＳがＺ１以上でありＺ２より小さいとき，ＤＺはＺＳ−Ｚ１／Ｚ２−Ｚ１と等しく，ＺＳがＺ２より大きいとき，ＤＺは１と等しい。
【００２０】
第２の下位システムで，１つはｚ減衰，他はｚ減衰なしでガス状物体の２種の蓄積密度が計算される。特に，これらの蓄積している密度は，ポスト合成ステップ，特にガス状物体の視覚座標でのシェーディングにおいて有効である。
【００２１】
図２に示すように，回路の入力は，粒子Ｐに関係する断片位置（ｉ，j）；テクスチャ値Ｔｕｖ；粒子Ｐに関係する粒子密度値Ｄ；及び断片位置（ｉ，j）に対応する２つのｚ値（Ｚ１，Ｚ２）である。すべての入力は，前もって計算されるか，いずれかで定められる。
【００２２】
（減衰要素，ＤＺを計算するためのシステム）
減衰要素を計算するための下位システムにおいて，システムはすべての断片（ｉ，j）に対して上記の式１に基づきＤＺを計算する。すなわち，すべての断片（ｉ，j）に対して，演算子２５０，２５１，２５２，２５３及び２５４を用いて値「ＺＳ−Ｚ１」，「Ｚ２−ＺＳ」及び「（ＺＳ−Ｚ１）／（Ｚ２−Ｚ１）」が計算される。テスト装置２５５と２５６とは，式１で表される論理によって，出力する値を決定するために用いられる。この下位システムの出力は，密度を累積する下位システムの部分である乗算器２５７の入力として使われる減衰要素ＤＺである。ＺＳは，０と１との間である。Ｄ２=Ｄ*Ｔｕｖ*ＤＺ。Ｄ*ＴｕｖはＤ１と等しく，乗算器２０２を使って計算される。そして，値：Ｄ２ = Ｄ１ * ＤＺは，乗算器２５７を使って計算される。
【００２３】
さらに詳細な，図２に示される減衰要素ＤＺ，を計算するための下位システムは，入力値（Ｚ１，Ｚ２）及び断片位置（ｉ，j）の組を得るための手段；断片位置（ｉ，j）に関係する表面深さバッファ２０１を読み，表面深さ値ＺＳを生じさせるための手段；入力としてＺ１及びＺ２を用いて，例えば加算２５０で「Ｚ２−Ｚ１」を計算するための手段；入力として値「Ｚ２−Ｚ１」を用いて，例えば逆数ルックアップテ−ブル２５１で「１／（Ｚ２−Ｚ１）」を計算するための手段；入力として値ＺＳ及びＺ１を用いて，例えば加算２５３で「ＺＳ−Ｚ１」を計算するための手段；入力として値ＺＳ及びＺ２を用いて，例えば加算２５４で「ＺＳ−Ｚ２」を計算するための手段；入力として値「ＺＳ−Ｚ１」及び「１／（Ｚ２−Ｚ１）」を用いて，例えば乗算器２５２で「（ＺＳ−Ｚ１）／（Ｚ２−Ｚ１）」を計算するための手段；「ＺＳ−Ｚ１」が０より大きいこと及び「Ｚ２−ＺＳ」が０より大きいことを立証するための手段；そして上述した式１に基づいて立証するための手段の結果に基づき，減衰要素ＤＺとして以下の値を出力するための手段を具備する。
【００２４】
例えば，加算器又は減算器２５０は，Ｚ１及びＺ２を得て，「Ｚ２−Ｚ１」を計算する。ルックアップテ−ブル２５１は，加算器２５０から「Ｚ２−Ｚ１」を得て，「１／（Ｚ２−Ｚ１）」を出力する。表面深さバッファは，断片位置（ｉ，j）に一致する表面深さ値ＺＳを保存し，（ｉ，j）を得て，（ｉ，j）に関係するＺＳを出力する。加算器又は減算器２５３は，Ｚ１及び表面深さバッファ２０１からＺＳを得て，「ＺＳ−Ｚ１」を出力する。乗算器又は除算器２５４は，Ｚ２及び表面深さバッファ２０１からＺＳを得て，「ＺＳ−Ｚ２」を出力する。もちろん，加算器２５４は装置２５６が「ＺＳ−Ｚ２」が０未満であるかどうかについて調べるときに「ＺＳ−Ｚ２」を計算すれば良い。乗算器２５２は加算器２５０から「１／（Ｚ２−Ｚ１）」を得て，加算器２５３から「ＺＳ−Ｚ１」を得て，「（ＺＳ−Ｚ１）／（Ｚ２−Ｚ１）」を出力する。テスト装置２５５は装置２５２から「（ＺＳ−Ｚ１）／（Ｚ２−Ｚ１）」を得て，「（ＺＳ−Ｚ１）／（Ｚ２−Ｚ１）」が０より大きいかを調べる。テスト装置２５６は装置２５４から「Ｚ２−ＺＳ」を得て，値「Ｚ２−ＺＳ」が０より大きいかを調べる。さらに，テスト装置の判断に基づいて，０，「ＺＳ−Ｚ１」／（Ｚ２−Ｚ１）」又は１が，減衰要素ＤＺとして出力される。
【００２５】
（蓄積密度を計算するためのシステム）
図２では，ガスバッファ２００が前に計算された，又は利用者が定めた蓄積密度ＡＣＣ１[i][j]及びＡＣＣ２[i][j]を保存する。ここでＡＣＣ１[i][j]はＺインターセクションによる減衰のない蓄積密度である。そして，ＡＣＣ２[i][j]はＺインターセクションによる減衰のある累積密度である。図２では，蓄積密度は前の累積密度の値を用いて計算され，ガスバッファ２００に上書きされる。
【００２６】
さらに詳細な，図２に示されるＺインターセクションを考慮した場合と及びＺインターセクションを考慮しない蓄積密度を計算するための下位システム（ＤＺ）は，
ガス状物体の断片位置（ｉ，j）を得るための手段；断片位置（ｉ，j）に関係するテクスチャ−値Ｔｕｖを得るための手段，；断片密度値Ｄを得るための手段；例えば乗算器２０２で，入力としてＤ及びＴｕｖを用いて，「Ｄ１」として定義される「Ｄ*Ｔｕｖ」を計算するための手段；例えば乗算器２５７で，入力としてＤＺ及びＤ１（乗算器２０２の出力）を用いて，「Ｄ２」として定義される「ＤＺ*Ｄ１」を計算するための手段；蓄積密度ＡＣＣ１[i][j]及びＡＣＣ２[i][j]を保存するための手段，ここでＡＣＣ１[i][j]はＺインターセクションによる減衰のない蓄積密度であり，ＡＣＣ２[i][j]はＺインターセクションによる減衰のある累積密度である，そして，例えばガスバッファ２００で，入力として断片位置（ｉ，j）を用いて，ＡＣＣ１[i][j]及びＡＣＣ２[i][j]を得る；例えば加算器２０３で，入力としてＤ１及びＡＣＣ１[i][j]を用いて，「ＡＤ１」として定義される「ＡＣＣ１[i][j]+Ｄ１」を計算するための手段；そして，例えば加算器２０４で，入力としてＤ２及びＡＣＣ２[i][j]を用いて，「ＡＤ２」として定義される「ＡＣＣ２[i][j]+Ｄ２」を計算するための手段を具備する。
【００２７】
上記の下位システムにおいて，ＡＤ１及びＡＤ２は新しい蓄積密度として使われ，ガスバッファ
２００に上書きされる。ＡＤ１はＺインターセクションによる減衰のない新しい蓄積密度であり，ＡＤ２はＺインターセクションによる減衰のある新しい累積密度である。
【００２８】
図２に示される回路は，Ｚ減衰での１の密度及び，Ｚインターセクションを考慮しない別の密度で，ガスの密度を累積するための手段を提供する。ポスト合成の節で示されるように，両方の密度を蓄積することは，ポスト合成段階で，そして特に，視覚座標でガス状物体にシェーディングを付けるために有用である。
【００２９】
この発明の最良の形態は，３２ビットの語で密度値を保存することである。それぞれの密度値を１６ビットの値として表し、すべての断片（ｉ，j）に対して，蓄積バッファへの読込み・書込みアクセスを行えば、３２ビットのバスサイズであれば１回で一対送り込むことができる。こうして、小さなバス幅でバッファへのアクセスが１クロックあたりで１断片書き込むことができ、高性能化をもたらす。さらにまた，粒子がビルボ−ドとして定められることで，線形アクセス記憶で，装置座標上で断片の矩形領域になるため，バッファのキャッシングが非常に効率的に実行される。密度ごとに１６ビットの語を使用することは，小さなサイズの演算子（加算器及び乗算器）を使うことを可能とする，これにより１８Ｋゲ−ト未満の，非常に小さなサイズとなる。
【００３０】
理想的なシステムは，１６ビットの浮動小数点値からなる。１６ビットの加算器は１.６Kのゲ−ト，そして１６ビットの乗算器は，１.５Ｋのゲ−トを用いて構成され得る。図２に示される回路は，３つの乗算器及び５つの加算器を含み，合計１２.５Ｋのゲ−トとなる。追加のゲ−トは，逆数ルックアップテ−ブル，遅延限界及び他の実行に特有の特徴のために必要とされる。しかし，図で開示された概念に基づき回路を実施することによって，ハ−ドウェア費用を節約すること，及び即時に表面物体と交わるガス状物体のコンピュ−タグラフィックを得ることができた。
【００３１】
（ポスト合成）
この段階の間に，累積密度ＡＤ１及びＡＤ２は，シェーディングのつけられたガス状物体の色ＲＧＢ，及びその透明度Ａに対応するＲＧＢ又はＲＧＢＡ色に変換される。図３は下位モジュ−ルからなるポスト合成段階のためのシステムの概略図を示す。システムは，ガス状物体の視覚座標でシェーディングを計算し，ガス状物体を表面物体と結合するためのシステムである。
【００３２】
図３では，ガスバッファ２００は図２のそれと同じであり，そして，いくつかのモジュ−ル及び表面フレームバッファがある。
【００３３】
（モジュ−ル１）
図４は，図３のモジュ−ル１の概略図を示す。図４に示されるように，モジュ−ル１は，上記で定義されたＤ１を得るための手段，ｚインターセクションを考慮しないで蓄積バッファで最大累積密度の逆数１／ＡＭＡＸを得るための手段，入力としてＤ１及び１／ＡＭＡＸを用いて，例えば乗算器３００で，Ｄ１／ＡＭＡＸを計算するための手段を有する。言い換えれば，モジュ−ルは少なくとも２つの入力及び乗算器３００からなる。Ｄ１は，「Ｄ*Ｔｕｖ」を意味し，それは断片位置（ｉ，j）に関係するｚインターセクションを考慮しない累積密度である。Ｄ１及び１／ＡＭＡＸは，すでにいずれかで得られているので，これらの値を得ることは簡単である。
【００３４】
値ＡＭＡＸは，いろいろな方法によって得られる。例えば，図３に示される模式的な回路は，いくつかの専用レジスタでｚインターセクションを考慮しないで最大蓄積密度値を保存するように少し修正された。そうでなければ，蓄積バッファの全ての値を読んで最大値を保存している間に，値ＡＭＡＸは検索される。この演算は，ポスト合成演算につき１回実行される。この演算はポスト合成段階で全ての断片に対して１回なされるので，逆数１／ＡＭＡＸの計算は，この回路のいずれかでされる。
【００３５】
図３で示されるモジュ−ル１及び，図４で示されるそれと対応する模式的な回路は，ｚインターセクションなしで間隔[０，１]への流動値である蓄積密度値の位置付けを定める。この回路の利点は，浮動小数点表現から定点／整数表現へ，ｚインターセクションの考慮なしで蓄積密度値の表現を変えることが可能ということである。整数表現を持つことの主な利点は，回路のサイズ縮小である。
【００３６】
（モジュ−ル２）
図５は，図３でのモジュ−ル２の概略図を示す。図５で示される模式的な回路は，視覚空間座標においてＸ方向での光の影響を計算する。
【００３７】
図５に示すように，モジュ−ルは４又は５つの入力，加算器４００及び２つの乗算器４０１，４０２からなる。モジュ−ル１で得られるＤ１／ＡＭＡＸは，モジュ−ル２を通過する。図５に示すように，Ｘ方向の光方向，ＬＸ；断片位置，ｉ；ＸＭｉｎ及び１／（ＸＭａｘ−ＸＭｉｎ）が，モジュ−ル２に入力される。言い換えると，モジュ−ルはＬＸを得るための手段；ｉを得るための手段；ＸＭｉｎを得るための手段；１／（ＸＭａｘ−ＸＭｉｎ）を得るための手段；例えば加算器４００で，入力としてｉ及びＸＭｉｎを用いて，ｉ−ＸＭｉｎを計算するための手段；例えば乗算器４０１で，入力としてｉ−ＸＭｉｎ及び１／（ＸＭａｘ−ＸＭｉｎ）を用いて，（ｉ−ＸＭｉｎ）／（ＸＭａｘ−ＸＭｉｎ）」を計算するための手段；例えば乗算器４０２で，入力として「ｉ−ＸＭｉｎ／（ＸＭａｘ−ＸＭｉｎ）」及びＬＸを用いて，「ＬＸ（ｉ−ＸＭｉｎ）／（ＸＭａｘ−ＸＭｉｎ）」を計算するための手段。得られた値「ＬＸ（ｉ−ＸＭｉｎ）／（ＸＭａｘ−ＸＭｉｎ）」は，省略されて，IＬＸとも呼ばれる。
【００３８】
例えば光方向が（１，０，０）であると仮定する。そうすると，Ｘ方向での光の寄与は「（i−ＸＭｉｎ）／（ＸＭａｘ−ＸＭｉｎ）」に等しい。大まかに言えば，それはi=ＸＭｉｎにより定められた境界線に近い雲の点に対し，Ｘ方向のシェーディングの影響は０と等しいことを意味する，そして，点座標iが逆の境界線（i=ＸＭａｘ）に近づくにつれ，影響は大きくなる，すなわち，値は１に近づく。言い換えると，模式的な回路は最も低い値で値の勾配を計算する，すなわち，ｉがＸＭａｘに近づくと０で，ｉがＸＭｉｎに近づくと大きくなる（ＬＸを最大値として）。
【００３９】
（モジュ−ル３）
図６は図３でのモジュ−ル３の概略図を示している。図６で示される模式的な回路は，視覚空間座標におけるＹ方向での光の影響を計算する。図６から分かるように，モジュ−ルはモジュ−ル２と同じ要素から構成され，そして入力値だけが異なる。すなわち，モジュ−ル１で得られるＤ１／ＡＭＡＸは，モジュール３を通過する。図６に示すように，Ｙ方向の光方向，ＬＹ；断片位置，ｊ；ＹＭｉｎ及び１／（ＹＭａｘ−ＹＭｉｎ）は，モジュ−ル３に入力される。得られた値「ＬＸ（ｊ−ＹＭｉｎ）／（ＹＭａｘ−ＹＭｉｎ）」は，省略されて，IＬＹとも呼ばれる。
【００４０】
（モジュ−ル４）
図７は図３でのモジュ−ル４の概略図を示す。これはＸＹ平面でのシェーディング値を出力するために，シェーディング値IＬＸとIＬＹとを結合するシステムである。モジュ−ル２の出力は，Ｘ方向でのシェーディングの寄与，IＬＸであり，モジュ−ル３の出力はＹ方向でのシェーディングの寄与，IＬＹである。図３のモジュ−ル４及び図７で示されるそれに対応する概略図は，ＸＹ平面でのシェーディング値を出力するために，シェーディング値IＬＸとIＬＹとを結合するシステムを描いている。
【００４１】
（ＬＸＹＡｔｔ，ＬＸＹＭｉｎ，ＬＸＹＭａｘ）の組は，利用者が定めた，ＸＹ平面でのシェーディングの制御を可能とする値の組である。図７に示すように，IＬＸはモジュ−ル２から入力される，IＬＹはモジュ−ル３から入力される，そして，Ｄ１／ＡＭＡＸはモジュ−ル１から入力される。ＬＸＹＡｔｔ，ＬＸＹＭｉｎ及びＬＸＹＭａｘはいずれかで計算され，又は利用者によって定められる，そしてモジュ−ル４に入力される。図７に示すように，モジュ−ル４は次からなる：Ｘ方向でのシェーディング値，IＬＸを得るための手段；Ｙ方向でのシェーディング値，IＬＹを得るための手段；スカラ−値の組（ＬＸＹＡｔｔ，ＬＸＹＭｉｎ及びＬＸＹＭａｘ）を得るための手段；断片位置（ｉ，j）に関係する間隔[０，１]に図示されたｚインターセクションを考慮しないで累積密度値「Ｄ１／ＡＭＡＸ」を得るための手段；例えば加算器６００で，入力としてIＬＸ及びIＬＹを用いて，「IＬＸ+IＬＹ」を計算するための手段；例えば乗算器６０１で，入力としてＬＸＹＡｔｔ及びＤ１／ＡＭＡＸを用いて，「ＬＸＹＡｔｔ*Ｄ１／ＡＭＡＸ」を計算するための手段；例えば加算器６０３，乗算器または１−Ｘ検索で，入力として「ＬＸＹＡｔｔ*Ｄ１／ＡＭＡＸ」を用いて，「１−ＬＸＹＡｔｔ*Ｄ１／ＡＭＡＸ」を計算するための手段；例えば乗算器６０２で，入力として「１−ＬＸＹＡｔｔ*Ｄ１／ＡＭＡＸ」及び「ＬＸ+ＬＹ」を用いて，「Ｄｅｌｔａ_IＬＸＹ」と以下で呼ばれる「（１−ＬＸＹＡｔｔ*Ｄ１／ＡＭＡＸ）*（ＬＸ+ＬＹ）」を計算するための手段；例えば加算器６０４，乗算器または１−Ｘ検索で，入力として「Ｄｅｌｔａ_IＬＸＹ」を用いて，「１−Ｄｅｌｔａ_IＬＸＹ」を計算するための手段；例えば乗算器６０５で，入力として「Ｄｅｌｔａ_IＬＸＹ」及び「ＬＸＹＭａｘ」を用いて，「Ｄｅｌｔａ_IＬＸＹ*ＬＸＹＭａｘ」を計算するための手段；例えば乗算器６０６で，入力として「１−Ｄｅｌｔａ_IＬＸＹ」及び「ＬＸＹＭｉｎ」を用いて，「１−Ｄｅｌｔａ_IＬＸＹ *ＬＸＹＭｉｎ」を計算するための手段；例えば加算器６０７で，入力として「Ｄｅｌｔａ_IＬＸＹ*ＬＸＹＭａｘ」及び「１−Ｄｅｌｔａ_IＬＸＹ*ＬＸＹＭｉｎ」を用いて，「１−Ｄｅｌｔａ_IＬＸＹ」*ＬＸＹＭｉｎ+Ｄｅｌｔａ_IＬＸＹ*IＬＸＹＭａｘ」を計算するための手段；図７に示すように，モジュ−ル４は３つの加算器，４つの乗算器，２つのテ−ブル，６本の入力線，及び１本の出力線を用いて実行され得る。
要素６０３と６０４とは，演算子１−Ｘとして定められる。もちろん，それはいくつかの加算器によって取り替えることができる。しかし，入力値の種類は，nビットの，符号のない整数である。したがって，１−Ｘを計算するために，全てのnビットは，逆にされる（~）。&は，全てのnより低いビットが考慮されることを意味する。原稿では，それはどんな長さでも使えるので，ビットの幅を指定しなかったことに気をつける。実際には，８ビットで十分である。この図形（~&）は，他の図でも使われる。
【００４２】
（平面のシェーディング）
モジュ−ル２，３及び４は，光のベクトル方向ＬＸ及びＬＹ，ｚインターセクションを考慮しない蓄積密度に従い，ＸＹ平面でのシェーディングの寄与を計算するための手段を提供する，そしてその制御のために利用者は状態（ＬＸＹＡｔｔ，ＬＸＹＭｉｎ，ＬＸＹＭａｘ）を定める。
【００４３】
シェーディングの式は，物理的な原理でなく，むしろ日常生活観察に基づく。モジュ−ル２，３及び４，そして対応する図５，６及び７は，そのようなシェーディングを実現するための手段を提供する。このシェーディングは，ＸＹシェーディング又は平面のシェーディングと呼ばれ，以下の通りに説明される。
【００４４】
前述のように，ガス状物体の閉ざされている四角形は，計算されて，いずれかに保存されている。この四角形は，２Ｄパラメ−タの空間を定め，そこでガス状物体のそれぞれの断片位置（ｉ，j）が間隔[０，１]において（u，v）で，（u，v）座標としてパラメ−タ化される。図８は，ガス状物体の断片位置（ｉ，j）の図解を示す。
【００４５】
位置付けは，単純に以下の通りに実行される。
【００４６】
【数２】
2011159328.tif 000004
【００４７】
光方向の構成要素（ＬＸ，ＬＹ）を用いて，平面シェーディングを計算することができる。このシェーディング値は，単に勾配として定められる。例えば，（ＬＸ，ＬＹ）が（１，０）に等しいと仮定する。この場合，最も明るい場所はＸＭｉｎに近い断片，暗い場所はＸＭａｘに近い断片に対して定められる。従って，もし（ＬＸ，ＬＹ）が（−１，０）と等しければ，そのときは反対の構成が定められなければならない。（ＬＸ，ＬＹ）が（０，±１）に等しい場合において，似たような観察がなされ得る。中間の場合では，ＬＸ及びＬＹが０でなく，明るさへの寄与は（ＬＸ，ＬＹ）による。単純な線形勾配は，現実的な結果を提供しない。したがって，ここではｚインターセクションを考慮しないで累積密度値を用いて，それに混乱を付加することをここでは提案する。以下のＣのようなアルゴリズムは，IＬＸＹを散在する側を計算するために用いられる。
【００４８】
入力：断片座標（ｉ，j）
位置付けられた密度Ｄ１／ＡＭＡＸ
u=（i−ＸＭｉｎ）*（１／（ＸＭｉｎ−ＸＭＡＸ））；
v=（j−ＹＭｉｎ）*（１／ＹＭｉｎ−ＹＭＡＸ）；
摂動=（１.０−ＬＸＹＡｔｔ*Ｄ１／ＡＭＡＸ）
Ｄｅｌｔａ_IＬＸＹ=（ＬＸ*u+ＬＹ*v）*摂動；
IＬＸＹ=（１.０−Ｄｅｌｔａ_IＬＸＹ）*ＬＸＹＭｉｎ+Ｄｅｌｔａ_IＬＸＹ*ＬＸＹＭａｘ；
出力：散在する側の値(IＬＸＹ)
【００４９】
上記のアルゴリズムにおいて，利用者が指定した３つの値，ＬＸＹＡｔｔ，ＬＸＹＭｉｎ，ＬＸＹＭａｘ，が使われる。最初の値は，密度値を用いている勾配混乱の影響を制御する，そして他の２つの値は，平面のシェーディング値が属する明暗度間隔を定める。
【００５０】
（モジュ−ル５）
図９は図３でのモジュ−ル５の概略図を示す。それはｚ方向での光，ＬＺに従い，視覚方向でのシェーディングの寄与度であるIＬＺを計算するためのシステムである。
【００５１】
（ＬＺＡｔｔ，ＬＺＭｉｎ，ＬＺＭＡＸ）のタプルは，利用者が定める，ｚ方向でシェーディングを制御することができる値の組である。図９に示すように，ｚ方向での光方向，ＬＺ，及びＤ１／ＡＭＡＸは，モジュ−ル１から入力される。ＬＺＡｔｔ，ＬＺＭｉｎ及びＬＺＭＡＸは，計算されるか，利用者によっていずれかで定められ，モジュ−ル５に入力される。
【００５２】
図９に示すように，モジュール５は次からなる：ｚ方向での光方向，ＬＺを得るための手段；スカラ−値（ＬＺＡｔｔ，ＬＺＭｉｎ及びＬＺＭＡＸ）の組を得るための手段；断片位置（ｉ，j）に関係する間隔[０，１]に位置付けされたｚインターセクションを考慮しない累積密度値「Ｄ１／ＡＭＡＸ」を得るための手段；例えば乗算器７００で，入力としてＬＺＡｔｔ及びＤ１／ＡＭＡＸを用いて，「ＬＺＡｔｔ*Ｄ１／ＡＭＡＸ」を計算するための手段；例えば加算器７０２，乗算器又は１−Ｘテ−ブルで，入力として「ＬＺＡｔｔ*Ｄ１／ＡＭＡＸ」を用いて，「１−ＬＺＡｔｔ*Ｄ１／ＡＭＡＸ」を計算するための手段；例えば乗算器７０１で，入力として（１−ＬＺＡｔｔ*Ｄ１／ＡＭＡＸ）及びＬＺを用いて，「Ｄｅｌｔａ_IＬＺ」として以下で呼ばれる「（１−ＬＺＡｔｔ*Ｄ１／ＡＭＡＸ）*ＬＺ」を計算するための手段；例えば乗算器７０４で，入力として「Ｄｅｌｔａ_IＬＺ」及び「ＬＺＭＡＸ」を用いて，「Ｄｅｌｔａ_IＬＺ*ＬＺＭＡＸ」を計算するための手段；例えば乗算器７０５で，「１−Ｄｅｌｔａ_IＬＺ」及びＬＺＭｉｎを用いて，「（１−Ｄｅｌｔａ_IＬＺ）*ＬＺＭｉｎ」を計算するための手段；例えば加算器７０６で，入力として「Ｄｅｌｔａ_IＬＺ*ＬＺＭＡＸ」及び「（１−Ｄｅｌｔａ_IＬＺ）*ＬＺＭｉｎ」を用いて，「（１−Ｄｅｌｔａ_IＬＺ）*ＬＺＭｉｎ+Ｄｅｌｔａ_IＬＺ*IＬＺＭＡＸ」を計算するための手段。図９に示すように，モジュ−ル５は１つの加算器，４つの乗算器，２つのテ−ブル，５本の入力線，及び１本の出力線を用いて実行される。
【００５３】
前の節では，光方向ベクトルの構成要素（ＬＸ，ＬＹ）を用いて平面のシェーディング値を考慮した。視覚方向に沿ってシェーディングを計算するために，光方向の構成要素ＬＺが使われる。このシェーディング値の計算は，Ｌｚ値の符号による。プラスならば，光がガス状物体の後に位置することを意味する，そしてマイナスならば，光がガス状物体の前に位置することを意味する。この値をIＬＺとして示す。ＸＹシェーディングに関してと同じ観察がなされる。光方向の構成要素ＬＺが１と等しければ，そのとき前面の散在は最大値（そして平面のシェーディングは，０である）で，そしてその逆も成り立つ。
【００５４】
以下のＣのようなアルゴリズムは，IＬＺを散在している側を計算するために用いられる：
入力：断片座標（ｉ，j）
位置付けられた密度Ｄ１／ＡＭＡＸ
摂動=(１.０−ＬＺＡｔｔ* Ｄ１／ＡＭＡＸ)
Ｄｅｌｔａ_IＬＺ=（ＬＺ）*摂動；
IＬＺ=（１.０−Ｄｅｌｔａ_IＬＺ）*ＬＺＭｉｎ+Ｄｅｌｔａ_IＬＺ *ＬＺＭＡＸ；
出力：前面／背面の散在値(IＬＺ)
【００５５】
上記のアルゴリズムでは，３つの値，ＬＺＡｔｔ，ＬＺＭｉｎ及びＬＺＭＡＸが使われる。これらの値は，横の散在に関してと類似した方法で，前面／背面の散在を制御する。
【００５６】
それでもやはり，利用者は６つの値，前面の光散在のための３つ，及び背面の散在のための３つ，を指定しなければならない。ＬＺの符号に従い，１セット又は別の一つが選ばれて，アルゴリズムで使われる。
【００５７】
（モジュ−ル６）
図１０は，図３でのモジュ−ル６の概略図を示す。このモジュ−ルは，ＸＹシェーディングの寄与，Ｚシェーディングの寄与及び全体的な周囲の色を結合する。図１０に示すように，モジュ−ルは次からなる：ＸＹ平面でのシェーディングの寄与，IＬＸＹを得るための手段；視覚方向に沿ってのシェーディングの寄与，IＬＺを得るための手段；全体的な最小及び最大の周囲のＲＧＢ色，（ＲＭｉｎＡＭＢ，ＧＭｉｎＡＭＢ，ＢＭｉｎＡＭＢ）及び（ＲＭＡＸＡＭＢ，ＧＭＡＸＡＭＢ，ＢＭＡＸＡＭＢ）を得るための手段，それはシェーディングのために全体的な周囲の色を制御する；例えば加算器８００で，入力として「IＬＸＹ」及び「IＬ」を用いて，「IＬＸＹ+IＬＺ」（以下、“ＩＬ”ともよぶ）を計算するための手段；ＩＬを入力として用いて１−ＩＬを求める手段（例えば，加算器800）；例えば乗算器８０２など，入力として「IＬ」及び（ＲＭＡＸＡＭＢ，ＧＭＡＸＡＭＢ，ＢＭＡＸＡＭＢ）を用いて，IＬ*（ＲＭＡＸＡＭＢ，ＧＭＡＸＡＭＢ，ＢＭＡＸＡＭＢ）を計算するための手段；例えば加算器800又は１−Ｘテ−ブルなど，入力として「IＬ」を用いて，「１−IＬ」を計算するための手段；例えば乗算器８０３で，入力として「１−IＬ」及び（ＲＭｉｎＡＭＢ，ＧＭｉｎＡＭＢ，ＢＭｉｎＡＭＢ）を用いて，（１−IＬ）*（ＲＭｉｎＡＭＢ，ＧＭｉｎＡＭＢ，ＢＭｉｎＡＭＢ）を計算するための手段；例えば加算器８０４で，入力として（１−IＬ）*（ＲＭｉｎＡＭＢ，ＧＭｉｎＡＭＢ，ＢＭｉｎＡＭＢ）及びIＬ*（ＲＭＡＸＡＭＢ，ＧＭＡＸＡＭＢ，ＢＭＡＸＡＭＢ）を用いて，（１−IＬ）*（ＲＭｉｎＡＭＢ，ＧＭｉｎＡＭＢ，ＢＭｉｎＡＭＢ）＋IＬ*（ＲＭＡＸＡＭＢ，ＧＭＡＸＡＭＢ，ＢＭＡＸＡＭＢ）を計算するための手段；加算器８０４からの出力は，（１−IＬ）*ＲＭｉｎＡＭＢ+IＬ*ＲＭＡＸＡＭＢ，ＲＧ；(１−IＬ)*ＧＭｉｎＡＭＢ+IＬ*ＧＭＡＸＡＭＢ，ＧＧ；そして（１−IＬ）*ＢＭｉｎＡＭＢ+IＬ*ＢＭＡＸＡＭＢ，ＢＧである。これらの値，ＲＧ，ＧＧ及びＢＧ，は，ＧＡＳ  ＲＢＧ又はガス状物体の色，ＣＧとも呼ばれる。
【００５８】
図１０に示される模式的な回路は，ＸＹシェーディングをＺシェーディングと結合するための手段を提供し，そして全体的な周囲の最小及び最大値を考慮したガス状物体の断片のＲＧＢ色を計算するための手段も提供する。それは，シェーディングモデルの以下の説明に基づく。
【００５９】
所定の断片に対して，２つのシェーディング値IＬＸＹ及びIＬＺが計算される。これらの値は最初に加算され，値IＬを生じる。結果は，利用者が定義した周囲の最小及び最大値を用いて，断片の実際のＲＧＢ色を計算するために用いられる。
【００６０】
以下のＣのようなアルゴリズムは，断片のＲＧＢ色を計算するために用いられる：
IＬ = IＬＸＹ+IＬＺ；
ＲＧ =（１−IＬ）*周囲の最小赤+IＬ*周囲の最大赤
ＧＧ=（１−IＬ）*周囲の最小緑+IＬ*周囲の最大緑
ＢＧ =（１−IＬ）*周囲の最小青+IＬ*周囲の最大青
【００６１】
ここで，周囲の最小及び周囲の最大は，利用者が定めた２つのＲＧＢ色であり，それぞれのチャンネルに対して最小及び最大色の明暗度を制御する。シェーディングは，単純に全体的な最小の周囲色と全体的な最大の周囲色との間の線形展開である。光のシェーディング寄与IＬは，これらの２つの色を補間するために用いられる。
【００６２】
（モジュ−ル７）
図１１は，図３でのモジュ−ル７の概略図を示す。図１１に示すように，断片位置（ｉ，j）に関係するｚインターセクションを考慮した累積密度，Ｄ２及び減衰要素ＤＡｔｔは，モジュ−ルに入力される。モジュ−ル７，及び図１１に示される対応する模式的な回路は，ｚインターセクションを考慮した累積密度を透明度，α値に変換するための手段を提供する。図１１に示されるように，モジュ−ル７は次からなる：断片位置（ｉ，j）に関係するｚインターセクションを考慮した累積密度，Ｄ２を得るための手段；減衰要素，ＤＡｔｔを得るための手段；例えば乗算器９００で，入力としてＤ２及びＤＡｔｔを用いて，「Ｄ２*ＤＡｔｔ」を計算するための手段；例えば，値１−eｘpを計算するルックアップテ−ブル９０１で，入力として「Ｄ２*ＤＡｔｔ」を用いて，「１eｘp（−Ｄ２*ＤＡｔｔ）」を計算するための手段，ここで入力はＸであり，出力値は数学の関数１−eｘp（−Ｘ）である。出力値「１eｘp（−Ｄ２*ＤＡｔｔ）」は，ここではガス状物体のα値，ＡＧとも呼ばれる。
【００６３】
（モジュ−ル８）
モジュ−ル８は，ガス状物体の透明度，α値を考慮して，ガス状物体と表面物体とを組み合わせるために用いられる。ガス状物体の透明度を表すα値，ＡＧ；
ＧＡＳ ＲＢＧ，ＲＧ，ＧＧ及びＢＧ，言い換えればＣＧ；そして，赤，緑及び青の構成要素ＲＳ，ＧＳ及びＢＳ，それぞれからからなる断片位置（ｉ，j）での表面物体の色ＣＳ；は，モジュ−ル８へ入力される。モジュ−ル８は，表面物体の色を考慮してガス状物体の色を計算するための回路であり，以下を有する：ガス状物体の透明度，ＡＧを得るための手段；ガス状物体の色，ＲＧ，ＧＧ及びＢＧを含むＣＧ，を得るための手段；表面物体の色，ＣＳを得るための手段；例えば乗算器１００１又は１−Ｘテ−ブルで，入力としてＡＧを用いて，１−ＡＧを計算するための手段；例えば乗算器１００２で，入力として「１−ＡＧ」及びＣＧを用いて，（１−ＡＧ）*ＣＧを計算するための手段；例えば乗算器１００３で，入力としてＡＧ及びＣＳを用いて，ＡＧ*ＣＳを計算するための手段；そして，入力として（１−ＡＧ）*ＣＧ及びＡＧ*ＣＳを用いて，（１−ＡＧ）*ＣＧ+ＡＧ*ＣＳを計算するための手段。
【００６４】
出力値（１−ＡＧ）*ＣＧ+ＡＧ*ＣＳは，（１−ＡＧ）*ＲＧ+ＡＧ*ＲＳ，（１−ＡＧ）*ＧＧ+ＡＧ*ＧＳ及び（１−ＡＧ）*ＢＧ+ＡＧ*ＢＳからなり，表示されるための準備が整う。
【００６５】
（実施例１）
上記で開示した回路を用いることで，即時に表面物体の前に，ガス状物体の三次元コンピュ−タ画像を得た。
【産業上の利用可能性】
【００６６】
この発明は，コンピュ−タグラフィックスの分野に有用である。
【図面の簡単な説明】
【００６７】
【図１】像を得るための三次元化シ−ケンスを示す図である。
【図２】１つはｚインターセクションなしで，１つはｚインターセクションにより，密度の蓄積の計算を可能にする回路又はシステムを示す図である。
【図３】下位モジュ−ルからなるポスト合成段階用のシステムの概略図である。
【図４】図３のモジュ−ル１の概略図である。
【図５】図３のモジュ−ル２の概略図である。
【図６】図３のモジュ−ル３の概略図である。
【図７】ＸＹ平面でのシェーディング値を出力するために，シェーディング値IＬＸとIＬＹとを結合するためのシステムである，図３のモジュ−ル４の概略図である。
【図８】ガス状物体の断片位置（ｉ，j）の図解である。
【図９】ｚ方向光，ＬＺに従い，視覚方向でのシェーディング寄与，IＬＺを計算するためのシステムである，図３のモジュ−ル５の概略図である。
【図１０】図３のモジュ−ル６の概略図である。
【図１１】図３のモジュ−ル７の概略図である。
【図１】
2011159328.tif 000005
【図２】
2011159328.tif 000006
【図３】
2011159328.tif 000007
【図４】
2011159328.tif 000008
【図５】
2011159328.tif 000009
【図６】
2011159328.tif 000010
【図７】
2011159328.tif 000011
【図８】
2011159328.tif 000012
【図９】
2011159328.tif 000013
【図１０】
2011159328.tif 000014
【図１１】
2011159328.tif 000015