[本発明の概要]
以後説明する本発明のある実施形態では,ライトニング式(the lighting 式)は,ガス状物体を通過する光の強度の減衰を考慮している。本発明では,新規なライトニング式に基づく,雲などのシェーディングを計算するための新規な回路を提供する。本発明は,均質ではない(non−homogeneous)内部の色分布を含む,レンダリング及びシェーディングされたガス状物体を表現するためのシステムなどに関する。
第一の側面に係るシステムは,次式に基づきライトファクタを計算するシステムに関する。
[I]
上記式中,L.S.はスカッタリングファクタ(分散要素)であり,計算されるか,あらかじめ定義される。L.A.pは粒子のアッテネーションファクタ(減衰要素)を示し,モデリングの段階で計算されるか,事前に定義される。LZMinB[xi][yi], LZMaxB[xi][yi] 及びLAB[xi][yi] は,それぞれ,xi及びyiと関連したzの最小値, zの最大値,及び(1又は複数の)蓄積密度を示す。xi及びyiは,たとえば,ガス状物体を構成する粒子の光デバイス空間座標への射影によって得られるデスクリート座標(デバイス空間座標)である。添え字“i”は,離散空間(デバイス空間)において定義されることを示す。LZMinB, LZMaxB及びLABなどの光バッファは,公知の手段によって初期化できる。たとえば,日本国特許出願2001-188923 (特許文献 6)に開示される方法に従って初期化できる。
第二の側面に係るシステムは, 減衰係数ZDFと減衰密度DZを計算するためのシステムに関する。そのシステムは次式に基づく。
式中, (XMin,YMin), (XMax, YMax) は,カメラ空間におけるビルボード(billboard)粒子の射影結果であり, zpは前記粒子のz値, SurfaceBZは表面物体のz値が保存されるバッファであり, そして前記z 値SurfaceBZ[xi][yi]は計算される表面のz値であり,Wは (XMax-XMin) として定義され, Hは (YMax-YMin)として定義される。“W x H”は矩形面積を意味する。D は,他のどこかで計算されるか,又は定義される密度値である。
第3の側面に係るシステムは,RGBイリュミネーションファクタと蓄積密度を計算するためのシステムに関する。このシステムは次式に基づく。
[III]
式中,Dは粒子密度であり,Tuvはテクスチャ値, ZDFは式II に従って計算された減衰係数である。また,CAB[xi][yi]は蓄積密度であり, L.Factorは式Iに従って計算されたライトファクタであり, (Rp, Gp,Bp) は粒子の色である。IRed[xi][yi], IGreen[xi][yi]及びIBlue[xi][yi]は前記デバイス座標 (xi,yi)と関連するイリュミネーションファクタである。
第4の側面に係るシステムは,レンダリングシステムに関する。このシステムは次式IV又はVに基づく。
[IV]
式中,CAB[xi][yi]は蓄積密度, IRed[xi][yi], IGreen[xi][yi]及びIBlue[xi][yi]は前記式IIIに基づいて計算される前記デバイス座標 (xi,yi) に関連するイリュミネーションファクタである。
[V]
式中,IRg, IGg及びIBgは上記式IVに従って求められる。Rg, Gg 及びBgは,それぞれガス状物体のRGBカラーである。RAmbient, GAmbient 及びBAmbientは,それぞれRGBの背景色である。Agは上記式Vで定義される,いわゆるアルファ値であり, AttZは距離に基づく減衰要素であり,CAB[xi][yi]は前記式IIIで定義される蓄積密度である。
本発明のシステムは,基本的にこれらの式に基づくので,少ない加算器や乗算器,テーブル(tables)で実装でき,このシステムは簡単に実装でき,メモリコストを削減でき,バッファへの少ないアクセスを実現でき,少ない処理を達成できる。さらに,本発明のテーブルは,ルックアップテーブル,すなわち小さなハードウェア,により実現してもよいので,早くてよい結果を得ることができる。
[画像形成のための工程]
図1は,ガス状物体と表面物体とのレンダリングするためのシーケンス例を示す図である。図1に示されるように,対象物の表面は,レンダリングされて,レンダリングされた結果は,フレームバッファや深さバッファ(depth buffer)に入力される。フレームバッファに入力された情報は,後の合成段階において利用される。一方,深さバッファに入力された情報は,ガス状物体のレンダリング(第二のフェーズ)において用いられる。
ガス状物体は,シェーディング(第1のフェーズ)においてシェーディングされ,その結果は光バッファに入力される。ガス状物体のレンダリング(第二のフェーズ)において, 深さバッファに入力された情報や,ガス状物体に関して入力された情報,及び光バッファに入力された情報が用いられる。
第2のフェーズの結果は,カメラバッファに入力される。後の合成段階において,カメラバッファに入力された情報,ガス状物体に関する入力された情報及びフレームバッファに入力された情報が用いられる。後の合成段階の結果は,フレームバッファに入力される。
図1に示されるように,第1の表面物体(通常は,三角形を用いて定義される)は,レンダリングされる。得られたイメージは,いわゆるフレームバッファに蓄えられ,関連する深さに関する情報は,いわゆる深さバッファに蓄えられる。そのようにして,ガス状物体がレンダリングされる。ガス状物体は,いくつかの粒子の集合体として表現される。ガス状物体の像は,以下説明するような工程を経て得られる。
まずは,シェーディング段階のアルゴリズムにしたがって,ガス状物体のシェーディング情報が求められる。その段階では,粒子は,光空間座標として表される。シェーディングフェーズの結果は,いわゆる光バッファとよばれるバッファに蓄えられる。その後,レンダリングフェーズ(第2段階)が実行される。その段階では,光バッファや深さバッファに保存される,表面物体に関するシェーディング段階の結果が用いられる。第二段階の結果は,いわゆるカメラバッファに記憶される。
ガス状物体のレンダリングアルゴリズムにおける最後の段階は,後の合成段階(post-synthesis step)である。フレームバッファに保存される表面物体イメージと,カメラバッファに保存された結果が,ともに用いられる。それらは,結合され,その結果はフレームバッファに蓄えられる(上書きされる)。後の合成ステップが終わったら,イメージが表示できる状態とされている。上記した本発明のシステムは,主に上記の第2の段階すなわち,レンダリング段階において用いられる。
図2は,第2のレンダリング段階における工程と,データフローの例を示す図である。図2に示されるように,グラフィックスを実現する例は,光空間座標に射影(projection)を行うステップ(10)と,光分散(scattering)ステップ(11)と, ライトファクタ計算ステップ(12)と,カメラ空間(camera space)座標に射影を行うステップ (13)と,Z交差(intersection)ステップ(14)と,サンプリングプロセッサを用いてサンプリングするステップ(15)と,テクスチャステップ(16)と,そして,蓄積ステップ(17)とを含む。
本発明の好ましい態様は, 視点距離による減衰が図1に示されるダイヤグラムにより達成されるものである。本発明の好ましい態様は, 距離の設定(defining)が後の合成段階においてのみ起こるものであり,この場合において,距離に応じた減衰要素(アッテネーションファクタ)は蓄積密度をアルファ値に変換するために用いられる。このような演算処理を行う利点は,計算速度や回路のサイズを小さくできることなどである。
図2は,第2段階であるレンダリング段階を示す。ガス状物体は,粒子の集合として定義される。そして,粒子は,ワールド座標系での中心(X,Y,Z),単位法線(primary normal)(Nx, Ny, Nz), 2つの半径(Rx,Ry), 密度D, RGB(赤緑青の)色, 光分散(light scattering)係数及び光減衰(light attenuation)係数などによって表現される。それらすべてのパラメータは,ガス状物体をモデリングするステージにおいてユーザによって定義されてもよい。
シェーディングを行うために,ここでは,光がワールド座標と方向によって定義されると仮定する。光の位置と方向を用いて,光空間座標系とデバイス座標系とを定義できる。
レンダリングを行うために,ここでは,カメラの位置とカメラの向く方向が定義されると仮定する。カメラ位置と方向を用いて,デバイスのカメラ空間座標を定義することができる。
図2に示されるように,レンダリング段階は,光空間座標に射影する工程と,分散を計算する工程と,ライトファクタを計算する工程と,カメラ座標に射影する工程と,zを交差(intersection)する工程と,サンプリング工程と,テクスチャ工程と,蓄積工程とを含む。それぞれの工程は,光空間座標における射影を計算する回路(10)と,ライトスカッタリングファクタ(光分散要素)を計算する回路 (11)と,ライトファクタを計算する回路 (12)と,カメラ空間座標にいて射影を計算する回路 (13)と,zの交差を計算する回路(14)と,サンプリング回路(15)と,テクスチャユニット(16)と,蓄積計算をする回路(17)によって達成される。
[第1の側面に係るシステム]
第1の側面に係るシステムは,レンダリングのためのライトファクタを求めるための回路などに関する。このライトファクタを用いて,RGBイリュミネーションファクタなどのイリュミネーションファクタが求められる。また,最終的なRGBもこのライトファクタを用いて表現される。このライトファクタは,ガス状物体を粒子の集合として表現する場合の,粒子を表現するためなどに用いられる。第1の側面に係るシステムは,基本的には,上記した式[I]を実現するためのシステムに関する。
第1の側面に係るシステムは,基本的にはデバイス座標(xi,yi,Zp),減衰要素L.A.p及び分散要素L.S.により定義される粒子の位置(又はデバイス座標(xi,yi,Zp),減衰要素L.A.p及び分散要素L.S.)を得るための手段と;座標(xi,yi)と関連してzの最小値を保存するための手段と;座標(xi,yi)と関連してzの最大値を保存するための手段と;座標(xi,yi)と関連してガス状物体の蓄積密度を保存するための手段と;前記デバイス座標(xi,yi,Zp),前記zの最小値,前記zの最大値,前記蓄積密度,及び前記減衰要素L.A.pを用いて前記粒子のライトファクタ(LightFactor)の指数要素を得るための手段と;前記ライトファクタの前記指数要素及び前記分散要素L.S.を用いて前記粒子のライトファクタを得るための手段と;を具備する,粒子の集合体として定義されるガス状物体を表現する3次元コンピュータグラフィックスに用いられるライトファクタを計算するためのシステムに関する。そして,基本的には,デバイス座標(xi,yi,Zp),減衰要素L.A.p及び分散要素L.S.により定義される粒子の位置を入力されるか読み出すなどして得て,前記デバイス座標(xi,yi,Zp)のうち座標(xi,yi)を用いて, zの最小値,zの最大値及びガス状物体の蓄積密度を読み出して,前記zの最小値,前記zの最大値,前記蓄積密度,及び前記減衰要素L.A.pを用いて前記粒子のライトファクタ(LightFactor)の指数要素を得て,得られた前記ライトファクタの前記指数要素及び前記分散要素L.S.を用いて前記粒子のライトファクタを得ることにより,粒子の集合体として定義されるガス状物体を表現する3次元コンピュータグラフィックスに用いられるライトファクタを計算するものである。このシステムを用いれば,式[I]に基づくライトファクタを計算でき,少ない回路構成で簡便にライトファクタを計算するシステムを実装できることとなる。なお,デバイス座標(xi,yi,Zp)は,粒子の位置に関する情報であるが,これは粒子の中心位置(xi,yi,zp)であってもよいが,粒子を特定できる位置情報であれば特に限定されない。本明細書においては,Zpとzpとを適宜読み替えて用いることができるものである。また,前提となる各種値は,適宜システムに入力される。
第1の側面に係るシステムの好ましい態様は,前記座標(xi,yi)と関連してzの最小値を保存するための手段,前記座標(xi,yi)と関連してzの最大値を保存するための手段,及び前記座標(xi,yi)と関連してガス状物体の蓄積密度を保存するための手段は,バッファであり;前記粒子のライトファクタの指数要素を得るための手段は,前記デバイス座標(xi,yi,Zp),前記zの最小値,前記zの最大値,前記蓄積密度及び前記減衰要素L.A.pを用い,下記式[Ia]で示される値を計算し (式[Ia]中,L.A.pは減衰要素を示し;LZMinB[xi][yi],LZMaxB[xi][yi]及びLAB[xi][yi]は,それぞれ,xi及びyiと関連して前記バッファに記憶される,zの最小値,zの最大値及び蓄積密度を示す。);そして,前記ライトファクタの前記指数要素及び前記分散要素L.S.を用いて前記粒子のライトファクタを得るための手段は,前記ライトファクタの前記指数要素及び前記分散要素L.S.を用いて,加算器と1-exp(x)テーブルとにより下記式[I]で示されるライトファクタ(LightFactor: L.Factor)を計算する上記に記載されるシステムに関する。
[Ia]
[I]
上記のシステムは,式[I]に基づくので,少ない回路構成で簡便にライトファクタを計算するシステムを実装できることとなる。なお,前記粒子のライトファクタの指数要素を得るための手段は,システムに入力された座標(xi,yi)を用いて,それぞれ各種記憶手段から前記zの最小値,前記zの最大値,及び前記蓄積密度を読み出すとともに,システムに入力された前記減衰要素L.A.pを用い,式[Ia]で示される値を求めればよい。具体的には,当業者に公知な方法に従って,四則演算や逆数演算などを行い式[Ia]で示される値を求めればよい。
第1の側面に係るシステムの好ましい上記とは別の態様は, 前記座標(xi,yi)と関連してzの最小値を保存するための手段,前記座標(xi,yi)と関連してzの最大値を保存するための手段,及び前記座標(xi,yi)と関連してガス状物体の蓄積密度を保存するための手段は,バッファであり;前記粒子のライトファクタの指数要素を得るための手段は,前記デバイス座標(xi,yi,Zp),zの最小値,zの最大値,前記蓄積密度及び前記減衰要素L.A.pを用い,乗算器,加算器及び逆数テーブルにより,上記式[Ia]で示される値を計算し;そして,前記ライトファクタの前記指数要素及び前記分散要素L.S.を用いて前記粒子のライトファクタを得るための手段は,前記ライトファクタの前記指数要素及び前記分散要素L.S.を用いて,加算器と1-exp(x)テーブルとにより上記式[I]で示されるライトファクタ(LightFactor: L.Factor)を計算する上記いずれかに記載されるシステムに関する。このようなシステムは,具体的には,各種回路と回路を接続する導線などのハードウェアにより実装することができ,ハードウェアで実装できるので,迅速にライトファクタを計算でき,リアルタイムな画像を提供できることとなる。
第1の側面に係るシステムの好ましい上記とは別の態様は,前記座標(xi,yi)と関連してzの最小値を保存するための手段は,座標(xi,yi)と関連してzの最小値であるLZMinB[xi][yi]の値を記憶するバッファ(LZMinB(31))であり;前記座標(xi,yi)と関連してzの最大値を保存するための手段は,座標(xi,yi)と関連してzの最大値であるLZMaxB[xi][yi]の値を記憶するバッファ(LZMaxB(32))であり;前記座標(xi,yi)と関連してガス状物体の蓄積密度を保存するための手段は,粒子の座標(xi,yi)と関連してガス状物体の蓄積密度であるLAB[xi][yi]の値を記憶するバッファ(LAB(33))であり;前記粒子のライトファクタの指数要素を得るための手段は,(xi,yi)値をアドレスとして用いて,前記バッファLZMinB(31)から前記粒子のz値の最小値であるLZMinB[xi][yi]を得るための手段と; (xi,yi)値をアドレスとして用いて,前記バッファLZMaxB(32)から前記粒子のz値の最大値であるLZMaxB[xi][yi]を得るための手段と;(xi,yi)値をアドレスとして用いて,前記バッファLAB(33)から前記ガス状物体の蓄積密度であるLAB[xi][yi]を得るための手段と;前記Zp値と前記LZMinB[xi][yi]値とを用いて“Zp-LZMinB[xi][yi]”を計算するための手段と; 前記Zp値と前記LZMinB[xi][yi]値とを用いて“Zp-LZMinB[xi][yi]”を計算するための手段と;前記LZMinB[xi][yi]値と前記LZMaxB[xi][yi]値とを用いて“LZMaxB[xi][yi]-LZMinB[xi][yi]”を計算するための手段と;入力値である前記“LZMaxB[xi][yi]-LZMinB[xi][yi]”を用いて“1/(LZMaxB[xi][yi]-LZMinB[xi][yi])”を計算するための手段と;前記“Zp-LZMinB[xi][yi]”値と前記“LZMaxB[xi][yi]-LZMinB[xi][yi]”値とを用いて[(Zp-LZMinB[xi][yi])/(LZMaxB[xi][yi]-LZMinB[xi][yi])]を計算するための手段と; 前記“L.A.p”値と[(Zp-LZMinB[xi][yi])/(LZMaxB[xi][yi]-LZMinB[xi][yi])]値とを用いて{[(Zp-LZMinB[xi][yi])xL.A.p]/(LZMaxB[xi][yi]-LZMinB[xi][yi])}を計算するための手段と;前記{[(Zp-LZMinB[xi][yi])xL.A.p]/(LZMaxB[xi][yi]-LZMinB[xi][yi])}値とLAB[xi][yi]値とを用いて{[(Zp-LZMinB[xi][yi])xLAB[xi][yi]xL.A.p]/(LZMaxB[xi][yi]-LZMinB[xi][yi])}を計算する手段と;前記{[(Zp-LZMinB[xi][yi])xLAB[xi][yi]xL.A.p]/(LZMaxB[xi][yi]-LZMinB[xi][yi])}を用いて “1-exp{-[(Zp-LZMinB[xi][yi])xLAB[xi][yi]xL.A.p]/(LZMaxB[xi][yi]-LZMinB[xi][yi])}”を計算するための手段と;を含み;前記ライトファクタの前記指数要素及び前記分散要素L.S.を用いて前記ライトファクタを得るための手段は;前記“1-exp{-[(Zp-LZMinB[xi][yi])xLAB[xi][yi]xL.A.p]/(LZMaxB[xi][yi]-LZMinB[xi][yi])}”値とL.S.とを用いて “1-exp{-[(Zp-LZMinB[xi][yi])xLAB[xi][yi]xL.A.p]/(LZMaxB[xi][yi]-LZMinB[xi][yi])}+L.S.”を計算するための手段を含む,上記いずれかに記載されるシステムに関する。このようなシステムは,具体的には,各種回路と回路を接続する導線などのハードウェアにより実装することができ,ハードウェアで実装できるので,迅速にライトファクタを計算でき,リアルタイムな画像を提供できることとなる。
第1の側面に係るシステムの好ましい上記とは別の態様は,前記座標(xi,yi)と関連してzの最小値を保存するための手段は,座標(xi,yi)と関連してzの最小値であるLZMinB[xi][yi]の値を記憶するバッファ(LZMinB(31))であり;前記座標(xi,yi)と関連してzの最大値を保存するための手段は,座標(xi,yi)と関連してzの最大値であるLZMaxB[xi][yi]の値を記憶するバッファ(LZMaxB(32))であり;前記座標(xi,yi)と関連してガス状物体の蓄積密度を保存するための手段は,座標(xi,yi)と関連してガス状物体の蓄積密度であるLAB[xi][yi]の値を記憶するバッファ(LAB(33))であり;前記ライトファクタの指数要素を得るための手段は;前記Zp値とLZMinB[xi][yi]値とを用いて“Zp-LZMinB[xi][yi]”を計算する加算器(又は減算器)(34)と;前記LZMinB[xi][yi]値と前記LZMaxB[xi][yi]値とを用いて“LZMaxB[xi][yi]-LZMinB[xi][yi]”を計算する加算器(35)と;入力値である前記“LZMaxB[xi][yi]-LZMinB[xi][yi]”を用いて“1/(LZMaxB[xi][yi]-LZMinB[xi][yi])”を計算する1/tテーブル(36)と;前記“Zp-LZMinB[xi][yi]”値と前記“LZMaxB[xi][yi]-LZMinB[xi][yi]”値とを用いて[(Zp-LZMinB[xi][yi])/(LZMaxB[xi][yi]-LZMinB[xi][yi])]を計算する乗算器(37)と;前記“L.A.p”値と前記[(Zp-LZMinB[xi][yi])/(LZMaxB[xi][yi]-LZMinB[xi][yi])]値とを用いて,{[(Zp-LZMinB[xi][yi])xL.A.p]/(LZMaxB[xi][yi]-LZMinB[xi][yi])}を計算する乗算器(38)と;前記{[(Zp-LZMinB[xi][yi])xL.A.p]/(LZMaxB[xi][yi]-LZMinB[xi][yi])}値と前記LAB[xi][yi]値とを用いて{[(Zp-LZMinB[xi][yi])xLAB[xi][yi]xL.A.p]/(LZMaxB[xi][yi]-LZMinB[xi][yi])}を計算する乗算器(39)と;前記{[(Zp-LZMinB[xi][yi])xLAB[xi][yi]xL.A.p]/(LZMaxB[xi][yi]-LZMinB[xi][yi])}値を用いて,“1-exp{-[(Zp-LZMinB[xi][yi])xLAB[xi][yi]xL.A.p]/(LZMaxB[xi][yi]-LZMinB[xi][yi])}”を得る “1-exp(-t)テーブル”(40)と,を含み;前記ライトファクタを得るための手段は; 前記“1-exp{-[(Zp-LZMinB[xi][yi])xLAB[xi][yi]xL.A.p]/(LZMaxB[xi][yi]-LZMinB[xi][yi])}”値と前記L.S.とを用いて,“1-exp{-[(Zp-LZMinB[xi][yi])xLAB[xi][yi]xL.A.p]/(LZMaxB[xi][yi]-LZMinB[xi][yi])}+L.S.”値を求める加算器(41)である,上記いずれかに記載されるシステムに関する。
第1の側面に係るシステムの好ましい上記とは別の態様は,前記ガス状物体の蓄積密度は,デバイス座標(xi-,yi)で定義される粒子の位置,減衰された密度であるDz,及びテクスチャ値Tuvを得るための手段と;デバイス座標(xi-,yi)と関連して蓄積密度を保存するための手段と;蓄積密度,前記減衰された密度Dz,及び前記テクスチャ値Tuvを用いて新たな蓄積密度を求めるための手段と;前記デバイス座標(xi-,yi)と関連して蓄積密度を保存するための手段に,前記新たに求められた蓄積密度を書き換えるための手段と;を具備する,3次元コンピュータグラフィックスに用いられる,ガス状物体の蓄積密度を計算するためのシステムにより計算される,上記いずれかに記載されるシステムに関する。すなわち,本発明は,デバイス座標(xi-,yi),デバイス座標(xi-,yi)で定義される粒子の位置,減衰された密度であるDz,及びテクスチャ値Tuvを得るための手段と;デバイス座標(xi-,yi)と関連して蓄積密度を保存するための手段と;蓄積密度,前記減衰された密度Dz,及び前記テクスチャ値Tuvを用いて新たな蓄積密度を求めるための手段と;前記デバイス座標(xi-,yi)と関連して蓄積密度を保存するための手段に,前記新たに求められた蓄積密度を書き換えるための手段とを具備し;前記入力されたデバイス座標(xi-,yi)に基づいて蓄積密度を読み出すとともに,得られた値から3次元コンピュータグラフィックスに用いられるガス状物体の蓄積密度を計算し,デバイス座標(xi-,yi)に基づく蓄積密度を更新するためのシステムをも提供するものである。
上記第1の側面に係るシステムの好ましい利用態様は,コンピュータ用のチップとして実装されるものである。
上記第1の側面に係るシステムの好ましい利用態様は,コンピュータ用の回路として実装されるものである。
上記第1の側面に係るシステムの好ましい利用態様は,上記いずれかに記載されるシステムを具備するコンピュータである。
上記第1の側面に係るシステムの好ましい利用態様は,上記いずれかに記載されるシステムを具備するゲーム機である。
上記第1の側面に係るシステムの好ましい利用態様は,上記いずれかに記載されるシステムを具備する携帯電話である。
上記第1の側面に係るシステムの好ましい利用態様は,上記いずれかに記載されるシステムを具備するナビゲーションシステムである。
上記第1の側面に係るシステムの好ましい利用態様は,上記いずれかに記載されるシステムを具備するスロットマシーンである。
図3は,ライトファクタを計算するためのシステムのブロック図である。図3に示される回路は,粒子のシェーディングファクタ(強度)すなわちLightFactor,短縮して “L. Factor”, を計算するために用いられる。その回路は,以下の値を計算する。
[I]
上記式中,L.S. は分散要素であり,たとえば図2の光分散計算モジュール(11)により計算される。L.A.pは粒子の減衰要素を示し,たとえばモデリングの段階で定義される。LZMinB[xi][yi], LZMaxB[xi][yi] 及びLAB[xi][yi] は,それぞれ,xi及びyiと関連して前記バッファに記憶される,zの最小値, zの最大値,及び(1又は複数の)蓄積密度を示す。xi及びyiは,たとえば,粒子の光デバイス空間座標への射影によって得られるデスクリート座標(デバイス空間座標)である。添え字“i”は,離散空間(デバイス空間)にいて定義されることを示す。LZMinB, LZMaxB及びLABなどの光バッファは,公知の手段によって初期化できる。
ライトファクタは,たとえば,日本国特許公開公報No. 2001-188923 (特許文献 6)などにおいても開示されている。ただし,この公知文献に開示されているライトファクタ は,光分散の要素(light scattering component)を取り入れていない。しかしながら,光分散の要素は,ガス状物体を実現するうえで,主に2つの理由から重要である。第一に,それは,ガス状物体のリアルさという視覚の観点を向上する。第二に,それは,光が放出される様子を描画可能とし,さらに火を描画する場合など,煙や雲以外のガス状効果によるモデルを可能とする。そのような効果は,この公知技術において開示された回路では達成できないものである。さらなる重要な相違は,シェーディングの式である。本発明の好ましい態様では,イルミネーションファクタが,第二のレンダリング工程において計算され,それぞれの(R, G及びB) が独立している。さらに,従来技術と本発明の好ましい態様では,情報を蓄積する方法が異なっている。従来技術では,単なる合計により蓄積がなされていた。しかしながら,本発明の好ましい態様では,基本となるレンダリング蓄積式と指数関数要素があわせて用いられている。
上記式[I]は,図3に示されるシステム(回路)によって実現される。図3に示す回路は,3つの光バッファ,LZMinB(31), LZMaxB(32) 及びLAB(33)と;2つの減算器(加算器)(34及び35) (本明細書において,加算器は減算器であってもよい。);I.T.で示される逆数テーブル(36); 3つの乗算器(それらは除算器としても機能しうる。本明細書において乗算器は除算器であってもよいが,好ましくは乗算器である。) (37, 38及び39); 1-exp(x)テーブル(40);加算器(41);各要素をつなぐライン(42-47)。ラインは,たとえばバスがあげられる。
前記LZMinBとLZMaxBは, それぞれが座標 (xi, yi)と関連してzの最小値とzの最大値であるLZMinB[xi][yi] と LZMaxB[xi][yi]を蓄積するバッファである。前記 LABは,座標 (xi, yi)と関連して密度値を蓄積するバッファである。
それぞれ比較器を含んでもよい2つの減算器,及びシフトレジスタによって,差の値を計算することができる。前記逆数テーブル, I.T.,は逆数を記憶し,値xが前記I.T.に入力された場合, 前記I.T.は前記1/x 値を出力する。前記1-Exp(-x) テーブルは前記1-Exp(-x)値を記憶し,xの値が前記テーブルに入力されると,1-Exp(-x)の値を出力する。ここで,Exp は,指数関数である。たとえば,値1が1-Exp(-x) テーブルに入力されると,そのテーブルは,入力値1と関連してテーブルに記憶される値1-e-1,を読み出して,その値を出力する。
光空間への粒子の射影結果は,デバイス座標 (xi, yi, Zp)となる。座標, xi, yi 及びZp, L.S. 及び L.A.p は本発明の回路に入力される。すなわち,その回路は,デバイスの光空間座標で定義される粒子の座標 (xi, yi, Zp) ,ユーザが定義しうる減衰要素, L.A.p, 及び事前に求められるスカッタリングファクタ(L.S)の3つ値が入力される。
座標 (xi, yi)は, LABに記憶された蓄積密度,LZMinB及びLZMaxBに記憶されたzの最小値と最大値など,光バッファに記憶されたデータを引き出すために用いられる。たとえば,LZMinB (31)は,ライン(42)から入力された座標値xi及び yiを用いてLZMinB[xi][yi] 値を読み出す。
LZMaxB (32)は,ライン(42)から入力された座標値xi 及び yiを用いてLZMaxB[xi][yi] 値を読み出す。さらに, LAB (33)は,ライン(42)から入力された座標値xi及び yiを用いてLAB[xi][yi]値を読み出す。Zp 値とLZMinB[xi][yi]値は,ライン(43)から減算器 (34) に入力され,そのラインはLZMinB(31) と減算器 (34)とにそれぞれ接続される。その後,“Zp- LZMinB[xi][yi]”値が計算され,減算器 (34) と乗算器(37)とに接続されるラインに出力される。
LZMinB[xi][yi]値とLZMaxB[xi][yi]値は,減算器(35)に入力され,減算器はLZMaxB[xi][yi] - LZMinB[xi][yi]値を計算し,その値を減算器(35)とI.T.(36)とを接続するラインに出力する。I.T.は,LZMaxB[xi][yi] - LZMinB[xi][yi]を入力値として,テーブルから1/ (LZMaxB[xi][yi] - LZMinB[xi][yi])値を読み出し,その値をI.T.と乗算器(37)とをつなぐラインに出力する。
乗算器(37) は,入力値“Zp- LZMinB[xi][yi]” 及び “LZMaxB[xi][yi] - LZMinB[xi][yi]”を用いて,[(Zp- LZMinB[xi][yi])/ (LZMaxB[xi][yi]- LZMinB[xi][yi])] を計算し,その値を2つの乗算器 (37)と(38)とをつなぐラインに出力する。その乗算器 (38)は,ライン(44)から入力されるL.A. p,と,[(Zp- LZMinB[xi][yi])/ (LZMaxB[xi][yi]- LZMinB[xi][yi])]とを用いて,{[(Zp- LZMinB[xi][yi]) x L.A. p] / (LZMaxB[xi][yi] - LZMinB[xi][yi])}を計算し,2つの乗算器 (38)及び(39)を接続するラインへ出力する。
乗算器 (39) は,乗算器 (38) からの{[(Zp- LZMinB[xi][yi]) x L.A. p] / (LZMaxB[xi][yi] - LZMinB[xi][yi])}と,バッファLAB (33)からのLAB[xi][yi] とを用いて{[(Zp- LZMinB[xi][yi]) x LAB[xi][yi]x L.A. p] / (LZMaxB[xi][yi] - LZMinB[xi][yi])}の値を計算する。
乗算器 (39)は,{[(Zp- LZMinB[xi][yi]) x LAB[xi][yi]x L.A. p] / (LZMaxB[xi][yi] - LZMinB[xi][yi])}を 乗算器 (39) と1-Exp(-x) テーブル (40)とをつなぐラインに出力する。LAB (33) が乗算器 (38)と接続され,L.A.pを含むラインが乗算器 (39)と接続されてもよいことは明らかである。
1- Exp(-x) テーブル(40) は,入力値 {[(Zp- LZMinB[xi][yi]) x LAB[xi][yi]x L.A. p] / (LZMaxB[xi][yi] - LZMinB[xi][yi])}, すなわち, L.Aを用いて,テーブルに記憶された1 - exp {-[(Zp- LZMinB[xi][yi]) x LAB[xi][yi]x L.A. p] / (LZMaxB[xi][yi] - LZMinB[xi][yi])} を読み出す。ここで,1-Exp(-x) テーブルの替わりに,加算器,+と-の交換器,及びExp(x) テーブルを用いてもよいことは明らかである。
1 - Exp(-x) テーブル (40)は,テーブルと加算器 (41) とをつなぐラインにL.A. を出力する。加算器(41)は,1-Exp(-x) テーブルからの入力値L.A.とライン(46)からの入力値L.S.を用いて,L.A. + L.S., すなわち L. Factor,を計算する。これまで説明したとおり,図2に示される回路を用いてライトファクタが計算される。このようにして,シェーディングに関する情報が計算され記憶される。
上述した回路は,3つの乗算器と3つの加算器を具備するものであり,これは回路を実装するコストを抑え,ハードウェア資源のサイズを抑えることができたことを意味する。
それぞれのバッファへのアクセスを制限するために,特別なデータパッキングが必要とされる。処理速度と画像の質とを比較考量すると,それぞれのガス粒子に関する64ビットの情報を光バッファとカメラバッファにつめることを意味する。これは,光バッファについては,zの最小値,zの最大値及び蓄積密度値が,64ビットの情報として,すなわち,それぞれ16ビットの情報(16ビット分は使用されなていない)として記憶される。同様に,カメラバッファについて,蓄積密度は,赤,緑,青のそれぞれが16ビットに割り当てられ,全体として64ビットとされるものがあげられる。
上記の回路は,コンピュータ用のチップ上に搭載でき,上記の回路を含むコンピュータは,コストとハードウェア資源のサイズを小さくできる。
[第2の側面に係るシステム]
第2の側面に係るシステムは,たとえばガス状物体のように粒子の集合体として定義される物体や,通常三角形の組として表現されるコンピュータグラフィックス上の物体の交点(intersection)を表現するためのシステムなどに関する。第2の側面に係るシステムは,基本的には,3次元コンピュータグラフィックスに用いられる粒子や表面物体の交点演算の結果を反映した減衰要素及び減衰密度を計算するためのシステムなどに関する。第2の側面に係るシステムは,基本的には,上記した式[II]を実現するためのシステムに関する。
本発明のシステムでは,レンダリングにおいて,減衰要素を求め,その減衰要素を取り入れたRGBイリュミネーションファクタや,RGB色を用いるので,効果的に粒子の集合体としてのガス状物体を表現できる。そのほか,第2の側面に係るシステムを採用することで,減衰係数を求めて,ガス状物体が減衰する様子を適格かつ迅速に表現できるので,ガス状物体とある表面物体との交差をもリアルに表現できることとなる。
第2の側面に係るシステムは,基本的には,デバイス座標(xi,yi,zp)で定義されるビルボード粒子の中心位置を得るための手段と;前記ビルボード粒子をカメラ空間へ射影し,前記粒子に対応する矩形領域を得るための手段と;前記矩形の領域の左下と右上に対応するデバイス座標 (XMin, YMin, zp) 及び (XMax, YMax, zp)によって定義される粒子に対応する矩形面積を得るための手段と; 座標 (xi, yi)と関連して表面物体の深さの値を保存するための手段と; 前記深さの値とzpを比較するための手段と;上記の比較結果と,前記矩形の面積とを用いて,減衰係数ZDFを計算するための手段と;を具備する,3次元コンピュータグラフィックスに用いられる減衰係数ZDFを計算するためのシステムに関する。そして,入力等されたビルボード粒子の中心位置であるデバイス座標 (xi,yi,zp)を用いて,ビルボード粒子をカメラ空間へ射影することで射影する。すると,カメラ空間への射影は公知の方法に従って適宜行うことができる。ビルボード粒子をカメラ空間へ射影するので,得られた粒子に対応する領域は,矩形領域となる。この矩形領域を得た後に,矩形の領域の左下と右上に対応するデバイス座標 (XMin, YMin, zp) 及び (XMax, YMax, zp)によって定義される粒子に対応する矩形領域の面積を得る。そして,座標 (xi, yi)を用いて,表面物体の深さの値を読み出す。読み出した深さの値と前記zpを比較する。上記の比較結果(例えば,深さの値がzpより小さい又はzp以下である場合は0とし,それ以外は1とする結果)と,前記矩形の面積とを用いて,減衰係数ZDFを計算する。これにより,3次元コンピュータグラフィックスに用いられる減衰係数ZDFを計算することができる。具体的には,前記矩形領域に含まれる全ての座標値を求め,それぞれの座標値について深さの値を読み出して,zpと比較し,その比較結果(0か1)を合計し,合計した値を,前記矩形領域の面積で割ることにより,減衰係数ZDFを計算することができる。そして,入力等された粒子の密度Dに,得られた減衰係数ZDFをかけることで減衰密度を得ることができる。
第2の側面に係るシステムの好ましい態様は,前記座標 (xi, yi)と関連して表面物体の深さの値を保存するための手段は,座標(xi, yi)と関連して深さの値を記憶するバッファである表面深度バッファ(Surface Depth Buffer)を含み,前記減衰係数ZDFを計算するための手段は,前記矩形の領域(XMin, YMin, zp) , (XMax, YMax, zp)の中にある離散した座標値である座標(xi,yi)を得るための手段と;前記離散した座標値(xi,yi)に関連して前記表面深度バッファに保存されるz値であるzsを得るための手段と,前記zsと前記zpとを比較するための手段と,前記zsと前記zpとの比較結果と,前記矩形の面積とを用いて,前記減衰係数ZDFを計算するための手段と,を具備する上記いずれかに記載のシステムに関する。そして,前記減衰係数ZDFを計算するための手段は,前記矩形の領域(XMin, YMin, zp) , (XMax, YMax, zp)の中にある離散した座標値である座標(xi,yi)を得て,それぞれの離散した座標値(xi,yi)に関連して前記表面深度バッファに保存されるz値であるzsを読み出し,それぞれのzsと前記zpとを比較し,それらの比較結果と前記矩形の面積とを用いて,前記減衰係数ZDFを計算する。具体的には,比較結果は,例えば,zsがzpより小さい又はzp以下である場合は0とし,それ以外は1とするものであり,各座標(xi,yi)における比較結果を求めてそれらを加算器などで加算し,加算された値を矩形の面積(矩形の面積は加算器で,XMax−XMin及びYMax−YMinを求め,それらを乗算器で乗算することで容易に求められる。)とを乗算器などで乗算することにより,減衰密度を得ることができる。
第2の側面に係るシステムの好ましい上記とは別の態様は,前記座標 (xi, yi)と関連して表面物体の深さの値を保存するための手段は,座標(xi,yi)と関連して深さの値を記憶するバッファである表面深度バッファを含み,前記減衰係数ZDFを計算するための手段は, 前記矩形の領域(XMin, YMin, zp) , (XMax, YMax, zp)の中にある離散した座標値である座標(xi,yi)を得るための手段として機能する,(XMin, YMin)×(XMax, YMax)の中にある離散した座標値である座標(xi,yi)を順に数えるループ反復回路(loop iterator 回路)(50)と;離散した座標値(xi,yi)に関連した表面深度バッファに保存されるz値であるzsを得るための手段と,前記“zp”と前記“zs”とを比較し,前記“zp”が前記“zs”より小さい場合に0を出力し,それ以外の場合は1を出力するか;又は前記“zp”と前記“zs”が同じか又は前記“zp”が前記“zs”より小さい場合に0を出力し,それ以外の場合に1を出力する計算を行うための比較器 (52) と,前記比較器 (52)からの出力である0又は1と,初期値が0である減衰係数とを加え,修正された減衰係数を得るための加算器 (53)と,すべての前記離散した座標(xi-,yi)について前記修正された減衰係数を求めた後の前記修正された減衰係数と,Wを(XMax-XMin)とし,Hを(YMax-YMin)としたときの1/WHの値とをかける第1の乗算器 (54) を具備する,上記いずれかに記載のシステムに関する。なお,W及びHの値は,加算器(加減算器)を用いて容易に求めることができる。このようなシステムを用いれば,式[II]を回路などのハードウェアにより実装でき,その結果迅速に減衰係数を求めることができるので,リアルタイムに3DCG画像を得ることができることとなる。
第2の側面に係るシステムの好ましい上記とは別の態様は,密度値(D)を得るための手段と;デバイス座標 (xi,yi,zp)で定義されるビルボード粒子の中心位置を得るための手段と;前記ビルボード粒子をカメラ空間へ射影し,前記粒子に対応する矩形領域を得るための手段と;前記矩形の領域の左下と右上に対応するデバイス座標 (XMin, YMin, zp) 及び (XMax, YMax, zp)によって定義される粒子に対応する矩形面積を得るための手段と; 座標 (xi, yi)と関連して表面物体の深さの値を保存するための手段と; 前記深さの値とzpを比較するための手段と;上記の比較結果と,前記矩形の面積とを用いて,減衰係数ZDFを計算するための手段と;を具備する3次元コンピュータグラフィックスに用いられる減衰密度DZを計算するためのシステムに関する。すなわち,先に説明したようにして減衰係数ZDFを計算し,この減衰係数ZDFと,システムに入力された密度値(D)とを乗算するなどして,減衰密度DZを計算するものである。
第2の側面に係るシステムの好ましい上記とは別の態様は,前記座標 (xi, yi)と関連して表面物体の深さの値を保存するための手段は,座標 (xi, yi)と関連して表面物体の深さの値を記憶するバッファである, 表面深度バッファを含み,前記減衰密度DZを計算するための手段は,前記矩形の領域(XMin, YMin, zp) , (XMax, YMax, zp)の中にある離散した座標値である座標(xi,yi)を得るための手段と,前記離散した座標値である(xi,yi)と関連して前記表面深度バッファに記憶されたz値であるzsを得るための手段と,前記zsと前記zpとを比較するための手段と,前記zsと前記zpとの比較結果,前記矩形の面積,及び前記密度値Dを用いて減衰密度DZの値を計算するための手段とを含む,上記いずれかに記載のシステムに関する。このシステムも,基本的には,先に説明したようにして減衰係数ZDFを計算し,この減衰係数ZDFと,システムに入力された密度値(D)とを乗算するなどして,減衰密度DZを計算するものである。
第2の側面に係るシステムの好ましい上記とは別の態様は,前記座標 (xi, yi)と関連して表面物体の深さの値を保存するための手段は,座標 (xi, yi)と関連して表面物体の深さの値を記憶するバッファである, 表面深度バッファを含み,前記減衰係数ZDFを計算するための手段は,矩形の領域(XMin, YMin, zp) , (XMax, YMax, zp)の中にある離散した座標値である座標(xi,yi)を得るための手段として機能する,(XMin, YMin)×(XMax, YMax)の中にある離散した座標値である座標(xi,yi)を順に数えるループ反復回路(loop iterator 回路)(50)と;前記離散した座標値(xi,yi)に関連した表面深度バッファに保存されるz値である“zs”を得るための手段と,前記“zp”と前記“zs”とを比較し,前記“zp”が前記“zs”より小さい場合に0を出力し,それ以外の場合は1を出力するか;又は前記“zp”と前記“zs”が同じか又は前記“zp”が前記“zs”より小さい場合に0を出力し,それ以外の場合に1を出力する計算を行うための比較器 (52) と,前記比較器 (52)からの出力である0又は1と,初期値が0である減衰係数とを加え,修正された減衰係数を得るための加算器 (53)と,すべての前記離散した座標(xi-,yi)について前記修正された減衰係数を求めた後の前記修正された減衰係数と,Wを(XMax-XMin)とし,Hを(YMax-YMin)としたときの1/WHの値とをかける第1の乗算器 (54) と,前記第1の乗算器の計算結果と,前記密度値(D)とを乗算するための第2の乗算器(55)を具備する,上記いずれかに記載のシステムに関する。先に説明したようにして減衰係数ZDFを計算し,この減衰係数ZDFと,システムに入力された密度値(D)とを乗算するなどして,減衰密度DZを計算するものである。
第2の側面に係るシステムの好ましい上記とは別の態様は,ガス状物体を粒子の集合として描画するために用いられる上記に記載されるシステムである。
上記第2の側面に係るシステムの好ましい利用態様は,コンピュータ用のチップとして実装されるものである。
上記第2の側面に係るシステムの好ましい利用態様は,コンピュータ用の回路として実装されるものである。
上記第2の側面に係るシステムの好ましい利用態様は,上記いずれかに記載されるシステムを具備するコンピュータである。
上記第2の側面に係るシステムの好ましい利用態様は,上記いずれかに記載されるシステムを具備するゲーム機である。
上記第2の側面に係るシステムの好ましい利用態様は,上記いずれかに記載されるシステムを具備する携帯電話である。
上記第2の側面に係るシステムの好ましい利用態様は,上記いずれかに記載されるシステムを具備するナビゲーションシステムである。
上記第2の側面に係るシステムの好ましい利用態様は,上記いずれかに記載されるシステムを具備するスロットマシーンである。
図4は,第2の側面に係るシステムのブロック図である。図4に示されるシステムは,上記式[II]にしたがって,減衰係数及び減衰要素を計算できる。図4は,粒子と事前にレンダリングされた表面物体との交差を考慮した計算することができる回路に関する。そして,その回路は,以下の値を計算する。
[II]
ここで,(XMin,YMin),及び(XMax,YMax)は,ビルボード粒子のカメラ空間への射影結果を示し,zpは前記粒子のz値であり,SurfaceBZは(xi,yiと関連して)前記表面物体のz値が格納されるバッファであり,z値であるSurfaceBZ[xi][yi]は求められた表面のz値であり,Wは(XMax-XMin)で定義され,Hは(YMax-YMin)で定義され,Dは前記粒子の密度である。また,項(SurfaceBZ[xi][yi]<zp)は,ブール関数値であり,真であれば1であり,偽であれば0となる。
回路に入力される値は,前記粒子のz値であるzp,前記粒子の密度であるD,前記矩形の座標(XMin,YMin)及び(XMax,YMax),及び1/(WH)値(それは1/((XMax-XMin)×(YMax-YMin)と同じであって事前に計算された値である)である。回路からの出力値は,前記減衰密度DZである。
図4に示されるように,このシステムは,(XMin, YMin)及び(XMax, YMax)が入力されるループ反復回路(loop iterator 回路)(50)と,座標(xi,yi)と関連して深さの値を記憶するバッファである表面深度バッファ(51)と,比較器 (52)と,加算器 (53)と,第1の乗算器 (54)及び第2の乗算器(55)を具備する。図4において,符号56から59は,電気的な情報を伝達するラインを示し,それらのラインは,好ましくは,バスとして実装される。
ループ反復回路(loop iterator 回路)(50)は,(XMin,YMin)×(XMax,YMax)の中にある離散した座標値であるすべての座標(xi,yi)を順に数え,矩形の領域(XMin,YMin,zp),(XMax,YMax,zp)の内部にある中間の離散値である(xi,yi)をバス(56)に出力する。そして,バス(56)は,ループ反復回路(50)と表面深度バッファ(51)とを接続する。
表面深度バッファ(51)は,(xi,yi)をアドレスとして用いて,表面物体の深さの値“zs”を出力する。
比較器(52)は,“zp”と“zs”とを比較し,“zp”が“zs”より小さい場合に0を出力し,それ以外の場合は1を出力するか;又は“zp”と“zs”が同じか又は“zp”が“zs”より小さい場合に0を出力し,それ以外の場合に1を出力する計算を行う。
加算器(53)は,前記比較器(52)からの出力である0又は1と,初期値が0である減衰係数とを加え,修正された減衰係数を得る。
第1の乗算器(54)は,すべての離散した座標(xi-,yi)について前記修正された減衰係数を求めた後の前記修正された減衰係数と,Wを(XMax-XMin)とし,Hを(YMax-YMin)としたときの1/WHの値とをかける。これにより修正された減衰係数ZDFが求められる。
第2の乗算器(55)は,前記第1の乗算器の計算結果である修正された減衰係数ZDFと,前記密度値(D)とを乗算する。これにより,減衰要素DZが得られる。
式[II]は,表面物体によって異なる粒子密度の減衰係数を計算することを意味する。ビルボード粒子は,カメラ空間座標系へと射影される。ビルボードとして定義されるので,射影の結果は,(XMin,YMin)(XMax,YMax)で定義される矩形(長方形)の領域となり,(XMin,YMin)(XMax,YMax)は,それぞれ左下の角と右上の角に対応する。その矩形に含まれるすべての離散した座標値(xi,yi)は,表面深度バッファに格納されたz値をフェッチするために用いられる。すべての前記離散した座標値が計算された場合,その結果は以下の式で表される。
結果の値は,[0,W×H]の中間値をとる。ここでWはXMax-XMin,で定義される矩形の幅であり,HはYMax-YMinで定義される矩形の高さであり,ZDF-は[0,1]の中間値として定義される。この値は,前記粒子密度Dの減衰を求めるために用いられる。もしもZDFが1の場合,前記粒子は完全に表面物体の前にあることを意味し,前記粒子密度は減衰されない。もしZDF-が0であれば,前記粒子は完全に表面物体の後にあることを意味し,その粒子密度は0にまで減衰される。その他の場合は,前記粒子密度は多かれ少なかれ減衰される。たとえば,ZDFが0.5であれば前記粒子の半分が表面物体に隠れ,前記粒子密度は半分減衰される。
その回路における最初の演算段階は,修正された減衰係数を求める段階である。ループ反復モジュール(50)は,(XMin,YMin)及び(XMax,YMax)を入力として用いて,[(XMin,YMin),(XMax,YMax)]に含まれる全ての(xi,yi)値を求める。ループ反復モジュール(50)の振る舞いはとても簡単であるので,詳細には説明しないが,以下のように表現できる。
それぞれの(xi,yi)値は,表面深度バッファ(51)に送られる,そして,(xi,yi)に対応するzs値がフェッチされる。比較器(52)は,表面物体のz値であるzsと,粒子のz値であるzpとを比較する。この比較器は,加算器(又は減算器)を含み,(zs-zp)を計算するものであってもよい。そして,(zs-zp)の値がプラスであれば,この比較器(52)は1を出力し,そうでなければ0を出力するようにすればよい。この0値又は1値は,加算器(53)への入力値として用いられる。次に加算器(58)に入力される値は,減衰係数である。この段階のはじめにおいて,すなわち,ループ反復モジュール(50)に数値が入るはじめにおいて,減衰係数は0に設定される。そして,比較器(53)からの0又は1の値が,減衰係数に加算される。この工程は,ループ反復モジュール(50)から出力される.全ての(xi,yi)について行われる。
全ての(xi,yi)についての演算が終わったら,最終的な減衰係数が,修正された減衰係数とよばれ,その値が出力される。乗算器(54)が修正された減衰係数と値1/(WH)とを掛け合わす間に,式IIのZDFが計算される。乗算器(54)からの出力であるZDFは乗算器(55)によって,密度Dを修正するために用いられ,前記減衰密度DZが得られる。式IIにしたがって,乗算器(54)は,ループ反復モジュール(50),比較器(52),加算器(53)及びライン(56,57及び58)からの出力結果である修正された減衰係数,及び値1/(WH)とを乗算する。最終的な減衰密度は,乗算器(56)の出力として得られ,乗算器(56)には,乗算器(54)の出力であるZDFと,前記粒子密度Dとが入力される。
本側面に関するシステムは,粒子と他の表面物体との交差に関する簡潔な解法を提供できる効果がある。本発明者らは,文献として,日本国特許公開公報2001-188923号(特許文献6)を除いて,本システムと少しでも関連する文献を知らない。一方,日本国特許公開公報2001-188923号(特許文献6)では,カメラ空間におけるzの最小値とzの最大値を記憶するために追加のバッファを必要とする。そして,表面物体との交差は後の合成段階とよばれる後の段階で定義される。本側面に関するシステムは,そのような余計なバッファを使用しなくて済むという利点があり,交差は粒子ごとにレンダリングの段階で定義されるという利点がある。
この回路の利点は,第一に,演算処理がとても少なくて済み,複雑化を解消できることである。この演算処理が少ないのは,式(II)を採用し,これを実現する回路を実装したことによる。
ひとつの問題は,ループ反復モジュール(50)かもしれない。好ましくは,各々の粒子について,すべての部分座標(xi,yi)が,図3に示される回路であって,図2のモジュール(14)に対応する回路によって,はじめに求められ,その後にモジュール(15-17)によって,実際のレンダリングが行われることである。このような計算方法は,実際に全体的なレンダリング速度の大きな影響がない。ループ反復モジュールとモジュール(14及び15)では,出力される部分座標(断片)の数が同じである。それゆえ,本側面にかかる回路は,交差を計算するために,レンダリングプロセスにおける待ち時間のみを増加させることとなるが,それは無視できる程度であると考えられる。
[第3の側面に係るシステム]
第3の側面に係るシステムは,RGBイリュミネーションファクタと蓄積密度を計算するためのシステムに関する。このシステムは次式に基づく。
[III]
式中,Dは粒子の密度値であり,Tuvはテクスチャ値, ZDFは式II に従って計算された減衰係数である。また,CAB[xi][yi]は蓄積密度であり, L.Factorは式Iに従って計算されたライトファクタであり, (Rp,Gp及びBp) は粒子の色である。IRed[xi][yi], IGreen[xi][yi]及びIBlue[xi][yi]は前記デバイス座標 (xi,yi)と関連するイリュミネーションファクタである。
上記のとおり,このRGBイリュミネーションファクタは,減衰係数及び減衰要素を考慮したものであり,しかもRGBそれぞれ別のものとして計算される。そして,これら減衰係数及び減衰要素を考慮しRGBイリュミネーションファクタは,最終的なガス状物体の色を表現するために用いられる。このような減衰を考慮してガス状物体の色を求めるので,リアルなガス状物体を表現できることとなる。
第3の側面に係るシステムは,基本的には,デバイス座標(xi-,yi) ,減衰密度Dz,テクスチャ値Tuv,ライトファクタLightFactor及び粒子のRGB色(Rp,Gp,及びBp)を得るための手段と;デバイス座標(xi-,yi)と関連して蓄積密度を保存するための手段と;前記取得されたデバイス座標(xi-,yi),前記減衰密度Dz,及び前記テクスチャ値Tuv,前記ライトファクタLightFactor及び前記粒子のRGB色(Rp,Gp,及びBp),及び前記蓄積密度を用いて,RGBイリュミネーションファクタを計算するための手段と;を含むRGBイリュミネーションファクタを計算するための3次元コンピュータグラフィックスに用いられるシステムに関する。そして,基本的には,このシステムに,デバイス座標(xi-,yi) ,減衰密度Dz,テクスチャ値Tuv,ライトファクタLightFactor及び粒子のRGB色(Rp,Gp,及びBp)が入力される。これらの値を用いると,粒子を表現できる。粒子の位置は,例えば,座標(xi-,yi)として入力される。そして,座標(xi-,yi)を用いて蓄積密度を読み出すとともに,前記入力された値を用いて,RGBイリュミネーションファクタを計算する。このRGBイリュミネーションファクタは,具体的には,式[III]に示されるものがあげられる。このシステムは,好ましくは,後述するように(修正された)蓄積密度をも求めることができるものである。
第3の側面に係るシステムの好ましい態様は,前記デバイス座標(xi-,yi)と関連して蓄積密度を保存するための手段は,座標(xi-,yi)と関連して粒子の蓄積密度CAB[xi][yi]を記憶するバッファであるCAB(60)により実装され;前記RGBイリュミネーションファクタを計算するための手段は,前記蓄積密度CAB[xi][yi]を得て,前記デバイス座標(xi-,yi),前記減衰密度Dz,及び前記テクスチャ値Tuv,前記ライトファクタLightFactor及び前記粒子のRGB色(Rp,Gp,及びBp),及び前記蓄積密度CAB[xi][yi]を用いて,デバイス座標(xi-,yi)と関連する下記式[III]で示されるRGBイリュミネーションファクタ(IRed[xi][yi],IGreen[xi][yi]及びIBlue[xi][yi])を計算する。この計算は,例えば,加算器,乗算器,及び1-exp(-x)テーブルを用いるか,又は加算器,乗算器,及びexp(-x)テーブルを用いることで容易に行うことができる。詳細は後述するとおりである。
第3の側面に係るシステムの好ましい態様は,前記デバイス座標(xi-,yi)と関連して蓄積密度を保存するための手段は,座標(xi-,yi)と関連して粒子の蓄積密度CAB[xi][yi]を記憶するバッファであるCAB(60)により実装され;前記RGBイリュミネーションファクタを計算するための手段は,前記蓄積密度CAB[xi][yi]を得て,前記デバイス座標(xi-,yi),前記減衰密度Dz,及び前記テクスチャ値Tuv,前記ライトファクタLightFactor及び前記粒子のRGB色(Rp,Gp,及びBp),及び前記蓄積密度CAB[xi][yi]を用いて,デバイス座標(xi-,yi)と関連する式[III]で示されるRGBイリュミネーションファクタ(IRed[xi][yi],IGreen[xi][yi]及びIBlue[xi][yi])を計算する;上記に記載のシステムに関する。システムは,竜力された座標(xi-,yi)に基づいて,CAB(60)から,座標(xi-,yi)と関連する粒子の蓄積密度CAB[xi][yi]を読み出す。そして,前記デバイス座標(xi-,yi),前記減衰密度Dz,前記テクスチャ値Tuv,前記ライトファクタLightFactor及び前記粒子のRGB色(Rp,Gp,及びBp)及び前記蓄積密度CAB[xi][yi]を用いて,上記式[III]で示されるRGBイリュミネーションファクタ(IRed[xi][yi],IGreen[xi][yi]及びIBlue[xi][yi])を計算する。この計算は,加算器,乗算器,及び1-exp(-x)テーブルを用いるか,又は加算器,乗算器,及びexp(-x)テーブルを用いることで容易に行うことができる。詳細は後述するとおりである。
第3の側面に係るシステムの好ましい上記とは別の態様は,前記LightFactorは,デバイス座標(xi,yi,Zp),減衰要素L.A.p及び分散要素L.S.により定義される粒子の位置を得るための手段と;座標(xi,yi)と関連してzの最小値を保存するための手段と;座標(xi,yi)と関連してzの最大値を保存するための手段と;座標(xi,yi)と関連してガス状物体の蓄積密度を保存するための手段と;前記デバイス座標(xi,yi,Zp),前記zの最小値,前記zの最大値,前記蓄積密度,及び前記減衰要素L.A.pを用いて前記粒子のライトファクタ(LightFactor)の指数要素を得るための手段と;前記ライトファクタの前記指数要素及び前記分散要素L.S.を用いて前記粒子のライトファクタを得るための手段と;を具備する,粒子の集合体として定義されるガス状物体を表現する3次元コンピュータグラフィックスに用いられるライトファクタを計算するためのシステムによって計算される;上記いずれかに記載のシステムに関する。すなわち,この態様に係るシステムは,本発明の第1の側面に係るシステムを用いてLightFactorを求め,第1の側面に係るシステムからの出力であるLightFactorが入力されるものである。なお,第1の側面に係るシステムとして,上記した好ましい態様のものなどを適宜用いることができる。
第3の側面に係るシステムの好ましい上記とは別の態様は,前記減衰密度DZは,密度値(D)を得るための手段と;デバイス座標 (xi,yi,zp)で定義されるビルボード粒子の中心位置を得るための手段と;前記ビルボード粒子をカメラ空間へ射影し,前記粒子に対応する矩形領域を得るための手段と;前記矩形の領域の左下と右上に対応するデバイス座標 (XMin, YMin, zp) 及び (XMax, YMax, zp)によって定義される粒子に対応する矩形面積を得るための手段と; 座標 (xi, yi)と関連して表面物体の深さの値を保存するための手段と; 前記深さの値とzpを比較するための手段と;上記の比較結果と,前記矩形の面積とを用いて,減衰係数ZDFを計算するための手段と;を具備する3次元コンピュータグラフィックスに用いられる減衰密度DZを計算するためのシステムにより計算される;上記いずれかに記載のシステムに関する。この態様に係るシステムは,本発明の第2の側面に係るシステムを用いて減衰密度DZを求め,第2の側面に係るシステムからの出力である減衰密度DZが入力されるものである。なお,第2の側面に係るシステムとして,上記した好ましい態様のものなどを適宜用いることができる。
第3の側面に係るシステムの好ましい上記とは別の態様は,デバイス座標(xi-,yi) ,減衰密度Dz,テクスチャ値Tuv,ライトファクタLightFactor及び粒子のRGB色(Rp,Gp及びBp)を得るための手段と;座標(xi,yi)に関連してガス状物体の蓄積密度を記憶するための手段と;座標(xi,yi)に関連して粒子のRGBイリュミネーションファクタを記憶するための手段と;前記取得された座標(xi,yi),前記減衰密度Dz,前記テクスチャ値Tuv,前記ライトファクタLightFactor及び前記粒子のRGB色(Rp,Gp及びBp),前記座標(xi-,yi)と関連する蓄積密度,及び前記粒子のRGBイリュミネーションファクタを記憶するための手段から読み出したRGBイリュミネーションファクタを用いて,修正されたRGBイリュミネーションファクタを得るための手段と;前記修正されたRGBイリュミネーションファクタを用いて,前記粒子のRGBイリュミネーションファクタを記憶するための手段に記憶される粒子のRGBイリュミネーションファクタを書き換えるための手段と;を具備する,RGBイリュミネーションファクタを計算するための3次元コンピュータグラフィックスに用いられるシステムに関する。そして,基本的には,上記式[III]にしたがって,RGBイリュミネーションファクタを計算し,計算する前に求められ記憶されたRGBイリュミネーションファクタと加算等することで修正されたRGBイリュミネーションファクタを求め,その修正されたRGBイリュミネーションファクタを,新たなRGBイリュミネーションファクタとして記憶するものである。そして,記憶されたRGBイリュミネーションファクタは,3DCGのために他の回路へ出力され,適宜用いられる。
第3の側面に係るシステムの好ましい上記とは別の態様は,前記デバイス座標(xi-,yi)と関連して蓄積密度を保存するための手段は,座標(xi-,yi)と関連して粒子の蓄積密度CAB[xi][yi]を記憶するバッファCAB(60)により実装され;前記座標(xi,yi)と関連して粒子のRGBイリュミネーションファクタを記憶するための手段は,座標(xi,yi)に関連して粒子のRGBイリュミネーションファクタIRed[xi][yi],IGreen[xi][yi]及びIBlue[xi][yi]を記憶するバッファIRed(61),IGreen(62),及びIBlue(63)により実装され;前記修正されたRGBイリュミネーションファクタを得るための手段は,前記蓄積密度CAB[xi][yi],並びに,前記IRed[xi][yi],前記IGreen[xi][yi]及び前記IBlue[xi][yi]を取得し,前記デバイス座標(xi-,yi),前記減衰密度Dz, 前記テクスチャ値Tuv,前記ライトファクタLightFactor,前記粒子のRGB色(Rp,Gp,及びBp)及び前記蓄積密度CAB[xi][yi]を用いて,以下のデバイス座標(xi,yi)に関連したRGBイリュミネーションファクタを計算し,新しい(修正された)RGBイリュミネーションファクタを得るために,計算されたRGBイリュミネーションファクタと,粒子に関するRGBイリュミネーションファクタを記憶するための手段から読み出されたRGBイリュミネーションファクタとを加算し;前記粒子のRGBイリュミネーションファクタを記憶するための手段に記憶される粒子のRGBイリュミネーションファクタを書き換えるための手段は,前記新たに計算されたRGBイリュミネーションファクタを用いて,RGBイリュミネーションファクタを書き換える;上記いずれかに記載のシステムに関する。
第3の側面に係るシステムの好ましい上記とは別の態様は,前記デバイス座標(xi-,yi)と関連して蓄積密度を保存するための手段は,座標(xi-,yi)と関連して粒子の蓄積密度CAB[xi][yi]を記憶するバッファCAB(60)により実装され;前記座標(xi,yi)に関連して粒子のRGBイリュミネーションファクタを記憶するための手段は,座標(xi,yi)に関連して粒子のRGBイリュミネーションファクタIRed[xi][yi],IGreen[xi][yi]及びIBlue[xi][yi]を記憶するバッファIRed(61),IGreen(62),及びIBlue(63)により実装され;前記修正されたRGBイリュミネーションファクタを得るための手段は,前記蓄積密度CAB[xi][yi],並びに,前記IRed[xi][yi],前記IGreen[xi][yi]及び前記IBlue[xi][yi]を取得し,前記デバイス座標(xi-,yi),前記減衰密度Dz, 前記テクスチャ値Tuv,前記ライトファクタLightFactor,前記粒子のRGB色(Rp,Gp,及びBp)及び前記蓄積密度CAB[xi][yi]を用いて,加算器(66,68),乗算器(64,69及び70),及び1-exp(-x)テーブル(67a及び67b)を用いて,上記式[III]で示されるRGBイリュミネーションファクタを計算し,新しい(修正された)RGBイリュミネーションファクタを得るために,前記計算されたRGBイリュミネーションファクタと,粒子に関するRGBイリュミネーションファクタを記憶するための手段から読み出されたRGBイリュミネーションファクタとを加算し;前記粒子のRGBイリュミネーションファクタを記憶するための手段に記憶される粒子のRGBイリュミネーションファクタを書き換えるための手段は,前記新たに計算されたRGBイリュミネーションファクタを用いて,RGBイリュミネーションファクタを書き換える;上記いずれかに記載のシステムに関する。
第3の側面に係るシステムの好ましい上記とは別の態様は,前記LightFactorは,デバイス座標(xi,yi,Zp),減衰要素L.A.p及び分散要素L.S.により定義される粒子の位置を得るための手段と;座標(xi,yi)と関連してzの最小値を保存するための手段と;座標(xi,yi)と関連してzの最大値を保存するための手段と;座標(xi,yi)と関連してガス状物体の蓄積密度を保存するための手段と;前記デバイス座標(xi,yi,Zp),前記zの最小値,前記zの最大値,前記蓄積密度,及び前記減衰要素L.A.pを用いて前記粒子のライトファクタ(LightFactor)の指数要素を得るための手段と;前記ライトファクタの前記指数要素及び前記分散要素L.S.を用いて前記粒子のライトファクタを得るための手段と;を具備する,粒子の集合体として定義されるガス状物体を表現する3次元コンピュータグラフィックスに用いられるライトファクタを計算するためのシステムによって計算される;上記いずれかに記載のシステムに関する。すなわち,この態様に係るシステムは,本発明の第1の側面に係るシステムを用いてLightFactorを求め,第1の側面に係るシステムからの出力であるLightFactorが入力されるものである。なお,第1の側面に係るシステムとして,上記した好ましい態様のものなどを適宜用いることができる。
第3の側面に係るシステムの好ましい上記とは別の態様は,前記減衰密度DZは,密度値(D)を得るための手段と;デバイス座標 (xi,yi,zp)で定義されるビルボード粒子の中心位置を得るための手段と;前記ビルボード粒子をカメラ空間へ射影し,前記粒子に対応する矩形領域を得るための手段と;前記矩形の領域の左下と右上に対応するデバイス座標 (XMin, YMin, zp) 及び (XMax, YMax, zp)によって定義される粒子に対応する矩形面積を得るための手段と; 座標 (xi, yi)と関連して表面物体の深さの値を保存するための手段と; 前記深さの値とzpを比較するための手段と;上記の比較結果と,前記矩形の面積とを用いて,減衰係数ZDFを計算するための手段と;を具備する3次元コンピュータグラフィックスに用いられる減衰密度DZを計算するためのシステムにより計算される;上記いずれかに記載のシステムに関する。この態様に係るシステムは,本発明の第2の側面に係るシステムを用いて減衰密度DZを求め,第2の側面に係るシステムからの出力である減衰密度DZが入力されるものである。なお,第2の側面に係るシステムとして,上記した好ましい態様のものなどを適宜用いることができる。
第3の側面に係るシステムの好ましい上記とは別の態様は,デバイス座標(xi,yi),減衰密度(Dz),テクスチャ値(Tuv),ライトファクタ(LightFactor)及びRGB粒子色(Rp,Gp及びBp)を得るための手段と;座標(xi,yi)に関連してガス状物体の蓄積密度を記憶するための手段と;座標(xi,yi)に関連して粒子のRGBイリュミネーションファクタを記憶するための手段と;前記デバイス座標(xi-,yi),前記減衰密度Dz,前記テクスチャ値Tuv,前記RGB色(Rp,Gp,及びBp),前記蓄積密度,及び,前記粒子のRGBイリュミネーションファクタを記憶するための手段から読み出されたRGBイリュミネーションファクタを用いて,修正されたRGBイリュミネーションファクタを計算するための手段と;前記粒子のRGBイリュミネーションファクタを記憶するための手段に記憶される粒子のRGBイリュミネーションファクタを書き換えるための手段と;前記修正されたRGBイリュミネーションファクタ,前記蓄積密度,前記減衰密度Dz,及び前記テクスチャ値Tuvを用いて修正された蓄積密度を求めるための手段と;前記蓄積密度,減衰密度Dz,及びテクスチャ値Tuvを用いて,修正された蓄積密度を計算するための手段と;前記修正された蓄積密度を用いて,蓄積密度を記憶するための手段の蓄積密度を書き換えるための手段と;を具備する,RGBイリュミネーションファクタと蓄積密度を求めるための3次元コンピュータグラフィックスに用いられるシステムに関する。
第3の側面に係るシステムの好ましい上記とは別の態様は,前記デバイス座標(xi-,yi)と関連して蓄積密度を保存するための手段は,座標(xi-,yi)と関連して粒子の蓄積密度CAB[xi][yi]を記憶するバッファCAB(60)により実装され;前記座標(xi,yi)に関連して粒子のRGBイリュミネーションファクタを記憶するための手段は,座標(xi,yi)に関連して粒子のRGBイリュミネーションファクタIRed[xi][yi],IGreen[xi][yi]及びIBlue[xi][yi]を記憶するバッファIRed(61),IGreen(62),及びIBlue(63)により実装され;前記修正されたRGBイリュミネーションファクタを得るための手段は,前記蓄積密度CAB[xi][yi],及び前記IRed[xi][yi],IGreen[xi][yi]及びIBlue[xi][yi]を取得し,前記デバイス座標(xi-,yi),前記減衰密度Dz,前記テクスチャ値Tuv,前記ライトファクタLightFactor及び前記粒子のRGB色(Rp,Gp,及びBp)及び前記蓄積密度CAB[xi][yi]を用いて,上記式[III]で示されるデバイス座標(xi,yi)に関連したRGBイリュミネーションファクタを計算し,修正されたRGBイリュミネーションファクタを得るために,計算されたRGBイリュミネーションファクタと,粒子に関するRGBイリュミネーションファクタを記憶するための手段から読み出されたRGBイリュミネーションファクタとを加算し;粒子のRGBイリュミネーションファクタを記憶するための手段に記憶される粒子のRGBイリュミネーションファクタを書き換えるための手段は,前記新たに計算されたRGBイリュミネーションファクタを用いて,RGBイリュミネーションファクタを書き換え;前記修正された蓄積密度を計算するための手段は,新たな蓄積密度CAB[xi][yi]+DzxTuvを得るために,乗算器(64)により前記蓄積密度Dz及び前記テクスチャ値Tuvを用い,DzxTuvを計算し,加算器(66)により前記CAB[xi][yi]及び前記DzxTuvを用いて,CAB[xi][yi]+DzxTuvを計算し;前記蓄積密度を記憶するための手段の蓄積密度を書き換えるための手段が,前記新たな蓄積密度を用いて,前記蓄積密度を書き換える;上記いずれかに記載のシステムに関する。
第3の側面に係るシステムの好ましい上記とは別の態様は,前記デバイス座標(xi-,yi)と関連して蓄積密度を保存するための手段は,座標(xi-,yi)と関連して粒子の蓄積密度CAB[xi][yi]を記憶するバッファCAB(60)により実装され;前記座標(xi,yi)に関連して粒子のRGBイリュミネーションファクタを記憶するための手段は,座標(xi,yi)に関連して粒子のRGBイリュミネーションファクタIRed[xi][yi],IGreen[xi][yi]及びIBlue[xi][yi]を記憶するバッファIRed(61),IGreen(62),及びIBlue(63)により実装され;前記修正されたRGBイリュミネーションファクタを得るための手段は,前記蓄積密度CAB[xi][yi],並びに,前記IRed[xi][yi],前記IGreen[xi][yi]及び前記IBlue[xi][yi]を取得し,前記デバイス座標(xi-,yi),前記減衰密度Dz,前記テクスチャ値Tuv,前記ライトファクタLightFactor,前記粒子のRGB色(Rp,Gp,及びBp),及び蓄積密度CAB[xi][yi]を用いて,加算器(66,68),乗算器(64,69及び70),及び1-exp(-x)テーブル(67a及び67b)を用いて,上記式[III]で示されるデバイス座標(xi,yi)に関連したRGBイリュミネーションファクタを計算し,修正されたRGBイリュミネーションファクタを得るために,計算されたRGBイリュミネーションファクタと,粒子に関するRGBイリュミネーションファクタを記憶するための手段から読み出されたRGBイリュミネーションファクタとを加算し;前記粒子のRGBイリュミネーションファクタを記憶するための手段に記憶される粒子のRGBイリュミネーションファクタを書き換えるための手段は,前記新たに計算されたRGBイリュミネーションファクタを用いて,RGBイリュミネーションファクタを書き換える,上記いずれかに記載のシステムに関する。
第3の側面に係るシステムの好ましい上記とは別の態様は,前記LightFactorは,デバイス座標(xi,yi,Zp),減衰要素L.A.p及び分散要素L.S.により定義される粒子の位置を得るための手段と;座標(xi,yi)と関連してzの最小値を保存するための手段と;座標(xi,yi)と関連してzの最大値を保存するための手段と;座標(xi,yi)と関連してガス状物体の蓄積密度を保存するための手段と;前記デバイス座標(xi,yi,Zp),前記zの最小値,前記zの最大値,前記蓄積密度,及び前記減衰要素L.A.pを用いて前記粒子のライトファクタ(LightFactor)の指数要素を得るための手段と;前記ライトファクタの前記指数要素及び前記分散要素L.S.を用いて前記粒子のライトファクタを得るための手段と;を具備する,粒子の集合体として定義されるガス状物体を表現する3次元コンピュータグラフィックスに用いられるライトファクタを計算するためのシステムによって計算される;上記いずれかに記載のシステムに関する。すなわち,この態様に係るシステムは,本発明の第1の側面に係るシステムを用いてLightFactorを求め,第1の側面に係るシステムからの出力であるLightFactorが入力されるものである。なお,第1の側面に係るシステムとして,上記した好ましい態様のものなどを適宜用いることができる。
第3の側面に係るシステムの好ましい上記とは別の態様は,前記減衰密度DZは,密度値(D)を得るための手段と;デバイス座標 (xi,yi,zp)で定義されるビルボード粒子の中心位置を得るための手段と;前記ビルボード粒子をカメラ空間へ射影し,前記粒子に対応する矩形領域を得るための手段と;前記矩形の領域の左下と右上に対応するデバイス座標 (XMin, YMin, zp) 及び (XMax, YMax, zp)によって定義される粒子に対応する矩形面積を得るための手段と; 座標 (xi, yi)と関連して表面物体の深さの値を保存するための手段と; 前記深さの値とzpを比較するための手段と;上記の比較結果と,前記矩形の面積とを用いて,減衰係数ZDFを計算するための手段と;を具備する3次元コンピュータグラフィックスに用いられる減衰密度DZを計算するためのシステムにより計算される;上記いずれかに記載のシステムに関する。この態様に係るシステムは,本発明の第2の側面に係るシステムを用いて減衰密度DZを求め,第2の側面に係るシステムからの出力である減衰密度DZが入力されるものである。なお,第2の側面に係るシステムとして,上記した好ましい態様のものなどを適宜用いることができる。
第3の側面に係るシステムの好ましい上記とは別の態様は,デバイス座標(xi,yi),減衰密度(Dz),テクスチャ値(Tuv),ライトファクタ(LightFactor)及びRGB粒子色により定義される粒子の位置を得るための手段と;前記デバイス座標(xi-,yi)と関連して蓄積密度を保存するための手段であるCAB(60)と;座標(xi,yi)に関連して粒子のRGBイリュミネーションファクタであるIRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi]を記憶するための手段であるIRed(61),Igreen(62)及びIBlue(63)と;前記(xi,yi)値をアドレスとして用いて,前記バッファCAB(60)から,蓄積密度CAB[xi][yi]を取得するための手段と;前記減衰密度Dzと前記テクスチャ値Tuvとを用いて“Dz×Tuv”を計算するための手段と;前記“Dz×Tuv”と前記CAB[xi][yi]とを用いて“Dz×Tuv+CAB[xi][yi]”を計算するための手段と;前記“Dz×Tuv+CAB[xi][yi]”を入力として用いて,“1-exp(-(Dz×Tuv+CAB[xi][yi]))”を計算するための手段と;前記“CAB[xi][yi]”を入力として用いて,“1-exp(-CAB[xi][yi])”を計算するための手段と;前記“1-exp(-(Dz×Tuv+CAB[xi][yi]))”と“1-exp(-CAB[xi][yi])”とを用いて,“{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}”を計算するための手段と;前記“{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}”と前記LightFactorとを用いて,“{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor”を計算するための手段と;前記“{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor”と前記(Rp,Gp,Bp)とを用いて,ベクトル値[{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor]×(Rp,Gp,Bp)を計算するための手段と;前記“[{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor]×(Rp,Gp,Bp)”及び 前記(IRed[xi][yi],IGreen[xi][yi],IBlue[xi][yi])を用いて,ベクトル値[{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor]×(Rp,Gp,Bp)+(IRed[xi][yi],IGreen[xi][yi],IBlue[xi][yi])を計算するための手段と;前記ベクトル値[{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor]×(Rp,Gp,Bp)+(IRed[xi][yi],IGreen[xi][yi],IBlue[xi][yi])を用いて前記IRed(61),Igreen(62)及びIBlue(63)を書き換える手段と;前記“Dz×Tuv+CAB[xi][yi]”を用いて,前記CAB(60)を書き換える手段と;を具備する,上記いずれかに記載のシステムに関する。
第3の側面に係るシステムの好ましい上記とは別の態様は,デバイス座標(xi,yi),減衰密度(Dz),テクスチャ値(Tuv),ライトファクタ(LightFactor)及びRGB粒子色(Rp,Gp及びBp)により定義される粒子の位置を得るための手段と;前記デバイス座標(xi-,yi)と関連して蓄積密度CAB[xi][yi]を保存するバッファCAB(60)と;座標(xi,yi)に関連して粒子のRGBイリュミネーションファクタIRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi]を記憶する3つのバッファIRed(61),IGreen(62)及びIBlue(63)と;入力値である,前記減衰密度Dzと前記テクスチャ値Tuvとを用いて“Dz×Tuv”を計算する乗算器(64)と;前記“Dz×Tuv”と前記バッファCAB(60)からのCAB[xi][yi]とを用いて“Dz×Tuv+CAB[xi][yi]”を計算する加算器(66)と;前記“Dz×Tuv+CAB[xi][yi]”を入力として用いて,“1-exp(-CAB[xi][yi])”を計算する1-exp(-x)テーブル(67a)と;前記“Dz×Tuv+CAB[xi][yi]”を入力として用いて,“1-exp(-(Dz×Tuv+CAB[xi][yi]))”を計算する1-exp(-x)テーブル(67b)と;前記“1-exp(-(Dz×Tuv+CAB[xi][yi]))”と“1-exp(-CAB[xi][yi])”とを入力値として用いて,“-[1-exp(-CAB[xi][yi])-{1-exp(-(Dz×Tuv+CAB[xi][yi]))}]”,すなわち,“exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))”を計算する加算器(68)と;前記“exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))”と前記LightFactorとを入力値として用いて,“{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor”を計算するた乗算器(69)と;前記“{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor”と前記(Rp,Gp,Bp)とを入力値として用いて,ベクトル値[{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor]×(Rp,Gp,Bp)を計算する乗算器(70)と;前記ベクトル値“[{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor]×(Rp,Gp,Bp)”及び 前記(IRed[xi][yi],IGreen[xi][yi],IBlue[xi][yi])を用いて,ベクトル値[{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor]×(Rp,Gp,Bp)+(IRed[xi][yi],IGreen[xi][yi],IBlue[xi][yi])を計算する加算器(71)と;を具備する,上記いずれかに記載のシステムに関する。
第3の側面に係るシステムの好ましい上記とは別の態様は,デバイス座標(xi,yi),減衰密度Dz及び及びテクスチャ値Tuvにより定義される粒子の位置を得るための手段と;デバイス座標(xi,yi)に関連して蓄積された粒子の密度を記憶するための手段と,前記蓄積密度,前記減衰密度Dz,及び前記テクスチャ値Tuvを用いて,修正された蓄積密度を計算するための手段と;前記修正された蓄積密度を用いて,蓄積密度を記憶するための手段の蓄積密度を書き換えるための手段と;を含む,3次元コンピュータグラフィックスに用いられる蓄積密度を計算するためのシステムに関する。このシステムは,基本的には,デバイス座標(xi,yi),減衰密度Dz及び及びテクスチャ値Tuvがこのシステムに入力される。すると,入力された座標(xi,yi)値を用いて,蓄積された粒子の密度(CAB[xi][yi])を読み出して,例えば,CAB[xi][yi]+DzxTuvを計算し,これを修正された蓄積密度(CAB[xi][yi])として,蓄積された粒子の密度を記憶するための手段に記憶する。この修正された蓄積密度は,適宜読み出されて,他の回路に出力され,3DCGのために用いられる。
第3の側面に係るシステムの好ましい上記とは別の態様は,前記デバイス座標(xi-,yi)と関連して蓄積密度を保存するための手段は,座標(xi-,yi)と関連して粒子の蓄積密度CAB[xi][yi]を記憶するバッファCAB(60)により実装され;前記修正された蓄積密度を計算するための手段は,新たな蓄積密度CAB[xi][yi]+DzxTuvを得るために,乗算器(64)により前記蓄積密度Dz及び前記テクスチャ値Tuvを用い,DzxTuvを計算し,加算器(66)により前記CAB[xi][yi]及び前記DzxTuvを用いて,CAB[xi][yi]+DzxTuvを計算し;前記蓄積密度を記憶するための手段の蓄積密度を書き換えるための手段が,前記新たな蓄積密度を用いて,前記蓄積密度を書き換える;上記いずれかに記載のシステムに関する。
第3の側面に係るシステムの好ましい上記とは別の態様は,ガス状物体を粒子の集合として描画するために用いられる上記いずれかに記載されるシステムに関する。
上記第3の側面に係るシステムの好ましい利用態様は,コンピュータ用のチップとして実装されるものである。
上記第3の側面に係るシステムの好ましい利用態様は,コンピュータ用の回路として実装されるものである。
上記第3の側面に係るシステムの好ましい利用態様は,上記いずれかに記載されるシステムを具備するコンピュータである。
上記第3の側面に係るシステムの好ましい利用態様は,上記いずれかに記載されるシステムを具備するゲーム機である。
上記第3の側面に係るシステムの好ましい利用態様は,上記いずれかに記載されるシステムを具備する携帯電話である。
上記第3の側面に係るシステムの好ましい利用態様は,上記いずれかに記載されるシステムを具備するナビゲーションシステムである。
上記第3の側面に係るシステムの好ましい利用態様は,上記いずれかに記載されるシステムを具備するスロットマシーンである。
図5は,第3の側面に係るシステムを示すブロック図である。図5に示されるように,第3の側面に係るシステムを実現する回路は,座標(xi-,yi)と関連して粒子の蓄積密度CAB[xi][yi]を記憶するバッファCAB(60)と,座標(xi,yi)に関連して粒子のRGBイリュミネーションファクタIRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi]を記憶する3つのバッファIRed(61),IGreen(62)及びIBlue(63)と,加算器(66)と,1-exp(-x)テーブル(67a,67b)と,加算器(減算器)(68)と,乗算器(69)と,乗算器(70)と,加算器(71)とを具備する。図中,72〜84はラインを示し,好ましくはバスとして実装される。
この回路には,ライン(72)を通して,座標(xi,yi)がバッファ(60〜64)に入力され,ライン(73)を通して,たとえば図4に示す回路で求められたDZが乗算器(64)に入力され,ライン(74)を通して,Tuvが乗算器(64)に入力され,ライン(83)を通して,たとえば図3に示す回路により求められたライトファクタが乗算器(69)に入力され,ライン(84)を通して,ガス状物体を構成する粒子のRGBであるRGB粒子色(Rp,Gp,Bp)が乗算器(70)に入力される。この回路に入力される各値は,シェーディング段階で求められてもよいし,上記した第1の側面に係るシステム,又は第2の側面に係るシステムにより求められて,図4に示す回路に入力されてもよい。
CAB(60)は,座標(xi-,yi)と関連して蓄積密度CAB[xi][yi]を保存するためのバッファ(カメラバッファ)である。ライン(72)を通して,座標(xi,yi)がバッファ(60)に入力されると,その入力された座標に対応する蓄積密度CAB[xi][yi]を読み出して,ライン(77及び78)に出力し,その出力は,テーブル(67b)及び加算器(66)にそれぞれ届けられる。
IRed(61),IGreen(62)及びIBlue(63)は,それぞれ座標(xi,yi)に関連して粒子のRGBイリュミネーションファクタIRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi]を記憶する3つのバッファ(カメラバッファ)である。ライン(72)を通して,座標(xi,yi)がバッファ(61〜64)に入力されると,その入力された座標に対応する蓄積密度IRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi]をそれぞれのバッファが読み出して,ライン(80)に出力し,その出力は,加算器(71)にそれぞれ届けられる。
乗算器(64)には,ライン(73)を通して入力されるDZ及び,ライン(74)を通して入力されるTuvを,入力値である,前記減衰密度Dzと前記テクスチャ値Tuvとを用いて“Dz×Tuv”を計算する。その出力は,ライン(76)を通して,加算器(66)に伝えられる。
加算器(66)は,ライン(76)を通して,入力される“Dz×Tuv”と前記バッファCAB(60)から伝えられるCAB[xi][yi]とを用いて“Dz×Tuv+CAB[xi][yi]”を計算し,出力する。その出力はテーブル(67a)に伝えられる他,ライン(81)を通して,バッファCAB(60)に伝えられる。
1-exp(-x)テーブル(67a)は,加算器(66)から伝えられる“Dz×Tuv+CAB[xi][yi]”を入力として用いて,“1-exp(-(Dz×Tuv+CAB[xi][yi]))”を読み出し,出力する。その出力は,加算器(68)に伝えられる。
1-exp(-x)テーブル(67b)は,CAB(60)から伝えられるCAB[xi][yi]を入力として用いて1-exp(-CAB[xi][yi])を読み出し,出力する。その出力は,加算器(68)へ伝えられる。
加算器(68)は,“1-exp(-(Dz×Tuv+CAB[xi][yi]))”と“1-exp(-CAB[xi][yi])”とを入力値として用いて,“-[1-exp(-CAB[xi][yi])-{1-exp(-(Dz×Tuv+CAB[xi][yi]))}]” すなわち,“exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))”を計算し,出力する。その計算の際,“1-exp(-CAB[xi][yi])”の符号が反転され,加算されればよい。その出力は,乗算器(69)へ伝えられる。
乗算器(69)は,“{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}”と前記LightFactorとを入力値として用いて,“{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor”を計算し,出力する。出力は,乗算器(70)へと伝えられる。
乗算器(70)は,前記“{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor”と前記(Rp,Gp,Bp)とを入力値として用いて,ベクトル値[{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor]×(Rp,Gp,Bp)を計算し,出力する。出力は,加算器(71)へと伝えられる。
加算器(71)は,前記ベクトル値“[{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor]×(Rp,Gp,Bp)”及び前記(IRed[xi][yi],IGreen[xi][yi],IBlue[xi][yi])を用いて,ベクトル値[{exp(-CAB[xi][yi])-exp(-(Dz×Tuv+CAB[xi][yi]))}×LightFactor]×(Rp,Gp,Bp)+(IRed[xi][yi],IGreen[xi][yi],IBlue[xi][yi])を計算し,出力する。出力は,バッファ(61〜63)へと伝えられる。それぞれのバッファは,この値を受けて,IRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi]を更新する。
[第4の側面に係るシステム]
第4の側面に係るシステムは,レンダリングシステムに関する。このシステムは次式IV又は次式Vに基づく。そして,本側面においては,上記した各側面に係るシステム及びそれらの好ましい態様に係るシステムを適宜用いることができる。
[IV]
式中,CAB[xi][yi]は蓄積密度, IRed[xi][yi], IGreen[xi][yi]及びIBlue[xi][yi]は,前記式IIIに基づいて計算される前記デバイス座標 (xi,yi) に関連するイリュミネーションファクタである。
[V]
式中,IRg, IGg及びIBgは上記式IVに従って求められる。Rg, Gg 及びBgは,それぞれガス状物体のRGBカラーである。RAmbient, GAmbient 及びBAmbientは,それぞれRGBの背景色である。Agは上記式Vで定義される,いわゆるアルファ値であり, AttZは距離に基づく減衰要素であり,CAB[xi][yi]は前記式IIIで定義される蓄積密度である。
第4の側面に係るシステムは,基本的には,粒子のRGBイリュミネーションファクタであるIRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi]と,蓄積密度CAB[xi][yi]とを得るための手段と;前記CAB[xi][yi]を入力として,1-exp(-CAB[xi][yi])を求めるための1-exp(x) テーブルと;前記1-exp(-CAB[xi][yi])を入力として,1/{1-exp(-CAB[xi][yi])}を求めるための逆数テーブルと;前記IRed[xi][yi],前記IGreen[xi][yi],及び前記IBlue[xi][yi]と,前記1/{1-exp(-CAB[xi][yi])}とを用いて,上記式[IV]で定義されるIRg, IGg 及びIBgを求めるための乗算器と;を具備する,蓄積密度とRGBイルミネーションファクタとで表現された粒子の集合体として表現されるガス状物体を,RGB色に変換するために,上記式[IV]で定義されるIRg, IGg 及びIBgを求めるための,3次元コンピュータグラフィックスに用いられるシステムに関する。このシステムは,座標(xi,yi)を受取り,IRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi]と,蓄積密度CAB[xi][yi]とを読み出して用いてもよい。また,IRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi]と,蓄積密度CAB[xi][yi]が入力されてもよい。そして,CAB[xi][yi]を用いて,1-exp(x) テーブルから,1-exp(-CAB[xi][yi])を読み出す。そして,読み出した1-exp(-CAB[xi][yi])を用いて,逆数テーブルから,1/{1-exp(-CAB[xi][yi])}をえる。そして,得られた1/{1-exp(-CAB[xi][yi])}と,IRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi]とをそれぞれ乗算することで,IRg, IGg 及びIBgを求めることができる。
第4の側面に係るシステムの好ましい態様は,前記1-exp(x) テーブル及び前記逆数テーブルの替わりに,前記CAB[xi][yi]を用いて1/{1-exp(-CAB[xi][yi])}を求めるための1/(1-exp(x))テーブルか,又は exp(x)テーブル及び加減算器及び逆数テーブルを具備する上記に記載のシステムに関する。1/{1-exp(-CAB[xi][yi])}テーブルを用いれば,CAB[xi][yi]を用いて,直接1/{1-exp(-CAB[xi][yi])}の値を読み出すことができる。一方,exp(x)テーブルを用いて,exp(-CAB[xi][yi])}を読み出し,加減算器に1及びexp(-CAB[xi][yi])}を入力し,1-exp(-CAB[xi][yi])}を求め,逆数テーブルにより1/{1-exp(-CAB[xi][yi])}の値を求めてもよい。
第4の側面に係るシステムの好ましい上記とは別の態様は,前記RGBイリュミネーションファクタであるIRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi]を得るための手段は, デバイス座標(xi-,yi) ,減衰密度Dz,テクスチャ値Tuv,ライトファクタLightFactor及び粒子のRGB色(Rp,Gp,及びBp)で定義される粒子の位置を得るための手段と;デバイス座標(xi-,yi)と関連して蓄積密度を保存するための手段と;前記取得されたデバイス座標(xi-,yi),前記減衰密度Dz,前記テクスチャ値Tuv,前記ライトファクタLightFactor,前記粒子のRGB色(Rp,Gp,及びBp),及び前記蓄積密度を用いて,RGBイリュミネーションファクタを計算するための手段と;を含む上記いずれかに記載のシステムに関する。
第4の側面に係るシステムの好ましい上記とは別の態様は,前記デバイス座標(xi-,yi)と関連して蓄積密度を保存するための手段は,座標(xi-,yi)と関連して粒子の蓄積密度CAB[xi][yi]を記憶するバッファCAB(60)により実装され;前記RGBイリュミネーションファクタを計算するための手段は,前記蓄積密度CAB[xi][yi]を得て,前記デバイス座標(xi-,yi),前記減衰密度Dz,前記テクスチャ値Tuv,前記ライトファクタLightFactor,前記粒子のRGB色(Rp,Gp,及びBp),及び前記蓄積密度CAB[xi][yi]を用いて,デバイス座標(xi-,yi)と関連する上記式[III]で示されるRGBイリュミネーションファクタ(IRed[xi][yi],IGreen[xi][yi]及びIBlue[xi][yi])を計算する;上記いずれかに記載のシステムに関する。
第4の側面に係るシステムの好ましい上記とは別の態様は,式[IV]で示される係数であるIRg, IGg 及びIBgを得るための手段と;RGBアンビエントカラーRAmbient, GAmbient 及びBAmbientを定義するための手段と;前記IRg, 前記IGg 及び前記IBgを用いて1-IRg, 1-IGg及び1-IBgを計算するための加算器(又は除算器)と;前記1-IRg, 前記1-IGg 及び前記1-IBg並びに前記RAmbient,前記GAmbient 及び前記BAmbient gを入力として用いて(1-IRg)xRAmbient, (1-IGg)xGAmbient 及び (1-IBg)xBAmbientを計算するための乗算器と;前記IRg, 前記IGg及び前記IBg並びに前記(1-IRg)xRAmbient, 前記(1-IGg)xGAmbient 及び前記(1-IBg)xBAmbientを入力として用いてIRg+(1-IRg)xRAmbient, IGg+(1-IGg)xGAmbient及びIBg+ (1-IBg)xBAmbientを計算するための加算器と;を具備する蓄積密度とRGBイルミネーションファクタとで表現された粒子の集合体として定義されるガス状物体を,ガス状物体のRGB色であるRg, Gg及び Bgに変換するための3次元コンピュータグラフィックスに用いられるシステムに関する。これにより,下記[Va] で示される値が求められる。
[Va]
第4の側面に係るシステムの好ましい上記とは別の態様は,前記IRg,IGg及びIBgを得るための手段は,粒子のRGBイリュミネーションファクタであるIRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi]と,蓄積密度CAB[xi][yi]とを得るための手段と;前記CAB[xi][yi]を入力として,1-exp(-CAB[xi][yi])を求めるための1-exp(x) テーブルと; 前記1-exp(-CAB[xi][yi])を入力として,1/{1-exp(-CAB[xi][yi])}を求めるための逆数テーブルと;前記IRed[xi][yi], 前記IGreen[xi][yi],及び前記IBlue[xi][yi]と,前記1/{1-exp(-CAB[xi][yi])}とを用いて,前記IRg, 前記IGg 及び前記IBgを求めるための乗算器と;を具備する,上記いずれかに記載のシステムに関する。
第4の側面に係るシステムの好ましい上記とは別の態様は,ガス状物体に含まれるすべてのピクセル(又は断片)座標(xi-,yi)をサンプリングするための手段と;距離に応じた減衰係数DAttを定義するための手段と;RGBアンビエントカラーRAmbient, GAmbient 及びBAmbienを定義するための手段と;前記断片(xi-,yi)に関連した蓄積密度にアクセスするための手段と;前記断片(xi-,yi)に関連したイリュミネーションファクタIRed[xi][yi], IGreen[xi][yi], 及びIBlue[xi][yi]にアクセスするための手段と;前記イリュミネーションファクタをRGB色に変換するための手段と;前記距離に応じた減衰係数に基づいて前記蓄積密度を減衰するための手段と;前記蓄積密度をアルファ値に変換するための手段と;RGBA色を他のRGBA色と組み合わせるための手段と;具備する,蓄積密度とRGBイルミネーションファクタとで表現された粒子の集合体として定義されるガス状物体を,RGBA色に変換するための3次元コンピュータグラフィックスに用いられるシステムに関する。
第4の側面に係るシステムの好ましい上記とは別の態様は,座標(xi-,yi)と関連してガス状物体の蓄積密度CAB[xi][yi]を記憶するための手段CAB(60)と;前記座標(xi,yi)と関連して粒子のRGBイリュミネーションファクタを記憶するための手段IRed(61),IGreen(62),及びIBlue(63)と;ガス状物体に含まれるすべてのピクセル(又は断片)座標(xi-,yi)をサンプリングするための手段と;前記断片座標(xi-,yi)に関連した蓄積密度CAB[xi][yi]を取得するための手段と;前記フラグメント座標(xi,yi)と関連したRGBイリュミネーションファクタIRed[xi][yi],IGreen[xi][yi]及びIBlue[xi][yi]を取得するための手段と;前記CAB[xi][yi]を入力として,1/(1-exp(-CAB[xi][yi]))を求めるための手段と;前記“1/(1-exp(-CAB[xi][yi]))”と前記IRed[xi][yi], IGreen[xi][yi], 及びIBlue[xi][yi]とを入力値としてベクトル値である“{1/(1-exp(-CAB[xi][yi]))} × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])”を求めるための手段と;前記“{1/(1-exp(-CAB[xi][yi]))} × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])”を入力値として用いて“(1,1,1)-{1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}”を計算するための手段と;前記(RAmbient, GAmbient, BAmbient)と前記[(1,1,1)-{1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}]とを入力値として用いて“(RAmbient, GAmbient, BAmbient) ×[(1,1,1)-{1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}]”を計算するための手段と;前記(RAmbient, GAmbient, BAmbient) ×((1,1,1)-1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])]と前記{1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}とを入力値として用いて“(RAmbient, GAmbient, BAmbient) ×((1,1,1)-1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])]+ {1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}”を計算するための手段と;前記CAB[xi][yi]と前記DAttとを入力値として用いて“CAB[xi][yi] ×DAtt”を計算するための手段と;前記CAB[xi][yi] ×DAttを入力値として用いて“1-exp(-CAB[xi][yi] ×DAtt)”を計算するための手段と;前記出力されたベクトル値と表面物体像とを結合させるための手段と;を具備する,3次元コンピュータグラフィックスに用いられるシステムに関する。
第4の側面に係るシステムの好ましい上記とは別の態様は,座標(xi-,yi)と関連して粒子の蓄積密度CAB[xi][yi]を記憶するためのバッファCAB(60)と;前記座標(xi,yi)と関連して粒子のRGBイリュミネーションファクタを記憶するための3つのバッファIRed(61),IGreen(62),及びIBlue(63)と;ガス状物体に含まれるすべてのピクセル(又は断片)座標(xi-,yi)をサンプリングするための手段と;前記CAB[xi][yi]を入力として,1/(1-exp(-CAB[xi][yi]))を求めるための1/(1-exp(-x))テーブルと;前記“1/(1-exp(-CAB[xi][yi]))”と前記IRed[xi][yi], IGreen[xi][yi], 及びIBlue[xi][yi]とを入力値としてベクトル値である“{1/(1-exp(-CAB[xi][yi]))} × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])”を求めるための乗算器と;前記“{1/(1-exp(-CAB[xi][yi]))} × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])”を入力値として用いて“(1,1,1)-{1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}”を計算するための加算器と;前記(RAmbient, GAmbient, BAmbient)と前記[(1,1,1)-{1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}]とを入力値として用いて“(RAmbient, GAmbient, BAmbient,) ×[(1,1,1)-{1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}]”を計算するための乗算器と;前記(RAmbient, GAmbient, BAmbient) ×((1,1,1)-1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])]と前記{1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}とを入力値として用いて“(RAmbient, GAmbient, BAmbient) ×((1,1,1)-1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])]+ {1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}”を計算するための乗算器と;前記CAB[xi][yi]と前記DAttとを入力値として用いて“CAB[xi][yi] ×DAtt”を計算するための乗算器と;前記CAB[xi][yi] ×DAttを入力値として用いて“1-exp(-CAB[xi][yi] ×DAtt)”を計算するための1-exp(-x)テーブルと;前記出力されたベクトル値と表面物体像とを結合させるための手段と;を具備する,3次元コンピュータグラフィックスに用いられるシステムに関する。
図6は,第4の側面に係るシステムを示すブロック図である。図6に示されるように,第4の側面に係るシステムを実現する回路は,座標(xi-,yi)と関連して粒子の蓄積密度CAB[xi][yi]を記憶するバッファCAB(60)と,座標(xi,yi)に関連して粒子のRGBイリュミネーションファクタIRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi]を記憶する3つのバッファIRed(61),IGreen(62)及びIBlue(63)と,1-exp(-x)テーブル(101)と1/(1-exp(-x))テーブル(102)と,加算器(104,106)と,乗算器(100,103,105)を具備する。図中,109〜114はラインを示し,好ましくはバスとして実装される。
この回路には,ライン(107)を通して,座標(xi,yi)がバッファ(60〜64)に入力され,ライン(111)を通して,RGBアンビエントカラーRAmbient, GAmbient及びBAmbientが乗算器(105)に入力され,距離に応じた減衰係数DAttが乗算器(100)に入力される。そして,RGBアンビエントカラーRAmbient, GAmbient 及びBAmbientは,図示しない定義手段により定義されるか,又は適宜求められて,回路に入力される。また,距離に応じた減衰係数DAttは,距離に応じた減衰係数DAttを定義するための手段により定義されるか,又は適宜求められて,回路に入力される。
CAB(60)は,座標(xi-,yi)と関連して蓄積密度CAB[xi][yi]を保存するためのバッファ(カメラバッファ)である。なお,蓄積密度CAB[xi][yi]は,好ましくは上記した第3の側面に係るシステムにより修正(更新)された値とされる。そして,ライン(107)を通して,座標(xi,yi)がバッファ(60)に入力されると,その入力された座標に対応する蓄積密度CAB[xi][yi](好ましくは上記した第3の側面に係るシステムにより修正(更新)された値)を読み出して,ライン(109及び91)に出力し,その出力は,テーブル(102)及び乗算器(100)にそれぞれ届けられる。
IRed(61),IGreen(62)及びIBlue(63)は,それぞれ座標(xi,yi)に関連して粒子のRGBイリュミネーションファクタIRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi]を記憶する3つのバッファ(カメラバッファ)である。なお,IRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi]は,好ましくは上記した第3の側面に係るシステムにより修正(更新)された値とされる。ライン(107)を通して,座標(xi,yi)がバッファ(61〜64)に入力されると,その入力された座標に対応する蓄積密度IRed[xi][yi],IGreen[xi][yi],及びIBlue[xi][yi] (好ましくは上記した第3の側面に係るシステムにより修正(更新)された値)をそれぞれのバッファが読み出して,ライン(110)に出力し,その出力は,乗算器(103)にそれぞれ届けられる。
1/(1-exp(-x))テーブル(102)は,CAB[xi][yi]を入力として,1/(1-exp(-CAB[xi][yi]))を読み出して,出力する。出力は,ライン(112)を通して,乗算器(103)に伝えられる。
乗算器(103)は,1/(1-exp(-x))テーブル(102)からの“1/(1-exp(-CAB[xi][yi]))”と,バッファ(61〜63)からのIRed[xi][yi], IGreen[xi][yi], 及びIBlue[xi][yi]とを入力値として,ベクトル値である“{1/(1-exp(-CAB[xi][yi]))} × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])”を求め,出力する。出力は,ライン(113)を通して,加算器(104)に伝えられる他,ライン(114)を通して,加算器(106)へ伝えられる。
加算器(104)は,乗算器(103)からの“{1/(1-exp(-CAB[xi][yi]))} × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])”と,(1,1,1)とを入力値として用いて“(1,1,1)-{1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}”を計算し,出力する。出力は,ライン(112)を通して,乗算器(105)に伝えられる。
乗算器(105)は,ライン(111)を通して入力される(RAmbient, GAmbient, BAmbient)と前記[(1,1,1)-{1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}]とを入力値として用いて“(RAmbient, GAmbient, BAmbient) ×[(1,1,1)-{1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}]”を求め,出力する。出力は,ライン(115)を通して,加算器(106)に伝えられる
加算器(106)は,ライン(114)を通じて入力される乗算器(103)の出力である“{1/(1-exp(-CAB[xi][yi]))} × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])”と,
ライン(115)を通じて入力される乗算器(105)の出力である“(RAmbient, GAmbient, BAmbient) ×[(1,1,1)-{1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}]”とを受け取り,前記(RAmbient, GAmbient, BAmbient) ×((1,1,1)-1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])]と前記{1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}とを入力値として用いて“(RAmbient, GAmbient, BAmbient) ×((1,1,1)-1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])]+ {1/(1-exp(-CAB[xi][yi])) × (IRed[xi][yi], IGreen[xi][yi], IBlue[xi][yi])}”を求め,出力する。出力は,ガス状物体のRGB色として,出力され,図示しないフレームバッファなどに伝えられ,ガス状物体を表現するために用いられる。
一方,乗算器(100)は,ライン(91)を通じて入力された前記CAB[xi][yi]と,前記DAttとを入力値として用いて“CAB[xi][yi] ×DAtt”を出力する。出力は,ライン(106)を通して,テーブル(101)に伝えられる
1-exp(-x)テーブル(101)は,ライン(108)を通して,乗算器(100)からの“CAB[xi][yi] ×DAtt”を受け取り,CAB[xi][yi] ×DAttを入力値として用いて“1-exp(-CAB[xi][yi] ×DAtt)”を読み出し,出力する。この値はいわゆるアルファ値として,不透明さなどを表現するために用いられる。
上記した回路を用いることで,変換後のガス状物体を表面物体に関する像と結合させるために,蓄積密度,RGBイルミネーションファクタとで表現された粒子の集合体として定義されるガス状物体を,RGB色,アンビエントカラー,距離に応じた減衰係数DAttを用いたアルファ値を用いた像に変換することができる。
[コンピュータの構成]
図7は,本発明のある実施態様(コンピュータ)を示すブロック図である。この実施態様は,コンピュータグラフィックスによるコンピュータ(グラフィック用コンピュータなど)に関する。図13に示されるとおり,このコンピュータ101は,中央演算装置(CPU)102,ジオメトリ演算回路103などのジオメトリ演算部,レンダラー104などの描画部,テクスチャ生成回路105などのテクスチャ生成部,照光処理回路107などの照光処理部,表示回路108などの表示情報作成部,フレームバッファ109,及びモニター110を具備する。これらの要素は,バスなどにより接続され,相互にデータを伝達できる。そのほか,図示しないメインメモリや,各種テーブル,ワーク領域となるワークメモリ111,テクスチャを格納するテクスチャメモリ112などを具備する記憶部などを有しても良い。各部を構成するハードウェアは,例えばバスなどを介して連結されている。なお,記憶部は,VRAMなどのRAMや,CR−ROM,DVD,ハードディスクなどにより構成されても良い。
中央演算装置(CPU)102は,画像を生成するためのプログラムなどを制御するための装置である。ワークメモリ111は,CPU102で使用するデータ及びディスプレイリストなどを記憶してもよい。そして,CPU102は,メインメモリに記憶されたプログラムなどを読み出して,所定の処理を行ってもよい。ただし,ハードウェア処理のみにより所定の処理を行っても良い。CPU102は,たとえばワークメモリ111から,ワールド座標の3次元オブジェクトデータとしてのポリゴンデータを読出し,ポリゴンデータをジオメトリ演算回路103へ出力する。具体的には,メインプロセッサ,コプロセッサ,データ処理プロセッサ,四則演算回路又は汎用演算回路などを適宜有するものがあげられる。これらはバスなどにより連結され,信号の授受が可能とされる。また,圧縮された情報を伸張するためのデータ伸張プロセッサを備えても良い。
ジオメトリ演算回路103は,入力されたポリゴンデータに対して,視点を原点とする視点座標系のデータに座標変換などを行うための回路である。ジオメトリ演算回路103は,処理したポリゴンデータを,レンダラー104へ出力する。具体的なジオメトリ演算回路として,前記メインプロセッサとバスなどで連結された,ジオメトリプロセッサ,コプロセッサ,データ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。
レンダラー104は,ポリゴン単位のデータをピクセル単位のデータに変換するための回路又は装置である。レンダラー104は,ピクセル単位のデータをテクスチャ生成回路105へ出力する。具体的なレンダラー104として,前記メインプロセッサとバスなどで連結されたデータ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。
テクスチャ生成回路105は,テクスチャメモリ112に記憶されるテクスチャデータに基づき,ピクセル単位のテクスチャカラーを生成するための回路である。テクスチャ生成回路105は,テクスチャカラー情報を有するピクセル単位のデータを,照光処理回路107へ出力する。具体的なテクスチャ生成回路105として,前記メインプロセッサとバスなどで連結されたデータ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。
照光処理回路107は,テクスチャカラー情報を有するポリゴンに対し,ピクセル単位で法線ベクトル,重心座標などを利用して陰影付けなどを行うための回路である。照光処理回路107は,陰影付けした画像データを,表示回路108へ出力する。具体的な照光処理回路107として,前記メインプロセッサとバスなどで連結されたデータ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。そして,メモリに格納されたテーブルなどから適宜光に関する情報を読み出して陰影付けを行えばよい。
表示回路108は,照光処理回路107から入力された画像データをフレームバッファ109に書き込み,またフレームバッファ109に書き込まれた画像データを読み出し,制御して表示画像情報を得るための回路である。表示回路108は,表示画像情報をモニター110へ出力する。具体的な表示回路として,前記メインプロセッサとバスなどで連結された描画プロセッサ,データ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。
モニター110は,入力された表示画像情報にしたがって,コンピュータグラフィックス画像を表示するための装置である。
本発明のコンピュータは,照光処理回路などの照光処理部に,本発明の画像生成装置を具備するので,シェーディング画像などを効果的に生成できる。
[コンピュータの動作]
以下,コンピュータを用いて画像を生成する動作例を説明する。CPU102は,ワークメモリ111から,ポリゴンデータを読出し,ポリゴンデータをジオメトリ演算回路103へ出力する。ジオメトリ演算回路103は,入力されたポリゴンデータに対して,視点を原点とする視点座標系のデータに座標変換するなどの処理を行う。ジオメトリ演算回路103は,処理したポリゴンデータを,レンダラー104へ出力する。レンダラー104は,ポリゴン単位のデータをピクセル単位のデータに変換する。レンダラー104は,ピクセル単位のデータをテクスチャ生成回路105へ出力する。テクスチャ生成回路105は,テクスチャメモリ112に記憶されるテクスチャデータに基づき,ピクセル単位のテクスチャカラーを生成する。テクスチャ生成回路105は,テクスチャカラー情報を有するピクセル単位のデータを,照光処理回路107へ出力する。照光処理回路107は,テクスチャカラー情報を有するポリゴンに対し,ピクセル単位で法線ベクトル,重心座標などを利用して陰影付けを行う。照光処理回路107は,陰影付けした画像データを,表示回路108へ出力する。表示回路108は,照光処理回路107から入力された画像データをフレームバッファ109に書き込み,またフレームバッファ109に書き込まれた画像データを読み出し,表示画像情報を得る。表示回路108は,表示画像情報をモニター110へ出力する。モニター110は,入力された表示画像情報にしたがって,コンピュータグラフィックス画像を表示する。
本発明のコンピュータは,照光処理回路などの照光処理部に,本発明の画像生成装置を具備するので,特定のピクセル以外のピクセルへの入射光を考慮しなくとも,輝度計算などを効果的に行うことができるので,高速に陰影などを演算することができる。
[ゲーム機の構成]
図8は,本発明のある実施形態(ゲーム機)のブロック図である。このブロック図で表される実施形態は,特に携帯用,家庭用又は業務用のゲーム機として好適に利用されうる。そこで,以下では,ゲーム機として説明する。なお,同図に示されるゲーム機は,少なくとも処理部200を含めばよく(又は処理部200と記憶部270,又は処理部200と記憶部270と情報記憶媒体280を含んでもよく),それ以外のブロック(例えば操作部260,表示部290,音出力部292,携帯型情報記憶装置294,通信部296)については,任意の構成要素とすることができる。
処理部200は,システム全体の制御,システム内の各ブロックへの命令の指示,ゲーム処理,画像処理,音処理などの各種の処理を行うものである。処理部200の機能は,各種プロセッサ(CPU,DSP等),又はASIC(ゲートアレイ等)などのハードウェアや,所与のプログラム(ゲームプログラム)により実現できる。
操作部260は,プレーヤが操作データを入力するためのものである。操作部260は,の機能は,例えば,レバー,ボタン,外枠,及びハードウェアを備えたコントローラにより実現できる。なお,特に携帯用ゲーム機の場合は,操作部260は,ゲーム機本体と一体として形成されても良い。コントローラからの処理情報は,シリアルインターフェース(I/F)やバスを介してメインプロセッサなどに伝えられる。
記憶部270は,処理部200や通信部296などのワーク領域となるものである。また,プログラムや各種テーブルなどを格納しても良い。記憶部270は,例えば,メインメモリ272,フレームバッファ274,及びテクスチャ記憶部276を含んでもよく,そのほか各種テーブルなどを記憶しても良い。記憶部270の機能は,ROMやRAMなどのハードウェアにより実現できる。 RAMとして,VRAM,DRAM又はSRAMなどがあげられ,用途に応じて適宜選択すればよい。フレームバッファ274を構成するVRAMなどは,各種プロセッサの作業領域として用いられる。
情報記憶媒体(コンピュータにより使用可能な記憶媒体)280は,プログラムやデータなどの情報を格納するものである。情報記憶媒体280は,いわゆるゲームカセットなどとして販売されうる。そして,情報記憶媒体280の機能は,光ディスク(CD,DVD),光磁気ディスク(MO),磁気ディスク,ハードディスク,磁気テープ,又はメモリ(ROM)などのハードウェアにより実現できる。処理部200は,この情報記憶媒体280に格納される情報に基づいて種々の処理を行う。情報記憶媒体280には,本発明(本実施形態)の手段(特に処理部200に含まれるブロック)を実行するための情報(プログラム又はプログラム及びデータ)が格納される。なお,上記記憶部にプログラムやデータなどの情報を格納した場合は,情報記憶媒体280は必ずしも必要ない。情報記憶媒体280に格納される情報の一部又は全部は,例えば,システムへの電源投入時等に記憶部270に転送されることになる。また,情報記憶媒体280に記憶される情報として,所定の処理を行うためのプログラムコード,画像データ,音データ,表示物の形状データ,テーブルデータ,リストデータ,本発明の処理を指示するための情報,その指示に従って処理を行うための情報等の少なくとも2つを含むものがあげられる。
表示部290は,本実施形態により生成された画像を出力するものであり,その機能は,CRT(ブラウン管),LCD(液晶),OEL(有機電界発光素子),PDP(プラズマディスプレイパネル)又はHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
音出力部292は,音を出力するものである。音出力部292の機能は,スピーカなどのハードウェアにより実現できる。音出力は,例えばバスを介してメインプロセッサなどと接続されたサウンドプロセッサにより,音処理が施され,スピーカなどの音出力部から出力される。
携帯型情報記憶装置294は,プレーヤの個人データやセーブデータなどが記憶されるものである。この携帯型情報記憶装置294としては,メモリカードや携帯型ゲーム装置などがあげられる。携帯型情報記憶装置294の機能は,メモリカード,フラッシュメモリ,ハードディスク,USBメモリなど公知の記憶手段により達成できる。
通信部296は,外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種の制御を行う任意のものである。通信部296の機能は,各種プロセッサ,又は通信用ASICなどのハードウェアや,プログラムなどにより実現できる。
ゲーム機を実行するためのプログラム又はデータは,ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部296を介して情報記憶媒体280に配信するようにしてもよい。
処理部200は,ゲーム処理部220,画像処理部230,及び音処理部250を含むものがあげられる。具体的には,メインプロセッサ,コプロセッサ,ジオメトリプロセッサ,描画プロセッサ,データ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。これらは適宜バスなどにより連結され,信号の授受が可能とされる。また,圧縮された情報を伸張するためのデータ伸張プロセッサを備えても良い。
ここでゲーム処理部220は,コイン(代価)の受け付け処理,各種モードの設定処理,ゲームの進行処理,選択画面の設定処理,オブジェクトの位置や回転角度(X,Y又はZ軸回り回転角度)を求める処理,オブジェクトを動作させる処理(モーション処理),視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理,マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理,ヒットチェック処理,ゲーム結果(成果,成績)を演算する処理,複数のプレーヤが共通のゲーム空間でプレイするための処理,又はゲームオーバー処理などの種々のゲーム処理を,操作部260からの操作データや,携帯型情報記憶装置294からの個人データ,保存データや,ゲームプログラムなどに基づいて行う。
画像処理部230は,ゲーム処理部220からの指示等にしたがって,各種の画像処理を行うものである。また,音処理部250は,ゲーム処理部220からの指示等にしたがって,各種の音処理を行う。
ゲーム処理部220,画像処理部230,音処理部250の機能は,その全てをハードウェアにより実現してもよいし,その全てをプログラムにより実現してもよい。又は,ハードウェアとプログラムの両方により実現してもよい。画像処理部230は,ジオメトリ演算部232(3次元座標演算部),描画部240(レンダリング部)を含むものがあげられる。
ジオメトリ演算部232は,座標変換,クリッピング処理,透視変換,又は光源計算などの種々のジオメトリ演算(3次元座標演算)を行う。そして,ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点座標,頂点テクスチャ座標,又は輝度データ等)は,例えば,記憶部270のメインメモリ272に格納されて,保存される。
描画部240は,ジオメトリ演算後(透視変換後)のオブジェクトデータと,テクスチャ記憶部276に記憶されるテクスチャなどに基づいて,オブジェクトをフレームバッファ274に描画する。
描画部240は,例えば,テクスチャマッピング部242,シェーディング処理部244を含むものがあげられる。具体的には,描画プロセッサにより実装できる。描画プロセッサは,テクスチャ記憶部,各種テーブル,フレームバッファ,VRAMなどとバスなどを介して接続され,更にディスプレイと接続される。
テクスチャマッピング部242は,環境テクスチャをテクスチャ記憶部276から読み出し,読み出された環境テクスチャを,オブジェクトに対してマッピングする。
シェーディング処理部244は,オブジェクトに対するシェーディング処理を行う。例えば,ジオメトリ処理部232が光源計算を行い,シェーディング処理用の光源の情報や,照明モデルや,オブジェクトの各頂点の法線ベクトルなどに基づいて,オブジェクトの各頂点の輝度(RGB)を求める。シェーディング処理部244は,この各頂点の輝度に基づいて,プリミティブ面(ポリゴン,曲面)の各ドットの輝度を例えば,ホンシェーディングや,グーローシェーディングなどにより求める。
ジオメトリ演算部232は,法線ベクトル処理部234を含むものがあげられる。法線ベクトル処理部234は,オブジェクトの各頂点の法線ベクトル(広義にはオブジェクトの面の法線ベクトル)を,ローカル座標系からワールド座標系への回転マトリクスで回転させる処理を行ってもよい。
本発明のゲーム機は,たとえば,シェーディング処理部244に,本発明の画像生成装置を具備する。
[ゲーム機の基本動作]
システムの電源がONになると,情報記憶媒体280に格納される情報の一部又は全部は,例えば,記憶部270に転送される。そして,ゲーム処理用のプログラムが,例えばメインメモリ272に格納され,様々なデータが,テクスチャ記憶部276や,図示しないテーブルなどに格納される。
操作部260からの操作情報は,例えば,図示しないシリアルインターフェースやバスを介して,処理部200へ伝えられ,音処理や,様々な画像処理が行われる。音処理部250により処理された音情報は,バスを介して音出力部292へ伝えられ,音として放出される。また,メモリカードなどの携帯型情報記憶装置194に記憶されたセーブ情報なども,図示しないシリアルインターフェースやバスを介して,処理部200へ伝えられ所定のデータが記憶部170から読み出される。
画像処理部230が,ゲーム処理部220からの指示等にしたがって,各種の画像処理を行う。具体的には,ジオメトリ演算部232が,座標変換,クリッピング処理,透視変換,又は光源計算などの種々のジオメトリ演算(3次元座標演算)を行う。そして,ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点座標,頂点テクスチャ座標,又は輝度データ等)は,例えば,記憶部270のメインメモリ272に格納されて,保存される。次に,描画部240が,ジオメトリ演算後(透視変換後)のオブジェクトデータと,テクスチャ記憶部276に記憶されるテクスチャなどとに基づいて,オブジェクトをフレームバッファ274に描画する。
フレームバッファ274に格納された情報は,バスを介して表示部290へ伝えられ,描画されることとなる。このようにして,コンピュータグラフィックを有するゲーム機として機能する。
本発明のゲーム機は,たとえば,シェーディング処理部244に,本発明の画像生成装置を具備するので,特定のピクセル以外のピクセルへの入射光を考慮しなくとも,輝度計算などを効果的に行うことができるので,高速に陰影などを演算することができる。
[携帯電話機の構成]
図9は,本発明のある実施形態(コンピュータグラフィック機能つき携帯電話機)のブロック図である。このブロック図で表される実施形態は,特に3次元コンピュータグラフィック機能つき携帯電話機,特にゲーム機能付携帯電話や,ナビゲーション機能付形態電話として好適に利用されうる。
図9に示されるように,この携帯電話は,制御部221と,制御部221のためのプログラムや画像データなどが格納され,制御部や通信部などのワーク領域となるメモリ部222と,無線通信を行うための無線通信機能部223と,静止画や動画を撮影してデジタル信号に変換するCCDカメラなどの任意要素である撮像部224と,画像や文字を表示するためのLCDなどの表示部225と,テンキーや各種機能キーなどを含む操作部226と,音声通話のためのマイクなどの音声入力部227と,レシーバやスピーカなど音を出力するための音声出力部228と,当該携帯電話端末を動作させるための電池229と,電池229を安定化し各機能部へ分配する電源部230を含む。
制御部201は,携帯電話システム全体の制御,システム内の各ブロックへの命令の指示,ゲーム処理,画像処理,音処理などの各種の処理を行うものである。制御部221の機能は,各種プロセッサ(CPU,DSP等),又はASIC(ゲートアレイ等)などのハードウェアや,所与のプログラム(ゲームプログラム)により実現できる。
より具体的には,制御部は,図示しない画像処理部を具備し,画像処理部は,ジオメトリ演算回路などのジオメトリ演算部と,描画部(レンダラー)とを具備する。さらに,テクスチャ生成回路,照光処理回路,又は表示回路などを具備してもよい。更には,先に説明したコンピュータやゲーム機における描画処理回路を適宜具備すればよい。
本発明の携帯電話は,たとえば,描画部(レンダラー)に,本発明の画像生成装置を具備する。
[携帯電話機の動作例]
まず,音声による通信動作について説明する。例えば音声入力部227に入力された音声は,インターフェイスによりデジタル情報に変換され,制御部221によって,所定の処理が施され,無線通信機能部223から無線信号として出力される。また,相手の音情報を受信する場合は,無線通信機能部223が無線信号を受信し,所定の変換処理が施された後,制御部221の制御を受けて,音声出力部228から出力される。
次に,画像を処理するための動作や処理は,基本的には先に説明したコンピュータやゲーム機における動作や処理と同様である。操作部224から,図示しないインターフェイスやバスを介して処理情報が入力されると,例えば,制御部221中の画像処理部の指令に基づき,ジオメトリプロセッサなどが,RAMなどの作業領域,各種テーブルなどを適宜利用し,ジオメトリ演算を行う。さらに,制御部221のレンダラーは,制御部221中の画像処理部の指令に基づき,レンダリング処理を行う。カリング処理やクリッピング処理,アンチエイリアス処理などが適宜施された画像情報は,描画プロセッサにより所定の描画処理を施され,フレームバッファに記憶され,表示部に画像として表示される。このようにして,3次元コンピュータグラフィックスが表示される。
本発明の携帯電話は,たとえば,描画部(レンダラー)に,本発明の画像生成装置を具備するので,特定のピクセル以外のピクセルへの入射光を考慮しなくとも,輝度計算などを効果的に行うことができるので,高速に陰影などを演算することができる。携帯電話におけるコンピュータグラフィックス,特に3次元コンピュータグラフィックス,のレベルはそれほど高くはないので,本発明のようなシェーディング技術は要求されていないが,あえて本発明の画像生成装置を盛り込むことで,陰影の美しい画像を効果的に表示できることとなる。
[カーナビの構成]
図10は,本発明のある実施形態(ナビゲーションシステム)のブロック図である。このブロック図で表される実施形態は,特に3次元コンピュータグラフィック機能つきカーナビゲーションとして好適に利用されうる。図16に示されるように,このナビゲーションシステムは,GPS部241と,任意要素としての自律測位部242と,地図記憶部243と,制御部244と,表示部245と,任意要素としてのマップマッチング部246とを含むものがあげられる。
GPS部241は,GPS受信機を備え,複数のGPS衛星からの電波を同時に受信して車両の測位データを得るGPS部である。GPS部241は,GPS受信機において受信したデータから車両の絶対位置を得るものであるが,この測位データには車両の位置情報の他に車両の進行方向情報,仰角情報が含まれている。
自律測位部242は,自律型センサを備え,自律型センサの出力データから車両の移動距離,移動方位を算出する自律測位部である。自律型センサとしては,車輪の回転数に応じた信号を検出する車輪側センサ,車両の加速度を検出する加速度センサ,車両の角速度を検出するジャイロセンサなどが含まれる。この例では,ジャイロセンサとして,さらに車両のピッチ動作方向における姿勢角度(以下「ピッチ角」と称する)も検出できる3次元ジャイロセンサが使用されており,したがって,自律測位部242から出力される測位データには車両のピッチ角が含まれている。
地図記憶部243は,2次元地図情報,3次元道路情報,及び3次元建物情報を有するデジタル地図データが記憶された地図記憶部である。地図記憶部243を構成する記憶媒体として,CD−ROM,ハードディスクがあげられる。地図データは,データ量が大きいと読み込み時間を要するため,好ましくは複数のブロックに分割されて記憶される。また,道路情報とは,交差点や屈曲点などの主要な地点(ノード)を示す情報を有したものであってもよく,ノード情報はその地点における座標データなどを備え,道路は各ノードを結ぶ直線(リンク)として近似されてもよい。このシステムでの3次元道路情報とは,ノード情報が3次元の座標データを備えていることを意味している。
制御部244は,GPS部241または自律測位部242から得られた車両の位置情報に基づいて,地図記憶部243から車両の位置が該当する所定領域の地図データを読み出すなど所定の制御を行うためのものである。
表示部245は,測位制御部244により読み出された地図データを表示するためのものである。
マップマッチング部246は,車両の測位データおよび地図データの3次元道路情報を基に,車両の位置を道路上に補正するためのものである。
本発明のカーナビは,たとえば,制御部に幾何演算部と描画部とを具備し,描画部(レンダラー)に,本発明の画像生成装置を具備する。
[カーナビの動作例]
GPS部241が,複数のGPS衛星からの電波を同時に受信し車両の測位データを得る。自律測位部242は,自律型センサの出力データから車両の移動距離,移動方位を算出する。制御部244は,GPS部241または自律測位部242から得られたデータに所定の処理を施して車両の位置情報を得る。そして,車両の位置情報に基づいて,地図記憶部243から車両の位置に関連する所定領域の地図データを読み出す。また,図示しない操作部からの操作情報を受けて表示モードを変え,表示モードに応じた地図データを読み出す。また,制御部244は,位置情報に基づいて,所定の描画処理を行い建物の立体画像,地図の立体画像,車の立体画像などを表示する。さらに,Z値に基づいて,カリング処理などを行う。表示部245が,制御部244により読み出された地図データを表示する。
本発明のカーナビは,たとえば,描画部(レンダラー)に,本発明の画像生成装置を具備するので,特定のピクセル以外のピクセルへの入射光を考慮しなくとも,輝度計算などを効果的に行うことができる。これにより,本発明のカーナビは,高速に陰影などを演算することができる。カーナビにおけるコンピュータグラフィックス,特に3次元コンピュータグラフィックス,のレベルはそれほど高くはないので,本発明のようなシェーディング技術は要求されていないが,あえて本発明の画像生成装置を盛り込むことで,陰影の美しい画像を効果的に表示できることとなる。
図11は,パチスロ機の主制御回路361を示すブロック図である。図11に示されるとおり,主制御回路361はマイクロコンピュータ(以下,「マイコン」という。)363を主な構成要素とし,これに乱数サンブリングのための回路を加えて構成されている。マイコン363は,予め設定されたプログラムに従って制御動作を行うメインCPU(中央演算処理装置)364と,プログラム(画像演出プログラムなどを含む)や各種のテーブルデータなどを格納しているROM365およびバックアップ機能付き制御RAM(以下,単にRAMと称する)366とを含んで構成されている。
メインCPU364には,基準クロックパルスを発生するクロックパルス発生回路367および分周器368と,一定範囲の乱数を発生する乱数発生器369および発生した乱数の1つを特定するサンプリング回路370とが接続されている。さらに,メインCPU364には,後述する周辺装置(アクチュエータ)との間で信号を授受するI/Oポート371が接続されている。
ここで,R0M365は,入賞確率テーブル,図柄テーブル,入賞シンボル組合せテーブル,シーケンスプログラム,告知演出テーブルおよび演出画像プログラムを格納するように記憶部が区分され,さらに,スタートレバー328を操作(スタート操作)する毎に行われる乱数サンプリングの判定に用いられる確率抽選テーブル,停止ボタンの操作に応じてリールの停止態様を決定するための停止テーブル等が格納されている。
マイコン363からの制御信号により動作が制御される主要なアクチュエータとしては,各リール305,306,307を回転駆動するステッピングモータ345L,345C,345R,各種ランプ(賭数表示ランプ319〜321,スタートランプ329,WINランプ330,インサートランプ332),各種表示部(クレジット表示ランプ323,遊技状態表示ランプ324〜327,ボーナスカウント表示ランプ318,配当枚数表示ランプ322),およびメダルを収納するホッパー372がある。これらはそれぞれモータ駆動回路373,各ランプ駆動回路374,各表示部駆動回路375およびホッパー駆動回路376によって駆動される。これら駆動回路373〜376は,マイコン363のI/Oポート371を介してメインCPU364に接続されている。
また,マイコン363が制御信号を生成するために必要な入力信号を発生する主な入力信号発生手段としては,メダル投入口から投入されたメダルを検出する投入メダルセンサ331S,スタートレバーの操作を検出するスタートスイッチ328S,前述したBETスイッチ33,およびクレジットメダル精算スイッチ334がある。さらに,フォトセンサからの出力パルス信号を受けて各リール305,306,307の回転位置を検出するリール位置検出回路377がある。なお,フォトセンサは各リール305〜307の駆動機構に含まれており,同図では図示されていない。
さらに,上記の入力信号発生手段としては,停止ボタン335〜337が押されたときに対応するリールを停止させる信号を発生するリール停止信号回路378と,ホッパー372から払い出されるメダル数を計数するメダル検出部372Sと,図示しない払出完了信号発生回路とがある。
また,I/Oポート371には副制御回路381が接続されている。図12は,パチスロ機の副制御回路を示すブロック図である。
副制御回路381は,主制御回路361からの制御指令(コマンド)に基づいて表示装置350の表示制御およびスピーカ382L,382Rからの音の出力制御を実行する。この副制御回路381は,好ましくは,主制御回路361を構成する基板とは別の基板上に構成され,サブマイクロコンピュータ83を主たる構成要素とし,表示装置350の表示制御手段としての画像制御回路391,スピーカ382L,382Rからの出力音を制御する音源IC388,増幅器としてのパワーアンプ389で構成されている。
サブマイクロコンピュータ383は,主制御回路61から送信された制御指令に従って制御動作を行うサブCPU384と,記憶手段としてのプログラムROM385およびワークRAM386とを含む。この例では,副制御回路381は,クロックパルス発生回路,分周器,乱数発生器及びサンプリング回路を備えていないが,サブCPU384の動作プログラム上で乱数サンプリングを実行するように構成されている。
プログラムROM385は,サブCPU84で実行する制御プログラムを格納する。ワークRAM386は,上記制御プログラムをサブCPU384で実行するときの一時記憶手段として構成される。
画像制御回路391は,画像制御CPU392,画像制御プログラムROM394,画像制御ワークRAM393,画像制御IC398,画像ROM396,ビデオRAM397で構成される。
ここで,画像制御CPU392は,サブマイクロコンピュータ383で設定されたパラメータに基づき,画像制御プログラムROM394内に格納する画像制御プログラムに沿って表示装置350での表示内容を決定する。画像制御プログラムROM394は,表示装置350での表示に関する画像制御プログラムや各種選択テーブルを格納する。画像制御ワークRAM393は,上記画像制御プログラムを画像制御CPU392で実行するときの一時記憶手段として構成される。画像制御IC398は,画像制御CPU392で決定された表示内容に応じた画像を形成し,表示装置350に出力する。画像ROM396は,画像を形成するためのドットデータを格納する。ビデオRAM397は,画像制御IC398で画像を形成するときの一時記憶手段として構成される。
なお,主制御回路361からの出力はINポート387を介してサブCPU384に入力され,サブCPU384からの出力はOUTポート390およびINポート395を介して画像制御CPU392に入力される。
次に,本実施の形態のパチスロ機の動作について説明する。遊技者がメダル投入口にメダルを投入すると,投入メダルセンサ331Sから検知信号がメインCPU364へ送られ,メインCPU364はメダルの投入を検知し,賭数に応じた賭数表示ランプ319〜321が点灯する。遊技者がスタートレバー328を押すと,スタートスイッチ328Sから操作信号がメインCPU364へ伝えられ,メインCPU364はスタートレバー328の操作を検知し,I/Oポート371を介してモータ駆動部373へスタート信号を送り,リール305,306,307を一斉に回転させる。
また,スタートスイッチ328Sがスタートレバーの操作を検出すると,メインCPU364は乱数発生器369より発生された乱数値をサンプリング回路370により取り込み,取り込んだ乱数値とROM365に格納された判定値とを比較して,当選,落選を決定する内部抽選を行う。その抽選結果はRAM366の所定領域に格納されるが,内部当選すると,当選の種類に応じたフラグがRAM366の所定領域に立てられる。ここで,当該ゲームで立てられたフラグは当該ゲームが終了すると消滅するのが基本であるが,内部当選確率が低いBBやRBに限って,立てられたフラグが対応する図柄が揃って入賞するまで複数ゲームにわたって持ち越される場合がある。
さらに,スタートスイッチ328Sがスタートレバーの操作を検出すると,メインCPU364はROM365から複数ゲームにわたって表示装置350に演出画像を表示するための演出指示コマンドを読み出し,これをI/Oポート371を介して副制御回路381に送出する。なお,メインCPU364は副制御回路381に送出する演出指示コマンドをRAM366の所定領域に保持しておく。
副制御回路381はメインCPU364から入力された演出指示コマンドに従った演出内容の画像を表示装置350に表示し,内部当選の契機となるスタートレバー328の有効な操作毎に入力される演出指示コマンドに従って画像を表示させる。
次にメインCPU364は,RAM366上の内部抽選結果をチェックして,内部抽選の判定結果に対応する停止テーブルを選択決定し,それぞれに対応する停止テーブルをROM365からRAM366上に読み出す。
その後,遊技者が,停止ボタン335,336,337のいずれかを操作すると,リール停止信号回路378から操作信号がメインCPU364へ伝えられ,メインCPU364はリール位置検出回路377からの各リール305,306,307の位置とRAM366上の停止テーブルに基づいてリール305,306,307を停止させる制御を行う。
これにより,内部抽選で当選していない限り,遊技者はどのようなタイミングで停止ボタン335,336,337を操作しても,当選図柄が揃わないように各リール305,306,307の停止制御が行われる。一方,内部抽選で当選し且つ,内部当選結果に対応する図柄が揃えられる停止テーブルが選択されている場合,遊技者の停止ボタン335,336,337の操作タイミング如何によっては内部当選に対応した図柄が揃う停止制御が存在することになる。
すなわち,内部抽選結果が当選の場合には,メインCPU364は引き込み停止制御に基づくストップ信号をモータ駆動部373へ送り,操作された停止ボタン335,336,337に対応するリール305,306,307を停止させるが,このとき,このリール305,306,307上の入賞に係るシンボルが有効な停止ライン上で停止するようなリール停止制御を行う。
内部抽選結果が外れの場合,メインCPU364は,停止ボタン335,336,337の操作にて,入賞に係るシンボルが有効な停止ライン上で止まらないように,操作された停止ボタン335,336,337に対応するリール305,306,307を停止させる。
本発明のパチスロ機は,たとえば,副制御回路381に含まれる画像制御プログラムや画像制御CPUとして,本発明の画像生成装置を具備するので,回路素子などを共有することで,ハードウェア規模を縮減でき,ベクタ・2D・3D画像処理部を一元化することにより,システムが複雑になる事態を防止できる。これにより,無駄なハードウェア・制御処理を少なくすることができる。前記したとおり,開発・製造コスト,消費電力を低減することができるため,パチスロ機などにおいても好適に利用される。