説明

画像処理装置および画像処理プログラム

【課題】容器の中の液体を簡易に描画する。
【解決手段】仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置であって、容器モデルにおける視点から奥側の容器奥面モデルを構成する各ポリゴンの各ピクセルに対して、容器モデル内に仮定する液体の液面からの距離に相当する容器奥面液面距離を予め設定した液面情報を用いて計算し、当該容器奥面液面距離を各ピクセルに対応付けて容器奥面情報テクスチャに記録する容器奥面情報テクスチャ作成手段と、前記容器モデルをベース色により描画し、前記容器モデルを構成する各ポリゴンの各ピクセルに対して前記液面からの距離に相当する容器前面液面距離を前記液面情報を用いて計算するとともに、当該ピクセルに対応する容器奥面液面距離を前記容器奥面情報テクスチャから取得し、容器前面液面距離および容器奥面液面距離と液面との位置関係に応じて現ピクセルに補正した色値を出力する描画手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想3次元空間内のモデルを投影面上の2次元画像として描画するCG(Computer Graphics)技術に関する。
【背景技術】
【0002】
ビデオゲーム等においては、ワイングラスを揺らすシーン等、容器とともに容器の中の液体を描画する場合がある。
【0003】
従来、このような場合、容器のオブジェクト(複数のポリゴンにより表現されるモデル)とは別に液体のオブジェクトを定義し、容器の動き等に応じて液体のオブジェクトの動きをシミュレートした上で反射・屈折等を考慮して描画を行っていた。
【0004】
一方、特許文献1には、液体等の表面を構成するポリゴンの各頂点の色データを周期的に変化させることで、液体等の表面における光の反射の変化を現実感をもって表現できるようにした画像表示方法が開示されている。
【特許文献1】特開2001−129242号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
従来の、容器のオブジェクトとは別に液体のオブジェクトを定義し、容器の動き等に応じて液体のオブジェクトの動きをシミュレートする手法にあっては、液体のオブジェクトが膨大なデータ量となることから、演算処理の負荷が高く、ビデオゲーム装置等におけるリアルタイム処理には適していないという問題があった。
【0006】
また、特許文献1に開示される手法では、ステンドグラスや遠景の海や池といった静的なものに対しては、その表面が光に当たってキラキラする状態が簡易に表現できるものではあるが、透明な容器中の液体など、さまざまな方向から観察することができる液体を表現することはできないものであった。
【0007】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、容器の中の液体を簡易に描画することのできる画像処理装置および画像処理プログラムを提供することにある。
【課題を解決するための手段】
【0008】
上記の課題を解決するため、本発明にあっては、請求項1に記載されるように、仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置であって、容器モデルにおける視点から奥側の容器奥面モデルを構成する各ポリゴンの各ピクセルに対して、容器モデル内に仮定する液体の液面からの距離に相当する容器奥面液面距離を予め設定した液面情報を用いて計算し、当該容器奥面液面距離を各ピクセルに対応付けて容器奥面情報テクスチャに記録する容器奥面情報テクスチャ作成手段と、前記容器モデルをベース色により描画し、前記容器モデルを構成する各ポリゴンの各ピクセルに対して前記液面からの距離に相当する容器前面液面距離を前記液面情報を用いて計算するとともに、当該ピクセルに対応する容器奥面液面距離を前記容器奥面情報テクスチャから取得し、容器前面液面距離および容器奥面液面距離と液面との位置関係に応じて現ピクセルに補正した色値を出力する描画手段とを備える画像処理装置を要旨としている。
【0009】
また、請求項2に記載されるように、請求項1に記載の画像処理装置において、前記容器奥面情報テクスチャ作成手段は、前記容器奥面モデルを構成する各ポリゴンの各頂点に対して前記液面からの距離に相当する容器奥面液面距離を計算し、各頂点の容器奥面液面距離を補間することにより各ピクセルに対する容器奥面液面距離を計算し、前記描画手段は、前記容器モデルを構成する各ポリゴンの各頂点に対して前記液面からの距離に相当する容器前面液面距離を計算し、各頂点の容器前面液面距離を補間することにより各ピクセルに対する容器前面液面距離を計算するようにすることができる。
【0010】
また、請求項3に記載されるように、請求項1または2のいずれか一項に記載の画像処理装置において、前記描画手段は、容器前面液面距離が液面より上を示し、かつ容器奥面液面距離が液面より下を示す場合に液面で反射・屈折した色値を現ピクセルに出力し、容器前面液面距離が液面より下を示し、かつ容器奥面液面距離が液面より上を示す場合に液体内部を屈折し液面で反射した色値を現ピクセルに出力し、容器前面液面距離が液面より下を示し、かつ容器奥面液面距離が液面より下を示す場合に液体内部を屈折した色値を現ピクセルに出力するようにすることができる。
【0011】
また、請求項4に記載されるように、請求項1乃至3のいずれか一項に記載の画像処理装置において、前記容器モデル内の液体位置を代表する液面法線液体位置を現在速度に基づいて移動させ、移動後の液面法線液体位置、前記液体の液面法線方向および液体量から前記液体の液面の位置を示す液面情報を作成する液面情報作成手段を備えるようにすることができる。
【0012】
また、請求項5に記載されるように、請求項4に記載の画像処理装置において、前記液面情報作成手段は、現在速度に基づいて移動した液面法線液体位置と液面の位置を代表する液面法線代表位置との距離が規定距離よりも離れている場合に、当該規定距離に近づくように液面法線液体位置を補正するようにすることができる。
【0013】
また、請求項6に記載されるように、請求項1乃至5のいずれか一項に記載の画像処理装置において、前記容器奥面情報テクスチャ作成手段は、前記容器奥面モデルを構成する各ポリゴンの各ピクセルに対応付ける容器奥面液面距離に対し、ノイズテクスチャから読み出した乱数値を加え、前記描画手段は、前記容器モデルを構成する各ポリゴンの各ピクセルに対応する容器前面液面距離に対し、ノイズテクスチャから読み出した乱数値を加えるようにすることができる。
【0014】
また、請求項7に記載されるように、仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置の制御プログラムであって、前記画像処理装置を構成するコンピュータを、容器モデルにおける視点から奥側の容器奥面モデルを構成する各ポリゴンの各ピクセルに対して、容器モデル内に仮定する液体の液面からの距離に相当する容器奥面液面距離を予め設定した液面情報を用いて計算し、当該容器奥面液面距離を各ピクセルに対応付けて容器奥面情報テクスチャに記録する容器奥面情報テクスチャ作成手段、前記容器モデルをベース色により描画し、前記容器モデルを構成する各ポリゴンの各ピクセルに対して前記液面からの距離に相当する容器前面液面距離を前記液面情報を用いて計算するとともに、当該ピクセルに対応する容器奥面液面距離を前記容器奥面情報テクスチャから取得し、容器前面液面距離および容器奥面液面距離と液面との位置関係に応じて現ピクセルに補正した色値を出力する描画手段として機能させる画像処理プログラムとして構成することができる。
【発明の効果】
【0015】
本発明の画像処理装置および画像処理プログラムにあっては、容器モデルの描画時に前面側および奥面側のそれぞれのピクセルが液面よりも上か下かに応じ、前面側のピクセルの色値を書き換えるようにしているため、容器の中の液体を簡易に描画することができる。
【発明を実施するための最良の形態】
【0016】
以下、本発明の好適な実施形態につき説明する。
【0017】
<構成>
図1は本発明の一実施形態にかかる画像処理装置の構成例を示す図 である。
【0018】
図1において、画像処理装置は、ゲームアプリケーション等の3D(3 Dimension)オブジェクトの描画命令を含む3Dアプリケーション1と、この3Dアプリケーション1から描画命令等を受け取るOpenGL、Direct3D等の3D−API(Application Program Interface)2と、描画処理を実行するGPU(Graphics Processing Unit)3とを備えている。
【0019】
GPU3は、3D−API2からGPUコマンドおよびデータストリームを受け付けるGPUフロントエンド部31と、このGPUフロントエンド部31から3D頂点データを受け取って2Dスクリーン空間に投影した座標変換(行列の転置)等を行うプログラマブル頂点プロセッサ(VS:Vertex Processor)32と、GPUフロントエンド部31から与えられる頂点インデックスストリームとプログラマブル頂点プロセッサ32で座標変換された頂点データとを組み立てる基本アセンブリ部33とを備えている。プログラマブル頂点プロセッサ32および基本アセンブリ部33の部分は、バーテックスシェーダと呼ばれている。
【0020】
また、GPU3は、基本アセンブリ部33で組み立てられた多角形、線および点のデータからラスタライズおよび補間を行うラスタライズ/補間部34と、このラスタライズ/補間部34からラスタライズ済のピクセル(フラグメント)データを受け取ってテクスチャマッピング等を行うプログラマブルピクセルプロセッサ(PS:Pixel Processor)35と、ラスタライズ/補間部34から与えられるピクセル位置ストリームとプログラマブルピクセルプロセッサ35から与えられるテクスチャマッピング済のデータからラスタ演算を行うラスタ演算部36と、ラスタ演算部36により描画内容が書込・更新されるフレームバッファ37とを備えている。フレームバッファ37に書き込まれた内容は周期的に読み出されてビデオ信号に変換され、モニタ装置等によって表示される。ラスタライズ/補間部34、プログラマブルピクセルプロセッサ35およびラスタ演算部36の部分は、ピクセルシェーダと呼ばれている。
【0021】
また、処理に必要なデータがデータ保持部4に保持されている。主なデータとしては、容器モデル、容器奥面モデル、液面法線代表位置、液面法線液体位置、液面情報、ノイズテクスチャ、容器奥面情報テクスチャ、外力、液体量、視点・画角等である。
【0022】
容器モデルとは、容器の表面形状を特定するデータであり、複数のポリゴンから構成される。各ポリゴンにはポリゴンの輪郭を特定する複数の頂点(3次元の頂点座標)と、ベースとなる色、透明度等の属性が与えられている。容器奥面モデルとは、容器モデルのうち、視点から見て奥面側となる部分モデルである。
【0023】
図2は容器モデルおよび容器奥面モデルの例を示す図であり、(a)に示すように容器モデルM1を視点Vから見た状態を投影面P上に2次元画像として描画する場合、(b)に示す容器の奥面側の部分が容器奥面モデルM2となる。なお、容器モデルM1は、上面についても描画を行う必要性から、本来は蓋のない容器であっても透明なポリゴンが割り当てられ、容器モデルM1はポリゴンにより閉じたものとなる。
【0024】
図1に戻り、液面法線代表位置とは、液面の位置を代表する位置(3次元座標)であり、例えば、液面の図形的な中心位置が用いられる。液面法線液体位置とは、液体位置を代表する位置(3次元座標)であり、例えば、液体の重心位置が用いられる。なお、液面法線液体位置は速度(3次元速度)も併せ持つ。液面法線代表位置から液面法線液体位置へ向かうベクトルは、液面法線ベクトルとなる。液面情報とは、液面の位置を示すものであり、例えば、平面の方程式(ax+by+cz+d=0)の係数(a、b、c、d)が用いられる。
【0025】
図3は液面法線代表位置および液面法線液体位置の例を示す図であり、容器モデルM1で特定される容器に液体Lが入っていることで液面Sが構成されると仮定する場合、液面Sの図形的な中心位置と仮定する点が液面法線代表位置C1となり、液体Lの重心位置と仮定する点が液面法線液体位置C2となる。また、液面Sを特定するのが液面情報となる。後述するように、処理の順序としては、液面法線代表位置C1および液面法線液体位置C2が先に求められ、これらから液面Sの液面情報が求められる。すなわち、液面情報を求めた結果、液面Sの図形的な中心位置や、液体Lの重心位置は、各仮定と異なる場合もある。
【0026】
図1に戻り、ノイズテクスチャとは、ポリゴンの各ピクセルに対応して乱数値が設定されたデータ構造体である。ノイズテクスチャからはテクスチャ座標(UV値)を指定することにより値の読み出しを行う。容器奥面情報テクスチャとは、ポリゴンの各ピクセルに対応して容器奥面液面距離(ポリゴンの各ピクセルの液面に対する距離)を保持するデータ構造体である。容器奥面情報テクスチャに対してはテクスチャ座標(UV値)を指定することにより値の書き込みおよび読み出しを行う。なお、テクスチャは本来的にはポリゴンの表面の模様等の画像データを保持するものであるが、昨今のピクセルシェーダでは画像以外の任意のデータを保持させることができ、本実施形態でもその機能を利用している。
【0027】
外力とは、液体に作用すると仮定する力であり、容器の移動により液体に作用すると仮定する慣性力や重力に相当する。液体量とは、容器内に満たされる液体の量を規定する値であり、例えば、最大量に対するパーセント値が用いられる。視点・画角は、容器モデルを2次元画像に投影する際に用いられる。
【0028】
<動作>
図1に示した画像処理装置は、3Dアプリケーション1が主たる処理を行い、その過程で3D−API2を介してGPU3に頂点およびピクセルに関する処理を行わせる。なお、3Dアプリケーション1はビデオゲーム等における全般の処理を担うが、以下では容器と液体の描画の部分のみについて説明する。また、処理は画面表示単位であるフレーム毎に行われるのが普通であるが、数フレーム毎に行う場合もある。
【0029】
図4は液面情報作成処理の例を示すフローチャートである。
【0030】
図4において、液面情報作成処理を開始すると(ステップS101)、液体の液面法線液体位置の速度に基づいて液面法線液体位置を移動する(ステップS102)。外力が作用する場合は液面法線液体位置の速度を加速しつつ移動を行う。図5は外力による液面法線液体位置の変化の例を示す図であり、(a)に示す位置に液面法線液体位置C2があり、これに容器モデルM1の移動(ここでは右方向)に伴う慣性力である外力Fが液体Lに作用することで、(b)に示すように液面法線液体位置C2が移動する。また、(c)に示すように、液体Lには重力による外力Fが作用するため、慣性力がなくなった状態でも液面法線液体位置C2は移動していき、振り子のように振動することとなる。
【0031】
次いで、図4に戻り、液面法線液体位置と液面法線代表位置との距離が規定距離よりも離れているか否か判断し(ステップS103)、規定距離よりも離れている場合(ステップS103のYes)は規定距離に近づくように液面法線液体位置を補正する(ステップS104)。これは、容器モデルの急激な移動があった場合のように、過大な外力が作用することで液面法線液体位置が容器外に飛び出してしまうことを防ぐためである。図6は外力による液面法線液体位置と液面法線代表位置との距離が規定距離よりも離れる場合の例を示す図であり、(a)に示すように液面法線液体位置C2と液面法線代表位置C1の距離が大きい場合、(b)に示すように液面法線液体位置C2が容器モデルM1内に収まるように補正する。なお、図中では液体Lを便宜的にオブジェクトのように図示しているが、上記の説明のように、液面情報は、液面法線代表位置C1、液面法線液体位置C2、液体量および外力等を仮定した値から演算によって求まるものであり、液体Lは、後述するように、最終的に投影面P上に描画されるものであり、仮想3次元空間内にオブジェクトとして存在するものではない。
【0032】
次いで、図4に戻り、液面法線液体位置、液面法線方向、液体量から、幾何学的関係に基づいて、液面情報を作成する(ステップS105)。そして、液面情報作成処理を終了する(ステップS106)。
【0033】
図7は容器奥面情報テクスチャ作成処理の例を示すフローチャートである。
【0034】
図7において、容器奥面情報テクスチャ作成処理を開始すると(ステップS201)、液面情報作成処理(図4)の終了を待機する(ステップS202)。
【0035】
液面情報作成処理が終了して待機が解除すると、容器奥面モデルに対し、容器奥面モデルの各ポリゴンの各頂点に対する処理(ステップS204)と、容器奥面モデルの各ポリゴンの各ピクセルに対する処理(ステップS207)とを実施する(ステップS203)。
【0036】
容器奥面モデルの各ポリゴンの各頂点に対する処理(ステップS204)では、先ず、頂点座標から容器奥面液面距離を計算する(ステップS205)。図8は容器奥面液面距離の例を示す図であり、今着目しているのが投影面P上の容器奥面ピクセルpb'であるとすると、容器モデルM1上の対応する容器奥面位置pbから液面Sまでの液面距離dbを投影面P上に投影したものが容器奥面液面距離db'となる。液面距離dbは容器奥面位置pbと液面Sの液面情報に基づく演算により求められ、投影変換により容器奥面液面距離db'が求められる。
【0037】
次いで、図7に戻り、頂点座標からノイズテクスチャのテクスチャ座標を計算する(ステップS206)。頂点座標とテクスチャ座標の対応関係は、予め定められている。
【0038】
次いで、容器奥面モデルの各ポリゴンの各ピクセルに対する処理(ステップS207)では、ピクセルにつき補間した容器奥面液面距離にノイズテクスチャの値を加え、容器奥面情報テクスチャとして出力する(ステップS208)。加えるノイズテクスチャの値は、頂点の処理(ステップS206)で計算したテクスチャ座標をピクセルにつき補間したテクスチャ座標でノイズテクスチャから読み出した値である。ノイズテクスチャの値を加えることで、各ピクセルにおける液面距離を増減させると、最終的に描画される液面に微妙な凹凸を付けることができ、自然な見た目を出すことができる。容器奥面情報テクスチャへの出力(書き込み)は、ノイズテクスチャの読み出しに用いたテクスチャ座標を用いて行う。そして、容器奥面情報テクスチャ作成処理を終了する(ステップS209)。
【0039】
図9は描画処理の例を示すフローチャートである。
【0040】
図9において、描画処理を開始すると(ステップS301)、液面情報作成処理(図4)および容器奥面情報テクスチャ作成処理(図7)の終了を待機する(ステップS302、ステップS303)。
【0041】
液面情報作成処理および容器奥面情報テクスチャ作成処理が終了して待機が解除すると、容器モデルをベースの色により通常の描画方法でフレームバッファに出力する(ステップS304)。
【0042】
次いで、容器モデルに対し、容器モデルの各ポリゴンの各頂点に対する処理(ステップS306)と、容器モデルの各ポリゴンの各ピクセルに対する処理(ステップS310)とを実施する(ステップS305)。
【0043】
容器モデルの各ポリゴンの各頂点に対する処理(ステップS306)では、先ず、頂点座標から容器前面液面距離を計算する(ステップS307)。図10は容器前面液面距離の例を示す図であり、今着目しているのが投影面P上の容器前面ピクセルpf'であるとすると、容器モデルM1上の対応する容器前面位置pfから液面Sまでの液面距離dfを投影面P上に投影したものが容器前面液面距離df'となる。液面距離dfは容器前面位置pfと液面Sの液面情報に基づく演算により求められ、投影変換により容器前面液面距離df'が求められる。
【0044】
次いで、図9に戻り、頂点座標からノイズテクスチャのテクスチャ座標を計算する(ステップS308)。頂点座標とテクスチャ座標の対応関係は、予め定められている。
【0045】
次いで、頂点座標から容器奥面情報テクスチャのテクスチャ座標を計算する(ステップS309)。図11は容器奥面情報テクスチャのテクスチャ座標の取得の例を示す図であり、今着目しているのが投影面P上の容器前面頂点vf'であるとすると、視点Vから投影面P上の容器前面頂点vf'および容器モデルM1上の対応する容器前面位置vfを通った直線上の容器奥面位置vbを特定し、この容器奥面位置vbから対応する容器奥面情報テクスチャのテクスチャ座標を計算する。
【0046】
次いで、図9に戻り、容器モデルの各ポリゴンの各ピクセルに対する処理(ステップS310)では、先ず、ピクセルにつき補間した容器前面液面距離にノイズテクスチャの値を加えて補正する(ステップS311)。加えるノイズテクスチャの値は、頂点の処理(ステップS308)で計算したテクスチャ座標をピクセルにつき補間したテクスチャ座標でノイズテクスチャから読み出した値である。ノイズテクスチャの値を加えることで、各ピクセルにおける液面距離を増減させると、最終的に描画される液面に微妙な凹凸を付けることができ、自然な見た目を出すことができる。
【0047】
次いで、容器奥面情報テクスチャから容器奥面液面距離を取得する(ステップS312)。これは、頂点の処理(ステップS309)で計算したテクスチャ座標を用いて容器奥面情報テクスチャから値を読み出すことで行う。
【0048】
次いで、容器前面液面距離が液面より上を示すか否か判断し(ステップS313)、容器前面液面距離が液面より上を示す場合(ステップS313のYes)は容器奥面液面距離が液面より上を示すか否か判断し(ステップS314)、容器前面液面距離が液面より上を示さない(下である)場合(ステップS313のNo)は容器奥面液面距離が液面より上を示すか否か判断する(ステップS315)。
【0049】
そして、容器前面液面距離が液面より上を示し、かつ容器奥面液面距離が液面より上を示す場合(ステップS314のYes)、そのピクセルを非出力(ベースのまま)とする(ステップS316)。これは、図12(a)において、容器前面ピクセルpf1'(容器前面位置pf1、容器奥面位置pb1)を処理する場合に該当する。描画画像上では、図13(a)の領域r1に該当する。なお、領域r1の下端の境界はノイズテクスチャの値により自然に波立ったようになる。
【0050】
図9に戻り、容器前面液面距離が液面より上を示し、かつ容器奥面液面距離が液面より下を示す場合(ステップS314のNo)、液面で反射・屈折した色値を出力する(ステップS317)。これは、図12(a)において、容器前面ピクセルpf2'(容器前面位置pf2、容器奥面位置pb2)を処理する場合に該当する。描画画像上では、図13(a)の領域r2に該当する。なお、領域r2の上下端の境界はノイズテクスチャの値により自然に波立ったようになる。
【0051】
図9に戻り、容器前面液面距離が液面より下を示し、かつ容器奥面液面距離が液面より上を示す場合(ステップS315のYes)、液体内部を屈折し、液面で反射した色値を出力する(ステップS318)。これは、図12(b)において、容器前面ピクセルpf3'(容器前面位置pf3、容器奥面位置pb3)を処理する場合に該当する。描画画像上では、図13(b)の領域r3に該当する。なお、領域r3の上下端の境界はノイズテクスチャの値により自然に波立ったようになる。
【0052】
図9に戻り、容器前面液面距離が液面より下を示し、かつ容器奥面液面距離が液面より下を示す場合(ステップS315のNo)、液体内部を屈折した色値を出力する(ステップS319)。これは、図12(a)において、容器前面ピクセルpf4'(容器前面位置pf4、容器奥面位置pb4)を処理する場合に該当する。描画画像上では、図13(a)の領域r4に該当する。なお、領域r4の上端の境界はノイズテクスチャの値により自然に波立ったようになる。
【0053】
図9に戻り、その後、描画処理を終了する(ステップS320)。
【0054】
<総括>
以上説明したように、本実施形態によれば、容器モデルの描画時に前面側および奥面側のそれぞれのピクセルが液面よりも上か下かに応じ、前面側のピクセルの色値を書き換えるようにしているため、容器の中の液体を簡易に描画することができる。
【0055】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【図面の簡単な説明】
【0056】
【図1】本発明の一実施形態にかかる画像処理装置の構成例を示す図 である。
【図2】容器モデルおよび容器奥面モデルの例を示す図である。
【図3】液面法線代表位置および液面法線液体位置の例を示す図である。
【図4】液面情報作成処理の例を示すフローチャートである。
【図5】外力による液面法線液体位置の変化の例を示す図である。
【図6】外力による液面法線液体位置と液面法線代表位置との距離が規定距離よりも離れる場合の例を示す図である。
【図7】容器奥面情報テクスチャ作成処理の例を示すフローチャートである。
【図8】容器奥面液面距離の例を示す図である。
【図9】描画処理の例を示すフローチャートである。
【図10】容器前面液面距離の例を示す図である。
【図11】容器奥面情報テクスチャのテクスチャ座標の取得の例を示す図である。
【図12】容器前面液面距離と容器奥面液面距離のパターンの例を示す図である。
【図13】投影面への容器モデルの描画画像の例を示す図である。
【符号の説明】
【0057】
1 3Dアプリケーション
2 3D−API
3 GPU
31 GPUフロントエンド部
32 プログラマブル頂点プロセッサ
33 基本アセンブリ部
34 ラスタライズ/補間部
35 プログラマブルピクセルプロセッサ
36 ラスタ演算部
37 フレームバッファ
4 データ保持部

