(57)【特許請求の範囲】
【請求項１】
仮想空間における水面を表示するための画像データを出力する画像処理装置であって、
地形部分を表す地形オブジェクトを発生させる地形オブジェクト発生手段、
表示する水面領域よりも大きく、かつ、前記地形オブジェクトと交わるべき領域に固定的な起伏形状が形成された、水面部分を表す水面オブジェクトを発生させる水面オブジェクト発生手段、
前記水面オブジェクトが、前記地形オブジェクトと交わるべき領域で当該地形オブジェクトと交わるように、各オブジェクトの配置位置を決定するオブジェクト配置手段、
前記地形オブジェクトと交わる部分が前記地形オブジェクトと交わるべき領域内で変化するように、前記水面オブジェクトを一体的に移動させるオブジェクト移動手段、および
配置された各オブジェクトによる仮想空間を表示するための画像データを出力する画像データ出力手段を備える、画像処理装置。
【請求項２】
前記オブジェクト移動手段は、前記水面オブジェクトが直線的または曲線的な往復運動をするように、前記水面オブジェクトの配置位置を移動させることを特徴とする、請求項１に記載の画像処理装置。
【請求項３】
前記オブジェクト移動手段は、前記水面オブジェクトが円運動または楕円運動をするように、前記水面オブジェクトの配置位置を移動させることを特徴とする、請求項１に記載の画像処理装置。
【請求項４】
前記水面オブジェクトは、前記地形オブジェクトと交わるべき領域以外の前記地形オブジェクトと交わらない部分が平面であることを特徴とする、請求項１〜３のいずれかに記載の画像処理装置。
【請求項５】
前記水面オブジェクトの表面に貼り付けられる模様がある場合、
前記オブジェクト移動手段は、前記水面オブジェクトを移動させた方向と逆方向にその移動量だけ、模様の貼り付け位置を移動させることを特徴とする、請求項１〜４のいずれかに記載の画像処理装置。
【請求項６】
仮想空間における水面を表示するための画像データを出力する手順を、コンピュータ装置で実行させるための画像処理プログラムであって、
前記コンピュータ装置に、
地形部分を表す地形オブジェクトを発生させる地形オブジェクト発生ステップ、
表示する水面領域よりも大きく、かつ、前記地形オブジェクトと交わるべき領域に固定的な起伏形状が形成された、水面部分を表す水面オブジェクトを発生させる水面オブジェクト発生ステップ、
前記水面オブジェクトが、前記地形オブジェクトと交わるべき領域で当該地形オブジェクトと交わるように、各オブジェクトの配置位置を決定する決定ステップ、
前記地形オブジェクトと交わる部分が前記地形オブジェクトと交わるべき領域内で変化するように、前記水面オブジェクトを一体的に移動させる移動ステップ、および
配置された各オブジェクトによる仮想空間を表示するための画像データを出力する出力ステップを実行させる、画像処理プログラム。
【請求項７】
前記移動ステップは、前記水面オブジェクトが直線的または曲線的な往復運動をするように、前記水面オブジェクトの配置位置を移動させることを特徴とする、請求項６に記載の画像処理プログラム。
【請求項８】
前記移動ステップは、前記水面オブジェクトが円運動または楕円運動を行うように、前記水面オブジェクトの配置位置を移動させることを特徴とする、請求項６に記載の画像処理プログラム。
【請求項９】
前記水面オブジェクトは、前記地形オブジェクトと交わるべき領域以外の前記地形オブジェクトと交わらない部分が平面であることを特徴とする、請求項６〜８のいずれかに記載の画像処理プログラム。
【請求項１０】
前記水面オブジェクトの表面に貼り付けられる模様がある場合、
前記移動ステップは、前記水面オブジェクトを移動させた方向と逆方向にその移動量だけ、模様の貼り付け位置を移動させることを特徴とする、請求項６〜９のいずれかに記載の画像処理プログラム。
【請求項１１】
仮想空間における水面を表示するための画像データを出力する画像処理システムであって、
地形部分を表す地形オブジェクトを発生させる地形オブジェクト発生手段、
表示する水面領域よりも大きく、かつ、前記地形オブジェクトと交わるべき領域に固定的な起伏形状が形成された、水面部分を表す水面オブジェクトを発生させる水面オブジェクト発生手段、
前記水面オブジェクトが、前記地形オブジェクトと交わるべき領域で当該地形オブジェクトと交わるように、各オブジェクトの配置位置を決定するオブジェクト配置手段、
前記地形オブジェクトと交わる部分が前記地形オブジェクトと交わるべき領域内で変化するように、前記水面オブジェクトを一体的に移動させるオブジェクト移動手段、および
配置された各オブジェクトによる仮想空間を表示するための画像データを出力する画像データ出力手段を備える、画像処理システム。
【請求項１２】
仮想空間における水面を表示するための画像データを出力する画像処理装置において用いられる画像処理方法であって、
前記画像処理装置の地形オブジェクト発生手段によって実行される、地形部分を表す地形オブジェクトを発生させる地形オブジェクト発生ステップ、
前記画像処理装置の水面オブジェクト発生手段によって実行される、表示する水面領域よりも大きく、かつ、前記地形オブジェクトと交わるべき領域に固定的な起伏形状が形成された、水面部分を表す水面オブジェクトを発生させる水面オブジェクト発生ステップ、
前記画像処理装置のオブジェクト配置手段によって実行される、前記水面オブジェクトが、前記地形オブジェクトと交わるべき領域で当該地形オブジェクトと交わるように、各オブジェクトの配置位置を決定する決定ステップ、
前記画像処理装置のオブジェクト移動手段によって実行される、前記地形オブジェクトと交わる部分が前記地形オブジェクトと交わるべき領域内で変化するように、前記水面オブジェクトを一体的に移動させる移動ステップ、および
前記画像処理装置の画像データ出力手段によって実行される、配置された各オブジェクトによる仮想空間を表示するための画像データを出力する出力ステップを備える、画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置および画像処理プログラムに関し、より特定的には、仮想三次元空間のゲーム世界等における水面を表示する画像を生成するための画像処理装置、および当該装置で実行される画像処理プログラムに関する。
【０００２】
【従来の技術】
従来、コンピュータを搭載する画像処理装置の一例であるゲーム機では、仮想三次元空間のゲーム世界において、海や川等の動きがある（起伏が生じている）水面の画像を表示する場合がある。このような画像は、主に次の２通りの手法によって表示されることが多い。
【０００３】
図９を参照して従来技術を説明する。まず、第１の手法は、図９（ａ）に示すように、水面オブジェクトＢを構成する平らなポリゴン上に、水面に起伏があるように感じさせる模様を付加し、この水面オブジェクトＢを地形オブジェクトＡに対して固定位置に配置することで、水面の起伏を表現する手法である。
次に、第２の手法は、図９（ｂ）に示すように、水面オブジェクトＢを地形オブジェクトＡに対して固定位置に配置するが、水面オブジェクトＢを複数の細かいポリゴンで構成し、この各ポリゴンの頂点をそれぞれ上下方向に個別に移動させてオブジェクトの表面を変形させることで、水面の起伏を表現する手法である。
【０００４】
【発明が解決しようとする課題】
しかしながら、上述した第１の手法のように、オブジェクト表面の模様だけで水面の起伏を表現する場合には、水面と陸地との境界等では起伏の変化（波が押し寄せては消えるような波打ち際の変化）が見られない。このため、実際の水面に比べて表現力が乏しいと言わざるを得ない。
一方、上述した第２の手法のように、オブジェクトの表面を任意に変形させて水面の起伏を表現する場合には、オブジェクトの構成に多くのポリゴンが用いられるので、十分なデータ記憶領域が必要になると共に、ポリゴンの各頂点を移動させるための計算処理が複雑かつ膨大となる。このため、高速動作が求められるソフトウェア開発では、この第２の手法を採用しにくい。
【０００５】
それ故に、本発明の目的は、水面オブジェクトを構成するポリゴンの頂点を個別に移動させてオブジェクトの表面を変形させることなく、水面の起伏変化を十分に表現できる画像処理装置および画像処理プログラムを提供することである。
【０００６】
【課題を解決するための手段および発明の効果】
本発明は、上記目的を達成するために、以下に述べる特徴を有している。
第１の局面は、仮想空間における水面を表示するための画像データを出力する画像処理装置であって、地形オブジェクト発生手段（実施形態の記載において対応する構成：メインプロセッサ１１）、水面オブジェクト発生手段（メインプロセッサ１１）、オブジェクト配置手段（メインプロセッサ１１）、オブジェクト移動手段（メインプロセッサ１１）、および画像データ出力手段（コプロセッサ１２）を備える。
地形オブジェクト発生手段は、地形部分を表す地形オブジェクトを発生させる。水面オブジェクト発生手段は、表示する水面領域よりも大きく、かつ、所定の範囲に固定的な起伏形状が形成された、水面部分を表す水面オブジェクトを発生させる。オブジェクト配置手段は、水面オブジェクトが、所定の範囲部分で地形オブジェクトと交わるように、各オブジェクトの配置位置を決定する。オブジェクト移動手段は、地形オブジェクトと交わる部分が所定の範囲内で変化するように、水面オブジェクトの配置位置を移動させる。画像データ出力手段は、配置された各オブジェクトによる仮想空間を表示するための画像データを出力する。
【０００７】
上記のように、第１の局面によれば、実際に表現すべき水面領域より大きく、かつ、地形オブジェクトと交わる境界線部分の前後に起伏が形成されるように水面オブジェクトを設定し、この水面オブジェクト全体の位置が移動するように、配置位置を決定する。これにより、水面と陸地とが交わる境界部分を形状変化させることができ、あたかも波打っているかのように水面の起伏を表現することができる。また、水面オブジェクト全体を移動させるので、水面の起伏を表現させるために必要な画像処理の計算量が少なくて済む。
【０００８】
第２の局面は、第１の局面において、オブジェクト移動手段が、水面オブジェクトが直線的または曲線的な往復運動をするように、水面オブジェクトの配置位置を移動させる。
【０００９】
第３の局面は、第１の局面において、オブジェクト移動手段が、水面オブジェクトが円運動または楕円運動をするように、水面オブジェクトの配置位置を移動させる。
【００１０】
上記のように、第２および第３の局面によれば、水面オブジェクト全体の単純な運動だけで、水面と陸地とが交わる境界部分を形状変化させることができる。従って、水面の起伏を表現するために必要な計算処理が簡単となる。
【００１１】
第４の局面は、第１〜第３の局面のいずれかにおいて、水面オブジェクトの所定の範囲以外の地形オブジェクトと交わらない部分を平面とする。
【００１２】
上記のように、第４の局面によれば、地形オブジェクトと交わらない部分を１つの平面ポリゴンで構成することができるので、水面オブジェクトを表示するために必要なデータ量が少なくて済む。
【００１３】
第５の局面は、第１〜第４の局面のいずれかにおいて、水面オブジェクトの表面に貼り付けられる模様がある場合には、オブジェクト移動手段が、水面オブジェクトを移動させた方向と逆方向にその移動量だけ、模様の貼り付け位置を移動させる。
【００１４】
上記のように、第５の局面によれば、水面オブジェクトの移動に伴って表面の模様が移動してしまうことを防ぐことができる。
【００１５】
第６の局面は、仮想空間における水面を表示するための画像データを出力する手順を、コンピュータ装置で実行させるための画像処理プログラムであって、地形オブジェクト発生ステップ（Ｓ６４）、水面オブジェクト発生ステップ（Ｓ６４）、決定ステップ（Ｓ７４，Ｓ７５）、移動ステップ（Ｓ７３）、および出力ステップ（Ｓ６７，Ｓ６８）を含む。
地形オブジェクト発生ステップでは、地形部分を表す地形オブジェクトが発生される。水面オブジェクト発生ステップでは、表示する水面領域よりも大きく、かつ、所定の範囲に固定的な起伏形状が形成された、水面部分を表す水面オブジェクトが発生される。決定ステップでは、水面オブジェクトが、所定の範囲部分で地形オブジェクトと交わるように、各オブジェクトの配置位置が決定される。移動ステップでは、地形オブジェクトと交わる部分が所定の範囲内で変化するように、水面オブジェクトの配置位置を移動させる。出力ステップでは、配置された各オブジェクトによる仮想空間を表示するための画像データが出力される。
【００１６】
第７の局面は、第６の局面において、移動ステップでは、水面オブジェクトが直線的または曲線的な往復運動をするように、水面オブジェクトの配置位置を移動させる。
【００１７】
第８の局面は、第６の局面において、移動ステップでは、水面オブジェクトが円運動または楕円運動を行うように、水面オブジェクトの配置位置を移動させる。
【００１８】
第９の局面は、第６〜第８の局面のいずれかにおいて、水面オブジェクトの所定の範囲以外の地形オブジェクトと交わらない部分を平面とする。
【００１９】
第１０の局面は、第６〜第９の局面のいずれかにおいて、水面オブジェクトの表面に貼り付けられる模様がある場合には、移動ステップでは、水面オブジェクトを移動させた方向と逆方向にその移動量だけ、模様の貼り付け位置を移動させる。
【００２０】
【発明の実施の形態】
本発明は、水面の起伏変化というものが、水面と陸地との境界部分、つまり波打ち際の形状変化によって認識され易く、それ以外の部分（例えば、海の中央部分）の起伏変化では認識され難いことに着目し、水面と陸地とが交わる境界部分のみを形状変化させることにより、あたかも水面が波打っているかのように感じとる人間の錯覚を利用して、水面の起伏を表現するようにしたものである。
【００２１】
本発明が提供する画像処理装置は、ポリゴンによる画像表示を必要とするグラフィックシステムやゲーム機等に用いられ、それらを構成するＣＰＵやメモリ等と協働して特徴的な処理を行うことで実現される。以下、本発明が提供する画像処理装置および当該装置で実行される画像処理プログラムを、図１〜図８を参照して説明する。
【００２２】
（本発明を実現させるためのシステム環境）
図１に、本発明の一実施形態に係る画像処理装置を含むビデオゲームシステムの構成例を示す。図１において、ビデオゲームシステムは、メインプロセッサ１１、コプロセッサ１２、メモリ１３およびドライブユニット１４を備えるメインユニットと、ゲームコントローラ１６と、表示部１５と、ゲームディスク１７とで構成される。本実施形態の画像処理装置は、基本的にメインプロセッサ１１、コプロセッサ１２およびメモリ１３で構成されることとなる。
【００２３】
メインプロセッサ１１は、ゲームプログラムを実行する。メインプロセッサ１１には、コプロセッサ１２が接続される。コプロセッサ１２は、バス制御を行うためのバス制御回路と、ポリゴンの座標変換や陰影処理等を行うための信号プロセッサと、ポリゴンデータを表示すべき画像にラスタライズし、かつフレームメモリに記憶可能なデータ形式（ドットデータ）に変換するための描画プロセッサとを含む（いずれも図示せず）。コプロセッサ１２には、ゲームディスク１７を駆動させるドライブユニット１４とメモリ１３とが接続される。また、コプロセッサ１２には、メインプロセッサ１１によって処理されたデータに基づく音声信号および映像信号をそれぞれ出力するためのデジタル／アナログ変換器（図示せず）を介して、表示部１５が接続される。また、コプロセッサ１２には、ゲームコントローラ１６が接続される。
バス制御回路は、バスを介してメインプロセッサ１１からパラレル信号で与えられたコマンドをシリアル信号に変換して、ゲームコントローラ１６に供給する。また、バス制御回路は、ゲームコントローラ１６からシリアル信号で与えられたコマンドをパラレル信号に変換して、メインプロセッサ１１へ出力する。ゲームコントローラ１６から入力される操作状態を示すデータは、メインプロセッサ１１によって処理されたり、メモリ１３に一時記憶される等の処理が行われる。ゲームディスク１７に格納されているプログラムは、必要に応じてメモリ１３に転送されて記憶される。メモリ１３に記憶されたプログラムは、ゲームコントローラ１６から入力される操作に応じて、メインプロセッサ１１で実行処理される。実行された結果は、コプロセッサ１２によって表示部１５の画面上に表示される。
【００２４】
図１において、本実施形態の画像処理装置で実行される画像処理プログラムは、ゲームディスク１７に格納され、かつ、メモリ１３に転送されて記憶され、メインプロセッサ１１で実行される。メモリ１３には、図２のメモリマップで示されるプログラムおよびデータが格納される。また、ゲームディスク１７は、ＤＶＤ等の記録媒体であって、図３のメモリマップで示されるプログラムおよびデータが格納される。
【００２５】
図２を参照して、メモリ１３において、プログラム領域には、ゲームを動作させるための基本的なプログラムに加え、水面オブジェクト発生プログラム、地形オブジェクト発生プログラム、オブジェクト配置プログラム、および水面オブジェクト移動プログラム等が格納されている。画像データ領域には、オブジェクトの画像データ（ポリゴンデータやテクスチャ画像データ）が格納される。オブジェクト配置データ領域には、地形オブジェクトの配置位置データと水面オブジェクトの基準位置データが記憶される。計算用バッファは、オブジェクトの配置位置の算出等に用いられるバッファである。オブジェクトリスト領域には、１枚のフレーム画像を構成するために必要なオブジェクトの情報が格納される（具体的には、オブジェクト指定番号と各オブジェクトの配置位置の情報が格納される）。フレームバッファには、オブジェクトリスト領域のデータに基づいて、コプロセッサ１２によって１フレームの画像が生成されて格納される。
ゲームディスク１７において、メインプログラム領域には、ゲームを動作させるための基本的なプログラムが格納されている。オブジェクト発生プログラム領域には、水面オブジェクト発生プログラム、地形オブジェクト発生プログラム、オブジェクト配置プログラムおよび水面オブジェクト移動プログラム等の画像処理プログラムが格納されている。その他のプログラム領域には、メインプログラムおよびオブジェクト発生プログラム以外のプログラムが格納されている。画像データ領域には、水面オブジェクトや地形オブジェクトに関する様々なデータ（ゲームのグラフィック表示に必要なポリゴンおよびテクスチャ等）が格納されている。オブジェクト配置データ領域には、地形オブジェクトの配置位置データと水面オブジェクトの基準位置データが記憶される。音データ領域には、ゲームの音表現に関する様々なデータが格納されている。
【００２６】
なお、メモリ１３のプログラム領域，画像データ領域，オブジェクト配置データ領域に記憶されるデータは、ゲームディスク１７に格納される該当データが転送されて記憶される。
【００２７】
（水面オブジェクトの設定）
次に、水面の起伏を表現するために、本発明が用いた水面オブジェクトの設定手法（水面オブジェクト発生プログラム）を、図４を参照して説明する。図４は、仮想三次元空間で表現される地形オブジェクトＡおよび水面オブジェクトＢを垂直断面で表した一例である。
今、地形オブジェクトＡに対して破線位置が水面となるように、水面オブジェクトを設定する場合を考える（図４（ａ））。この場合、水面（破線）が地形オブジェクトＡと交わる境界線Ｐから所定の範囲２ｄの部分に複数のポリゴンによって起伏を固定的に形成し、それ以外の部分は平面ポリゴンによって形成する水面オブジェクトＢを設定する（図４（ｂ））。
【００２８】
地形オブジェクトと水面オブジェクトは、図５に示すように、コプロセッサ１２によって隠面処理される。すなわち、水面オブジェクトＢのうち地形オブジェクトＡとの境界線より外側の領域（地形オブジェクトＡ側にはみだす領域）は、地形オブジェクトＡによって隠されて表示されない。
【００２９】
ここで、起伏が形成される所定の範囲２ｄは、後述する水面オブジェクト移動処理における移動幅以上に設定される。また、所定の範囲２ｄの起伏形状をランダムに形成すれば、隠面処理によって水際ラインが不規則に表現されるので自然的でよい。
このように、本発明が用いる水面オブジェクトは、実際に表現すべき水面領域より大きく、かつ、地形オブジェクトと交わる境界線部分の前後だけ起伏が形成されるように設定される。
【００３０】
（画像処理プログラムの実行手順）
次に、図６〜図８をさらに参照して、図１に示すビデオゲームシステムにおいて、画像処理装置によってどのように画像処理プログラムが実行され、処理された画像がディスプレイの画面に表示されるのかを説明する。
図６は、本発明の一実施形態に係る画像処理装置において画像処理プログラムが実行される手順を説明するためのフローチャートである。図７は、図６のステップＳ６５の詳細な手順を説明するためのフローチャートである。図８は、水面オブジェクトの移動処理を説明するための図である。
【００３１】
図６を参照して、はじめに、電源投入時に動作するプログラムによって初期設定が行われる（ステップＳ６１）。この初期設定では、ゲームディスク１７がセットされているか否かや、ゲームコントローラ１６が接続されているか否か等が検出される。初期設定が完了すると、ゲームディスク１７からメモリ１３へ必要なプログラムおよびデータが転送される（ステップＳ６２）。次に、メインプロセッサ１１が、メモリ１３のプログラム領域に記憶された画像処理プログラムの実行を開始し（ステップＳ６３）、メモリ１３のオブジェクトデータ記憶領域から、各オブジェクト（水面オブジェクト、地形オブジェクト、キャラクタ等）のデータを読み出す（ステップＳ６４）。そして、メインプロセッサ１１によって、読み出された各オブジェクトのワールド座標系上の配置位置が決定される（ステップＳ６５）。
【００３２】
ここで、図７を参照して、上記ステップＳ６５で行われる配置位置決定処理を詳細に説明する。
メインプロセッサ１１は、まず、複数のオブジェクトの中から処理対象とするオブジェクトを決定する（ステップＳ７１）。次に、メインプロセッサ１１は、決定した処理対象とするオブジェクトが水面オブジェクトか否かを判断する（ステップＳ７２）。ここで水面オブジェクトでない（地形オブジェクトやキャラクタ等である）と判断した場合（ステップＳ７２，Ｎｏ）、メインプロセッサ１１は、読み出したそのオブジェクトの位置データを配置位置として決定し（地形オブジェクトの場合は、メモリ１３のオブジェクト配置データ領域から地形オブジェクトの配置位置データを読出し、キャラクタの場合は、ゲームコントローラの操作に基づいて配置位置が決定される）（ステップＳ７４）、処理対象とするオブジェクトをワールド座標系に配置させる（ステップＳ７５）。
【００３３】
一方、水面オブジェクトであると判断した場合（ステップＳ７２，Ｙｅｓ）、メインプロセッサ１１は、メモリ１３のオブジェクト配置データ領域から水面オブジェクトの基準位置データを読み出し、当該基準位置データを基準として、現在時間（フレーム）における水面オブジェクトの配置位置を計算する（ステップＳ７３）。ここで、メインプロセッサ１１は、所定の時間（フレーム）間隔で見た場合、地形オブジェクトに対する水面オブジェクトの位置が所定の範囲２ｄ内で連続的に移動するように、次式に従って水面オブジェクトの配置位置を計算する。
ｐｘ（ｔ）＝ｐｘ０＋ｖｘ（ｔ）
ｐｙ（ｔ）＝ｐｙ０＋ｖｙ（ｔ）
上記式において、ｐｘ０およびｐｙ０は、水面オブジェクトの基本位置を示すＸ座標およびＹ座標であり、ゲームディスク１７およびメモリ１３のオブジェクト配置データ領域に記憶される水面オブジェクトの基準位置データである。ｖｘ（ｔ）およびｖｙ（ｔ）は、時間ｔにおける水面オブジェクトの基本位置からのＸ方向移動量およびＹ方向移動量である。ｐｘ（ｔ）およびｐｙ（ｔ）は、時間ｔにおける水面オブジェクトの配置位置を示すＸ座標およびＹ座標である。具体的には、ｖｘ（ｔ）は、時間ｔをパラメータとする所定の関数Ｘ（ｔ）に基づいて決定され、ｖｙ（ｔ）は、時間ｔをパラメータとする所定の関数Ｙ（ｔ）に基づいて決定される。
【００３４】
例えば、関数Ｘ（ｔ）を「ｄＣＯＳ（ωｔ）」と、関数Ｙ（ｔ）を「０」と設定した場合、図４（ｂ）に示した水面オブジェクトＢは、時間ｔの進行（ｔ１→ｔ５）に応じて図８（ａ）〜（ｅ）のように配置位置が順に移動する（Ｘ方向に往復スライド運動を行う）。さらに、関数Ｙ（ｔ）をも「ｄＳＩＮ（ωｔ）」と設定すれば、水面オブジェクトＢは、移動軌跡が円を描くように配置位置が移動する。
【００３５】
ところで、水面オブジェクトの表面には、何らかの模様が貼り付けられる場合がある。このような場合、上述した水面オブジェクトの配置位置を時間的に移動させる処理を行うと、表面の模様も一緒に動いてしまうこととなる。そこで、本発明では次式のように、メインプロセッサ１１が、表面に模様が付される水面オブジェクトについては、模様の貼り付け位置を、オブジェクトの移動方向とは逆方向に同一変化量で移動させて、模様の位置を静止させることを行う（ステップＳ７３）。
ｍｘ（ｔ）＝ｍｘ０−ｖｘ（ｔ）
ｍｙ（ｔ）＝ｍｙ０−ｖｙ（ｔ）
上記式において、ｍｘ０およびｍｙ０は、水面オブジェクトに付される模様の基本位置を示すＸ座標およびＹ座標である。ｍｘ（ｔ）およびｍｙ（ｔ）は、時間ｔにおける水面オブジェクトの模様の貼り付け位置を示すＸ座標およびＹ座標である。
【００３６】
そして、メインプロセッサ１１は、上記位置計算処理によって計算された位置データに従って、水面オブジェクトをワールド座標系に配置させる（ステップＳ７５）。上記ステップＳ７１〜Ｓ７５の配置位置決定処理は、１フレーム内に描かれる全てのオブジェクトについて繰り返し行われる（ステップＳ７６）。
なお、上記図７の例では、処理対象とするオブジェクト毎に水面オブジェクトか否かを判断しているが（ステップＳ７２）、この判断を行うことなく、水面オブジェクト以外を全て先に処理し、その後水面オブジェクトを処理するように、予めプログラムされていてもよい。
【００３７】
再び図６を参照して、全てのオブジェクトについてワールド座標系上の配置位置が決定されると、メインプロセッサ１１が、ゲームプレーヤの視点に対応する仮想カメラをワールド座標系に配置し、この仮想カメラに基づいて各オブジェクトをカメラ座標系に変換する（ステップＳ６６）。この変換は、行列変換およびメモリ座標上の二次元座標変換によって実現される。次に、コプロセッサ１２が、カメラ座標系に変換された各オブジェクトにレンダリング処理を行って、各オブジェクトの画像データをフレームバッファに書き込む（ステップＳ６７）。そして、コプロセッサ１２が、フレームバッファに書き込まれた画像データに基づいて、表示部１５に画像信号を出力する（ステップＳ６８）。
上記ステップＳ６３〜Ｓ６８の画像処理は、ゲームが終了するまで繰り返して行われる（ステップＳ６９）。
【００３８】
以上のように、本発明の一実施形態に係る画像処理装置および画像処理プログラムによれば、実際に表現すべき水面領域より大きく、かつ、地形オブジェクトと交わる境界線部分の前後に起伏が形成されるように水面オブジェクトを設定し、この水面オブジェクト全体の位置が移動するように、配置位置を決定する。これにより、水面と陸地とが交わる境界部分のみを形状変化させることができ、あたかも波打っているかのように水面の起伏を表現することができる。
このように、本発明では、水面オブジェクトを構成するポリゴンの形状を個々に変化させるのではなく、特徴的な形状の水面オブジェクト全体を移動させるので、水面の起伏を表現させるために必要な画像処理の計算量が少なくて済む。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る画像処理装置を含むビデオゲームシステムの構成例を示すブロック図である。
【図２】図１におけるメモリ１３のメモリマップの一例を示す図である。
【図３】図１におけるゲームディスク１７のメモリマップの一例を示す図である。
【図４】仮想三次元空間で表現される水面オブジェクトおよび地形オブジェクトを垂直断面で表した一例である。
【図５】隠面処理による地形オブジェクトＡおよび水面オブジェクトＢの見え方の一例を示す図である。
【図６】本発明の一実施形態に係る画像処理装置において画像処理プログラムが実行される手順を説明するためのフローチャートである。
【図７】図６のステップＳ６５の詳細な手順を説明するためのフローチャートである。
【図８】図４に示した水面オブジェクトの配置位置が、時間ｔの進行に応じて移動する一例を説明する図である。
【図９】従来の仮想三次元空間で表現される水面オブジェクトおよび地形オブジェクトを垂直断面で表した一例である。
【符号の説明】
１１…メインプロセッサ
１２…コプロセッサ
１３…メモリ
１４…ドライブユニット
１５…表示部
１６…ゲームコントローラ
１７…ゲームディスク
【図１】
0004726355.tif 000002
【図２】
0004726355.tif 000003
【図３】
0004726355.tif 000004
【図４】
0004726355.tif 000005
【図５】
0004726355.tif 000006
【図６】
0004726355.tif 000007
【図７】
0004726355.tif 000008
【図８】
0004726355.tif 000009
【図９】
0004726355.tif 000010