説明

フォグ効果処理方法、グラフィックス装置、グラフィックス用半導体集積回路装置及びフォグ効果処理プログラム

【課題】簡単な演算で良好なフォグ効果処理が行えるグラフィックス装置の実現。
【解決手段】フォグ効果を発生させるフォグ効果処理を行うグラフィックス装置であって、フォグ効果を発生させる処理アルゴリズムに基づいて奥行きを変化させた時のフォグ濃度の変化を奥行きに応じて複数の領域に分割し、各領域におけるフォグ濃度の変化を直線近似するための基本近似データテーブル、及び対応するインデックス値Iを記憶したテーブルメモリ32,36と、表示画像の座標位置、奥行き値に変換する座標変換行列及びインデックス値を使用して補正奥行き値を算出する補正奥行き値算出回路33-35と、補正奥行き値の上位ビット値から前記基本近似データテーブルの対応する領域を求めるテーブル領域決定回路36と、対応する領域の直線近似に補正奥行き値の下位ビット値からフォグ濃度を算出し、フォグ効果のあるカラー情報を算出するカラー情報算出回路と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、グラフィック処理においてフォグ効果を発生させる処理に関する。
【背景技術】
【0002】
グラフィックス表示において、より一層の現実感を演出するために、霧、もや、煙、ほこりなどに遠くのものが不鮮明になるように、視点からの距離に応じて見え方が異なるように色情報を処理することが行われており、この処理をフォグ(Fog)効果処理と呼んでいる。
【0003】
図1は、フォグ効果処理を説明する図である。視点Vに対して、異なる距離に物体A−Eがある場合、視点Vに近い物体Aは、その色が鮮明に表示されるが、視点Vから遠い物体Eは、その色が不鮮明になるように表示される。これにより奥行き感が表現できる。
【0004】
フォグ効果処理については、例えば特許文献1及び2に記載されているので詳しい説明は省略する。
【0005】
一般的なグラフィック装置でグラフィック表示を行う場合には、視点の位置を基準にして、視点方向にZ軸を設定した視点座標(Eye座標)を使用する。そのため、次の変換式(1)を使用して、対象物体(オブジェクト)のオブジェクト座標をEye座標に変換する。
【0006】
【数1】

【0007】
この変換式(1)で、(Ox,Oy,Oz,Ow)は、オブジェクト座標での座標値であり、Owは倍率に関係する項である。(Ex,Ey,Ez,Ew)はEye座標での座標値である。4×4のマトリクスは変換行列であり、M0−M15は変換行列の要素値である。
【0008】
フォグ効果処理は、Eye座標でのZ座標値Ezに応じて行われる。フォグ効果処理の代表的なアルゴリズムとして、指数関数、2乗指数関数及び線形関数の3種類の関数を使用するアルゴリズムがあり、グラフィック装置にはこの3種類のアルゴリズムに対応したフォグ効果処理モードが定義され、選択できるようになっている。3種類の処理モードに対応した関数は、以下の式(2)−(4)で表される。
【0009】
【数2】

【0010】
【数3】

【0011】
【数4】

【0012】
ここで、式(2)は指数関数を利用するアルゴリズム、(3)は2乗指数関数を利用するアルゴリズム、(4)は線形関数を利用するアルゴリズムの場合の関数であり、Ezは上記のEye座標でのZ座標値であり、NDはユーザが定義するフォグ密度定数であり、Pはユーザが定義する線形フォグ一次方程式の近景値であり、Qはユーザが定義する線形フォグ一次方程式の遠景値である。算出されるfがフォグ濃度である。
【0013】
更に、フォグ濃度fを、次に算出式(5)に代入し、最終的な色情報(色データ)Cを得る。
【0014】
【数5】

