(57)【要約】【課題】現実感の高い３次元仮想現実世界の画像を生成する。【解決手段】ゲーム装置１０に備えられた画像処理装置５０は、記憶部６０と生成部７０を含む。生成部７０は、水中における映像のゆらめきを表現する効果を付加する水中効果付加部７２、水面のゆらめきを表現する効果を付加する水面効果付加部７４、草などのオブジェクトが水流や風で揺れる様子を表現する効果を付加する揺れ効果付加部７６、水中に光が差し込む様子を表現する効果を付加するフレア効果付加部７８、水深に応じたフォグ効果を付加するフォグ効果付加部８０、オブジェクトのスケールを自動調整するスケール調整部８２、オブジェクトをレンダリングするレンダリング部９０を備え、水中と水上に構築された３次元仮想現実世界の画像を高い現実感にて生成する。【選択図】図１
2005346165.tif 000002
【特許請求の範囲】
【請求項１】
屈折率の異なる第１空間及び第２空間に仮想的に配置された３次元オブジェクトのデータを、前記第１空間に配置された第１オブジェクト及び前記第２空間に配置された第２オブジェクトの別を識別可能に格納する格納部と、
所定の視点位置から所定の視線方向に見た前記３次元オブジェクトの画像を生成する生成部と、を備え、
前記生成部は、前記視点位置と、前記第１空間及び前記第２空間の境界面との位置関係に応じて、前記第１オブジェクト及び前記第２オブジェクトの描画順序を決定し、前記第１オブジェクト及び前記第２オブジェクトを前記描画順序に沿ってレンダリングすることにより前記３次元オブジェクトの画像を生成することを特徴とする画像処理装置。
【請求項２】
前記格納部は、更に、前記境界面付近に配置された第３オブジェクトの別を識別可能に格納し、
前記生成部は、前記視点位置と前記境界面との位置関係に応じて、前記第１オブジェクト、前記第２オブジェクト、及び前記第３オブジェクトの描画順序を決定し、前記第１オブジェクト、前記第２オブジェクト、及び前記第３オブジェクトを前記描画順序に沿ってレンダリングすることにより前記３次元オブジェクトの画像を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記視点位置が前記第１空間にある場合、前記生成部は、前記第２オブジェクト、前記第３オブジェクト、前記第１オブジェクトの順にレンダリングして重ね合わせることにより、前記３次元オブジェクトの画像を生成することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記視点位置が前記第２空間にある場合、前記生成部は、前記第１オブジェクト、前記第３オブジェクト、前記第２オブジェクトの順にレンダリングして重ね合わせることにより、前記画像を生成することを特徴とする請求項２又は３に記載の画像処理装置。
【請求項５】
生成された画像を所定のサイズのブロックに分割し、前記ブロックの頂点を移動させて画像を歪ませることにより、前記画像がゆらめく様子を表現する効果を付加する歪み効果付加部を更に備えることを特徴とする請求項１から４のいずれかに記載の画像処理装置。
【請求項６】
前記頂点の移動量は、その頂点に投影された前記境界面上の座標の奥行き方向の値の逆数に比例することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記頂点の透明度は、前記視点位置と前記頂点との間の距離又は前記視線方向と前記頂点における前記境界面の法線とのなす角に応じて決定されることを特徴とする請求項５又は６に記載の画像処理装置。
【請求項８】
流体中で揺れを生じるオブジェクトの画像に対して、せん断マトリクス変換を作用させることにより、前記オブジェクトが揺れる様子を表現する効果を付加する揺れ効果付加部を更に備えることを特徴とする請求項１から７のいずれかに記載の画像処理装置。
【請求項９】
前記第１空間又は前記第２空間に光が差し込む様子を表現する効果を付加するために、前記光が差し込む位置に板ポリゴンを配置し、せん断によって差し込み側と底面側の辺を平行に保ちつつ前記板ポリゴンをねじり、前記板ポリゴンと直角にテクスチャを張るフレア効果付加部を更に備えることを特徴とする請求項１から８のいずれかに記載の画像処理装置。
【請求項１０】
前記第１空間が水中である場合に、水深に応じたフォグ効果を付加するフォグ効果付加部を更に備えることを特徴とする請求項１から９のいずれかに記載の画像処理装置。
【請求項１１】
前記オブジェクトのスケールを、表示モードに基づいて自動調整するスケール調整部を更に備えることを特徴とする請求項１から１０のいずれかに記載の画像処理装置。
【請求項１２】
屈折率の異なる第１空間及び第２空間に仮想的に配置された３次元オブジェクトのデータをレンダリングするために、視点位置と視線方向を取得するステップと、
前記視点位置と、前記第１空間と前記第２空間の境界面との位置関係に応じて、前記第１空間に配置された第１オブジェクト及び前記第２空間に配置された第２オブジェクトの描画順序を決定するステップと、
前記描画順序にしたがって、前記３次元オブジェクトのデータを格納した格納部から前記データを読み出してレンダリングし、前記３次元オブジェクトの画像を生成するステップと、
を含むことを特徴とする画像処理方法。
【請求項１３】
屈折率の異なる第１空間及び第２空間に仮想的に配置された３次元オブジェクトのデータをレンダリングするために、視点位置と視線方向を取得する機能と、
前記視点位置と、前記第１空間と前記第２空間の境界面との位置関係に応じて、前記第１空間に配置された第１オブジェクト及び前記第２空間に配置された第２オブジェクトの描画順序を決定する機能と、
前記描画順序にしたがって、前記３次元オブジェクトのデータを格納した格納部から前記データを読み出してレンダリングし、前記３次元オブジェクトの画像を生成する機能と、
をコンピュータに実行せしめることを特徴とするコンピュータプログラム。
【請求項１４】
屈折率の異なる第１空間及び第２空間に仮想的に配置された３次元オブジェクトのデータをレンダリングするために、視点位置と視線方向を取得するステップと、
前記視点位置と、前記第１空間と前記第２空間の境界面との位置関係に応じて、前記第１空間に配置された第１オブジェクト及び前記第２空間に配置された第２オブジェクトの描画順序を決定するステップと、
前記描画順序にしたがって、前記３次元オブジェクトのデータを格納した格納部から前記データを読み出してレンダリングし、前記３次元オブジェクトの画像を生成するステップと、
を実現するためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理技術に関し、特に、屈折率の異なる第１空間及び第２空間に仮想的に配置された３次元オブジェクトの画像を生成する技術に関する。
【背景技術】
【０００２】
従来、仮想的に構築された３次元空間内をキャラクタが移動するゲーム装置が知られている。３次元空間内に池や海などが配置され、水中をキャラクタが移動するものもある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、水中の様子を高い現実感をもって表現する画像処理技術を駆使したゲーム装置はない。
【０００４】
本発明はこうした状況に鑑みてなされたものであり、その目的は、より現実感の高い画像を生成する技術を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のある態様は、画像処理装置に関する。この画像処理装置は、屈折率の異なる第１空間及び第２空間に仮想的に配置された３次元オブジェクトのデータを、前記第１空間に配置された第１オブジェクト及び前記第２空間に配置された第２オブジェクトの別を識別可能に格納する格納部と、所定の視点位置から所定の視線方向に見た前記３次元オブジェクトの画像を生成する生成部と、を備え、前記生成部は、前記視点位置と、前記第１空間及び前記第２空間の境界面との位置関係に応じて、前記第１オブジェクト及び前記第２オブジェクトの描画順序を決定し、前記第１オブジェクト及び前記第２オブジェクトを前記描画順序に沿ってレンダリングすることにより前記３次元オブジェクトの画像を生成することを特徴とする。第１空間は、例えば空気中であってもよく、第２空間は、例えば水中であってもよい。
【０００６】
前記格納部は、更に、前記境界面付近に配置された第３オブジェクトの別を識別可能に格納し、前記生成部は、前記視点位置と前記境界面との位置関係に応じて、前記第１オブジェクト、前記第２オブジェクト、及び前記第３オブジェクトの描画順序を決定し、前記第１オブジェクト、前記第２オブジェクト、及び前記第３オブジェクトを前記描画順序に沿ってレンダリングすることにより前記３次元オブジェクトの画像を生成してもよい。
【０００７】
画像処理装置は、生成された画像を所定のサイズのブロックに分割し、前記ブロックの頂点を移動させて画像を歪ませることにより、前記画像がゆらめく様子を表現する効果を付加する歪み効果付加部を更に備えてもよい。画像処理装置は、流体中で揺れを生じるオブジェクトの画像に対して、せん断マトリクス変換を作用させることにより、前記オブジェクトが揺れる様子を表現する効果を付加する揺れ効果付加部を更に備えてもよい。画像処理装置は、前記第１空間又は前記第２空間に光が差し込む様子を表現する効果を付加するために、前記光が差し込む位置に板ポリゴンを配置し、せん断によって差し込み側と底面側の辺を平行に保ちつつ前記板ポリゴンをねじり、前記板ポリゴンと直角にテクスチャを張るフレア効果付加部を更に備えてもよい。画像処理装置は、前記第１空間が水中である場合に、水深に応じたフォグ効果を付加するフォグ効果付加部を更に備えてもよい。画像処理装置は、前記オブジェクトのスケールを、表示モードに基づいて自動調整するスケール調整部を更に備えてもよい。
【発明の効果】
【０００８】
本発明によれば、現実感の高い画像を生成する技術を提供することができる。
【発明を実施するための最良の形態】
【０００９】
図１は、実施の形態に係る画像処理装置５０を含むゲーム装置１０の構成を示す。ゲーム装置１０は、コントローラ２０、制御部３０、表示装置４０、画像処理装置５０を備える。図１に示した構成の一部は、ハードウェア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウェア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００１０】
本実施の形態のゲーム装置１０は、ユーザが魚のキャラクタを操作して池の周辺を移動し、他の魚を捕食したり、アイテムを拾ったりするゲームを実現する。ユーザは、魚のキャラクタを操作して水中を移動することで、擬似的に魚になったような操作感を得ることができる。本実施の形態では、屈折率の異なる空気中と水中の二つの空間に構築された３次元仮想現実世界（以下、単に「ゲーム世界」ともいう）の画像を、高い現実感をもって表現するための画像処理技術を中心に説明する。
【００１１】
制御部３０は、ユーザが操作するコントローラ２０から入力される制御信号に基づいてゲームプログラムを実行し、ゲームを進行させる。制御部３０は、ユーザが操作するキャラクタの現在位置、ゲーム世界を描写した画面を生成するときのカメラの視点位置、視線方向、ゲームプログラムが用いる各種フラグ情報やパラメータなどの制御情報などを変更し、管理する。画像処理装置５０は、制御部３０により制御されるゲームの画面を生成する。表示装置４０は、画像処理装置５０により生成されたゲーム画面を表示する。
【００１２】
本実施の形態では、ユーザが操作するキャラクタは、水中及び水上に仮想的に構築された３次元のゲーム世界の中を移動するので、画像処理装置５０は、ゲーム世界に配置された３次元オブジェクトを、制御部３０が決定したカメラの視点位置及び視線方向を用いてレンダリングし、生成した画像に各種情報などの表示を付加してゲーム画面を生成する。
【００１３】
画像処理装置５０は、制御部３０によるゲームの進行に伴って、ユーザに提示するゲーム画面を生成する生成部７０と、生成部７０における画像処理に必要なデータを格納する記憶部６０とを含む。記憶部６０は、ゲーム世界に配置されたオブジェクトの形状データなどを格納するオブジェクトデータベース６２、テクスチャメモリ６４、フレームバッファ６６を含む。オブジェクトデータベース４２は、格納部の一例であり、第１空間の一例である水中に配置された水中オブジェクト、第２空間の一例である空気中に配置された水上オブジェクト、及び第１空間と第２空間の境界面である水面付近に配置された水面オブジェクトの別を識別可能に格納する。オブジェクトデータベース４２は、例えば、オブジェクトのデータと、そのオブジェクトが水上オブジェクト、水中オブジェクト及び水面オブジェクトのいずれであるかを示す識別子とを対応づけて格納してもよい。テクスチャメモリ６４は、画像処理におけるワークメモリとして使用され、例えば、画面の半分の大きさの容量を有する。フレームバッファ６６は、画面１枚分の画像データを保持する。
【００１４】
生成部７０は、水中及び水上に配置されたオブジェクト群をレンダリングするレンダリング部９０と、レンダリングした画像に様々な視覚効果を付加する構成を含んでおり、具体的には、生成部７０は、水中効果付加部７２、水面効果付加部７４、揺れ効果付加部７６、フレア効果付加部７８、フォグ効果付加部８０、レンダリング部９０を含む。生成部７０は、それらの他に、３次元オブジェクトを表示する際にスケールを自動調整するスケール調整部８２を含む。
【００１５】
水中効果付加部７２は、カメラの視点位置が水中にあるとき、生成された画像を歪ませることにより、水中から見た映像が水の流れによりゆらめく様子を表現する効果を付加する。水中効果付加部７２は、生成された画像を所定のサイズ、例えば８画素×１６画素のブロックに分割し、それらのブロックの頂点を移動させることによって、画像を歪ませる。これにより、水中から見た映像を高い現実感にて描画することができる。水中効果付加部７２は、視点位置から近いオブジェクトが描画された部分ほど大きく歪ませるようにしてもよい。
【００１６】
水面効果付加部７４は、水面に投影された画像、又は水面を通して透けて見える画像を歪ませることにより、水面がゆらめく様子を表現する効果を付加する。水面効果付加部７４は、生成された画像を所定のサイズ、例えば８画素×１６画素のブロックに分割し、それらの頂点を移動させることによって、画像を歪ませる。このとき、頂点の移動量は、その頂点に投影された水面上の座標の１／ｚの値（ｚは奥行き方向の座標値）に比例して大きくなるようにする。これにより、近くの水面が投影された部分ほど大きく歪ませることになるので、より現実感の高い画像を得ることができる。
【００１７】
また、分割されたブロックの各頂点に与えられる、透明度を表すアルファ値は、視点位置と頂点との間の距離又は視線方向と頂点における境界面の法線とのなす角に応じて決定される。例えば、水面を透過して見える画像を描画するときは、視点位置に近く、また、水面と視線方向とのなす角が直角に近い（すなわち、水面の法線と視線方向とのなす角が小さい）部分ほど、アルファ値が小さくなるようにする。以下、この操作を「ＷＰＬフィルタ」と呼ぶ。逆に、水面に反射して見える画像を描画するときは、視点位置に近く、また、水面と視線方向とのなす角が直角に近い（すなわち、水面の法線と視線方向とのなす角が小さい）部分ほど、アルファ値が大きくなるようにする。以下、この操作を「ＷＰＬＲフィルタ」と呼ぶ。このような操作により、水面への映り込みや水面を透過して見える画像の透明度を、視点位置や視線方向に応じて変化させることができ、より現実感の高い画像を得ることができる。
【００１８】
揺れ効果付加部７６は、草などの、水中で水の流れにより、又は、空気中で風により揺れを生じるオブジェクトの画像に対して、揺れを表現する効果を付加する。揺れ効果付加部７６は、固定点からの距離に応じた歪を生じさせる、せん断マトリクス変換を用いてオブジェクトをねじることにより、マトリクス計算を１回行うだけでオブジェクトの揺れを表現する。３次元グラフィクスで扱う座標は、Ｘ、Ｙ、Ｚの３つであるが、平行変換や透視変換を考慮し、次元を一つ増やして４次元同次座標として扱うことが多い。このとき、せん断マトリクスＭｓは、次式で表される。
【数１】
2005346165.tif 000003
揺れ効果付加部７６は、ａ、ｂ、ｃ、ｄ、ｅ、ｆに変数を代入して変換を行う。ここで、ａ＝ｃ、ｂ＝ｅ、ｄ＝ｆとしてもよい。
【００１９】
フレア効果付加部７８は、水中の画像に対して、水中に光が差し込む様子を表現する効果を付加する。フレア効果付加部７８は、光の差し込みを描画する位置に長方形の板ポリゴンを配置し、せん断によって差し込み側と底面側の辺を平行に保ちつつ板ポリゴンをねじる。また、テクスチャは、ポリゴンと直角になるように張って、そのＵＶ変化で光の差し込みが自然に見えるように表現する。
【００２０】
フォグ効果付加部８０は、水中の画像に対して、水深に応じたフォグ効果を付加する。フォグ効果付加部８０は、所定の水深に対して最大のフォグ値を設定し、その水深よりも浅い領域に対しては、線形補間によりフォグ値をリアルタイムに設定して、フォグ効果を付加する。
【００２１】
スケール調整部８２は、オブジェクトの画像を生成する際に、画像を表示する状況や、周辺のオブジェクトとの関係などに応じて、オブジェクトのスケールを自動的に調整する。例えば、ゲームに登場する魚や、アイテムなどを説明するための画面を表示する際に、魚やアイテムをゲーム中に登場する大きさではなく、表示枠に応じたほぼ一定の大きさで表示されるように、スケールを調整する。スケール調整部８２は、オブジェクトデータベース６２から読み出したオブジェクトのポリゴンモデルのカリング用球データから、その大きさを取得し、
（モデルのスケール）＝ｋ／（カリング用球データの半径）×（個別調整用数値）ｋ
＝（所定値）
より大きさを計算する。また、スケール調整部８２は、カリング用球データの中心座標値に基づいて、表示位置のずれを修正する。
【００２２】
図２は、水上オブジェクト、水中オブジェクト、水面オブジェクトの例を示す。図２に示した３次元仮想現実世界は、水面１００を挟んで、水中１０２と水上１０４の２つの屈折率の異なる空間を含む。図２には、水上１０４に配置された水上オブジェクトの例としてバケツ１１０が、水中１０２に配置された水中オブジェクトの例として岩１１２が、水面１００付近に配置された水面オブジェクトの例として落ち葉１１４が、それぞれ示されている。水上１０４からこの世界を眺めると、同じ空間内にある水上オブジェクトと、水面オブジェクトと、水面１００で反射した水上オブジェクトと、水面１００を透過した水中オブジェクトが見える。また、水中１０２からこの世界を眺めると、同じ空間内にある水中オブジェクトと、水面オブジェクトと、水面１００で反射した水中オブジェクトと、水面１００を透過した水上オブジェクトが見える。本実施の形態では、これらのオブジェクトの描画順序を適切に設定することにより、ゲーム世界をより正確に再現した画像を生成する。水面付近に存在するオブジェクトは、視点位置が水上であっても水中であっても、水面で反射して見える画像や水面を透過して見える画像よりもはっきりと見えるはずであるから、水面オブジェクトの描画を水面から比較的離れた水中オブジェクトや水上オブジェクトの描画と独立させ、水面における反射画像及び透過画像よりも優先させて描画することにより、より現実感の高い画像を生成することができる。
【００２３】
図３は、生成部７０がゲーム画面を生成する手順を示すフローチャートである。まず、生成部７０は、制御部３０からカメラの視点位置及び視線方向を取得する（Ｓ１０）。つづいて、生成部７０は、カメラの視点位置に基づいて、オブジェクトの描画順序を決定する（Ｓ１２）。生成部７０は、カメラの視点位置が水面よりも上にあるか下にあるかを判断し、判断結果に応じてオブジェクトの描画順序を決定する。カメラの視点位置が水中にある場合は（Ｓ１４のＮ）、生成部７０は、水上オブジェクト、水面オブジェクト、水中オブジェクトの順にレンダリングを行い、それらを順次上書きしてゲーム世界の画像を生成する（Ｓ１８）。カメラの視点位置が水上にある場合は（Ｓ１４のＹ）、生成部７０は、水中オブジェクト、水面オブジェクト、水上オブジェクトの順にレンダリングを行い、それらを順次上書きしてゲーム世界の画像を生成する（Ｓ１６）。これにより、例えば半透明なオブジェクトが配置されている場合であっても、ソートエラーを生じることなく適切に描画することができる。生成部７０は、こうして生成されたゲーム世界の画像に、キャラクタの体力や空腹度などの各種情報の表示を付加してゲーム画面を生成する（Ｓ２０）。
【００２４】
図４は、生成部７０が、水上から見たゲーム世界の画像を生成する手順を示すフローチャートである。この手順は、図３に示したフローチャートにおけるＳ１６に該当する。まず、生成部７０は、オブジェクトデータベース６２から水中オブジェクトを読み出し、レンダリング部９０に渡す。レンダリング部９０は、カメラの視点位置と視線方向を設定して、水中オブジェクトをレンダリングし、テクスチャメモリ６４に格納する（Ｓ３０）。このとき、草などのオブジェクトが存在する場合は、揺れ効果付加部７６により揺れを表現する効果を付加する。また、必要であれば、フレア効果付加部７８により光の差し込みを表現する効果を付加してもよいし、フォグ効果付加部８０により水中の透明度などを変更してもよい。つづいて、テクスチャメモリ６４の画像に対して、水面効果付加部７４により歪み効果を加え、ＷＰＬフィルタを適用し、水面の遠い部分ほど画像が薄くなるようにフレームバッファ６６へ描画する（Ｓ３２）。これにより、水面から透けて見える水中オブジェクトの画像が生成される。
【００２５】
次に、生成部７０は、テクスチャメモリ６４を黒一色で塗りつぶす。つづいて、テクスチャメモリ６４の画像に対して、水面効果付加部７４により歪み効果を加え、ＷＰＬＲフィルタを適用し、水面の遠い部分ほど画像が濃くなるようにフレームバッファ６６へ描画する（Ｓ３４）。この画像は、黒のグラデーションとなる。遠い水面ほど濃い黒の画像が加算されることになるので、視点位置から遠い水面ほど暗い画像になる。これにより、遠近感を出すことができる。
【００２６】
次に、生成部７０は、オブジェクトデータベース６２から水上オブジェクトを読み出し、レンダリング部９０に渡す。レンダリング部９０は、カメラの視点位置と視線方向を設定して、水上オブジェクトをレンダリングし、テクスチャメモリ６４に格納する（Ｓ３６）。このとき、マトリクスは水面で反転させる。草などのオブジェクトが存在する場合は、揺れ効果付加部７６により揺れを表現する効果を付加してもよい。つづいて、テクスチャメモリ６４の画像に対して、水面効果付加部７４により歪み効果を加え、ＷＰＬＲフィルタを適用し、水面の遠い部分ほど画像が濃くなるようにフレームバッファ６６へ描画する（Ｓ３８）。これにより、水面で反射されて見える水上オブジェクトの画像が描画される。以上の手順により、水上オブジェクトと水中オブジェクトの画像が水面でクロスフェードしたような画像が得られる。水中オブジェクトの画像にはＷＰＬフィルタを、水面で反転させた水上オブジェクトの画像にはＷＰＬＲフィルタを適用しているので、視点から近く、水面と視線方向とのなす角が直角に近いほど、水面を透過する水中オブジェクトの画像が濃く、水面に反射した水上オブジェクトの画像が薄く描画され、逆に、視点から遠く、水面と視線方向とのなす角が小さいほど、水面を透過する水中オブジェクトの画像が薄く、水面に反射した水上オブジェクトの画像が濃く描画されることになる。これにより、水面の様子をよりリアルに再現することができる。
【００２７】
次に、生成部７０は、オブジェクトデータベース６２から水面オブジェクトを読み出し、レンダリング部９０に渡す。レンダリング部９０は、カメラの視点位置と視線方向を設定して、水面オブジェクトをレンダリングし、テクスチャメモリ６４に格納する（Ｓ４０）。このとき、テクスチャアニメーションを利用してもよい。つづいて、テクスチャメモリ６４の画像に対して、水面効果付加部７４により歪み効果を加え、ＷＰＬフィルタを適用し、水面の遠い部分ほど画像が薄くなるようにフレームバッファ６６へ描画する（Ｓ４２）。これにより、水面オブジェクトの画像が描画される。水面の画像に水面オブジェクトの画像を上書きするので、水面付近に配置されたオブジェクトが、水面を透過して見える水中オブジェクトや、水面で反射して見える水上オブジェクトよりも優先して描画される。これにより、より現実感の高い画像を生成することができる。
【００２８】
次に、生成部７０は、オブジェクトデータベース６２から水上オブジェクトを読み出し、レンダリング部９０に渡す。レンダリング部９０は、カメラの視点位置と視線方向を設定して、水上オブジェクトをレンダリングし、フレームバッファ６６に加算する（Ｓ４４）。以上の手順により、水上から見たゲーム世界の画像が適切に生成される。
【００２９】
図５は、生成部７０が、水中から見たゲーム世界の画像を生成する手順を示すフローチャートである。この手順は、図３に示したフローチャートにおけるＳ１８に該当する。まず、生成部７０は、オブジェクトデータベース６２から水上オブジェクトを読み出し、レンダリング部９０に渡す。レンダリング部９０は、カメラの視点位置と視線方向を設定して、水上オブジェクトをレンダリングし、テクスチャメモリ６４に格納する（Ｓ５０）。このとき、草などのオブジェクトが存在する場合は、揺れ効果付加部７６により揺れを表現する効果を付加してもよい。つづいて、テクスチャメモリ６４の画像に対して、水面効果付加部７４により歪み効果を加え、ＷＰＬフィルタを適用し、水面の遠い部分ほど画像が薄くなるようにフレームバッファ６６へ描画する（Ｓ５２）。これにより、水面から透けて見える水上オブジェクトの画像が生成される。
【００３０】
次に、生成部７０は、テクスチャメモリ６４を黒一色で塗りつぶす。つづいて、テクスチャメモリ６４の画像に対して、水面効果付加部７４により歪み効果を加え、ＷＰＬＲフィルタを適用し、水面の遠い部分ほど画像が濃くなるようにフレームバッファ６６へ描画する（Ｓ５４）。この画像は、黒のグラデーションとなる。遠い水面ほど濃い黒の画像が加算されることになるので、視点位置から遠い水面ほど暗い画像になる。これにより、遠近感を出すことができる。
【００３１】
次に、生成部７０は、オブジェクトデータベース６２から水中オブジェクトを読み出し、レンダリング部９０に渡す。レンダリング部９０は、カメラの視点位置と視線方向を設定して、水中オブジェクトをレンダリングし、テクスチャメモリ６４に格納する（Ｓ５６）。このとき、マトリクスは水面で反転させる。つづいて、テクスチャメモリ６４の画像に対して、水面効果付加部７４により歪み効果を加え、ＷＰＬＲフィルタを適用し、水面の遠い部分ほど画像が濃くなるようにフレームバッファ６６へ描画する（Ｓ５８）。これにより、水面で反射されて見える水中オブジェクトの画像が描画される。以上の手順により、水上オブジェクトと水中オブジェクトの画像が水面でクロスフェードしたような画像が得られる。水上オブジェクトの画像にはＷＰＬフィルタを、水面で反転させた水中オブジェクトの画像にはＷＰＬＲフィルタを適用しているので、視点から近く、水面と視線方向とのなす角が直角に近いほど、水面を透過する水上オブジェクトの画像が濃く、水面に反射した水中オブジェクトの画像が薄く描画され、逆に、視点から遠く、水面と視線方向とのなす角が小さいほど、水面を透過する水上オブジェクトの画像が薄く、水面に反射した水中オブジェクトの画像が濃く描画されることになる。これにより、水面の様子をよりリアルに再現することができる。
【００３２】
次に、生成部７０は、オブジェクトデータベース６２から水面オブジェクトを読み出し、レンダリング部９０に渡す。レンダリング部９０は、カメラの視点位置と視線方向を設定して、水面オブジェクトをレンダリングし、テクスチャメモリ６４に格納する（Ｓ６０）。このとき、テクスチャアニメーションを利用してもよい。つづいて、テクスチャメモリ６４の画像に対して、水面効果付加部７４により歪み効果を加え、ＷＰＬフィルタを適用し、水面の遠い部分ほど画像が薄くなるようにフレームバッファ６６へ描画する（Ｓ６２）。これにより、水面オブジェクトの画像が描画される。水面の画像に水面オブジェクトの画像を上書きするので、水面付近に配置されたオブジェクトが、水面を透過して見える水上オブジェクトや、水面で反射して見える水中オブジェクトよりも優先して描画される。これにより、より現実感の高い画像を生成することができる。
【００３３】
次に、生成部７０は、オブジェクトデータベース６２から水中オブジェクトを読み出し、レンダリング部９０に渡す。レンダリング部９０は、カメラの視点位置と視線方向を設定して、水中オブジェクトをレンダリングし、フレームバッファ６６に加算する（Ｓ６４）。このとき、草などのオブジェクトが存在する場合は、揺れ効果付加部７６により揺れを表現する効果を付加する。また、必要であれば、フレア効果付加部７８により光の差し込みを表現する効果を付加してもよいし、フォグ効果付加部８０により水中の透明度などを変更してもよい。最後に、フレームバッファ６６の画像に対して、水中効果付加部７２により水のゆらめきを表現する効果を付加する（Ｓ６６）。以上の手順により、水中から見たゲーム世界の画像が適切に生成される。
【００３４】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【００３５】
【図１】実施の形態に係る画像処理装置を含むゲーム装置の構成を示す図である。
【図２】水上オブジェクト、水中オブジェクト、水面オブジェクトの例を示す図である。
【図３】生成部がゲーム画面を生成する手順を示すフローチャートである。
【図４】生成部が水上から見たゲーム世界の画像を生成する手順を示すフローチャートである。
【図５】生成部が水中から見たゲーム世界の画像を生成する手順を示すフローチャートである。
【符号の説明】
【００３６】
１０  ゲーム装置、３０  制御部、４０  表示装置、５０  画像処理装置、６０  記憶部、６２  オブジェクトデータベース、６４  テクスチャメモリ、６６  フレームバッファ、７０  生成部、７２  水中効果付加部、７４  水面効果付加部、７６  揺れ効果付加部、７８  フレア効果付加部、８０  フォグ効果付加部、８２  スケール調整部、９０  レンダリング部。
【図１】
2005346165.tif 000004
【図２】
2005346165.tif 000005
【図３】
2005346165.tif 000006
【図４】
2005346165.tif 000007
【図５】
2005346165.tif 000008