表面物体と結合されるガス状物体用の蓄積密度の像を計算するためのシステム
【課題】粒子を分類することなくガス状物体にシェーディングを付けるための回路又はシステムを提供することをこの発明の目的とする。
【解決手段】第1の側面は,蓄積パスのシステムに関し,ガス状物体の断片位置(i,j)を得る手段;断片位置に関係するz値Z1及びZ2を得る手段;断片位置に関係する表面の深さ値ZSを保存する手段;ZS−Z1/Z2−Z1を計算する手段;表面の深さ値ZS及び2つのz値,又は「ZS−Z1」が0より大きいこと及び「Z2−ZS」が0より大きいことを比較する手段;Z1がZSより大きいときにDZとして0を,ZSがZ1以上でありZ2より小さいときにDZとしてZS−Z1/Z2−Z1を,ZSがZ2より大きいときにDZとして1を出力する手段を具備する三次元コンピュ−タグラフィック用のガス状物体の減衰要素DZを計算するシステムに関する。
【解決手段】第1の側面は,蓄積パスのシステムに関し,ガス状物体の断片位置(i,j)を得る手段;断片位置に関係するz値Z1及びZ2を得る手段;断片位置に関係する表面の深さ値ZSを保存する手段;ZS−Z1/Z2−Z1を計算する手段;表面の深さ値ZS及び2つのz値,又は「ZS−Z1」が0より大きいこと及び「Z2−ZS」が0より大きいことを比較する手段;Z1がZSより大きいときにDZとして0を,ZSがZ1以上でありZ2より小さいときにDZとしてZS−Z1/Z2−Z1を,ZSがZ2より大きいときにDZとして1を出力する手段を具備する三次元コンピュ−タグラフィック用のガス状物体の減衰要素DZを計算するシステムに関する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は一般に三次元コンピュ−タグラフィックス用のグラフィック回路に関する。より詳しくは,表面物体と結合されるガス状物体用の蓄積密度の像を計算するためのシステムに関する。
【背景技術】
【0002】
文献では,シェーディングのついたガス状物体をレンダリングするための全てのアルゴリズムは,2か3つのパスを使って定められる。これらのパスは,通常以下の通りに定められる。最初のパスの間,ガス状物体は光座標系でレンダリングされる。そして,いくつかの情報が保存される。第2のパスは通常のレンダリングパスである。そして,ガス状物体はカメラ空間でレンダリングされる。いくつかのアルゴリズムでは,ガス状物体は表面物体と直接結合される。そして,この第2のパスの後,像は表示される準備が整う。いくつかの他のアルゴリズムでは,ガス状物体及び表面物体の組合せは,ポスト合成と呼ばれる追加のパスにおいてなされる。
【発明の開示】
【発明が解決しようとする課題】
【0003】
粒子を並べ替えることなくガス状物体にシェーディングを付けるための回路又はシステムを提供することが,この発明の目的である。
本発明の別の目的は,現在全てのアルゴリズムで存在するレンダリングパスを追加し,シェーディングパスを省くことなくガス状物体にシェーディングを付けるための回路又はシステムを提供することである。
とても小さなハ−ドウェア回路(例えば40Kゲ−ト未満)でガス状物体をレンダリングするための回路又はシステムを提供することが本発明のさらに別の目的である。
発明のさらに別の目的は,1つのバッファを用いてガス状物体をレンダリングするための回路又はシステムを提供することである。
発明のさらに別の目的は,コンピュ−タグラフィックスでガス状物体を定めるための新しい回路又はシステムを提供することである。
発明のさらに別の目的は,ガス状物体をリアルタイムにレンダリングするための3次元コンピュ−タグラフィックスの回路又はシステムを提供することである。
【課題を解決するための手段】
【0004】
発明によると,上記課題のいずれかひとつを解決するガス状物体のレンダリングへの新しいアプロ−チが提供される。発明の主な特徴は,レンダリング段階で,密度に関係する情報だけがバッファで蓄積され,そして,表面物体とのインターセクション及びガス状物体はガス状物体を構成する粒子をレンダリングせずに計算されることである。
【0005】
本発明の第1の側面は,蓄積パスのためのシステムに関する。より詳しくは,本発明の第1の側面は基本的には,三次元コンピュ−タグラフィック用のガス状物体の減衰要素DZを計算するための,ガス状物体の断片位置(i,j)を得るための手段と;Z1及びZ2を,断片位置(i,j)でガス状物体の部分的な厚みを定義する2つの深さ値として,断片位置(i,j)に関係するz値Z1及びZ2を得るための手段と;前記断片位置(i,j)に関係する表面の深さ値ZSを保存するための手段と;前記ZS,前記Z1及び前記Z2を用いてZS−Z1/Z2−Z1を計算するための手段と;前記表面の深さ値ZSと前記2つのz値,又は「ZS−Z1」が0より大きいかと「Z2−ZS」が0より大きいかを比較するための手段;そして前記Z1が前記ZSより大きいときに減衰要素DZとして0を,前記ZSが前記Z1以上であり前記Z2より小さいときに前記DZとして前記ZS−Z1/Z2−Z1を,前記ZSが前記Z2より大きいときに前記DZとして1を出力するための手段を具備するシステムに関する。
【0006】
第1の側面の好ましい態様は,以下の「ZS−Z1/Z2−Z1」を計算するための手段が入力としてZ1及びZ2を用いて「Z2−Z1」を計算するための手段;入力として値「Z2−Z1」を用いて「1/(Z2−Z1)」を計算するための手段;入力として値ZS及びZ1を用いて「ZS−Z1」を計算するための手段;入力として値ZS及びZ2を用いて「Z2−ZS」を計算するための手段;そして入力として「ZS−Z1」及び「1/(Z2−Z1)」を用いて「(ZS−Z1)/(Z2−Z1)」を計算するための手段を具備する上記したシステムに関する。
【0007】
第1の側面の好ましい態様は,ZS−Z1/Z2−Z1を計算するための手段が,入力としてZ1及びZ2を用いて,「Z2−Z1」を計算する加算器250;入力として値「Z2−Z1」を用いて,「1/(Z2−Z1)」を計算するための逆数ルックアップテ−ブル251;入力として値ZS及びZ1を用いて,「ZS−Z1」を計算するための加算器253;入力として値ZS及びZ2を用いて,「Z2−ZS」を計算するための加算器254;そして,入力として「ZS−Z1」及び「1/(Z2−Z1)」を用いて,「(ZS−Z1)/(Z2−Z1)」を計算するための乗算器252を具備する上記のいずれかのシステムである。
【0008】
第1の側面の好ましい態様は,ガス状物体の断片位置(i,j)を得るための手段;断片位置(i,j)に関係するテクスチャー値Tuvを得るための手段;断片位置(i,j)に関係する断片密度値Dを得るための手段;入力にD及びTuvを用いて,「D1」として定義される「D*Tuv」を計算するための手段;入力として減衰要素であるDZ及びTuvを用いて,「D2」として定義される「DZ*D1」を計算するための手段;入力として断片位置(i,j)を用いてACC1[i][j]及びACC2[i][j]を得て,累積密度ACC1[i][j]及びACC2[i][j]を保存するための手段,ここでACC1[i][j]はzインターセクションを考慮した累積密度,ACC2[i][j]はzインターセクションを考慮しない累積密度である;入力にD1及びACC1[i][j]を用いて,「AD1」として定義される「ACC1[i][j]+D1」を計算するための手段;そして,入力にD2及びACC2[i][j]を用いて,「AD2」として定義される「ACC2[i][j]+D2」を計算するための手段を具備する三次元コンピュ−タグラフィックス用のガス状物体の減衰要素DZ,及びzインターセクションを考慮したガス状物体の累積密度AD2を考慮して,zインターセクションを考慮せずに累積密度AD1を計算するためのシステムに関する。
【0009】
第1の側面の好ましい態様は,前記DZがガス状物体の断片位置(i,j)を得るための手段;断片位置(i,j)に関係するz値Z1及びZ2を得るための手段,ここでZ1及びZ2は断片位置(i,j)でガス状物体の部分的な厚さを定める2つの深さ値である;断片位置(i,j)に関係する表面深さ値ZSを保存するための手段;ZS,Z1及びZ2を用いて,ZS−Z1/Z2−Z1を計算するための手段;表面深さ値及び2つのz値,又は「ZS−Z1」が0より大きいこと及び「ZS−Z2」が0より大きいことを比較するための手段;そして;Z1がZSより大きいときにDZとして0を,ZSがZ1以上でありZ2より小さいときにDZとしてZS−Z1/Z2−Z1を,ZSがZ2より大きいときにDZとして1を出力するための手段を具備するシステムによって得られる上記のいずれかに記載のシステムに関する。
【0010】
この発明の第2の側面は,ポスト合成のためのシステムに関する。それは,基本的には,
視覚空間座標で光方向を得るための手段;視覚座標系でガス状物体と境界を有する箱を得るための手段;視覚座標系でガス状物体のシェーディング値を計算するための手段;zインターセクションを考慮した累積密度を透明度α値に変換するための手段;シェーディング計算の結果を用いてzインターセクションを考慮しない累積密度をRGB色に変換するための手段;そして,シェーディングの付けられたガス状物体像を表面物体像と結合するための手段を有する累積密度を表面物体で示されるシェーディングの付けられたガス状物体の像に変換するシステムに関する。
【0011】
第2の側面の好ましい態様は, バッファ像のすべての断片(i,j)を得るための手段;
視覚座標系でのガス状物体のz値を用いないガス状物体と境界を有する箱の座標(XMin,YMin),(XMax,YMax)を得るための手段;バッファ像に保存されたzインターセクションを考慮しない最大密度ACC1を得るための手段;視覚空間座標で光方向を得るための手段;XY平面において視覚座標で物体にシェーディングを付けるための手段;Z軸に沿って視覚座標で物体にシェーディングを付けるための手段;Zインターセクションを考慮した累積密度を透明度α値に変換するための手段;シェーディング計算の結果を用いてzインターセクションを考慮しない累積密度をRGB色に変換するための手段;表面物体のバッファRGBA像,フレームバッファを得るための手段;そして,断片(i,j)に関係するシェーディングの付けられたガス状物体の色を,断片(i,j)に関係する表面物体の断片の色と結合するための手段を有する累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体の像に変換するシステムに関する。
【0012】
第2の側面の好ましい態様は, バッファ像のすべての断片(i,j)を得るための手段;バッファACC1及びACC2に保存された断片(i,j)に関係する密度を得るための手段;(XMin,YMin),(XMax,YMax),z値を用いない視覚座標系でのガス状物体と境界を有する箱を得るための手段;バッファ像ACC1に保存されたzインターセクションを考慮しない最大密度ACC1を得るための手段;視覚空間座標(LX,LY,LZ)で光方向を得るための手段;XY平面でシェーディングを制御するスカラ−値の組(LXYAtt,LXYMin,LXYMax)を得るための手段;Z平面でシェーディングを制御するスカラ−値の組(LZAtt,LZMin,LZMax)を得るための手段;シェーディングのための全体的な周囲の色を制御する全体的な最小及び最大の周囲のRGB色(RMinAMB,GMinAMB,BMinAMB)及び(RMAXAMB,GMAXAMB,BMAXAMB)を得るための手段;断片(i,j)に関係する光方向LXでのシェーディングの寄与を計算するための手段;断片(i,j)に関係する光方向LYでのシェーディングの寄与を計算するための手段;断片(i,j)に関係する視覚座標系におけるXY平面でのシェーディングの寄与を計算するための手段;断片(i,j)に関係するZ軸に沿っての視覚座標でのシェーディングの寄与を結合するための手段;断片(i,j)に関係するXY平面でのシェーディング及びZ軸に沿ってのシェーディングを結合するための手段;断片(i,j)に関係する結果として生じたシェーディングと全体的な周囲の色とを結合するための手段;断片(i,j)に関係するガス状物体のRGB色を得るための手段;Zインターセクションを考慮した蓄積密度をα値(透明度)に変換するための手段;表面物体のバッファRGBA像,フレームバッファを得るための手段;そして,断片(i,j)に関係するシェーディングの付いたガス状物体の色を,断片(i,j)に関係する表面物体の断片の色と結合するための手段を有する累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体の像に変換するシステムに関する。
【0013】
第2の側面の好ましい態様は, バッファ像のすべての断片(i,j)を得るための手段;
バッファに保存される断片(i,j)に関係する密度,それぞれがACC1[i][j]及びACC2[i][j]であるACC1及びACC2を得るための手段;(XMin,YMin),(XMax,YMax),z値を用いない視覚座標系でのガス状物体と境界を有する箱を得るための手段;バッファ像ACC1に保存されたzインターセクションを考慮しない最大密度AMAXを得るための手段;視覚空間座標(LX,LY,LZ)で光方向を得るための手段;XY平面でシェーディングを制御するスカラ−値の組(LXYAtt,LXYMin,LXYMax)を得るための手段;Z平面でシェーディングを制御するスカラ−値の組(LZAtt,LZMin,LZMax)を得るための手段;シェーディングのための全体的な周囲の色を制御する全体的な最小及び最大の周囲のRGB色(RMinAMB,GMinAMB,BMinAMB)及び(RMAXAMB,GMAXAMB,BMAXAMB)を得るための手段;ILXとして定義され,「ILX=LX*(i−XMin)/(XMax−XMin)」である断片(i,j)に関係する光方向LXでシェーディングの寄与を計算するための手段;ILYとして定義され,「ILY=LY*(j−YMin)/(YMax−YMin)」である断片(i,j)に関係する光方向LYでシェーディングの寄与を計算するための手段;ILXYに等しく,Delta_ILXY=(1.0−LXYAtt*(ACC1[i][j]/AMAX))*(ILX+ILY)として,ILXY=(1−Delta_ILXY)* LXYMin+Delta_ILXY*LXYMaxで定義される,断片(i,j)に関係する視覚座標系でのXY平面におけるシェーディングの寄与を計算するための手段;ILZに等しく,Delta_ILZ=(1.0−LZAtt*(ACC1[i][j]/AMAX))*(LZ)」として,ILZ=(1−Delta_ILZ)* LZMin + Delta_ILXY*LZMAXで定義される,断片(i,j)に関係するZ軸に沿っての視覚座標でシェーディングの寄与を計算するための手段;ILとして定義され,IL=ILXY+ILZである断片(i,j)に関係するXY平面でのシェーディング及びZ軸に沿ってのシェーディングを結合するための手段;断片(i,j)に関係するガス状物体のシェーディングの付けられたRGB色(RG,GG,BG)を計算するための手段,ここでRG,GG及びBGのそれぞれのチャンネルは,「RG =(1.0−IL)*(RMinAMB)+IL*(RMAXAMB)」,「GG=(1.0−IL)*(GMinAMB)+IL*(GMAXAMB)」及び「BG=(1.0−IL)*(BMinAMB)+IL *(BMAXAMB)」として定義される;zインターセクションを考慮した累積密度を,ルックアップテ−ブルで定められるα値(透明度)に変換するための手段,ここでzインターセクションを考慮した累積密度ACC2[i][j]は,ルックアップテ−ブルの入力として用いられ,α値AGはテーブルの出力である;表面物体のバッファRGBA像,フレームバッファ,(RS,GS,BS,AS)を得るための手段;そして,断片(i,j)に関係するシェーディングの付いたガス状物体の色(RG,GG,BG,AG)を,断片(i,j)に関係する表面物体の断片の色(RS,GS,BS,AS)と結合するための手段,ここで「R=(1−AG)*RS+AG*RG」,「G=(1−AG)*GS+AG*GG」,「B=(1−AG)*BS+AG*BG」及び「A=(1−AG)*AS+AG*AG」により,(R,G,B,A)として定義される,を有する累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体の像に変換するシステムに関する。
【発明の効果】
【0014】
すなわち,本発明の新しい回路は,例えば,2つのパスだけを使ってシェーディングされたガス状物体をレンダリングすることを可能にする。全ての既存のアルゴリズム,回路又は特許では少なくとも2回レンダリングされるのに対し,本発明におけるガス状物体は一度だけレンダリングされればよい。このパスの間,密度に関係する情報だけは,バッファ像に蓄積される。表面物体及びガス状物体によるインターセクションは,アルゴリズムのこのレベルで起こる。それから,ポスト合成が行われる。ガス状物体は処理されない,すなわち粒子はレンダリングされないで,バッファイメ−ジの断片だけは処理される。この過程では,シェーディング値は光方向及びバッファ像だけを使って計算される。全ての断片を処理した後に,像は表示されるように準備される。
【発明を実施するための最良の形態】
【0015】
この発明では,単純のために,ガス状物体は粒子の組と定義される。それぞれの粒子は,ビルボ−ド球と定義される。コンピュ−タグラフィックでは,ビルボ−ドは通常いつも見る方向と同一直線上にある四角形として定義される。四角形として定義されることで,四角形に属するすべての断片に対して結果として生じる深さ値は等しい。ビルボ−ド球は,ビルボ−ド四角形の拡張である。同様に,通常見る方向と同一直線上にある参照四角形が使われ,生じる深さ値(以下Z1という)はそれぞれの断片に対して一定である,その上,以下Z2とよばれる別の深さ値がそれぞれの断片に対して定義される。この第2の深さ値にはガウス分布がある,すなわち,それは四角形の中央で断片に対する最大値を持つ,そして,断片が四角形の境界に近づくと,0に減少する。本発明における簡略化は,従来のビルボ−ド四角形の使用である,そして,一定値として1/(Z2−Z1)を定義する。この場合,遠近法による投影のためにわずかに人工的に見えるかもしれない。
【0016】
図1は,イメージを得るためのレンダリングシーケンスを示す。図1に示すように,表面物体がレンダリングされる。そして,深さバッファ像,及びフレームバッファと呼ばれるRGBA色画像を生じる。表面物体の三次元化が完成すると,蓄積段階とポスト合成段階が行われる。以降,最初に蓄積段階,それから,ポスト合成段階を解説する。
【0017】
図2は,zインターセクションを考慮した場合と,zインターセクションを考慮しない場合とで,密度の蓄積の計算を可能にする回路又はシステムを示す。図2のシステムには2つの下位システムがある,1つは減衰要素DZを計算するための下位システムである,そして,他は減衰要素DZを用いてガス状物体の累積密度を計算するための下位システムである。
【0018】
最初の下位システムにおいて,DZは以下の式1に基づいて計算される:
【0019】
【数1】
・・・(1)
すなわち,Z1がZSより大きいとき,DZは0と等しく,ZSがZ1以上でありZ2より小さいとき,DZはZS−Z1/Z2−Z1と等しく,ZSがZ2より大きいとき,DZは1と等しい。
【0020】
第2の下位システムで,1つはz減衰,他はz減衰なしでガス状物体の2種の蓄積密度が計算される。特に,これらの蓄積している密度は,ポスト合成ステップ,特にガス状物体の視覚座標でのシェーディングにおいて有効である。
【0021】
図2に示すように,回路の入力は,粒子Pに関係する断片位置(i,j);テクスチャ値Tuv;粒子Pに関係する粒子密度値D;及び断片位置(i,j)に対応する2つのz値(Z1,Z2)である。すべての入力は,前もって計算されるか,いずれかで定められる。
【0022】
(減衰要素,DZを計算するためのシステム)
減衰要素を計算するための下位システムにおいて,システムはすべての断片(i,j)に対して上記の式1に基づきDZを計算する。すなわち,すべての断片(i,j)に対して,演算子250,251,252,253及び254を用いて値「ZS−Z1」,「Z2−ZS」及び「(ZS−Z1)/(Z2−Z1)」が計算される。テスト装置255と256とは,式1で表される論理によって,出力する値を決定するために用いられる。この下位システムの出力は,密度を累積する下位システムの部分である乗算器257の入力として使われる減衰要素DZである。ZSは,0と1との間である。D2=D*Tuv*DZ。D*TuvはD1と等しく,乗算器202を使って計算される。そして,値:D2 = D1 * DZは,乗算器257を使って計算される。
【0023】
さらに詳細な,図2に示される減衰要素DZ,を計算するための下位システムは,入力値(Z1,Z2)及び断片位置(i,j)の組を得るための手段;断片位置(i,j)に関係する表面深さバッファ201を読み,表面深さ値ZSを生じさせるための手段;入力としてZ1及びZ2を用いて,例えば加算250で「Z2−Z1」を計算するための手段;入力として値「Z2−Z1」を用いて,例えば逆数ルックアップテ−ブル251で「1/(Z2−Z1)」を計算するための手段;入力として値ZS及びZ1を用いて,例えば加算253で「ZS−Z1」を計算するための手段;入力として値ZS及びZ2を用いて,例えば加算254で「ZS−Z2」を計算するための手段;入力として値「ZS−Z1」及び「1/(Z2−Z1)」を用いて,例えば乗算器252で「(ZS−Z1)/(Z2−Z1)」を計算するための手段;「ZS−Z1」が0より大きいこと及び「Z2−ZS」が0より大きいことを立証するための手段;そして上述した式1に基づいて立証するための手段の結果に基づき,減衰要素DZとして以下の値を出力するための手段を具備する。
【0024】
例えば,加算器又は減算器250は,Z1及びZ2を得て,「Z2−Z1」を計算する。ルックアップテ−ブル251は,加算器250から「Z2−Z1」を得て,「1/(Z2−Z1)」を出力する。表面深さバッファは,断片位置(i,j)に一致する表面深さ値ZSを保存し,(i,j)を得て,(i,j)に関係するZSを出力する。加算器又は減算器253は,Z1及び表面深さバッファ201からZSを得て,「ZS−Z1」を出力する。乗算器又は除算器254は,Z2及び表面深さバッファ201からZSを得て,「ZS−Z2」を出力する。もちろん,加算器254は装置256が「ZS−Z2」が0未満であるかどうかについて調べるときに「ZS−Z2」を計算すれば良い。乗算器252は加算器250から「1/(Z2−Z1)」を得て,加算器253から「ZS−Z1」を得て,「(ZS−Z1)/(Z2−Z1)」を出力する。テスト装置255は装置252から「(ZS−Z1)/(Z2−Z1)」を得て,「(ZS−Z1)/(Z2−Z1)」が0より大きいかを調べる。テスト装置256は装置254から「Z2−ZS」を得て,値「Z2−ZS」が0より大きいかを調べる。さらに,テスト装置の判断に基づいて,0,「ZS−Z1」/(Z2−Z1)」又は1が,減衰要素DZとして出力される。
【0025】
(蓄積密度を計算するためのシステム)
図2では,ガスバッファ200が前に計算された,又は利用者が定めた蓄積密度ACC1[i][j]及びACC2[i][j]を保存する。ここでACC1[i][j]はZインターセクションによる減衰のない蓄積密度である。そして,ACC2[i][j]はZインターセクションによる減衰のある累積密度である。図2では,蓄積密度は前の累積密度の値を用いて計算され,ガスバッファ200に上書きされる。
【0026】
さらに詳細な,図2に示されるZインターセクションを考慮した場合と及びZインターセクションを考慮しない蓄積密度を計算するための下位システム(DZ)は,
ガス状物体の断片位置(i,j)を得るための手段;断片位置(i,j)に関係するテクスチャ−値Tuvを得るための手段,;断片密度値Dを得るための手段;例えば乗算器202で,入力としてD及びTuvを用いて,「D1」として定義される「D*Tuv」を計算するための手段;例えば乗算器257で,入力としてDZ及びD1(乗算器202の出力)を用いて,「D2」として定義される「DZ*D1」を計算するための手段;蓄積密度ACC1[i][j]及びACC2[i][j]を保存するための手段,ここでACC1[i][j]はZインターセクションによる減衰のない蓄積密度であり,ACC2[i][j]はZインターセクションによる減衰のある累積密度である,そして,例えばガスバッファ200で,入力として断片位置(i,j)を用いて,ACC1[i][j]及びACC2[i][j]を得る;例えば加算器203で,入力としてD1及びACC1[i][j]を用いて,「AD1」として定義される「ACC1[i][j]+D1」を計算するための手段;そして,例えば加算器204で,入力としてD2及びACC2[i][j]を用いて,「AD2」として定義される「ACC2[i][j]+D2」を計算するための手段を具備する。
【0027】
上記の下位システムにおいて,AD1及びAD2は新しい蓄積密度として使われ,ガスバッファ
200に上書きされる。AD1はZインターセクションによる減衰のない新しい蓄積密度であり,AD2はZインターセクションによる減衰のある新しい累積密度である。
【0028】
図2に示される回路は,Z減衰での1の密度及び,Zインターセクションを考慮しない別の密度で,ガスの密度を累積するための手段を提供する。ポスト合成の節で示されるように,両方の密度を蓄積することは,ポスト合成段階で,そして特に,視覚座標でガス状物体にシェーディングを付けるために有用である。
【0029】
この発明の最良の形態は,32ビットの語で密度値を保存することである。それぞれの密度値を16ビットの値として表し、すべての断片(i,j)に対して,蓄積バッファへの読込み・書込みアクセスを行えば、32ビットのバスサイズであれば1回で一対送り込むことができる。こうして、小さなバス幅でバッファへのアクセスが1クロックあたりで1断片書き込むことができ、高性能化をもたらす。さらにまた,粒子がビルボ−ドとして定められることで,線形アクセス記憶で,装置座標上で断片の矩形領域になるため,バッファのキャッシングが非常に効率的に実行される。密度ごとに16ビットの語を使用することは,小さなサイズの演算子(加算器及び乗算器)を使うことを可能とする,これにより18Kゲ−ト未満の,非常に小さなサイズとなる。
【0030】
理想的なシステムは,16ビットの浮動小数点値からなる。16ビットの加算器は1.6Kのゲ−ト,そして16ビットの乗算器は,1.5Kのゲ−トを用いて構成され得る。図2に示される回路は,3つの乗算器及び5つの加算器を含み,合計12.5Kのゲ−トとなる。追加のゲ−トは,逆数ルックアップテ−ブル,遅延限界及び他の実行に特有の特徴のために必要とされる。しかし,図で開示された概念に基づき回路を実施することによって,ハ−ドウェア費用を節約すること,及び即時に表面物体と交わるガス状物体のコンピュ−タグラフィックを得ることができた。
【0031】
(ポスト合成)
この段階の間に,累積密度AD1及びAD2は,シェーディングのつけられたガス状物体の色RGB,及びその透明度Aに対応するRGB又はRGBA色に変換される。図3は下位モジュ−ルからなるポスト合成段階のためのシステムの概略図を示す。システムは,ガス状物体の視覚座標でシェーディングを計算し,ガス状物体を表面物体と結合するためのシステムである。
【0032】
図3では,ガスバッファ200は図2のそれと同じであり,そして,いくつかのモジュ−ル及び表面フレームバッファがある。
【0033】
(モジュ−ル1)
図4は,図3のモジュ−ル1の概略図を示す。図4に示されるように,モジュ−ル1は,上記で定義されたD1を得るための手段,zインターセクションを考慮しないで蓄積バッファで最大累積密度の逆数1/AMAXを得るための手段,入力としてD1及び1/AMAXを用いて,例えば乗算器300で,D1/AMAXを計算するための手段を有する。言い換えれば,モジュ−ルは少なくとも2つの入力及び乗算器300からなる。D1は,「D*Tuv」を意味し,それは断片位置(i,j)に関係するzインターセクションを考慮しない累積密度である。D1及び1/AMAXは,すでにいずれかで得られているので,これらの値を得ることは簡単である。
【0034】
値AMAXは,いろいろな方法によって得られる。例えば,図3に示される模式的な回路は,いくつかの専用レジスタでzインターセクションを考慮しないで最大蓄積密度値を保存するように少し修正された。そうでなければ,蓄積バッファの全ての値を読んで最大値を保存している間に,値AMAXは検索される。この演算は,ポスト合成演算につき1回実行される。この演算はポスト合成段階で全ての断片に対して1回なされるので,逆数1/AMAXの計算は,この回路のいずれかでされる。
【0035】
図3で示されるモジュ−ル1及び,図4で示されるそれと対応する模式的な回路は,zインターセクションなしで間隔[0,1]への流動値である蓄積密度値の位置付けを定める。この回路の利点は,浮動小数点表現から定点/整数表現へ,zインターセクションの考慮なしで蓄積密度値の表現を変えることが可能ということである。整数表現を持つことの主な利点は,回路のサイズ縮小である。
【0036】
(モジュ−ル2)
図5は,図3でのモジュ−ル2の概略図を示す。図5で示される模式的な回路は,視覚空間座標においてX方向での光の影響を計算する。
【0037】
図5に示すように,モジュ−ルは4又は5つの入力,加算器400及び2つの乗算器401,402からなる。モジュ−ル1で得られるD1/AMAXは,モジュ−ル2を通過する。図5に示すように,X方向の光方向,LX;断片位置,i;XMin及び1/(XMax−XMin)が,モジュ−ル2に入力される。言い換えると,モジュ−ルはLXを得るための手段;iを得るための手段;XMinを得るための手段;1/(XMax−XMin)を得るための手段;例えば加算器400で,入力としてi及びXMinを用いて,i−XMinを計算するための手段;例えば乗算器401で,入力としてi−XMin及び1/(XMax−XMin)を用いて,(i−XMin)/(XMax−XMin)」を計算するための手段;例えば乗算器402で,入力として「i−XMin/(XMax−XMin)」及びLXを用いて,「LX(i−XMin)/(XMax−XMin)」を計算するための手段。得られた値「LX(i−XMin)/(XMax−XMin)」は,省略されて,ILXとも呼ばれる。
【0038】
例えば光方向が(1,0,0)であると仮定する。そうすると,X方向での光の寄与は「(i−XMin)/(XMax−XMin)」に等しい。大まかに言えば,それはi=XMinにより定められた境界線に近い雲の点に対し,X方向のシェーディングの影響は0と等しいことを意味する,そして,点座標iが逆の境界線(i=XMax)に近づくにつれ,影響は大きくなる,すなわち,値は1に近づく。言い換えると,模式的な回路は最も低い値で値の勾配を計算する,すなわち,iがXMaxに近づくと0で,iがXMinに近づくと大きくなる(LXを最大値として)。
【0039】
(モジュ−ル3)
図6は図3でのモジュ−ル3の概略図を示している。図6で示される模式的な回路は,視覚空間座標におけるY方向での光の影響を計算する。図6から分かるように,モジュ−ルはモジュ−ル2と同じ要素から構成され,そして入力値だけが異なる。すなわち,モジュ−ル1で得られるD1/AMAXは,モジュール3を通過する。図6に示すように,Y方向の光方向,LY;断片位置,j;YMin及び1/(YMax−YMin)は,モジュ−ル3に入力される。得られた値「LX(j−YMin)/(YMax−YMin)」は,省略されて,ILYとも呼ばれる。
【0040】
(モジュ−ル4)
図7は図3でのモジュ−ル4の概略図を示す。これはXY平面でのシェーディング値を出力するために,シェーディング値ILXとILYとを結合するシステムである。モジュ−ル2の出力は,X方向でのシェーディングの寄与,ILXであり,モジュ−ル3の出力はY方向でのシェーディングの寄与,ILYである。図3のモジュ−ル4及び図7で示されるそれに対応する概略図は,XY平面でのシェーディング値を出力するために,シェーディング値ILXとILYとを結合するシステムを描いている。
【0041】
(LXYAtt,LXYMin,LXYMax)の組は,利用者が定めた,XY平面でのシェーディングの制御を可能とする値の組である。図7に示すように,ILXはモジュ−ル2から入力される,ILYはモジュ−ル3から入力される,そして,D1/AMAXはモジュ−ル1から入力される。LXYAtt,LXYMin及びLXYMaxはいずれかで計算され,又は利用者によって定められる,そしてモジュ−ル4に入力される。図7に示すように,モジュ−ル4は次からなる:X方向でのシェーディング値,ILXを得るための手段;Y方向でのシェーディング値,ILYを得るための手段;スカラ−値の組(LXYAtt,LXYMin及びLXYMax)を得るための手段;断片位置(i,j)に関係する間隔[0,1]に図示されたzインターセクションを考慮しないで累積密度値「D1/AMAX」を得るための手段;例えば加算器600で,入力としてILX及びILYを用いて,「ILX+ILY」を計算するための手段;例えば乗算器601で,入力としてLXYAtt及びD1/AMAXを用いて,「LXYAtt*D1/AMAX」を計算するための手段;例えば加算器603,乗算器または1−X検索で,入力として「LXYAtt*D1/AMAX」を用いて,「1−LXYAtt*D1/AMAX」を計算するための手段;例えば乗算器602で,入力として「1−LXYAtt*D1/AMAX」及び「LX+LY」を用いて,「Delta_ILXY」と以下で呼ばれる「(1−LXYAtt*D1/AMAX)*(LX+LY)」を計算するための手段;例えば加算器604,乗算器または1−X検索で,入力として「Delta_ILXY」を用いて,「1−Delta_ILXY」を計算するための手段;例えば乗算器605で,入力として「Delta_ILXY」及び「LXYMax」を用いて,「Delta_ILXY*LXYMax」を計算するための手段;例えば乗算器606で,入力として「1−Delta_ILXY」及び「LXYMin」を用いて,「1−Delta_ILXY *LXYMin」を計算するための手段;例えば加算器607で,入力として「Delta_ILXY*LXYMax」及び「1−Delta_ILXY*LXYMin」を用いて,「1−Delta_ILXY」*LXYMin+Delta_ILXY*ILXYMax」を計算するための手段;図7に示すように,モジュ−ル4は3つの加算器,4つの乗算器,2つのテ−ブル,6本の入力線,及び1本の出力線を用いて実行され得る。
要素603と604とは,演算子1−Xとして定められる。もちろん,それはいくつかの加算器によって取り替えることができる。しかし,入力値の種類は,nビットの,符号のない整数である。したがって,1−Xを計算するために,全てのnビットは,逆にされる(~)。&は,全てのnより低いビットが考慮されることを意味する。原稿では,それはどんな長さでも使えるので,ビットの幅を指定しなかったことに気をつける。実際には,8ビットで十分である。この図形(~&)は,他の図でも使われる。
【0042】
(平面のシェーディング)
モジュ−ル2,3及び4は,光のベクトル方向LX及びLY,zインターセクションを考慮しない蓄積密度に従い,XY平面でのシェーディングの寄与を計算するための手段を提供する,そしてその制御のために利用者は状態(LXYAtt,LXYMin,LXYMax)を定める。
【0043】
シェーディングの式は,物理的な原理でなく,むしろ日常生活観察に基づく。モジュ−ル2,3及び4,そして対応する図5,6及び7は,そのようなシェーディングを実現するための手段を提供する。このシェーディングは,XYシェーディング又は平面のシェーディングと呼ばれ,以下の通りに説明される。
【0044】
前述のように,ガス状物体の閉ざされている四角形は,計算されて,いずれかに保存されている。この四角形は,2Dパラメ−タの空間を定め,そこでガス状物体のそれぞれの断片位置(i,j)が間隔[0,1]において(u,v)で,(u,v)座標としてパラメ−タ化される。図8は,ガス状物体の断片位置(i,j)の図解を示す。
【0045】
位置付けは,単純に以下の通りに実行される。
【0046】
【数2】
【0047】
光方向の構成要素(LX,LY)を用いて,平面シェーディングを計算することができる。このシェーディング値は,単に勾配として定められる。例えば,(LX,LY)が(1,0)に等しいと仮定する。この場合,最も明るい場所はXMinに近い断片,暗い場所はXMaxに近い断片に対して定められる。従って,もし(LX,LY)が(−1,0)と等しければ,そのときは反対の構成が定められなければならない。(LX,LY)が(0,±1)に等しい場合において,似たような観察がなされ得る。中間の場合では,LX及びLYが0でなく,明るさへの寄与は(LX,LY)による。単純な線形勾配は,現実的な結果を提供しない。したがって,ここではzインターセクションを考慮しないで累積密度値を用いて,それに混乱を付加することをここでは提案する。以下のCのようなアルゴリズムは,ILXYを散在する側を計算するために用いられる。
【0048】
入力:断片座標(i,j)
位置付けられた密度D1/AMAX
u=(i−XMin)*(1/(XMin−XMAX));
v=(j−YMin)*(1/YMin−YMAX);
摂動=(1.0−LXYAtt*D1/AMAX)
Delta_ILXY=(LX*u+LY*v)*摂動;
ILXY=(1.0−Delta_ILXY)*LXYMin+Delta_ILXY*LXYMax;
出力:散在する側の値(ILXY)
【0049】
上記のアルゴリズムにおいて,利用者が指定した3つの値,LXYAtt,LXYMin,LXYMax,が使われる。最初の値は,密度値を用いている勾配混乱の影響を制御する,そして他の2つの値は,平面のシェーディング値が属する明暗度間隔を定める。
【0050】
(モジュ−ル5)
図9は図3でのモジュ−ル5の概略図を示す。それはz方向での光,LZに従い,視覚方向でのシェーディングの寄与度であるILZを計算するためのシステムである。
【0051】
(LZAtt,LZMin,LZMAX)のタプルは,利用者が定める,z方向でシェーディングを制御することができる値の組である。図9に示すように,z方向での光方向,LZ,及びD1/AMAXは,モジュ−ル1から入力される。LZAtt,LZMin及びLZMAXは,計算されるか,利用者によっていずれかで定められ,モジュ−ル5に入力される。
【0052】
図9に示すように,モジュール5は次からなる:z方向での光方向,LZを得るための手段;スカラ−値(LZAtt,LZMin及びLZMAX)の組を得るための手段;断片位置(i,j)に関係する間隔[0,1]に位置付けされたzインターセクションを考慮しない累積密度値「D1/AMAX」を得るための手段;例えば乗算器700で,入力としてLZAtt及びD1/AMAXを用いて,「LZAtt*D1/AMAX」を計算するための手段;例えば加算器702,乗算器又は1−Xテ−ブルで,入力として「LZAtt*D1/AMAX」を用いて,「1−LZAtt*D1/AMAX」を計算するための手段;例えば乗算器701で,入力として(1−LZAtt*D1/AMAX)及びLZを用いて,「Delta_ILZ」として以下で呼ばれる「(1−LZAtt*D1/AMAX)*LZ」を計算するための手段;例えば乗算器704で,入力として「Delta_ILZ」及び「LZMAX」を用いて,「Delta_ILZ*LZMAX」を計算するための手段;例えば乗算器705で,「1−Delta_ILZ」及びLZMinを用いて,「(1−Delta_ILZ)*LZMin」を計算するための手段;例えば加算器706で,入力として「Delta_ILZ*LZMAX」及び「(1−Delta_ILZ)*LZMin」を用いて,「(1−Delta_ILZ)*LZMin+Delta_ILZ*ILZMAX」を計算するための手段。図9に示すように,モジュ−ル5は1つの加算器,4つの乗算器,2つのテ−ブル,5本の入力線,及び1本の出力線を用いて実行される。
【0053】
前の節では,光方向ベクトルの構成要素(LX,LY)を用いて平面のシェーディング値を考慮した。視覚方向に沿ってシェーディングを計算するために,光方向の構成要素LZが使われる。このシェーディング値の計算は,Lz値の符号による。プラスならば,光がガス状物体の後に位置することを意味する,そしてマイナスならば,光がガス状物体の前に位置することを意味する。この値をILZとして示す。XYシェーディングに関してと同じ観察がなされる。光方向の構成要素LZが1と等しければ,そのとき前面の散在は最大値(そして平面のシェーディングは,0である)で,そしてその逆も成り立つ。
【0054】
以下のCのようなアルゴリズムは,ILZを散在している側を計算するために用いられる:
入力:断片座標(i,j)
位置付けられた密度D1/AMAX
摂動=(1.0−LZAtt* D1/AMAX)
Delta_ILZ=(LZ)*摂動;
ILZ=(1.0−Delta_ILZ)*LZMin+Delta_ILZ *LZMAX;
出力:前面/背面の散在値(ILZ)
【0055】
上記のアルゴリズムでは,3つの値,LZAtt,LZMin及びLZMAXが使われる。これらの値は,横の散在に関してと類似した方法で,前面/背面の散在を制御する。
【0056】
それでもやはり,利用者は6つの値,前面の光散在のための3つ,及び背面の散在のための3つ,を指定しなければならない。LZの符号に従い,1セット又は別の一つが選ばれて,アルゴリズムで使われる。
【0057】
(モジュ−ル6)
図10は,図3でのモジュ−ル6の概略図を示す。このモジュ−ルは,XYシェーディングの寄与,Zシェーディングの寄与及び全体的な周囲の色を結合する。図10に示すように,モジュ−ルは次からなる:XY平面でのシェーディングの寄与,ILXYを得るための手段;視覚方向に沿ってのシェーディングの寄与,ILZを得るための手段;全体的な最小及び最大の周囲のRGB色,(RMinAMB,GMinAMB,BMinAMB)及び(RMAXAMB,GMAXAMB,BMAXAMB)を得るための手段,それはシェーディングのために全体的な周囲の色を制御する;例えば加算器800で,入力として「ILXY」及び「IL」を用いて,「ILXY+ILZ」(以下、“IL”ともよぶ)を計算するための手段;ILを入力として用いて1−ILを求める手段(例えば,加算器800);例えば乗算器802など,入力として「IL」及び(RMAXAMB,GMAXAMB,BMAXAMB)を用いて,IL*(RMAXAMB,GMAXAMB,BMAXAMB)を計算するための手段;例えば加算器800又は1−Xテ−ブルなど,入力として「IL」を用いて,「1−IL」を計算するための手段;例えば乗算器803で,入力として「1−IL」及び(RMinAMB,GMinAMB,BMinAMB)を用いて,(1−IL)*(RMinAMB,GMinAMB,BMinAMB)を計算するための手段;例えば加算器804で,入力として(1−IL)*(RMinAMB,GMinAMB,BMinAMB)及びIL*(RMAXAMB,GMAXAMB,BMAXAMB)を用いて,(1−IL)*(RMinAMB,GMinAMB,BMinAMB)+IL*(RMAXAMB,GMAXAMB,BMAXAMB)を計算するための手段;加算器804からの出力は,(1−IL)*RMinAMB+IL*RMAXAMB,RG;(1−IL)*GMinAMB+IL*GMAXAMB,GG;そして(1−IL)*BMinAMB+IL*BMAXAMB,BGである。これらの値,RG,GG及びBG,は,GAS RBG又はガス状物体の色,CGとも呼ばれる。
【0058】
図10に示される模式的な回路は,XYシェーディングをZシェーディングと結合するための手段を提供し,そして全体的な周囲の最小及び最大値を考慮したガス状物体の断片のRGB色を計算するための手段も提供する。それは,シェーディングモデルの以下の説明に基づく。
【0059】
所定の断片に対して,2つのシェーディング値ILXY及びILZが計算される。これらの値は最初に加算され,値ILを生じる。結果は,利用者が定義した周囲の最小及び最大値を用いて,断片の実際のRGB色を計算するために用いられる。
【0060】
以下のCのようなアルゴリズムは,断片のRGB色を計算するために用いられる:
IL = ILXY+ILZ;
RG =(1−IL)*周囲の最小赤+IL*周囲の最大赤
GG=(1−IL)*周囲の最小緑+IL*周囲の最大緑
BG =(1−IL)*周囲の最小青+IL*周囲の最大青
【0061】
ここで,周囲の最小及び周囲の最大は,利用者が定めた2つのRGB色であり,それぞれのチャンネルに対して最小及び最大色の明暗度を制御する。シェーディングは,単純に全体的な最小の周囲色と全体的な最大の周囲色との間の線形展開である。光のシェーディング寄与ILは,これらの2つの色を補間するために用いられる。
【0062】
(モジュ−ル7)
図11は,図3でのモジュ−ル7の概略図を示す。図11に示すように,断片位置(i,j)に関係するzインターセクションを考慮した累積密度,D2及び減衰要素DAttは,モジュ−ルに入力される。モジュ−ル7,及び図11に示される対応する模式的な回路は,zインターセクションを考慮した累積密度を透明度,α値に変換するための手段を提供する。図11に示されるように,モジュ−ル7は次からなる:断片位置(i,j)に関係するzインターセクションを考慮した累積密度,D2を得るための手段;減衰要素,DAttを得るための手段;例えば乗算器900で,入力としてD2及びDAttを用いて,「D2*DAtt」を計算するための手段;例えば,値1−expを計算するルックアップテ−ブル901で,入力として「D2*DAtt」を用いて,「1exp(−D2*DAtt)」を計算するための手段,ここで入力はXであり,出力値は数学の関数1−exp(−X)である。出力値「1exp(−D2*DAtt)」は,ここではガス状物体のα値,AGとも呼ばれる。
【0063】
(モジュ−ル8)
モジュ−ル8は,ガス状物体の透明度,α値を考慮して,ガス状物体と表面物体とを組み合わせるために用いられる。ガス状物体の透明度を表すα値,AG;
GAS RBG,RG,GG及びBG,言い換えればCG;そして,赤,緑及び青の構成要素RS,GS及びBS,それぞれからからなる断片位置(i,j)での表面物体の色CS;は,モジュ−ル8へ入力される。モジュ−ル8は,表面物体の色を考慮してガス状物体の色を計算するための回路であり,以下を有する:ガス状物体の透明度,AGを得るための手段;ガス状物体の色,RG,GG及びBGを含むCG,を得るための手段;表面物体の色,CSを得るための手段;例えば乗算器1001又は1−Xテ−ブルで,入力としてAGを用いて,1−AGを計算するための手段;例えば乗算器1002で,入力として「1−AG」及びCGを用いて,(1−AG)*CGを計算するための手段;例えば乗算器1003で,入力としてAG及びCSを用いて,AG*CSを計算するための手段;そして,入力として(1−AG)*CG及びAG*CSを用いて,(1−AG)*CG+AG*CSを計算するための手段。
【0064】
出力値(1−AG)*CG+AG*CSは,(1−AG)*RG+AG*RS,(1−AG)*GG+AG*GS及び(1−AG)*BG+AG*BSからなり,表示されるための準備が整う。
【0065】
(実施例1)
上記で開示した回路を用いることで,即時に表面物体の前に,ガス状物体の三次元コンピュ−タ画像を得た。
【産業上の利用可能性】
【0066】
この発明は,コンピュ−タグラフィックスの分野に有用である。
【図面の簡単な説明】
【0067】
【図1】像を得るための三次元化シ−ケンスを示す図である。
【図2】1つはzインターセクションなしで,1つはzインターセクションにより,密度の蓄積の計算を可能にする回路又はシステムを示す図である。
【図3】下位モジュ−ルからなるポスト合成段階用のシステムの概略図である。
【図4】図3のモジュ−ル1の概略図である。
【図5】図3のモジュ−ル2の概略図である。
【図6】図3のモジュ−ル3の概略図である。
【図7】XY平面でのシェーディング値を出力するために,シェーディング値ILXとILYとを結合するためのシステムである,図3のモジュ−ル4の概略図である。
【図8】ガス状物体の断片位置(i,j)の図解である。
【図9】z方向光,LZに従い,視覚方向でのシェーディング寄与,ILZを計算するためのシステムである,図3のモジュ−ル5の概略図である。
【図10】図3のモジュ−ル6の概略図である。
【図11】図3のモジュ−ル7の概略図である。
【技術分野】
【0001】
この発明は一般に三次元コンピュ−タグラフィックス用のグラフィック回路に関する。より詳しくは,表面物体と結合されるガス状物体用の蓄積密度の像を計算するためのシステムに関する。
【背景技術】
【0002】
文献では,シェーディングのついたガス状物体をレンダリングするための全てのアルゴリズムは,2か3つのパスを使って定められる。これらのパスは,通常以下の通りに定められる。最初のパスの間,ガス状物体は光座標系でレンダリングされる。そして,いくつかの情報が保存される。第2のパスは通常のレンダリングパスである。そして,ガス状物体はカメラ空間でレンダリングされる。いくつかのアルゴリズムでは,ガス状物体は表面物体と直接結合される。そして,この第2のパスの後,像は表示される準備が整う。いくつかの他のアルゴリズムでは,ガス状物体及び表面物体の組合せは,ポスト合成と呼ばれる追加のパスにおいてなされる。
【発明の開示】
【発明が解決しようとする課題】
【0003】
粒子を並べ替えることなくガス状物体にシェーディングを付けるための回路又はシステムを提供することが,この発明の目的である。
本発明の別の目的は,現在全てのアルゴリズムで存在するレンダリングパスを追加し,シェーディングパスを省くことなくガス状物体にシェーディングを付けるための回路又はシステムを提供することである。
とても小さなハ−ドウェア回路(例えば40Kゲ−ト未満)でガス状物体をレンダリングするための回路又はシステムを提供することが本発明のさらに別の目的である。
発明のさらに別の目的は,1つのバッファを用いてガス状物体をレンダリングするための回路又はシステムを提供することである。
発明のさらに別の目的は,コンピュ−タグラフィックスでガス状物体を定めるための新しい回路又はシステムを提供することである。
発明のさらに別の目的は,ガス状物体をリアルタイムにレンダリングするための3次元コンピュ−タグラフィックスの回路又はシステムを提供することである。
【課題を解決するための手段】
【0004】
発明によると,上記課題のいずれかひとつを解決するガス状物体のレンダリングへの新しいアプロ−チが提供される。発明の主な特徴は,レンダリング段階で,密度に関係する情報だけがバッファで蓄積され,そして,表面物体とのインターセクション及びガス状物体はガス状物体を構成する粒子をレンダリングせずに計算されることである。
【0005】
本発明の第1の側面は,蓄積パスのためのシステムに関する。より詳しくは,本発明の第1の側面は基本的には,三次元コンピュ−タグラフィック用のガス状物体の減衰要素DZを計算するための,ガス状物体の断片位置(i,j)を得るための手段と;Z1及びZ2を,断片位置(i,j)でガス状物体の部分的な厚みを定義する2つの深さ値として,断片位置(i,j)に関係するz値Z1及びZ2を得るための手段と;前記断片位置(i,j)に関係する表面の深さ値ZSを保存するための手段と;前記ZS,前記Z1及び前記Z2を用いてZS−Z1/Z2−Z1を計算するための手段と;前記表面の深さ値ZSと前記2つのz値,又は「ZS−Z1」が0より大きいかと「Z2−ZS」が0より大きいかを比較するための手段;そして前記Z1が前記ZSより大きいときに減衰要素DZとして0を,前記ZSが前記Z1以上であり前記Z2より小さいときに前記DZとして前記ZS−Z1/Z2−Z1を,前記ZSが前記Z2より大きいときに前記DZとして1を出力するための手段を具備するシステムに関する。
【0006】
第1の側面の好ましい態様は,以下の「ZS−Z1/Z2−Z1」を計算するための手段が入力としてZ1及びZ2を用いて「Z2−Z1」を計算するための手段;入力として値「Z2−Z1」を用いて「1/(Z2−Z1)」を計算するための手段;入力として値ZS及びZ1を用いて「ZS−Z1」を計算するための手段;入力として値ZS及びZ2を用いて「Z2−ZS」を計算するための手段;そして入力として「ZS−Z1」及び「1/(Z2−Z1)」を用いて「(ZS−Z1)/(Z2−Z1)」を計算するための手段を具備する上記したシステムに関する。
【0007】
第1の側面の好ましい態様は,ZS−Z1/Z2−Z1を計算するための手段が,入力としてZ1及びZ2を用いて,「Z2−Z1」を計算する加算器250;入力として値「Z2−Z1」を用いて,「1/(Z2−Z1)」を計算するための逆数ルックアップテ−ブル251;入力として値ZS及びZ1を用いて,「ZS−Z1」を計算するための加算器253;入力として値ZS及びZ2を用いて,「Z2−ZS」を計算するための加算器254;そして,入力として「ZS−Z1」及び「1/(Z2−Z1)」を用いて,「(ZS−Z1)/(Z2−Z1)」を計算するための乗算器252を具備する上記のいずれかのシステムである。
【0008】
第1の側面の好ましい態様は,ガス状物体の断片位置(i,j)を得るための手段;断片位置(i,j)に関係するテクスチャー値Tuvを得るための手段;断片位置(i,j)に関係する断片密度値Dを得るための手段;入力にD及びTuvを用いて,「D1」として定義される「D*Tuv」を計算するための手段;入力として減衰要素であるDZ及びTuvを用いて,「D2」として定義される「DZ*D1」を計算するための手段;入力として断片位置(i,j)を用いてACC1[i][j]及びACC2[i][j]を得て,累積密度ACC1[i][j]及びACC2[i][j]を保存するための手段,ここでACC1[i][j]はzインターセクションを考慮した累積密度,ACC2[i][j]はzインターセクションを考慮しない累積密度である;入力にD1及びACC1[i][j]を用いて,「AD1」として定義される「ACC1[i][j]+D1」を計算するための手段;そして,入力にD2及びACC2[i][j]を用いて,「AD2」として定義される「ACC2[i][j]+D2」を計算するための手段を具備する三次元コンピュ−タグラフィックス用のガス状物体の減衰要素DZ,及びzインターセクションを考慮したガス状物体の累積密度AD2を考慮して,zインターセクションを考慮せずに累積密度AD1を計算するためのシステムに関する。
【0009】
第1の側面の好ましい態様は,前記DZがガス状物体の断片位置(i,j)を得るための手段;断片位置(i,j)に関係するz値Z1及びZ2を得るための手段,ここでZ1及びZ2は断片位置(i,j)でガス状物体の部分的な厚さを定める2つの深さ値である;断片位置(i,j)に関係する表面深さ値ZSを保存するための手段;ZS,Z1及びZ2を用いて,ZS−Z1/Z2−Z1を計算するための手段;表面深さ値及び2つのz値,又は「ZS−Z1」が0より大きいこと及び「ZS−Z2」が0より大きいことを比較するための手段;そして;Z1がZSより大きいときにDZとして0を,ZSがZ1以上でありZ2より小さいときにDZとしてZS−Z1/Z2−Z1を,ZSがZ2より大きいときにDZとして1を出力するための手段を具備するシステムによって得られる上記のいずれかに記載のシステムに関する。
【0010】
この発明の第2の側面は,ポスト合成のためのシステムに関する。それは,基本的には,
視覚空間座標で光方向を得るための手段;視覚座標系でガス状物体と境界を有する箱を得るための手段;視覚座標系でガス状物体のシェーディング値を計算するための手段;zインターセクションを考慮した累積密度を透明度α値に変換するための手段;シェーディング計算の結果を用いてzインターセクションを考慮しない累積密度をRGB色に変換するための手段;そして,シェーディングの付けられたガス状物体像を表面物体像と結合するための手段を有する累積密度を表面物体で示されるシェーディングの付けられたガス状物体の像に変換するシステムに関する。
【0011】
第2の側面の好ましい態様は, バッファ像のすべての断片(i,j)を得るための手段;
視覚座標系でのガス状物体のz値を用いないガス状物体と境界を有する箱の座標(XMin,YMin),(XMax,YMax)を得るための手段;バッファ像に保存されたzインターセクションを考慮しない最大密度ACC1を得るための手段;視覚空間座標で光方向を得るための手段;XY平面において視覚座標で物体にシェーディングを付けるための手段;Z軸に沿って視覚座標で物体にシェーディングを付けるための手段;Zインターセクションを考慮した累積密度を透明度α値に変換するための手段;シェーディング計算の結果を用いてzインターセクションを考慮しない累積密度をRGB色に変換するための手段;表面物体のバッファRGBA像,フレームバッファを得るための手段;そして,断片(i,j)に関係するシェーディングの付けられたガス状物体の色を,断片(i,j)に関係する表面物体の断片の色と結合するための手段を有する累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体の像に変換するシステムに関する。
【0012】
第2の側面の好ましい態様は, バッファ像のすべての断片(i,j)を得るための手段;バッファACC1及びACC2に保存された断片(i,j)に関係する密度を得るための手段;(XMin,YMin),(XMax,YMax),z値を用いない視覚座標系でのガス状物体と境界を有する箱を得るための手段;バッファ像ACC1に保存されたzインターセクションを考慮しない最大密度ACC1を得るための手段;視覚空間座標(LX,LY,LZ)で光方向を得るための手段;XY平面でシェーディングを制御するスカラ−値の組(LXYAtt,LXYMin,LXYMax)を得るための手段;Z平面でシェーディングを制御するスカラ−値の組(LZAtt,LZMin,LZMax)を得るための手段;シェーディングのための全体的な周囲の色を制御する全体的な最小及び最大の周囲のRGB色(RMinAMB,GMinAMB,BMinAMB)及び(RMAXAMB,GMAXAMB,BMAXAMB)を得るための手段;断片(i,j)に関係する光方向LXでのシェーディングの寄与を計算するための手段;断片(i,j)に関係する光方向LYでのシェーディングの寄与を計算するための手段;断片(i,j)に関係する視覚座標系におけるXY平面でのシェーディングの寄与を計算するための手段;断片(i,j)に関係するZ軸に沿っての視覚座標でのシェーディングの寄与を結合するための手段;断片(i,j)に関係するXY平面でのシェーディング及びZ軸に沿ってのシェーディングを結合するための手段;断片(i,j)に関係する結果として生じたシェーディングと全体的な周囲の色とを結合するための手段;断片(i,j)に関係するガス状物体のRGB色を得るための手段;Zインターセクションを考慮した蓄積密度をα値(透明度)に変換するための手段;表面物体のバッファRGBA像,フレームバッファを得るための手段;そして,断片(i,j)に関係するシェーディングの付いたガス状物体の色を,断片(i,j)に関係する表面物体の断片の色と結合するための手段を有する累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体の像に変換するシステムに関する。
【0013】
第2の側面の好ましい態様は, バッファ像のすべての断片(i,j)を得るための手段;
バッファに保存される断片(i,j)に関係する密度,それぞれがACC1[i][j]及びACC2[i][j]であるACC1及びACC2を得るための手段;(XMin,YMin),(XMax,YMax),z値を用いない視覚座標系でのガス状物体と境界を有する箱を得るための手段;バッファ像ACC1に保存されたzインターセクションを考慮しない最大密度AMAXを得るための手段;視覚空間座標(LX,LY,LZ)で光方向を得るための手段;XY平面でシェーディングを制御するスカラ−値の組(LXYAtt,LXYMin,LXYMax)を得るための手段;Z平面でシェーディングを制御するスカラ−値の組(LZAtt,LZMin,LZMax)を得るための手段;シェーディングのための全体的な周囲の色を制御する全体的な最小及び最大の周囲のRGB色(RMinAMB,GMinAMB,BMinAMB)及び(RMAXAMB,GMAXAMB,BMAXAMB)を得るための手段;ILXとして定義され,「ILX=LX*(i−XMin)/(XMax−XMin)」である断片(i,j)に関係する光方向LXでシェーディングの寄与を計算するための手段;ILYとして定義され,「ILY=LY*(j−YMin)/(YMax−YMin)」である断片(i,j)に関係する光方向LYでシェーディングの寄与を計算するための手段;ILXYに等しく,Delta_ILXY=(1.0−LXYAtt*(ACC1[i][j]/AMAX))*(ILX+ILY)として,ILXY=(1−Delta_ILXY)* LXYMin+Delta_ILXY*LXYMaxで定義される,断片(i,j)に関係する視覚座標系でのXY平面におけるシェーディングの寄与を計算するための手段;ILZに等しく,Delta_ILZ=(1.0−LZAtt*(ACC1[i][j]/AMAX))*(LZ)」として,ILZ=(1−Delta_ILZ)* LZMin + Delta_ILXY*LZMAXで定義される,断片(i,j)に関係するZ軸に沿っての視覚座標でシェーディングの寄与を計算するための手段;ILとして定義され,IL=ILXY+ILZである断片(i,j)に関係するXY平面でのシェーディング及びZ軸に沿ってのシェーディングを結合するための手段;断片(i,j)に関係するガス状物体のシェーディングの付けられたRGB色(RG,GG,BG)を計算するための手段,ここでRG,GG及びBGのそれぞれのチャンネルは,「RG =(1.0−IL)*(RMinAMB)+IL*(RMAXAMB)」,「GG=(1.0−IL)*(GMinAMB)+IL*(GMAXAMB)」及び「BG=(1.0−IL)*(BMinAMB)+IL *(BMAXAMB)」として定義される;zインターセクションを考慮した累積密度を,ルックアップテ−ブルで定められるα値(透明度)に変換するための手段,ここでzインターセクションを考慮した累積密度ACC2[i][j]は,ルックアップテ−ブルの入力として用いられ,α値AGはテーブルの出力である;表面物体のバッファRGBA像,フレームバッファ,(RS,GS,BS,AS)を得るための手段;そして,断片(i,j)に関係するシェーディングの付いたガス状物体の色(RG,GG,BG,AG)を,断片(i,j)に関係する表面物体の断片の色(RS,GS,BS,AS)と結合するための手段,ここで「R=(1−AG)*RS+AG*RG」,「G=(1−AG)*GS+AG*GG」,「B=(1−AG)*BS+AG*BG」及び「A=(1−AG)*AS+AG*AG」により,(R,G,B,A)として定義される,を有する累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体の像に変換するシステムに関する。
【発明の効果】
【0014】
すなわち,本発明の新しい回路は,例えば,2つのパスだけを使ってシェーディングされたガス状物体をレンダリングすることを可能にする。全ての既存のアルゴリズム,回路又は特許では少なくとも2回レンダリングされるのに対し,本発明におけるガス状物体は一度だけレンダリングされればよい。このパスの間,密度に関係する情報だけは,バッファ像に蓄積される。表面物体及びガス状物体によるインターセクションは,アルゴリズムのこのレベルで起こる。それから,ポスト合成が行われる。ガス状物体は処理されない,すなわち粒子はレンダリングされないで,バッファイメ−ジの断片だけは処理される。この過程では,シェーディング値は光方向及びバッファ像だけを使って計算される。全ての断片を処理した後に,像は表示されるように準備される。
【発明を実施するための最良の形態】
【0015】
この発明では,単純のために,ガス状物体は粒子の組と定義される。それぞれの粒子は,ビルボ−ド球と定義される。コンピュ−タグラフィックでは,ビルボ−ドは通常いつも見る方向と同一直線上にある四角形として定義される。四角形として定義されることで,四角形に属するすべての断片に対して結果として生じる深さ値は等しい。ビルボ−ド球は,ビルボ−ド四角形の拡張である。同様に,通常見る方向と同一直線上にある参照四角形が使われ,生じる深さ値(以下Z1という)はそれぞれの断片に対して一定である,その上,以下Z2とよばれる別の深さ値がそれぞれの断片に対して定義される。この第2の深さ値にはガウス分布がある,すなわち,それは四角形の中央で断片に対する最大値を持つ,そして,断片が四角形の境界に近づくと,0に減少する。本発明における簡略化は,従来のビルボ−ド四角形の使用である,そして,一定値として1/(Z2−Z1)を定義する。この場合,遠近法による投影のためにわずかに人工的に見えるかもしれない。
【0016】
図1は,イメージを得るためのレンダリングシーケンスを示す。図1に示すように,表面物体がレンダリングされる。そして,深さバッファ像,及びフレームバッファと呼ばれるRGBA色画像を生じる。表面物体の三次元化が完成すると,蓄積段階とポスト合成段階が行われる。以降,最初に蓄積段階,それから,ポスト合成段階を解説する。
【0017】
図2は,zインターセクションを考慮した場合と,zインターセクションを考慮しない場合とで,密度の蓄積の計算を可能にする回路又はシステムを示す。図2のシステムには2つの下位システムがある,1つは減衰要素DZを計算するための下位システムである,そして,他は減衰要素DZを用いてガス状物体の累積密度を計算するための下位システムである。
【0018】
最初の下位システムにおいて,DZは以下の式1に基づいて計算される:
【0019】
【数1】
・・・(1)
すなわち,Z1がZSより大きいとき,DZは0と等しく,ZSがZ1以上でありZ2より小さいとき,DZはZS−Z1/Z2−Z1と等しく,ZSがZ2より大きいとき,DZは1と等しい。
【0020】
第2の下位システムで,1つはz減衰,他はz減衰なしでガス状物体の2種の蓄積密度が計算される。特に,これらの蓄積している密度は,ポスト合成ステップ,特にガス状物体の視覚座標でのシェーディングにおいて有効である。
【0021】
図2に示すように,回路の入力は,粒子Pに関係する断片位置(i,j);テクスチャ値Tuv;粒子Pに関係する粒子密度値D;及び断片位置(i,j)に対応する2つのz値(Z1,Z2)である。すべての入力は,前もって計算されるか,いずれかで定められる。
【0022】
(減衰要素,DZを計算するためのシステム)
減衰要素を計算するための下位システムにおいて,システムはすべての断片(i,j)に対して上記の式1に基づきDZを計算する。すなわち,すべての断片(i,j)に対して,演算子250,251,252,253及び254を用いて値「ZS−Z1」,「Z2−ZS」及び「(ZS−Z1)/(Z2−Z1)」が計算される。テスト装置255と256とは,式1で表される論理によって,出力する値を決定するために用いられる。この下位システムの出力は,密度を累積する下位システムの部分である乗算器257の入力として使われる減衰要素DZである。ZSは,0と1との間である。D2=D*Tuv*DZ。D*TuvはD1と等しく,乗算器202を使って計算される。そして,値:D2 = D1 * DZは,乗算器257を使って計算される。
【0023】
さらに詳細な,図2に示される減衰要素DZ,を計算するための下位システムは,入力値(Z1,Z2)及び断片位置(i,j)の組を得るための手段;断片位置(i,j)に関係する表面深さバッファ201を読み,表面深さ値ZSを生じさせるための手段;入力としてZ1及びZ2を用いて,例えば加算250で「Z2−Z1」を計算するための手段;入力として値「Z2−Z1」を用いて,例えば逆数ルックアップテ−ブル251で「1/(Z2−Z1)」を計算するための手段;入力として値ZS及びZ1を用いて,例えば加算253で「ZS−Z1」を計算するための手段;入力として値ZS及びZ2を用いて,例えば加算254で「ZS−Z2」を計算するための手段;入力として値「ZS−Z1」及び「1/(Z2−Z1)」を用いて,例えば乗算器252で「(ZS−Z1)/(Z2−Z1)」を計算するための手段;「ZS−Z1」が0より大きいこと及び「Z2−ZS」が0より大きいことを立証するための手段;そして上述した式1に基づいて立証するための手段の結果に基づき,減衰要素DZとして以下の値を出力するための手段を具備する。
【0024】
例えば,加算器又は減算器250は,Z1及びZ2を得て,「Z2−Z1」を計算する。ルックアップテ−ブル251は,加算器250から「Z2−Z1」を得て,「1/(Z2−Z1)」を出力する。表面深さバッファは,断片位置(i,j)に一致する表面深さ値ZSを保存し,(i,j)を得て,(i,j)に関係するZSを出力する。加算器又は減算器253は,Z1及び表面深さバッファ201からZSを得て,「ZS−Z1」を出力する。乗算器又は除算器254は,Z2及び表面深さバッファ201からZSを得て,「ZS−Z2」を出力する。もちろん,加算器254は装置256が「ZS−Z2」が0未満であるかどうかについて調べるときに「ZS−Z2」を計算すれば良い。乗算器252は加算器250から「1/(Z2−Z1)」を得て,加算器253から「ZS−Z1」を得て,「(ZS−Z1)/(Z2−Z1)」を出力する。テスト装置255は装置252から「(ZS−Z1)/(Z2−Z1)」を得て,「(ZS−Z1)/(Z2−Z1)」が0より大きいかを調べる。テスト装置256は装置254から「Z2−ZS」を得て,値「Z2−ZS」が0より大きいかを調べる。さらに,テスト装置の判断に基づいて,0,「ZS−Z1」/(Z2−Z1)」又は1が,減衰要素DZとして出力される。
【0025】
(蓄積密度を計算するためのシステム)
図2では,ガスバッファ200が前に計算された,又は利用者が定めた蓄積密度ACC1[i][j]及びACC2[i][j]を保存する。ここでACC1[i][j]はZインターセクションによる減衰のない蓄積密度である。そして,ACC2[i][j]はZインターセクションによる減衰のある累積密度である。図2では,蓄積密度は前の累積密度の値を用いて計算され,ガスバッファ200に上書きされる。
【0026】
さらに詳細な,図2に示されるZインターセクションを考慮した場合と及びZインターセクションを考慮しない蓄積密度を計算するための下位システム(DZ)は,
ガス状物体の断片位置(i,j)を得るための手段;断片位置(i,j)に関係するテクスチャ−値Tuvを得るための手段,;断片密度値Dを得るための手段;例えば乗算器202で,入力としてD及びTuvを用いて,「D1」として定義される「D*Tuv」を計算するための手段;例えば乗算器257で,入力としてDZ及びD1(乗算器202の出力)を用いて,「D2」として定義される「DZ*D1」を計算するための手段;蓄積密度ACC1[i][j]及びACC2[i][j]を保存するための手段,ここでACC1[i][j]はZインターセクションによる減衰のない蓄積密度であり,ACC2[i][j]はZインターセクションによる減衰のある累積密度である,そして,例えばガスバッファ200で,入力として断片位置(i,j)を用いて,ACC1[i][j]及びACC2[i][j]を得る;例えば加算器203で,入力としてD1及びACC1[i][j]を用いて,「AD1」として定義される「ACC1[i][j]+D1」を計算するための手段;そして,例えば加算器204で,入力としてD2及びACC2[i][j]を用いて,「AD2」として定義される「ACC2[i][j]+D2」を計算するための手段を具備する。
【0027】
上記の下位システムにおいて,AD1及びAD2は新しい蓄積密度として使われ,ガスバッファ
200に上書きされる。AD1はZインターセクションによる減衰のない新しい蓄積密度であり,AD2はZインターセクションによる減衰のある新しい累積密度である。
【0028】
図2に示される回路は,Z減衰での1の密度及び,Zインターセクションを考慮しない別の密度で,ガスの密度を累積するための手段を提供する。ポスト合成の節で示されるように,両方の密度を蓄積することは,ポスト合成段階で,そして特に,視覚座標でガス状物体にシェーディングを付けるために有用である。
【0029】
この発明の最良の形態は,32ビットの語で密度値を保存することである。それぞれの密度値を16ビットの値として表し、すべての断片(i,j)に対して,蓄積バッファへの読込み・書込みアクセスを行えば、32ビットのバスサイズであれば1回で一対送り込むことができる。こうして、小さなバス幅でバッファへのアクセスが1クロックあたりで1断片書き込むことができ、高性能化をもたらす。さらにまた,粒子がビルボ−ドとして定められることで,線形アクセス記憶で,装置座標上で断片の矩形領域になるため,バッファのキャッシングが非常に効率的に実行される。密度ごとに16ビットの語を使用することは,小さなサイズの演算子(加算器及び乗算器)を使うことを可能とする,これにより18Kゲ−ト未満の,非常に小さなサイズとなる。
【0030】
理想的なシステムは,16ビットの浮動小数点値からなる。16ビットの加算器は1.6Kのゲ−ト,そして16ビットの乗算器は,1.5Kのゲ−トを用いて構成され得る。図2に示される回路は,3つの乗算器及び5つの加算器を含み,合計12.5Kのゲ−トとなる。追加のゲ−トは,逆数ルックアップテ−ブル,遅延限界及び他の実行に特有の特徴のために必要とされる。しかし,図で開示された概念に基づき回路を実施することによって,ハ−ドウェア費用を節約すること,及び即時に表面物体と交わるガス状物体のコンピュ−タグラフィックを得ることができた。
【0031】
(ポスト合成)
この段階の間に,累積密度AD1及びAD2は,シェーディングのつけられたガス状物体の色RGB,及びその透明度Aに対応するRGB又はRGBA色に変換される。図3は下位モジュ−ルからなるポスト合成段階のためのシステムの概略図を示す。システムは,ガス状物体の視覚座標でシェーディングを計算し,ガス状物体を表面物体と結合するためのシステムである。
【0032】
図3では,ガスバッファ200は図2のそれと同じであり,そして,いくつかのモジュ−ル及び表面フレームバッファがある。
【0033】
(モジュ−ル1)
図4は,図3のモジュ−ル1の概略図を示す。図4に示されるように,モジュ−ル1は,上記で定義されたD1を得るための手段,zインターセクションを考慮しないで蓄積バッファで最大累積密度の逆数1/AMAXを得るための手段,入力としてD1及び1/AMAXを用いて,例えば乗算器300で,D1/AMAXを計算するための手段を有する。言い換えれば,モジュ−ルは少なくとも2つの入力及び乗算器300からなる。D1は,「D*Tuv」を意味し,それは断片位置(i,j)に関係するzインターセクションを考慮しない累積密度である。D1及び1/AMAXは,すでにいずれかで得られているので,これらの値を得ることは簡単である。
【0034】
値AMAXは,いろいろな方法によって得られる。例えば,図3に示される模式的な回路は,いくつかの専用レジスタでzインターセクションを考慮しないで最大蓄積密度値を保存するように少し修正された。そうでなければ,蓄積バッファの全ての値を読んで最大値を保存している間に,値AMAXは検索される。この演算は,ポスト合成演算につき1回実行される。この演算はポスト合成段階で全ての断片に対して1回なされるので,逆数1/AMAXの計算は,この回路のいずれかでされる。
【0035】
図3で示されるモジュ−ル1及び,図4で示されるそれと対応する模式的な回路は,zインターセクションなしで間隔[0,1]への流動値である蓄積密度値の位置付けを定める。この回路の利点は,浮動小数点表現から定点/整数表現へ,zインターセクションの考慮なしで蓄積密度値の表現を変えることが可能ということである。整数表現を持つことの主な利点は,回路のサイズ縮小である。
【0036】
(モジュ−ル2)
図5は,図3でのモジュ−ル2の概略図を示す。図5で示される模式的な回路は,視覚空間座標においてX方向での光の影響を計算する。
【0037】
図5に示すように,モジュ−ルは4又は5つの入力,加算器400及び2つの乗算器401,402からなる。モジュ−ル1で得られるD1/AMAXは,モジュ−ル2を通過する。図5に示すように,X方向の光方向,LX;断片位置,i;XMin及び1/(XMax−XMin)が,モジュ−ル2に入力される。言い換えると,モジュ−ルはLXを得るための手段;iを得るための手段;XMinを得るための手段;1/(XMax−XMin)を得るための手段;例えば加算器400で,入力としてi及びXMinを用いて,i−XMinを計算するための手段;例えば乗算器401で,入力としてi−XMin及び1/(XMax−XMin)を用いて,(i−XMin)/(XMax−XMin)」を計算するための手段;例えば乗算器402で,入力として「i−XMin/(XMax−XMin)」及びLXを用いて,「LX(i−XMin)/(XMax−XMin)」を計算するための手段。得られた値「LX(i−XMin)/(XMax−XMin)」は,省略されて,ILXとも呼ばれる。
【0038】
例えば光方向が(1,0,0)であると仮定する。そうすると,X方向での光の寄与は「(i−XMin)/(XMax−XMin)」に等しい。大まかに言えば,それはi=XMinにより定められた境界線に近い雲の点に対し,X方向のシェーディングの影響は0と等しいことを意味する,そして,点座標iが逆の境界線(i=XMax)に近づくにつれ,影響は大きくなる,すなわち,値は1に近づく。言い換えると,模式的な回路は最も低い値で値の勾配を計算する,すなわち,iがXMaxに近づくと0で,iがXMinに近づくと大きくなる(LXを最大値として)。
【0039】
(モジュ−ル3)
図6は図3でのモジュ−ル3の概略図を示している。図6で示される模式的な回路は,視覚空間座標におけるY方向での光の影響を計算する。図6から分かるように,モジュ−ルはモジュ−ル2と同じ要素から構成され,そして入力値だけが異なる。すなわち,モジュ−ル1で得られるD1/AMAXは,モジュール3を通過する。図6に示すように,Y方向の光方向,LY;断片位置,j;YMin及び1/(YMax−YMin)は,モジュ−ル3に入力される。得られた値「LX(j−YMin)/(YMax−YMin)」は,省略されて,ILYとも呼ばれる。
【0040】
(モジュ−ル4)
図7は図3でのモジュ−ル4の概略図を示す。これはXY平面でのシェーディング値を出力するために,シェーディング値ILXとILYとを結合するシステムである。モジュ−ル2の出力は,X方向でのシェーディングの寄与,ILXであり,モジュ−ル3の出力はY方向でのシェーディングの寄与,ILYである。図3のモジュ−ル4及び図7で示されるそれに対応する概略図は,XY平面でのシェーディング値を出力するために,シェーディング値ILXとILYとを結合するシステムを描いている。
【0041】
(LXYAtt,LXYMin,LXYMax)の組は,利用者が定めた,XY平面でのシェーディングの制御を可能とする値の組である。図7に示すように,ILXはモジュ−ル2から入力される,ILYはモジュ−ル3から入力される,そして,D1/AMAXはモジュ−ル1から入力される。LXYAtt,LXYMin及びLXYMaxはいずれかで計算され,又は利用者によって定められる,そしてモジュ−ル4に入力される。図7に示すように,モジュ−ル4は次からなる:X方向でのシェーディング値,ILXを得るための手段;Y方向でのシェーディング値,ILYを得るための手段;スカラ−値の組(LXYAtt,LXYMin及びLXYMax)を得るための手段;断片位置(i,j)に関係する間隔[0,1]に図示されたzインターセクションを考慮しないで累積密度値「D1/AMAX」を得るための手段;例えば加算器600で,入力としてILX及びILYを用いて,「ILX+ILY」を計算するための手段;例えば乗算器601で,入力としてLXYAtt及びD1/AMAXを用いて,「LXYAtt*D1/AMAX」を計算するための手段;例えば加算器603,乗算器または1−X検索で,入力として「LXYAtt*D1/AMAX」を用いて,「1−LXYAtt*D1/AMAX」を計算するための手段;例えば乗算器602で,入力として「1−LXYAtt*D1/AMAX」及び「LX+LY」を用いて,「Delta_ILXY」と以下で呼ばれる「(1−LXYAtt*D1/AMAX)*(LX+LY)」を計算するための手段;例えば加算器604,乗算器または1−X検索で,入力として「Delta_ILXY」を用いて,「1−Delta_ILXY」を計算するための手段;例えば乗算器605で,入力として「Delta_ILXY」及び「LXYMax」を用いて,「Delta_ILXY*LXYMax」を計算するための手段;例えば乗算器606で,入力として「1−Delta_ILXY」及び「LXYMin」を用いて,「1−Delta_ILXY *LXYMin」を計算するための手段;例えば加算器607で,入力として「Delta_ILXY*LXYMax」及び「1−Delta_ILXY*LXYMin」を用いて,「1−Delta_ILXY」*LXYMin+Delta_ILXY*ILXYMax」を計算するための手段;図7に示すように,モジュ−ル4は3つの加算器,4つの乗算器,2つのテ−ブル,6本の入力線,及び1本の出力線を用いて実行され得る。
要素603と604とは,演算子1−Xとして定められる。もちろん,それはいくつかの加算器によって取り替えることができる。しかし,入力値の種類は,nビットの,符号のない整数である。したがって,1−Xを計算するために,全てのnビットは,逆にされる(~)。&は,全てのnより低いビットが考慮されることを意味する。原稿では,それはどんな長さでも使えるので,ビットの幅を指定しなかったことに気をつける。実際には,8ビットで十分である。この図形(~&)は,他の図でも使われる。
【0042】
(平面のシェーディング)
モジュ−ル2,3及び4は,光のベクトル方向LX及びLY,zインターセクションを考慮しない蓄積密度に従い,XY平面でのシェーディングの寄与を計算するための手段を提供する,そしてその制御のために利用者は状態(LXYAtt,LXYMin,LXYMax)を定める。
【0043】
シェーディングの式は,物理的な原理でなく,むしろ日常生活観察に基づく。モジュ−ル2,3及び4,そして対応する図5,6及び7は,そのようなシェーディングを実現するための手段を提供する。このシェーディングは,XYシェーディング又は平面のシェーディングと呼ばれ,以下の通りに説明される。
【0044】
前述のように,ガス状物体の閉ざされている四角形は,計算されて,いずれかに保存されている。この四角形は,2Dパラメ−タの空間を定め,そこでガス状物体のそれぞれの断片位置(i,j)が間隔[0,1]において(u,v)で,(u,v)座標としてパラメ−タ化される。図8は,ガス状物体の断片位置(i,j)の図解を示す。
【0045】
位置付けは,単純に以下の通りに実行される。
【0046】
【数2】
【0047】
光方向の構成要素(LX,LY)を用いて,平面シェーディングを計算することができる。このシェーディング値は,単に勾配として定められる。例えば,(LX,LY)が(1,0)に等しいと仮定する。この場合,最も明るい場所はXMinに近い断片,暗い場所はXMaxに近い断片に対して定められる。従って,もし(LX,LY)が(−1,0)と等しければ,そのときは反対の構成が定められなければならない。(LX,LY)が(0,±1)に等しい場合において,似たような観察がなされ得る。中間の場合では,LX及びLYが0でなく,明るさへの寄与は(LX,LY)による。単純な線形勾配は,現実的な結果を提供しない。したがって,ここではzインターセクションを考慮しないで累積密度値を用いて,それに混乱を付加することをここでは提案する。以下のCのようなアルゴリズムは,ILXYを散在する側を計算するために用いられる。
【0048】
入力:断片座標(i,j)
位置付けられた密度D1/AMAX
u=(i−XMin)*(1/(XMin−XMAX));
v=(j−YMin)*(1/YMin−YMAX);
摂動=(1.0−LXYAtt*D1/AMAX)
Delta_ILXY=(LX*u+LY*v)*摂動;
ILXY=(1.0−Delta_ILXY)*LXYMin+Delta_ILXY*LXYMax;
出力:散在する側の値(ILXY)
【0049】
上記のアルゴリズムにおいて,利用者が指定した3つの値,LXYAtt,LXYMin,LXYMax,が使われる。最初の値は,密度値を用いている勾配混乱の影響を制御する,そして他の2つの値は,平面のシェーディング値が属する明暗度間隔を定める。
【0050】
(モジュ−ル5)
図9は図3でのモジュ−ル5の概略図を示す。それはz方向での光,LZに従い,視覚方向でのシェーディングの寄与度であるILZを計算するためのシステムである。
【0051】
(LZAtt,LZMin,LZMAX)のタプルは,利用者が定める,z方向でシェーディングを制御することができる値の組である。図9に示すように,z方向での光方向,LZ,及びD1/AMAXは,モジュ−ル1から入力される。LZAtt,LZMin及びLZMAXは,計算されるか,利用者によっていずれかで定められ,モジュ−ル5に入力される。
【0052】
図9に示すように,モジュール5は次からなる:z方向での光方向,LZを得るための手段;スカラ−値(LZAtt,LZMin及びLZMAX)の組を得るための手段;断片位置(i,j)に関係する間隔[0,1]に位置付けされたzインターセクションを考慮しない累積密度値「D1/AMAX」を得るための手段;例えば乗算器700で,入力としてLZAtt及びD1/AMAXを用いて,「LZAtt*D1/AMAX」を計算するための手段;例えば加算器702,乗算器又は1−Xテ−ブルで,入力として「LZAtt*D1/AMAX」を用いて,「1−LZAtt*D1/AMAX」を計算するための手段;例えば乗算器701で,入力として(1−LZAtt*D1/AMAX)及びLZを用いて,「Delta_ILZ」として以下で呼ばれる「(1−LZAtt*D1/AMAX)*LZ」を計算するための手段;例えば乗算器704で,入力として「Delta_ILZ」及び「LZMAX」を用いて,「Delta_ILZ*LZMAX」を計算するための手段;例えば乗算器705で,「1−Delta_ILZ」及びLZMinを用いて,「(1−Delta_ILZ)*LZMin」を計算するための手段;例えば加算器706で,入力として「Delta_ILZ*LZMAX」及び「(1−Delta_ILZ)*LZMin」を用いて,「(1−Delta_ILZ)*LZMin+Delta_ILZ*ILZMAX」を計算するための手段。図9に示すように,モジュ−ル5は1つの加算器,4つの乗算器,2つのテ−ブル,5本の入力線,及び1本の出力線を用いて実行される。
【0053】
前の節では,光方向ベクトルの構成要素(LX,LY)を用いて平面のシェーディング値を考慮した。視覚方向に沿ってシェーディングを計算するために,光方向の構成要素LZが使われる。このシェーディング値の計算は,Lz値の符号による。プラスならば,光がガス状物体の後に位置することを意味する,そしてマイナスならば,光がガス状物体の前に位置することを意味する。この値をILZとして示す。XYシェーディングに関してと同じ観察がなされる。光方向の構成要素LZが1と等しければ,そのとき前面の散在は最大値(そして平面のシェーディングは,0である)で,そしてその逆も成り立つ。
【0054】
以下のCのようなアルゴリズムは,ILZを散在している側を計算するために用いられる:
入力:断片座標(i,j)
位置付けられた密度D1/AMAX
摂動=(1.0−LZAtt* D1/AMAX)
Delta_ILZ=(LZ)*摂動;
ILZ=(1.0−Delta_ILZ)*LZMin+Delta_ILZ *LZMAX;
出力:前面/背面の散在値(ILZ)
【0055】
上記のアルゴリズムでは,3つの値,LZAtt,LZMin及びLZMAXが使われる。これらの値は,横の散在に関してと類似した方法で,前面/背面の散在を制御する。
【0056】
それでもやはり,利用者は6つの値,前面の光散在のための3つ,及び背面の散在のための3つ,を指定しなければならない。LZの符号に従い,1セット又は別の一つが選ばれて,アルゴリズムで使われる。
【0057】
(モジュ−ル6)
図10は,図3でのモジュ−ル6の概略図を示す。このモジュ−ルは,XYシェーディングの寄与,Zシェーディングの寄与及び全体的な周囲の色を結合する。図10に示すように,モジュ−ルは次からなる:XY平面でのシェーディングの寄与,ILXYを得るための手段;視覚方向に沿ってのシェーディングの寄与,ILZを得るための手段;全体的な最小及び最大の周囲のRGB色,(RMinAMB,GMinAMB,BMinAMB)及び(RMAXAMB,GMAXAMB,BMAXAMB)を得るための手段,それはシェーディングのために全体的な周囲の色を制御する;例えば加算器800で,入力として「ILXY」及び「IL」を用いて,「ILXY+ILZ」(以下、“IL”ともよぶ)を計算するための手段;ILを入力として用いて1−ILを求める手段(例えば,加算器800);例えば乗算器802など,入力として「IL」及び(RMAXAMB,GMAXAMB,BMAXAMB)を用いて,IL*(RMAXAMB,GMAXAMB,BMAXAMB)を計算するための手段;例えば加算器800又は1−Xテ−ブルなど,入力として「IL」を用いて,「1−IL」を計算するための手段;例えば乗算器803で,入力として「1−IL」及び(RMinAMB,GMinAMB,BMinAMB)を用いて,(1−IL)*(RMinAMB,GMinAMB,BMinAMB)を計算するための手段;例えば加算器804で,入力として(1−IL)*(RMinAMB,GMinAMB,BMinAMB)及びIL*(RMAXAMB,GMAXAMB,BMAXAMB)を用いて,(1−IL)*(RMinAMB,GMinAMB,BMinAMB)+IL*(RMAXAMB,GMAXAMB,BMAXAMB)を計算するための手段;加算器804からの出力は,(1−IL)*RMinAMB+IL*RMAXAMB,RG;(1−IL)*GMinAMB+IL*GMAXAMB,GG;そして(1−IL)*BMinAMB+IL*BMAXAMB,BGである。これらの値,RG,GG及びBG,は,GAS RBG又はガス状物体の色,CGとも呼ばれる。
【0058】
図10に示される模式的な回路は,XYシェーディングをZシェーディングと結合するための手段を提供し,そして全体的な周囲の最小及び最大値を考慮したガス状物体の断片のRGB色を計算するための手段も提供する。それは,シェーディングモデルの以下の説明に基づく。
【0059】
所定の断片に対して,2つのシェーディング値ILXY及びILZが計算される。これらの値は最初に加算され,値ILを生じる。結果は,利用者が定義した周囲の最小及び最大値を用いて,断片の実際のRGB色を計算するために用いられる。
【0060】
以下のCのようなアルゴリズムは,断片のRGB色を計算するために用いられる:
IL = ILXY+ILZ;
RG =(1−IL)*周囲の最小赤+IL*周囲の最大赤
GG=(1−IL)*周囲の最小緑+IL*周囲の最大緑
BG =(1−IL)*周囲の最小青+IL*周囲の最大青
【0061】
ここで,周囲の最小及び周囲の最大は,利用者が定めた2つのRGB色であり,それぞれのチャンネルに対して最小及び最大色の明暗度を制御する。シェーディングは,単純に全体的な最小の周囲色と全体的な最大の周囲色との間の線形展開である。光のシェーディング寄与ILは,これらの2つの色を補間するために用いられる。
【0062】
(モジュ−ル7)
図11は,図3でのモジュ−ル7の概略図を示す。図11に示すように,断片位置(i,j)に関係するzインターセクションを考慮した累積密度,D2及び減衰要素DAttは,モジュ−ルに入力される。モジュ−ル7,及び図11に示される対応する模式的な回路は,zインターセクションを考慮した累積密度を透明度,α値に変換するための手段を提供する。図11に示されるように,モジュ−ル7は次からなる:断片位置(i,j)に関係するzインターセクションを考慮した累積密度,D2を得るための手段;減衰要素,DAttを得るための手段;例えば乗算器900で,入力としてD2及びDAttを用いて,「D2*DAtt」を計算するための手段;例えば,値1−expを計算するルックアップテ−ブル901で,入力として「D2*DAtt」を用いて,「1exp(−D2*DAtt)」を計算するための手段,ここで入力はXであり,出力値は数学の関数1−exp(−X)である。出力値「1exp(−D2*DAtt)」は,ここではガス状物体のα値,AGとも呼ばれる。
【0063】
(モジュ−ル8)
モジュ−ル8は,ガス状物体の透明度,α値を考慮して,ガス状物体と表面物体とを組み合わせるために用いられる。ガス状物体の透明度を表すα値,AG;
GAS RBG,RG,GG及びBG,言い換えればCG;そして,赤,緑及び青の構成要素RS,GS及びBS,それぞれからからなる断片位置(i,j)での表面物体の色CS;は,モジュ−ル8へ入力される。モジュ−ル8は,表面物体の色を考慮してガス状物体の色を計算するための回路であり,以下を有する:ガス状物体の透明度,AGを得るための手段;ガス状物体の色,RG,GG及びBGを含むCG,を得るための手段;表面物体の色,CSを得るための手段;例えば乗算器1001又は1−Xテ−ブルで,入力としてAGを用いて,1−AGを計算するための手段;例えば乗算器1002で,入力として「1−AG」及びCGを用いて,(1−AG)*CGを計算するための手段;例えば乗算器1003で,入力としてAG及びCSを用いて,AG*CSを計算するための手段;そして,入力として(1−AG)*CG及びAG*CSを用いて,(1−AG)*CG+AG*CSを計算するための手段。
【0064】
出力値(1−AG)*CG+AG*CSは,(1−AG)*RG+AG*RS,(1−AG)*GG+AG*GS及び(1−AG)*BG+AG*BSからなり,表示されるための準備が整う。
【0065】
(実施例1)
上記で開示した回路を用いることで,即時に表面物体の前に,ガス状物体の三次元コンピュ−タ画像を得た。
【産業上の利用可能性】
【0066】
この発明は,コンピュ−タグラフィックスの分野に有用である。
【図面の簡単な説明】
【0067】
【図1】像を得るための三次元化シ−ケンスを示す図である。
【図2】1つはzインターセクションなしで,1つはzインターセクションにより,密度の蓄積の計算を可能にする回路又はシステムを示す図である。
【図3】下位モジュ−ルからなるポスト合成段階用のシステムの概略図である。
【図4】図3のモジュ−ル1の概略図である。
【図5】図3のモジュ−ル2の概略図である。
【図6】図3のモジュ−ル3の概略図である。
【図7】XY平面でのシェーディング値を出力するために,シェーディング値ILXとILYとを結合するためのシステムである,図3のモジュ−ル4の概略図である。
【図8】ガス状物体の断片位置(i,j)の図解である。
【図9】z方向光,LZに従い,視覚方向でのシェーディング寄与,ILZを計算するためのシステムである,図3のモジュ−ル5の概略図である。
【図10】図3のモジュ−ル6の概略図である。
【図11】図3のモジュ−ル7の概略図である。
【特許請求の範囲】
【請求項1】
視覚空間座標で光方向を得るための手段と;
視覚座標系でガス状物体と境界を有する箱を得るための手段と;
視覚座標系でガス状物体のシェーディング値を計算するための手段と;
zインターセクションを考慮した累積密度を透明度α値に変換するための手段と;
シェーディング計算の結果を用いてzインターセクションを考慮しない累積密度をRGB色に変換するための手段と;そして
シェーディングの付けられたガス状物体像を表面物体像と結合するための手段と
を具備する累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体像に変換するシステム。
【請求項2】
バッファ像のすべての断片(i,j)を得るための手段と;
z値を用いないで,視覚座標系でのガス状物体と境界を有する箱(XMin,YMin),(XMax,YMax)を得るための手段と;
バッファ像に保存されたzインターセクションを考慮しない最大密度ACC1を得るための手段と;
視覚空間座標で光方向を得るための手段と;
XY平面における視覚座標で前記物体にシェーディングを付けるための手段と;
Z軸に沿って視覚座標で前記物体にシェーディングを付けるための手段と;
Zインターセクションを考慮した累積密度を透明度α値に変換するための手段と;
シェーディング計算の結果を用いてzインターセクションを考慮しない累積密度をRGB色に変換するための手段と;
表面物体のバッファRGBA像を得るための手段であるフレームバッファと;そして,
前記断片(i,j)に関係するシェーディングの付けられたガス状物体の色を,前記断片(i,j)に関係する表面物体の断片の色と結合するための手段と;
を備える累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体に変換するためのシステム。
【請求項3】
バッファ像のすべての断片(i,j)を得るための手段と;
バッファACC1及びACC2に保存された前記断片(i,j)に関係する密度を得るための手段と;
z値を用いないで,視覚座標系でのガス状物体と境界を有する箱(XMin,YMin),(XMax,YMax)を得るための手段と;
バッファ像ACC1に保存されたzインターセクションを考慮しない場合の最大密度ACC1を得るための手段と;
視覚空間座標(LX,LY,LZ)での光方向を得るための手段と;
XY平面でシェーディングを制御するスカラ−値のタプル(LXYAtt,LXYMin,LXYMax)を得るための手段と
Z平面でシェーディングを制御するスカラ−値の組(LZAtt,LZMin,LZMax)を得るための手段と;
シェーディングのための全体的な周囲の色を制御する全体的な最小及び最大の周囲のRGB色(RMinAMB,GMinAMB,BMinAMB)及び(RMAXAMB,GMAXAMB,BMAXAMB)を得るための手段と;
前記断片(i,j)に関係する光方向LXでのシェーディングの寄与を計算するための手段と;
前記断片(i,j)に関係する光方向LYでのシェーディングの寄与を計算するための手段と;
前記断片(i,j)に関係する視覚座標系におけるXY平面でのシェーディングの寄与を計算するための手段と;
前記断片(i,j)に関係するZ軸に沿っての視覚座標でのシェーディングの寄与を結合するための手段と;
前記断片(i,j)に関係するXY平面でのシェーディング及びZ軸に沿ってのシェーディングを結合するための手段と;
前記断片(i,j)に関係する結果として生じたシェーディングと全体的な周囲の色とを結合するための手段と;
前記断片(i,j)に関係するガス状物体のRGB色を得るための手段と;
Zインターセクションを考慮した蓄積密度をα値(透明度)に変換するための手段と;
表面物体のバッファRGBA像,フレームバッファを得るための手段と;そして
前記断片(i,j)に関係するシェーディングの付いたガス状物体の色を,前記断片(i,j)に関係する表面物体の断片の色と結合するための手段と
を備える,累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体に変換するためのシステム。
【請求項4】
バッファ像のすべての断片(i,j)を得るための手段と;
バッファACC1及びACC2に保存される前記断片(i,j)に関係する密度であって,それぞれACC1[i][j]及びACC2[i][j]を得るための手段と;
z値を用いないで,視覚座標系でのガス状物体と境界を有する箱(XMin,YMin),(XMax,YMax)を得るための手段と;
バッファ像ACC1に保存されたzインターセクションを考慮しない最大密度AMAXを得るための手段と;
視覚空間座標(LX,LY,LZ)で光方向を得るための手段と;
XY平面でシェーディングを制御するスカラ−値のタプル(LXYAtt,LXYMin,LXYMax)を得るための手段と;
Z平面でシェーディングを制御するスカラ−値のタプル(LZAtt,LZMin,LZMax)を得るための手段と;
シェーディングのための全体的な周囲の色を制御する全体的な最小及び最大の周囲のRGB色(RMinAMB,GMinAMB,BMinAMB)及び(RMAXAMB,GMAXAMB,BMAXAMB)を得るための手段と;
ILXとして定義され,「ILX=LX*(i−XMin)/(XMax−XMin)」である前記断片(i,j)に関係する光方向LXでシェーディングの寄与を計算するための手段と;
ILYとして定義され,「ILY=LY*(j−YMin)/(YMax−YMin)」である前記断片(i,j)に関係する光方向LYでシェーディングの寄与を計算するための手段と;
ILXYに等しく,Delta_ILXY=(1.0−LXYAtt*(ACC1[i][j]/AMAX))*(ILX+ILY)として,ILXY=(1−Delta_ILXY)* LXYMin+Delta_ILXY*LXYMaxで定義される,前記断片(i,j)に関係する視覚座標系でのXY平面におけるシェーディングの寄与を計算するための手段と;
ILZに等しく,Delta_ILZ=(1.0−LZAtt*(ACC1[i][j]/AMAX))*(LZ)」として,ILZ=(1−Delta_ILZ)* LZMin + Delta_ILXY*LZMAXで定義される,前記断片(i,j)に関係するZ軸に沿っての視覚座標でシェーディングの寄与を計算するための手段と;
ILとして定義され,IL=ILXY+ILZである前記断片(i,j)に関係するXY平面でのシェーディング及びZ軸に沿ってのシェーディングを結合するための手段と;
前記断片(i,j)に関係するガス状物体のシェーディングの付けられたRGB色(RG,GG,BG)を計算するための手段,ここでRG,GG及びBGのそれぞれのチャンネルは,「RG =(1.0−IL)*(RMinAMB)+IL*(RMAXAMB)」,「GG=(1.0−IL)*(GMinAMB)+IL*(GMAXAMB)」及び「BG=(1.0−IL)*(BMinAMB)+IL *(BMAXAMB)」として定義される;
zインターセクションを考慮した累積密度を,ルックアップテ−ブルで定められるα値(透明度)に変換するための手段,ここでzインターセクションを考慮した累積密度ACC2[i][j]は,ルックアップテ−ブルの入力として用いられ,α値AGはテーブルの出力である;
表面物体のバッファRGBA像,フレームバッファ,及び(RS,GS,BS,AS)を得るための手段;そして,
ここで(R,G,B,A)を「R=(1−AG)*RS+AG*RG」,「G=(1−AG)*GS+AG*GG」,「B=(1−AG)*BS+AG*BG」及び「A=(1−AG)*AS+AG*AG」として定義した場合に,前記断片(i,j)に関係するシェーディングの付いたガス状物体の色(RG,GG,BG,AG)を,前記断片(i,j)に関係する表面物体の断片の色(RS,GS,BS,AS)と結合するための手段,
を具備する累積密度を表面物体に表示されるシェーディングが付けられたガス状物体の像に変換するためのシステム。
【請求項1】
視覚空間座標で光方向を得るための手段と;
視覚座標系でガス状物体と境界を有する箱を得るための手段と;
視覚座標系でガス状物体のシェーディング値を計算するための手段と;
zインターセクションを考慮した累積密度を透明度α値に変換するための手段と;
シェーディング計算の結果を用いてzインターセクションを考慮しない累積密度をRGB色に変換するための手段と;そして
シェーディングの付けられたガス状物体像を表面物体像と結合するための手段と
を具備する累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体像に変換するシステム。
【請求項2】
バッファ像のすべての断片(i,j)を得るための手段と;
z値を用いないで,視覚座標系でのガス状物体と境界を有する箱(XMin,YMin),(XMax,YMax)を得るための手段と;
バッファ像に保存されたzインターセクションを考慮しない最大密度ACC1を得るための手段と;
視覚空間座標で光方向を得るための手段と;
XY平面における視覚座標で前記物体にシェーディングを付けるための手段と;
Z軸に沿って視覚座標で前記物体にシェーディングを付けるための手段と;
Zインターセクションを考慮した累積密度を透明度α値に変換するための手段と;
シェーディング計算の結果を用いてzインターセクションを考慮しない累積密度をRGB色に変換するための手段と;
表面物体のバッファRGBA像を得るための手段であるフレームバッファと;そして,
前記断片(i,j)に関係するシェーディングの付けられたガス状物体の色を,前記断片(i,j)に関係する表面物体の断片の色と結合するための手段と;
を備える累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体に変換するためのシステム。
【請求項3】
バッファ像のすべての断片(i,j)を得るための手段と;
バッファACC1及びACC2に保存された前記断片(i,j)に関係する密度を得るための手段と;
z値を用いないで,視覚座標系でのガス状物体と境界を有する箱(XMin,YMin),(XMax,YMax)を得るための手段と;
バッファ像ACC1に保存されたzインターセクションを考慮しない場合の最大密度ACC1を得るための手段と;
視覚空間座標(LX,LY,LZ)での光方向を得るための手段と;
XY平面でシェーディングを制御するスカラ−値のタプル(LXYAtt,LXYMin,LXYMax)を得るための手段と
Z平面でシェーディングを制御するスカラ−値の組(LZAtt,LZMin,LZMax)を得るための手段と;
シェーディングのための全体的な周囲の色を制御する全体的な最小及び最大の周囲のRGB色(RMinAMB,GMinAMB,BMinAMB)及び(RMAXAMB,GMAXAMB,BMAXAMB)を得るための手段と;
前記断片(i,j)に関係する光方向LXでのシェーディングの寄与を計算するための手段と;
前記断片(i,j)に関係する光方向LYでのシェーディングの寄与を計算するための手段と;
前記断片(i,j)に関係する視覚座標系におけるXY平面でのシェーディングの寄与を計算するための手段と;
前記断片(i,j)に関係するZ軸に沿っての視覚座標でのシェーディングの寄与を結合するための手段と;
前記断片(i,j)に関係するXY平面でのシェーディング及びZ軸に沿ってのシェーディングを結合するための手段と;
前記断片(i,j)に関係する結果として生じたシェーディングと全体的な周囲の色とを結合するための手段と;
前記断片(i,j)に関係するガス状物体のRGB色を得るための手段と;
Zインターセクションを考慮した蓄積密度をα値(透明度)に変換するための手段と;
表面物体のバッファRGBA像,フレームバッファを得るための手段と;そして
前記断片(i,j)に関係するシェーディングの付いたガス状物体の色を,前記断片(i,j)に関係する表面物体の断片の色と結合するための手段と
を備える,累積密度を表面物体とともに表示されるシェーディングの付けられたガス状物体に変換するためのシステム。
【請求項4】
バッファ像のすべての断片(i,j)を得るための手段と;
バッファACC1及びACC2に保存される前記断片(i,j)に関係する密度であって,それぞれACC1[i][j]及びACC2[i][j]を得るための手段と;
z値を用いないで,視覚座標系でのガス状物体と境界を有する箱(XMin,YMin),(XMax,YMax)を得るための手段と;
バッファ像ACC1に保存されたzインターセクションを考慮しない最大密度AMAXを得るための手段と;
視覚空間座標(LX,LY,LZ)で光方向を得るための手段と;
XY平面でシェーディングを制御するスカラ−値のタプル(LXYAtt,LXYMin,LXYMax)を得るための手段と;
Z平面でシェーディングを制御するスカラ−値のタプル(LZAtt,LZMin,LZMax)を得るための手段と;
シェーディングのための全体的な周囲の色を制御する全体的な最小及び最大の周囲のRGB色(RMinAMB,GMinAMB,BMinAMB)及び(RMAXAMB,GMAXAMB,BMAXAMB)を得るための手段と;
ILXとして定義され,「ILX=LX*(i−XMin)/(XMax−XMin)」である前記断片(i,j)に関係する光方向LXでシェーディングの寄与を計算するための手段と;
ILYとして定義され,「ILY=LY*(j−YMin)/(YMax−YMin)」である前記断片(i,j)に関係する光方向LYでシェーディングの寄与を計算するための手段と;
ILXYに等しく,Delta_ILXY=(1.0−LXYAtt*(ACC1[i][j]/AMAX))*(ILX+ILY)として,ILXY=(1−Delta_ILXY)* LXYMin+Delta_ILXY*LXYMaxで定義される,前記断片(i,j)に関係する視覚座標系でのXY平面におけるシェーディングの寄与を計算するための手段と;
ILZに等しく,Delta_ILZ=(1.0−LZAtt*(ACC1[i][j]/AMAX))*(LZ)」として,ILZ=(1−Delta_ILZ)* LZMin + Delta_ILXY*LZMAXで定義される,前記断片(i,j)に関係するZ軸に沿っての視覚座標でシェーディングの寄与を計算するための手段と;
ILとして定義され,IL=ILXY+ILZである前記断片(i,j)に関係するXY平面でのシェーディング及びZ軸に沿ってのシェーディングを結合するための手段と;
前記断片(i,j)に関係するガス状物体のシェーディングの付けられたRGB色(RG,GG,BG)を計算するための手段,ここでRG,GG及びBGのそれぞれのチャンネルは,「RG =(1.0−IL)*(RMinAMB)+IL*(RMAXAMB)」,「GG=(1.0−IL)*(GMinAMB)+IL*(GMAXAMB)」及び「BG=(1.0−IL)*(BMinAMB)+IL *(BMAXAMB)」として定義される;
zインターセクションを考慮した累積密度を,ルックアップテ−ブルで定められるα値(透明度)に変換するための手段,ここでzインターセクションを考慮した累積密度ACC2[i][j]は,ルックアップテ−ブルの入力として用いられ,α値AGはテーブルの出力である;
表面物体のバッファRGBA像,フレームバッファ,及び(RS,GS,BS,AS)を得るための手段;そして,
ここで(R,G,B,A)を「R=(1−AG)*RS+AG*RG」,「G=(1−AG)*GS+AG*GG」,「B=(1−AG)*BS+AG*BG」及び「A=(1−AG)*AS+AG*AG」として定義した場合に,前記断片(i,j)に関係するシェーディングの付いたガス状物体の色(RG,GG,BG,AG)を,前記断片(i,j)に関係する表面物体の断片の色(RS,GS,BS,AS)と結合するための手段,
を具備する累積密度を表面物体に表示されるシェーディングが付けられたガス状物体の像に変換するためのシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2011−159328(P2011−159328A)
【公開日】平成23年8月18日(2011.8.18)
【国際特許分類】
【出願番号】特願2011−118589(P2011−118589)
【出願日】平成23年5月27日(2011.5.27)
【分割の表示】特願2008−527651(P2008−527651)の分割
【原出願日】平成19年7月30日(2007.7.30)
【出願人】(502401703)株式会社ディジタルメディアプロフェッショナル (26)
【Fターム(参考)】
【公開日】平成23年8月18日(2011.8.18)
【国際特許分類】
【出願日】平成23年5月27日(2011.5.27)
【分割の表示】特願2008−527651(P2008−527651)の分割
【原出願日】平成19年7月30日(2007.7.30)
【出願人】(502401703)株式会社ディジタルメディアプロフェッショナル (26)
【Fターム(参考)】
[ Back to top ]