【0015】
ここで、Crはオブジェクト自体の色を表し、Cfはフォグ色を表す。
【0016】
グラフィック装置で上記のような演算処理を行う場合、以下に説明する2種類の方式で算出するのが一般的である。
【0017】
第1の方式は、上記の定義通りに、Eye座標のZ座標値Ezを演算し、Z座標値Ezによりモード毎に、各画素毎に式(2)−(4)を演算してフォグ濃度fを算出する。その演算結果から式(5)に基づいて色データCを算出する。
【0018】
第2の方式は、Eye座標のZ座標値Ezをインデックスとしたテーブルを、モード毎に式(2)−(4)の各パラメータを元に事前に演算して記憶しておく。実際の描画時には、Eye座標のZ座標値Ezを引数として設定してテーブルをインデックス参照してフォグ濃度fを取得し、式(5)から各画素の色データを算出する。
【0019】
【特許文献1】特開2000−339496
【特許文献2】特開2003−303351
【発明の開示】
【発明が解決しようとする課題】
【0020】
上記の第1及び第2の方式は、要求される精度でフォグ効果処理を実行可能であるが、それぞれ以下のような課題が存在する。
【0021】
第1の方式は、式(2)及び(3)の指数関数及び2乗指数関数の演算で各画素毎に指数演算を行う必要があり、式(4)の線形関数の演算で各画素毎に除算処理を行う必要があるため、リアルタイムでの処理が要求される3次元グラフィックス処理では演算処理の負担が重過ぎて、実行が難しいという問題がある。
【0022】
第2の方式は、各モードともにテーブルの書き換えで高速のフォグ効果処理が可能であるが、そのためには描画精度に応じた多数のインデックス数が必要であり、テーブルの作成処理に要する時間が長くなると共に、テーブルを記憶するメモリの容量が大きくなるという問題がある。更に、第2の方式では、引数全ての変更に応じてテーブルの書き換えが必要であり、このためにも処理の負担が大きくなるという問題がある。そのため、テーブルのインデックス数が大きくならないようにすることが考えられるが、しかし、インデックス数を小さくすると、図2に示すように、得られるフォグ濃度が段階的に変化することになり、良好なフォグ効果処理が行えないという問題が生じる。
【0023】
本発明は、上記のような問題点を解決するもので、簡単な演算で良好なフォグ効果処理が行えるようにすることを目的とする。
【課題を解決するための手段】
【0024】
上記目的を実現するため、本発明のフォグ効果処理では、フォグ効果を発生させる処理アルゴリズムに基づいて奥行きを変化させた時のフォグ濃度の変化を奥行きに応じて複数の領域に分割し、各領域におけるフォグ濃度の変化を直線近似するための基本近似データテーブルを作成する。そして、実際の描画時には、表示画像の座標位置、座標位置を視点からの奥行き値に変換する座標変換行列及び基本近似データテーブルに対応するインデックス値を使用して補正奥行き値を算出し、補正奥行き値の上位ビットから基本近似データテーブルの対応する領域を求め、更に対応する領域の直線近似に補正奥行き値の下位ビット値を適用してフォグ濃度を算出し、フォグ効果のあるカラー情報を算出する。
【0025】
本発明のフォグ効果処理では、フォグ濃度の変化を各領域毎に直線近似するための基本近似データテーブルを作成し、領域を決定した上で更に直線近似を行ってフォグ濃度を算出するので、演算は簡単な処理のみで行え、滑らかなフォグ濃度変化になり、良好なフォグ効果処理が行える。
【0026】
また、基本近似データテーブルの作成及びインデックス値の設定は、フォグ効果処理モードを変更する時に行われ、選択した処理アルゴリズム及び密度などの他のパラメータに対応してフォグ定数を設定し、補正奥行き値の算出を設定したフォグ定数を使用して行うようにすることで、他のパラメータが異なっても同じ基本近似データテーブルが使用できるようにする。これにより、密度や近景値及び遠景値を変化させた時にも基本近似データテーブルを新たに作成する必要がなくなり、処理量を低減できる。
【発明の効果】
【0027】
本発明によれば、指数関数演算や除算など演算量の多い演算を行わずに、簡単な演算のみで高精度のフォグ効果処理が行えるようになる。
【発明を実施するための最良の形態】
【0028】
図3の(A)は、本発明の実施例のグラフィック装置のハードウエア構成を示す図である。実施例のグラフィック装置は、従来のグラフィック装置と同様に、コンピュータシステムで実現され、フォグ効果処理を行うソフトウエアをインストールすることにより、フォグ効果処理を行うグラフィック装置が実現される。
【0029】
図3の(A)に示すように、コンピュータシステムは、CPU11、ROM12、RAM13、ディスプレイ14、入力装置15、通信インターフェース16、及びバス17などで構成される。
【0030】
図3の(B)は、実施例のグラフィック装置の機能ブロック図である。図3の(B)に示すように、実施例のグラフィック装置は、処理対象の3次元画像データを発生する画像データ発生部21と、フォグテーブル及びインデックス値を記憶するフォグテーブル記憶部22と、画像データに対してフォグ効果処理を施して表示データを生成するフォグ処理部23と、フォグ定数などのパラメータを設定するパラメータ設定部24と、生成した表示データを表示する制御を行う表示制御部25と、を有する。図3の(B)の構成は、フォグテーブル22の記憶内容及びフォグ処理部23の処理内容が従来例と異なり、他の部分は従来例と同じである。
【0031】
図4は、実施例のグラフィック装置のより詳細な機能ブロック図である。
【0032】
頂点情報部31は、オブジェクトの3次元座標における座標とそれに対応する頂点色、及び変換行列式を記憶している。記憶される変換行列式は、式(1)に示した4×4の行列式であるが、フォグ効果処理に限れば行列式のうちのM2、M6、M10及びM14のみの行列式であればよい。
【0033】
フォグ情報部32は、ユーザが定義するフォグ密度定数ND、ユーザが定義する線形フォグ1次方程式の近景値P、ユーザが定義する線形フォグ一次方程式の遠景値Q、インデックス値Iを含むモード情報、及びフォグ色データを記憶している。
【0034】
演算用値算出部33は、ND、P、Q、I及びモード情報から係数値を算出する。具体的には、指数関数を使用する処理モードの場合には、式(6)で示すように、NDを第1指数係数h1で除した値をフォグ定数Gとし、2乗指数関数を使用する処理モードの場合には、同様に式(6)で示すように、NDを第2指数係数h2で除した値をフォグ定数Gとし、線形関数を使用する処理モードの場合には、式(7)で示すように、近景値Pの逆数又は遠景値Qの逆数をフォグ定数Gとする。
【0035】
【数6】