【特許請求の範囲】
【請求項1】
仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置であって、
容器モデルにおける視点から奥側の容器奥面モデルを構成する各ポリゴンの各ピクセルに対して、容器モデル内に仮定する液体の液面からの距離に相当する容器奥面液面距離を予め設定した液面情報を用いて計算し、当該容器奥面液面距離を各ピクセルに対応付けて容器奥面情報テクスチャに記録する容器奥面情報テクスチャ作成手段と、
前記容器モデルをベース色により描画し、前記容器モデルを構成する各ポリゴンの各ピクセルに対して前記液面からの距離に相当する容器前面液面距離を前記液面情報を用いて計算するとともに、当該ピクセルに対応する容器奥面液面距離を前記容器奥面情報テクスチャから取得し、容器前面液面距離および容器奥面液面距離と液面との位置関係に応じて現ピクセルに補正した色値を出力する描画手段と
を備えたことを特徴とする画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記容器奥面情報テクスチャ作成手段は、前記容器奥面モデルを構成する各ポリゴンの各頂点に対して前記液面からの距離に相当する容器奥面液面距離を計算し、各頂点の容器奥面液面距離を補間することにより各ピクセルに対する容器奥面液面距離を計算し、
前記描画手段は、前記容器モデルを構成する各ポリゴンの各頂点に対して前記液面からの距離に相当する容器前面液面距離を計算し、各頂点の容器前面液面距離を補間することにより各ピクセルに対する容器前面液面距離を計算する
ことを特徴とする画像処理装置。
【請求項3】
請求項1または2のいずれか一項に記載の画像処理装置において、
前記描画手段は、容器前面液面距離が液面より上を示し、かつ容器奥面液面距離が液面より下を示す場合に液面で反射・屈折した色値を現ピクセルに出力し、容器前面液面距離が液面より下を示し、かつ容器奥面液面距離が液面より上を示す場合に液体内部を屈折し液面で反射した色値を現ピクセルに出力し、容器前面液面距離が液面より下を示し、かつ容器奥面液面距離が液面より下を示す場合に液体内部を屈折した色値を現ピクセルに出力する
ことを特徴とする画像処理装置。
【請求項4】
請求項1乃至3のいずれか一項に記載の画像処理装置において、
前記容器モデル内の液体位置を代表する液面法線液体位置を現在速度に基づいて移動させ、移動後の液面法線液体位置、前記液体の液面法線方向および液体量から前記液体の液面の位置を示す液面情報を作成する液面情報作成手段
を備えたことを特徴とする画像処理装置。
【請求項5】
請求項4に記載の画像処理装置において、
前記液面情報作成手段は、現在速度に基づいて移動した液面法線液体位置と液面の位置を代表する液面法線代表位置との距離が規定距離よりも離れている場合に、当該規定距離に近づくように液面法線液体位置を補正する
ことを特徴とする画像処理装置。
【請求項6】
請求項1乃至5のいずれか一項に記載の画像処理装置において、
前記容器奥面情報テクスチャ作成手段は、前記容器奥面モデルを構成する各ポリゴンの各ピクセルに対応付ける容器奥面液面距離に対し、ノイズテクスチャから読み出した乱数値を加え、
前記描画手段は、前記容器モデルを構成する各ポリゴンの各ピクセルに対応する容器前面液面距離に対し、ノイズテクスチャから読み出した乱数値を加える
ことを特徴とする画像処理装置。
【請求項7】
仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置の制御プログラムであって、
前記画像処理装置を構成するコンピュータを、
容器モデルにおける視点から奥側の容器奥面モデルを構成する各ポリゴンの各ピクセルに対して、容器モデル内に仮定する液体の液面からの距離に相当する容器奥面液面距離を予め設定した液面情報を用いて計算し、当該容器奥面液面距離を各ピクセルに対応付けて容器奥面情報テクスチャに記録する容器奥面情報テクスチャ作成手段、
前記容器モデルをベース色により描画し、前記容器モデルを構成する各ポリゴンの各ピクセルに対して前記液面からの距離に相当する容器前面液面距離を前記液面情報を用いて計算するとともに、当該ピクセルに対応する容器奥面液面距離を前記容器奥面情報テクスチャから取得し、容器前面液面距離および容器奥面液面距離と液面との位置関係に応じて現ピクセルに補正した色値を出力する描画手段
として機能させる画像処理プログラム。

【図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

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2010−86264(P2010−86264A)
【公開日】平成22年4月15日(2010.4.15)
【国際特許分類】
【出願番号】特願2008−254354(P2008−254354)
【出願日】平成20年9月30日(2008.9.30)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】