(57)【要約】【課題】容器の中の液体を簡易に描画する。【解決手段】仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置であって、容器モデルにおける視点から奥側の容器奥面モデルを構成する各ポリゴンの各ピクセルに対して、容器モデル内に仮定する液体の液面からの距離に相当する容器奥面液面距離を予め設定した液面情報を用いて計算し、当該容器奥面液面距離を各ピクセルに対応付けて容器奥面情報テクスチャに記録する容器奥面情報テクスチャ作成手段と、前記容器モデルをベース色により描画し、前記容器モデルを構成する各ポリゴンの各ピクセルに対して前記液面からの距離に相当する容器前面液面距離を前記液面情報を用いて計算するとともに、当該ピクセルに対応する容器奥面液面距離を前記容器奥面情報テクスチャから取得し、容器前面液面距離および容器奥面液面距離と液面との位置関係に応じて現ピクセルに補正した色値を出力する描画手段とを備える。【選択図】図１
2010086264.tif 000002
【特許請求の範囲】
【請求項１】
仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置であって、
容器モデルにおける視点から奥側の容器奥面モデルを構成する各ポリゴンの各ピクセルに対して、容器モデル内に仮定する液体の液面からの距離に相当する容器奥面液面距離を予め設定した液面情報を用いて計算し、当該容器奥面液面距離を各ピクセルに対応付けて容器奥面情報テクスチャに記録する容器奥面情報テクスチャ作成手段と、
前記容器モデルをベース色により描画し、前記容器モデルを構成する各ポリゴンの各ピクセルに対して前記液面からの距離に相当する容器前面液面距離を前記液面情報を用いて計算するとともに、当該ピクセルに対応する容器奥面液面距離を前記容器奥面情報テクスチャから取得し、容器前面液面距離および容器奥面液面距離と液面との位置関係に応じて現ピクセルに補正した色値を出力する描画手段と
を備えたことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記容器奥面情報テクスチャ作成手段は、前記容器奥面モデルを構成する各ポリゴンの各頂点に対して前記液面からの距離に相当する容器奥面液面距離を計算し、各頂点の容器奥面液面距離を補間することにより各ピクセルに対する容器奥面液面距離を計算し、
前記描画手段は、前記容器モデルを構成する各ポリゴンの各頂点に対して前記液面からの距離に相当する容器前面液面距離を計算し、各頂点の容器前面液面距離を補間することにより各ピクセルに対する容器前面液面距離を計算する
ことを特徴とする画像処理装置。
【請求項３】
請求項１または２のいずれか一項に記載の画像処理装置において、
前記描画手段は、容器前面液面距離が液面より上を示し、かつ容器奥面液面距離が液面より下を示す場合に液面で反射・屈折した色値を現ピクセルに出力し、容器前面液面距離が液面より下を示し、かつ容器奥面液面距離が液面より上を示す場合に液体内部を屈折し液面で反射した色値を現ピクセルに出力し、容器前面液面距離が液面より下を示し、かつ容器奥面液面距離が液面より下を示す場合に液体内部を屈折した色値を現ピクセルに出力する
ことを特徴とする画像処理装置。
【請求項４】
請求項１乃至３のいずれか一項に記載の画像処理装置において、
前記容器モデル内の液体位置を代表する液面法線液体位置を現在速度に基づいて移動させ、移動後の液面法線液体位置、前記液体の液面法線方向および液体量から前記液体の液面の位置を示す液面情報を作成する液面情報作成手段
を備えたことを特徴とする画像処理装置。
【請求項５】
請求項４に記載の画像処理装置において、
前記液面情報作成手段は、現在速度に基づいて移動した液面法線液体位置と液面の位置を代表する液面法線代表位置との距離が規定距離よりも離れている場合に、当該規定距離に近づくように液面法線液体位置を補正する
ことを特徴とする画像処理装置。
【請求項６】
請求項１乃至５のいずれか一項に記載の画像処理装置において、
前記容器奥面情報テクスチャ作成手段は、前記容器奥面モデルを構成する各ポリゴンの各ピクセルに対応付ける容器奥面液面距離に対し、ノイズテクスチャから読み出した乱数値を加え、
前記描画手段は、前記容器モデルを構成する各ポリゴンの各ピクセルに対応する容器前面液面距離に対し、ノイズテクスチャから読み出した乱数値を加える
ことを特徴とする画像処理装置。
【請求項７】
仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置の制御プログラムであって、
前記画像処理装置を構成するコンピュータを、
容器モデルにおける視点から奥側の容器奥面モデルを構成する各ポリゴンの各ピクセルに対して、容器モデル内に仮定する液体の液面からの距離に相当する容器奥面液面距離を予め設定した液面情報を用いて計算し、当該容器奥面液面距離を各ピクセルに対応付けて容器奥面情報テクスチャに記録する容器奥面情報テクスチャ作成手段、
前記容器モデルをベース色により描画し、前記容器モデルを構成する各ポリゴンの各ピクセルに対して前記液面からの距離に相当する容器前面液面距離を前記液面情報を用いて計算するとともに、当該ピクセルに対応する容器奥面液面距離を前記容器奥面情報テクスチャから取得し、容器前面液面距離および容器奥面液面距離と液面との位置関係に応じて現ピクセルに補正した色値を出力する描画手段
として機能させる画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想３次元空間内のモデルを投影面上の２次元画像として描画するＣＧ（Computer Graphics）技術に関する。
【背景技術】
【０００２】
ビデオゲーム等においては、ワイングラスを揺らすシーン等、容器とともに容器の中の液体を描画する場合がある。
【０００３】
従来、このような場合、容器のオブジェクト（複数のポリゴンにより表現されるモデル）とは別に液体のオブジェクトを定義し、容器の動き等に応じて液体のオブジェクトの動きをシミュレートした上で反射・屈折等を考慮して描画を行っていた。
【０００４】
一方、特許文献１には、液体等の表面を構成するポリゴンの各頂点の色データを周期的に変化させることで、液体等の表面における光の反射の変化を現実感をもって表現できるようにした画像表示方法が開示されている。
【特許文献１】特開２００１−１２９２４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の、容器のオブジェクトとは別に液体のオブジェクトを定義し、容器の動き等に応じて液体のオブジェクトの動きをシミュレートする手法にあっては、液体のオブジェクトが膨大なデータ量となることから、演算処理の負荷が高く、ビデオゲーム装置等におけるリアルタイム処理には適していないという問題があった。
【０００６】
また、特許文献１に開示される手法では、ステンドグラスや遠景の海や池といった静的なものに対しては、その表面が光に当たってキラキラする状態が簡易に表現できるものではあるが、透明な容器中の液体など、さまざまな方向から観察することができる液体を表現することはできないものであった。
【０００７】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、容器の中の液体を簡易に描画することのできる画像処理装置および画像処理プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置であって、容器モデルにおける視点から奥側の容器奥面モデルを構成する各ポリゴンの各ピクセルに対して、容器モデル内に仮定する液体の液面からの距離に相当する容器奥面液面距離を予め設定した液面情報を用いて計算し、当該容器奥面液面距離を各ピクセルに対応付けて容器奥面情報テクスチャに記録する容器奥面情報テクスチャ作成手段と、前記容器モデルをベース色により描画し、前記容器モデルを構成する各ポリゴンの各ピクセルに対して前記液面からの距離に相当する容器前面液面距離を前記液面情報を用いて計算するとともに、当該ピクセルに対応する容器奥面液面距離を前記容器奥面情報テクスチャから取得し、容器前面液面距離および容器奥面液面距離と液面との位置関係に応じて現ピクセルに補正した色値を出力する描画手段とを備える画像処理装置を要旨としている。
【０００９】
また、請求項２に記載されるように、請求項１に記載の画像処理装置において、前記容器奥面情報テクスチャ作成手段は、前記容器奥面モデルを構成する各ポリゴンの各頂点に対して前記液面からの距離に相当する容器奥面液面距離を計算し、各頂点の容器奥面液面距離を補間することにより各ピクセルに対する容器奥面液面距離を計算し、前記描画手段は、前記容器モデルを構成する各ポリゴンの各頂点に対して前記液面からの距離に相当する容器前面液面距離を計算し、各頂点の容器前面液面距離を補間することにより各ピクセルに対する容器前面液面距離を計算するようにすることができる。
【００１０】
また、請求項３に記載されるように、請求項１または２のいずれか一項に記載の画像処理装置において、前記描画手段は、容器前面液面距離が液面より上を示し、かつ容器奥面液面距離が液面より下を示す場合に液面で反射・屈折した色値を現ピクセルに出力し、容器前面液面距離が液面より下を示し、かつ容器奥面液面距離が液面より上を示す場合に液体内部を屈折し液面で反射した色値を現ピクセルに出力し、容器前面液面距離が液面より下を示し、かつ容器奥面液面距離が液面より下を示す場合に液体内部を屈折した色値を現ピクセルに出力するようにすることができる。
【００１１】
また、請求項４に記載されるように、請求項１乃至３のいずれか一項に記載の画像処理装置において、前記容器モデル内の液体位置を代表する液面法線液体位置を現在速度に基づいて移動させ、移動後の液面法線液体位置、前記液体の液面法線方向および液体量から前記液体の液面の位置を示す液面情報を作成する液面情報作成手段を備えるようにすることができる。
【００１２】
また、請求項５に記載されるように、請求項４に記載の画像処理装置において、前記液面情報作成手段は、現在速度に基づいて移動した液面法線液体位置と液面の位置を代表する液面法線代表位置との距離が規定距離よりも離れている場合に、当該規定距離に近づくように液面法線液体位置を補正するようにすることができる。
【００１３】
また、請求項６に記載されるように、請求項１乃至５のいずれか一項に記載の画像処理装置において、前記容器奥面情報テクスチャ作成手段は、前記容器奥面モデルを構成する各ポリゴンの各ピクセルに対応付ける容器奥面液面距離に対し、ノイズテクスチャから読み出した乱数値を加え、前記描画手段は、前記容器モデルを構成する各ポリゴンの各ピクセルに対応する容器前面液面距離に対し、ノイズテクスチャから読み出した乱数値を加えるようにすることができる。
【００１４】
また、請求項７に記載されるように、仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置の制御プログラムであって、前記画像処理装置を構成するコンピュータを、容器モデルにおける視点から奥側の容器奥面モデルを構成する各ポリゴンの各ピクセルに対して、容器モデル内に仮定する液体の液面からの距離に相当する容器奥面液面距離を予め設定した液面情報を用いて計算し、当該容器奥面液面距離を各ピクセルに対応付けて容器奥面情報テクスチャに記録する容器奥面情報テクスチャ作成手段、前記容器モデルをベース色により描画し、前記容器モデルを構成する各ポリゴンの各ピクセルに対して前記液面からの距離に相当する容器前面液面距離を前記液面情報を用いて計算するとともに、当該ピクセルに対応する容器奥面液面距離を前記容器奥面情報テクスチャから取得し、容器前面液面距離および容器奥面液面距離と液面との位置関係に応じて現ピクセルに補正した色値を出力する描画手段として機能させる画像処理プログラムとして構成することができる。
【発明の効果】
【００１５】
本発明の画像処理装置および画像処理プログラムにあっては、容器モデルの描画時に前面側および奥面側のそれぞれのピクセルが液面よりも上か下かに応じ、前面側のピクセルの色値を書き換えるようにしているため、容器の中の液体を簡易に描画することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の好適な実施形態につき説明する。
【００１７】
＜構成＞
図１は本発明の一実施形態にかかる画像処理装置の構成例を示す図 である。
【００１８】
図１において、画像処理装置は、ゲームアプリケーション等の３Ｄ（3 Dimension）オブジェクトの描画命令を含む３Ｄアプリケーション１と、この３Ｄアプリケーション１から描画命令等を受け取るＯｐｅｎＧＬ、Ｄｉｒｅｃｔ３Ｄ等の３Ｄ−ＡＰＩ（Application Program Interface）２と、描画処理を実行するＧＰＵ（Graphics Processing Unit）３とを備えている。
【００１９】
ＧＰＵ３は、３Ｄ−ＡＰＩ２からＧＰＵコマンドおよびデータストリームを受け付けるＧＰＵフロントエンド部３１と、このＧＰＵフロントエンド部３１から３Ｄ頂点データを受け取って２Ｄスクリーン空間に投影した座標変換（行列の転置）等を行うプログラマブル頂点プロセッサ（ＶＳ：Vertex Processor）３２と、ＧＰＵフロントエンド部３１から与えられる頂点インデックスストリームとプログラマブル頂点プロセッサ３２で座標変換された頂点データとを組み立てる基本アセンブリ部３３とを備えている。プログラマブル頂点プロセッサ３２および基本アセンブリ部３３の部分は、バーテックスシェーダと呼ばれている。
【００２０】
また、ＧＰＵ３は、基本アセンブリ部３３で組み立てられた多角形、線および点のデータからラスタライズおよび補間を行うラスタライズ／補間部３４と、このラスタライズ／補間部３４からラスタライズ済のピクセル（フラグメント）データを受け取ってテクスチャマッピング等を行うプログラマブルピクセルプロセッサ（ＰＳ：Pixel Processor）３５と、ラスタライズ／補間部３４から与えられるピクセル位置ストリームとプログラマブルピクセルプロセッサ３５から与えられるテクスチャマッピング済のデータからラスタ演算を行うラスタ演算部３６と、ラスタ演算部３６により描画内容が書込・更新されるフレームバッファ３７とを備えている。フレームバッファ３７に書き込まれた内容は周期的に読み出されてビデオ信号に変換され、モニタ装置等によって表示される。ラスタライズ／補間部３４、プログラマブルピクセルプロセッサ３５およびラスタ演算部３６の部分は、ピクセルシェーダと呼ばれている。
【００２１】
また、処理に必要なデータがデータ保持部４に保持されている。主なデータとしては、容器モデル、容器奥面モデル、液面法線代表位置、液面法線液体位置、液面情報、ノイズテクスチャ、容器奥面情報テクスチャ、外力、液体量、視点・画角等である。
【００２２】
容器モデルとは、容器の表面形状を特定するデータであり、複数のポリゴンから構成される。各ポリゴンにはポリゴンの輪郭を特定する複数の頂点（３次元の頂点座標）と、ベースとなる色、透明度等の属性が与えられている。容器奥面モデルとは、容器モデルのうち、視点から見て奥面側となる部分モデルである。
【００２３】
図２は容器モデルおよび容器奥面モデルの例を示す図であり、（ａ）に示すように容器モデルＭ１を視点Ｖから見た状態を投影面Ｐ上に２次元画像として描画する場合、（ｂ）に示す容器の奥面側の部分が容器奥面モデルＭ２となる。なお、容器モデルＭ１は、上面についても描画を行う必要性から、本来は蓋のない容器であっても透明なポリゴンが割り当てられ、容器モデルＭ１はポリゴンにより閉じたものとなる。
【００２４】
図１に戻り、液面法線代表位置とは、液面の位置を代表する位置（３次元座標）であり、例えば、液面の図形的な中心位置が用いられる。液面法線液体位置とは、液体位置を代表する位置（３次元座標）であり、例えば、液体の重心位置が用いられる。なお、液面法線液体位置は速度（３次元速度）も併せ持つ。液面法線代表位置から液面法線液体位置へ向かうベクトルは、液面法線ベクトルとなる。液面情報とは、液面の位置を示すものであり、例えば、平面の方程式（ａｘ＋ｂｙ＋ｃｚ＋ｄ＝０）の係数（ａ、ｂ、ｃ、ｄ）が用いられる。
【００２５】
図３は液面法線代表位置および液面法線液体位置の例を示す図であり、容器モデルＭ１で特定される容器に液体Ｌが入っていることで液面Ｓが構成されると仮定する場合、液面Ｓの図形的な中心位置と仮定する点が液面法線代表位置Ｃ１となり、液体Ｌの重心位置と仮定する点が液面法線液体位置Ｃ２となる。また、液面Ｓを特定するのが液面情報となる。後述するように、処理の順序としては、液面法線代表位置Ｃ１および液面法線液体位置Ｃ２が先に求められ、これらから液面Ｓの液面情報が求められる。すなわち、液面情報を求めた結果、液面Ｓの図形的な中心位置や、液体Ｌの重心位置は、各仮定と異なる場合もある。
【００２６】
図１に戻り、ノイズテクスチャとは、ポリゴンの各ピクセルに対応して乱数値が設定されたデータ構造体である。ノイズテクスチャからはテクスチャ座標（ＵＶ値）を指定することにより値の読み出しを行う。容器奥面情報テクスチャとは、ポリゴンの各ピクセルに対応して容器奥面液面距離（ポリゴンの各ピクセルの液面に対する距離）を保持するデータ構造体である。容器奥面情報テクスチャに対してはテクスチャ座標（ＵＶ値）を指定することにより値の書き込みおよび読み出しを行う。なお、テクスチャは本来的にはポリゴンの表面の模様等の画像データを保持するものであるが、昨今のピクセルシェーダでは画像以外の任意のデータを保持させることができ、本実施形態でもその機能を利用している。
【００２７】
外力とは、液体に作用すると仮定する力であり、容器の移動により液体に作用すると仮定する慣性力や重力に相当する。液体量とは、容器内に満たされる液体の量を規定する値であり、例えば、最大量に対するパーセント値が用いられる。視点・画角は、容器モデルを２次元画像に投影する際に用いられる。
【００２８】
＜動作＞
図１に示した画像処理装置は、３Ｄアプリケーション１が主たる処理を行い、その過程で３Ｄ−ＡＰＩ２を介してＧＰＵ３に頂点およびピクセルに関する処理を行わせる。なお、３Ｄアプリケーション１はビデオゲーム等における全般の処理を担うが、以下では容器と液体の描画の部分のみについて説明する。また、処理は画面表示単位であるフレーム毎に行われるのが普通であるが、数フレーム毎に行う場合もある。
【００２９】
図４は液面情報作成処理の例を示すフローチャートである。
【００３０】
図４において、液面情報作成処理を開始すると（ステップＳ１０１）、液体の液面法線液体位置の速度に基づいて液面法線液体位置を移動する（ステップＳ１０２）。外力が作用する場合は液面法線液体位置の速度を加速しつつ移動を行う。図５は外力による液面法線液体位置の変化の例を示す図であり、（ａ）に示す位置に液面法線液体位置Ｃ２があり、これに容器モデルＭ１の移動（ここでは右方向）に伴う慣性力である外力Ｆが液体Ｌに作用することで、（ｂ）に示すように液面法線液体位置Ｃ２が移動する。また、（ｃ）に示すように、液体Ｌには重力による外力Ｆが作用するため、慣性力がなくなった状態でも液面法線液体位置Ｃ２は移動していき、振り子のように振動することとなる。
【００３１】
次いで、図４に戻り、液面法線液体位置と液面法線代表位置との距離が規定距離よりも離れているか否か判断し（ステップＳ１０３）、規定距離よりも離れている場合（ステップＳ１０３のＹｅｓ）は規定距離に近づくように液面法線液体位置を補正する（ステップＳ１０４）。これは、容器モデルの急激な移動があった場合のように、過大な外力が作用することで液面法線液体位置が容器外に飛び出してしまうことを防ぐためである。図６は外力による液面法線液体位置と液面法線代表位置との距離が規定距離よりも離れる場合の例を示す図であり、（ａ）に示すように液面法線液体位置Ｃ２と液面法線代表位置Ｃ１の距離が大きい場合、（ｂ）に示すように液面法線液体位置Ｃ２が容器モデルＭ１内に収まるように補正する。なお、図中では液体Ｌを便宜的にオブジェクトのように図示しているが、上記の説明のように、液面情報は、液面法線代表位置Ｃ１、液面法線液体位置Ｃ２、液体量および外力等を仮定した値から演算によって求まるものであり、液体Ｌは、後述するように、最終的に投影面Ｐ上に描画されるものであり、仮想３次元空間内にオブジェクトとして存在するものではない。
【００３２】
次いで、図４に戻り、液面法線液体位置、液面法線方向、液体量から、幾何学的関係に基づいて、液面情報を作成する（ステップＳ１０５）。そして、液面情報作成処理を終了する（ステップＳ１０６）。
【００３３】
図７は容器奥面情報テクスチャ作成処理の例を示すフローチャートである。
【００３４】
図７において、容器奥面情報テクスチャ作成処理を開始すると（ステップＳ２０１）、液面情報作成処理（図４）の終了を待機する（ステップＳ２０２）。
【００３５】
液面情報作成処理が終了して待機が解除すると、容器奥面モデルに対し、容器奥面モデルの各ポリゴンの各頂点に対する処理（ステップＳ２０４）と、容器奥面モデルの各ポリゴンの各ピクセルに対する処理（ステップＳ２０７）とを実施する（ステップＳ２０３）。
【００３６】
容器奥面モデルの各ポリゴンの各頂点に対する処理（ステップＳ２０４）では、先ず、頂点座標から容器奥面液面距離を計算する（ステップＳ２０５）。図８は容器奥面液面距離の例を示す図であり、今着目しているのが投影面Ｐ上の容器奥面ピクセルｐｂ'であるとすると、容器モデルＭ１上の対応する容器奥面位置ｐｂから液面Ｓまでの液面距離ｄｂを投影面Ｐ上に投影したものが容器奥面液面距離ｄｂ'となる。液面距離ｄｂは容器奥面位置ｐｂと液面Ｓの液面情報に基づく演算により求められ、投影変換により容器奥面液面距離ｄｂ'が求められる。
【００３７】
次いで、図７に戻り、頂点座標からノイズテクスチャのテクスチャ座標を計算する（ステップＳ２０６）。頂点座標とテクスチャ座標の対応関係は、予め定められている。
【００３８】
次いで、容器奥面モデルの各ポリゴンの各ピクセルに対する処理（ステップＳ２０７）では、ピクセルにつき補間した容器奥面液面距離にノイズテクスチャの値を加え、容器奥面情報テクスチャとして出力する（ステップＳ２０８）。加えるノイズテクスチャの値は、頂点の処理（ステップＳ２０６）で計算したテクスチャ座標をピクセルにつき補間したテクスチャ座標でノイズテクスチャから読み出した値である。ノイズテクスチャの値を加えることで、各ピクセルにおける液面距離を増減させると、最終的に描画される液面に微妙な凹凸を付けることができ、自然な見た目を出すことができる。容器奥面情報テクスチャへの出力（書き込み）は、ノイズテクスチャの読み出しに用いたテクスチャ座標を用いて行う。そして、容器奥面情報テクスチャ作成処理を終了する（ステップＳ２０９）。
【００３９】
図９は描画処理の例を示すフローチャートである。
【００４０】
図９において、描画処理を開始すると（ステップＳ３０１）、液面情報作成処理（図４）および容器奥面情報テクスチャ作成処理（図７）の終了を待機する（ステップＳ３０２、ステップＳ３０３）。
【００４１】
液面情報作成処理および容器奥面情報テクスチャ作成処理が終了して待機が解除すると、容器モデルをベースの色により通常の描画方法でフレームバッファに出力する（ステップＳ３０４）。
【００４２】
次いで、容器モデルに対し、容器モデルの各ポリゴンの各頂点に対する処理（ステップＳ３０６）と、容器モデルの各ポリゴンの各ピクセルに対する処理（ステップＳ３１０）とを実施する（ステップＳ３０５）。
【００４３】
容器モデルの各ポリゴンの各頂点に対する処理（ステップＳ３０６）では、先ず、頂点座標から容器前面液面距離を計算する（ステップＳ３０７）。図１０は容器前面液面距離の例を示す図であり、今着目しているのが投影面Ｐ上の容器前面ピクセルｐｆ'であるとすると、容器モデルＭ１上の対応する容器前面位置ｐｆから液面Ｓまでの液面距離ｄｆを投影面Ｐ上に投影したものが容器前面液面距離ｄｆ'となる。液面距離ｄｆは容器前面位置ｐｆと液面Ｓの液面情報に基づく演算により求められ、投影変換により容器前面液面距離ｄｆ'が求められる。
【００４４】
次いで、図９に戻り、頂点座標からノイズテクスチャのテクスチャ座標を計算する（ステップＳ３０８）。頂点座標とテクスチャ座標の対応関係は、予め定められている。
【００４５】
次いで、頂点座標から容器奥面情報テクスチャのテクスチャ座標を計算する（ステップＳ３０９）。図１１は容器奥面情報テクスチャのテクスチャ座標の取得の例を示す図であり、今着目しているのが投影面Ｐ上の容器前面頂点ｖｆ'であるとすると、視点Ｖから投影面Ｐ上の容器前面頂点ｖｆ'および容器モデルＭ１上の対応する容器前面位置ｖｆを通った直線上の容器奥面位置ｖｂを特定し、この容器奥面位置ｖｂから対応する容器奥面情報テクスチャのテクスチャ座標を計算する。
【００４６】
次いで、図９に戻り、容器モデルの各ポリゴンの各ピクセルに対する処理（ステップＳ３１０）では、先ず、ピクセルにつき補間した容器前面液面距離にノイズテクスチャの値を加えて補正する（ステップＳ３１１）。加えるノイズテクスチャの値は、頂点の処理（ステップＳ３０８）で計算したテクスチャ座標をピクセルにつき補間したテクスチャ座標でノイズテクスチャから読み出した値である。ノイズテクスチャの値を加えることで、各ピクセルにおける液面距離を増減させると、最終的に描画される液面に微妙な凹凸を付けることができ、自然な見た目を出すことができる。
【００４７】
次いで、容器奥面情報テクスチャから容器奥面液面距離を取得する（ステップＳ３１２）。これは、頂点の処理（ステップＳ３０９）で計算したテクスチャ座標を用いて容器奥面情報テクスチャから値を読み出すことで行う。
【００４８】
次いで、容器前面液面距離が液面より上を示すか否か判断し（ステップＳ３１３）、容器前面液面距離が液面より上を示す場合（ステップＳ３１３のＹｅｓ）は容器奥面液面距離が液面より上を示すか否か判断し（ステップＳ３１４）、容器前面液面距離が液面より上を示さない（下である）場合（ステップＳ３１３のＮｏ）は容器奥面液面距離が液面より上を示すか否か判断する（ステップＳ３１５）。
【００４９】
そして、容器前面液面距離が液面より上を示し、かつ容器奥面液面距離が液面より上を示す場合（ステップＳ３１４のＹｅｓ）、そのピクセルを非出力（ベースのまま）とする（ステップＳ３１６）。これは、図１２（ａ）において、容器前面ピクセルｐｆ１'（容器前面位置ｐｆ１、容器奥面位置ｐｂ１）を処理する場合に該当する。描画画像上では、図１３（ａ）の領域ｒ１に該当する。なお、領域ｒ１の下端の境界はノイズテクスチャの値により自然に波立ったようになる。
【００５０】
図９に戻り、容器前面液面距離が液面より上を示し、かつ容器奥面液面距離が液面より下を示す場合（ステップＳ３１４のＮｏ）、液面で反射・屈折した色値を出力する（ステップＳ３１７）。これは、図１２（ａ）において、容器前面ピクセルｐｆ２'（容器前面位置ｐｆ２、容器奥面位置ｐｂ２）を処理する場合に該当する。描画画像上では、図１３（ａ）の領域ｒ２に該当する。なお、領域ｒ２の上下端の境界はノイズテクスチャの値により自然に波立ったようになる。
【００５１】
図９に戻り、容器前面液面距離が液面より下を示し、かつ容器奥面液面距離が液面より上を示す場合（ステップＳ３１５のＹｅｓ）、液体内部を屈折し、液面で反射した色値を出力する（ステップＳ３１８）。これは、図１２（ｂ）において、容器前面ピクセルｐｆ３'（容器前面位置ｐｆ３、容器奥面位置ｐｂ３）を処理する場合に該当する。描画画像上では、図１３（ｂ）の領域ｒ３に該当する。なお、領域ｒ３の上下端の境界はノイズテクスチャの値により自然に波立ったようになる。
【００５２】
図９に戻り、容器前面液面距離が液面より下を示し、かつ容器奥面液面距離が液面より下を示す場合（ステップＳ３１５のＮｏ）、液体内部を屈折した色値を出力する（ステップＳ３１９）。これは、図１２（ａ）において、容器前面ピクセルｐｆ４'（容器前面位置ｐｆ４、容器奥面位置ｐｂ４）を処理する場合に該当する。描画画像上では、図１３（ａ）の領域ｒ４に該当する。なお、領域ｒ４の上端の境界はノイズテクスチャの値により自然に波立ったようになる。
【００５３】
図９に戻り、その後、描画処理を終了する（ステップＳ３２０）。
【００５４】
＜総括＞
以上説明したように、本実施形態によれば、容器モデルの描画時に前面側および奥面側のそれぞれのピクセルが液面よりも上か下かに応じ、前面側のピクセルの色値を書き換えるようにしているため、容器の中の液体を簡易に描画することができる。
【００５５】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【図面の簡単な説明】
【００５６】
【図１】本発明の一実施形態にかかる画像処理装置の構成例を示す図 である。
【図２】容器モデルおよび容器奥面モデルの例を示す図である。
【図３】液面法線代表位置および液面法線液体位置の例を示す図である。
【図４】液面情報作成処理の例を示すフローチャートである。
【図５】外力による液面法線液体位置の変化の例を示す図である。
【図６】外力による液面法線液体位置と液面法線代表位置との距離が規定距離よりも離れる場合の例を示す図である。
【図７】容器奥面情報テクスチャ作成処理の例を示すフローチャートである。
【図８】容器奥面液面距離の例を示す図である。
【図９】描画処理の例を示すフローチャートである。
【図１０】容器前面液面距離の例を示す図である。
【図１１】容器奥面情報テクスチャのテクスチャ座標の取得の例を示す図である。
【図１２】容器前面液面距離と容器奥面液面距離のパターンの例を示す図である。
【図１３】投影面への容器モデルの描画画像の例を示す図である。
【符号の説明】
【００５７】
１        ３Ｄアプリケーション
２        ３Ｄ−ＡＰＩ
３        ＧＰＵ
３１      ＧＰＵフロントエンド部
３２      プログラマブル頂点プロセッサ
３３      基本アセンブリ部
３４      ラスタライズ／補間部
３５      プログラマブルピクセルプロセッサ
３６      ラスタ演算部
３７      フレームバッファ
４        データ保持部
【図１】
2010086264.tif 000003
【図２】
2010086264.tif 000004
【図３】
2010086264.tif 000005
【図４】
2010086264.tif 000006
【図５】
2010086264.tif 000007
【図６】
2010086264.tif 000008
【図７】
2010086264.tif 000009
【図８】
2010086264.tif 000010
【図９】
2010086264.tif 000011
【図１０】
2010086264.tif 000012
【図１１】
2010086264.tif 000013
【図１２】
2010086264.tif 000014
【図１３】
2010086264.tif 000015