【0036】
【数7】

【0037】
そして、インデックス値Iにフォグ定数Gを乗じて係数値I×Gを算出する。第1指数係数h1及び第2指数係数h2は、例えば、後述するように補正奥行き値の上位5ビットをテーブルのインデックスに使用する場合には、それぞれ5.00及び2.50である。これはフォグテーブルに応じて適宜設定される。
【0038】
演算子34は、式(8)で示すように、係数値I×Gを変換行列式に乗じて、補正変換行列式を算出する。
【0039】
【数8】

【0040】
従って、補正変換行列式の各要素値E0−E3は、変換行列式の要素値M2、M6、M10及びM14に係数値I×Gを乗じた値に対応する。
【0041】
演算子35は、式(9)で示すように、補正変換行列式に座標値を乗じて、補正奥行き値Ezを算出する。
【0042】
【数9】

【0043】
フォグテーブル36は、処理モードが設定されると、その処理モードに対応する関数に応じて作成され、図5に示すような構成を有する。図5に示すように、フォグテーブル36は、補正奥行き値Ezの上位ビット(ここでは上位5ビット)で表される段階(ここでは32段階)を有し、各段階は初期値anと傾きbnを有する。
【0044】
フォグテーブル36は、処理モードに対応する関数で、パラメータが所定の値であるとした時の奥行き値(距離)に応じた濃度変化を、距離に応じて複数の領域に分割し(ここでは32領域まで)、各領域の先頭の値を初期値anとし、各領域の傾きをbnとしたものである。従って、奥行き値の上位ビットは、その奥行き値がどの領域に対応するかを示し、奥行き値の下位ビットは、各領域内の位置を示す。
【0045】
そこで、演算子35で演算された補正奥行き値Ezの上位ビットをフォグテーブル36に適用すると、フォグテーブル36は対応する段階の初期値anと傾きbnをフォグ濃度算出部37に出力する。
【0046】
フォグ濃度算出部37は、式(10)に基づいて初期値anと傾きbn及び補正奥行き値Ezの下位ビットからフォグ濃度Fzを算出する。
【0047】
【数10】

【0048】
合成演算部38は、フォグ濃度Fz、頂点色CO及びフォグ色CFから、式(11)に従って最終的な画素の色Cを算出し、フレームバッファ39がこれを記憶する。
【0049】
【数11】

【0050】
以上のような処理を表示範囲の全画素について行う。
【0051】
フォグテーブル36の作成及びインデックス値の設定は、処理モードに応じて行う。上記のように、フォグ密度定数ND、近景値P及び遠景値Qに応じてフォグ定数Gを設定することにより、これらのパラメータにかかわらず共通のフォグテーブル36が使用できる。これにより、密度や近景値及び遠景値を変化させた時にも基本近似データテーブルを新たに作成する必要がなくなり、処理量を低減できる。
【0052】
図6は、実施例のグラフィック装置におけるフォグ効果処理を示すフローチャートである。図6のフローチャートを参照しながら、数値処理の実例に基づいて、実施例の処理を説明する。
【0053】
まず、補正奥行き値Ezは、16ビットの数値で、上位5ビットでフォグテーブルの段階(領域)を選択し、下位11ビットで各段階における補間値を算出するとする。
【0054】
処理モードに対応する関数は指数関数とし、フォグ濃度NDは2.0で、画素座標は(0.2,0.3,0.5,1.0)で、頂点色COは(1.0,0.0,0.0,1.0)であるとする。式(1)の変換行列は図7の通りであるとする。
【0055】
ステップ101では、指数関数に対応して、図8のようなフォグテーブルを作成し、それに対応してインデックス値Iとして65536.0を設定する。上記のように、Ezの上位5ビットで段階を選択するので、フォグテーブルの段階は0から31の32段階である。
【0056】
ステップ102では、フォグ定数Gを算出する。処理に対応する関数は指数関数であるので、ND(2.0)を第1指数係数h1(5.00)で除して、フォグ定数G(0.4)を算出する。
【0057】
ステップ103では、インデックス値I(65536.0)にフォグ定数G(0.4)を乗じて係数値を算出し、係数値を図7の変換行列のM2、M6、M10、M14に乗じて補正変換行列を算出する。
【0058】
ステップ104では、補正変換行列に画素座標を乗じて補正奥行き値Ez(13229.95679232)を得る。
【0059】
ステップ105では、Ezを16進数に変換して0x33ADを得て、その上位5ビット(00110)が表す値(6)を算出し、それに対応する段階6の初期値an(99.8694348)と傾きbn(−0.007136924)を取り出す。
【0060】
ステップ106では、式(10)に従って、an、bn及びEzの下位11ビット(0x3AD)の表す941から、フォグ濃度値Fz(93.143589316)を算出する。
【0061】
ステップ107では、式(11)に従って、Fz、頂点色CO及びフォグ色CFから、画素の表示色Cを算出する。ここでは、表示色Cを構成する赤色成分Rが0.365269となり、これは256階調の93階調目に相当する。他の色成分GとBは頂点色COの対応する成分がゼロなのでゼロである。
【0062】
上記の条件で、より高精度の演算を行った理想的な赤色成分Rの値は0.364450であり、これも同様に256階調の93階調目に相当するので、本実施例の処理でも満足する結果が得られることが分かる。
【0063】
本発明の実施例で得られたフォグ濃度の距離に対する変化を示す図であり、図2に対応する図である。図2も32段階のテーブルを使用した場合であるが、本実施例では、フォグ濃度がより滑らかに変化することが分かる。
【0064】
フォグテーブルは、処理モードを変更すると作成し直す必要がある。
【0065】
以上、本発明の実施例を説明したが、記載された例は一例であり、各種の変形例が可能であるのはいうまでもない。
【産業上の利用可能性】
【0066】
本発明は、フォグ効果処理を行うグラフィック処理であれば、どのようなものでも利用可能である。
【図面の簡単な説明】
【0067】
【図1】フォグ効果処理の原理を説明する図である。
【図2】インデックス数の少ないテーブルを使用した従来例のフォグ濃度出力の変化を示す図である。
【図3】本発明の実施例のグラフィック装置のハードウエア構成を示す図である。
【図4】実施例のグラフィック装置の詳細な機能ブロック図である。
【図5】フォグテーブルの例を示す図である。
【図6】実施例におけるフォグ効果処理を示すフローチャートである。
【図7】実施例における変換行列式の例である。
【図8】実施例におけるフォグテーブルの例である。
【図9】実施例のフォグ濃度出力の変化を示す図である。
【符号の説明】
【0068】
21 画像データ発生部
22 フォグテーブル記憶部
23 フォグ処理部
24 パラメータ設定部
25 表示制御部
31 頂点情報部
32 フォグ情報部
33 係数算出部
34、35 演算子
36 フォグテーブル
37 フォグ濃度算出部

【特許請求の範囲】
【請求項1】
画像データに基づいて3次元グラフィックス表示画像を生成する時に、表示画像の視点からの奥行きに応じてフォグ効果を発生させるフォグ効果処理方法であって、
前記フォグ効果を発生させる処理アルゴリズムに基づいて奥行きを変化させた時のフォグ濃度の変化を奥行きに応じて複数の領域に分割し、各領域におけるフォグ濃度の変化を直線近似するための基本近似データテーブルを作成すると共に、前記基本近似データテーブルに対応するインデックス値を設定し、
表示画像の座標位置、該座標位置を視点からの奥行き値に変換する座標変換行列、及び前記インデックス値を使用して補正奥行き値を算出し、
前記補正奥行き値の上位ビット値から、前記基本近似データテーブルの対応する領域を求め、
前記対応する領域の前記直線近似に前記補正奥行き値の下位ビット値を適用してフォグ濃度を算出し、フォグ効果のあるカラー情報を算出する、ことを特徴とするフォグ効果処理方法。
【請求項2】
フォグ効果を発生させる複数の処理アルゴリズムが選択可能で、選択した処理アルゴリズムに応じて前記基本近似データテーブルを作成すると共に、前記インデックス値を設定し、
選択した処理アルゴリズム及び他のパラメータに対応してフォグ定数を設定し、
前記補正奥行き値の算出は、設定した前記フォグ定数を更に使用して行われる請求項1に記載のフォグ効果処理方法。
【請求項3】
画像データに基づいて3次元グラフィックス表示画像を生成する時に、表示画像の視点からの奥行きに応じてフォグ効果を発生させるフォグ効果処理を行うグラフィックス装置であって、
前記フォグ効果を発生させる処理アルゴリズムに基づいて奥行きを変化させた時のフォグ濃度の変化を奥行きに応じて複数の領域に分割し、各領域におけるフォグ濃度の変化を直線近似するための基本近似データテーブル、及び前記基本近似データテーブルに対応するインデックス値を記憶したテーブルメモリと、
表示画像の座標位置、該座標位置を視点からの奥行き値に変換する座標変換行列、及び前記インデックス値を使用して補正奥行き値を算出する補正奥行き値算出回路と、
前記補正奥行き値の上位ビット値から、前記基本近似データテーブルの対応する領域を求めるテーブル領域決定回路と、
前記対応する領域の前記直線近似に前記補正奥行き値の下位ビット値を適用してフォグ濃度を算出し、フォグ効果のあるカラー情報を算出するカラー情報算出回路と、を備えることを特徴とするグラフィックス装置。
【請求項4】
フォグ効果を発生させる複数の処理アルゴリズムが選択可能で、前記テーブルメモリは、選択した処理アルゴリズムに応じて作成された前記基本近似データテーブル及び前記インデックス値を記憶し、
選択した処理アルゴリズム及び他のパラメータに対応してフォグ定数を設定するフォグ定数設定回路を更に備え、
前記補正奥行き値算出回路は、前記補正奥行き値の算出を、設定した前記フォグ定数を使用して行う請求項3に記載のグラフィックス装置。
【請求項5】
画像データに基づいて3次元グラフィックス表示画像を生成する時に、表示画像の視点からの奥行きに応じてフォグ効果を発生させるフォグ効果処理を行うグラフィックス用半導体集積回路装置であって、
前記フォグ効果を発生させる処理アルゴリズムに基づいて奥行きを変化させた時のフォグ濃度の変化を奥行きに応じて複数の領域に分割し、各領域におけるフォグ濃度の変化を直線近似するための基本近似データテーブル、及び前記基本近似データテーブルに対応するインデックス値を記憶するテーブルメモリと、
表示画像の座標位置、該座標位置を視点からの奥行き値に変換する座標変換行列、及び前記インデックス値を使用して補正奥行き値を算出する補正奥行き値算出回路と、
前記補正奥行き値の上位ビット値から、前記基本近似データテーブルの対応する領域を求めるテーブル領域決定回路と、
前記対応する領域の前記直線近似に前記補正奥行き値の下位ビット値を適用してフォグ濃度を算出し、フォグ効果のあるカラー情報を算出するカラー情報算出回路と、を備えることを特徴とするグラフィックス用半導体集積回路装置。
【請求項6】
フォグ効果を発生させる複数の処理アルゴリズムが選択可能で、前記テーブルメモリは、選択した処理アルゴリズムに応じて作成された前記基本近似データテーブル及び前記インデックス値を記憶し、
選択した処理アルゴリズム及び他のパラメータに対応してフォグ定数を設定するフォグ定数設定回路を更に備え、
前記補正奥行き値算出回路は、前記補正奥行き値の算出を、設定した前記フォグ定数を使用して行う請求項5に記載のグラフィックス用半導体集積回路装置。
【請求項7】
コンピュータに、画像データに基づいて3次元グラフィックス表示画像を生成する時に、表示画像の視点からの奥行きに応じてフォグ効果を発生させるフォグ効果処理プログラムであって、コンピュータが、
前記フォグ効果を発生させる処理アルゴリズムに基づいて奥行きを変化させた時のフォグ濃度の変化を奥行きに応じて複数の領域に分割し、各領域におけるフォグ濃度の変化を直線近似するための基本近似データテーブルを作成すると共に、前記基本近似データテーブルに対応するインデックス値を設定し、
表示画像の座標位置、該座標位置を視点からの奥行き値に変換する座標変換行列、及び前記インデックス値を使用して補正奥行き値を算出し、
前記補正奥行き値の上位ビット値から、前記基本近似データテーブルの対応する領域を求め、
前記対応する領域の前記直線近似に前記補正奥行き値の下位ビット値を適用してフォグ濃度を算出し、フォグ効果のあるカラー情報を算出する、ように動作させることを特徴とするプログラム。
【請求項8】
フォグ効果を発生させる複数の処理アルゴリズムが選択可能で、選択した処理アルゴリズムに応じて前記基本近似データテーブルを作成すると共に、前記インデックス値を設定し、
選択した処理アルゴリズム及び他のパラメータに対応してフォグ定数を設定し、
前記補正奥行き値の算出は、設定した前記フォグ定数を更に使用して行う請求項7に記載のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2008−112391(P2008−112391A)
【公開日】平成20年5月15日(2008.5.15)
【国際特許分類】
【出願番号】特願2006−296232(P2006−296232)
【出願日】平成18年10月31日(2006.10.31)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】