(57)【特許請求の範囲】
【請求項１】
コンピュータに、仮想空間中を水平方向及び高さ方向に移動可能な所与の視点から見た水面を含む仮想空間の画像を生成して所与のゲームを実行させるためのプログラムであって、
前記水面を表すための板状の透過体を前記水面に配置する透過体配置手段、
前記所与の視点から前記水面を見た際の視線方向に応じた色味が配色された仮想体を前記所与の視点の移動に追従して前記所与の視点の直下に位置するように配置する仮想体配置手段、
前記水面を描画する際に、前記所与の視点から見て前記仮想体と前記透過体とが重なる部分それそれぞれの色情報を合成して描画する描画手段、
として前記コンピュータを機能させるためのプログラム。
【請求項２】
請求項１に記載のプログラムであって、
前記仮想体配置手段が、前記所与の視点の高さ方向の位置変化に対して同方向に移動するように前記仮想体を位置変化させる、ように前記コンピュータを機能させるためのプログラム。
【請求項３】
請求項１又は２に記載のプログラムであって、
前記仮想体配置手段が、前記仮想体の代表点が前記所与の視点の直下であって且つ、前記仮想体の代表点の水平位置が前記所与の視点の水平位置に位置するように前記仮想体を配置するように前記コンピュータを機能させるためのプログラム。
【請求項４】
請求項１〜３の何れか一項に記載のプログラムであって、
前記仮想空間に地表描画範囲を設定する手段として前記コンピュータを機能させ、
前記仮想体配置手段が、前記仮想体の縁部と前記所与の視点を通る直線が、前記地表描画範囲の縁部に交差するように前記仮想体を配置する、ように機能させるためのプログラム。
【請求項５】
請求項１〜４の何れか一項に記載のプログラムであって、
前記仮想体配置手段が、更に、前記仮想体の基準方向を、前記仮想空間における光源の方向に向けて配置する、ように機能させるためのプログラム。
【請求項６】
請求項１〜５の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項７】
仮想空間中を水平方向及び高さ方向に移動可能な所与の視点から見た水面を含む仮想空間の画像を生成して所与のゲームを実行するゲーム装置であって、
前記水面を表すための板状の透過体を前記水面に配置する透過体配置手段と、
前記所与の視点から前記水面を見た際の視線方向に応じた色味が配色された仮想体を前記所与の視点の移動に追従して前記所与の視点の直下に位置するように配置する仮想体配置手段と、
前記水面を描画する際に、前記所与の視点から見て前記仮想体と前記透過体とが重なる部分それそれぞれの色情報を合成して描画する描画手段と、
を備えたゲーム装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータに、所与の視点に基づく仮想空間の画像を生成して所与のゲームを実行させるためのプログラム等に関する。
【０００２】
【従来の技術】
近年では、三次元の仮想空間と、この仮想空間内を移動可能な移動体とを構築し、所与の視点に基づいてこれらの仮想空間を描画して画像を生成し、表示してなるゲームが種々開発されている。すなわち、ゲームのプレーヤは、コントローラを用いて特定の移動体の移動方向や動作を指示し、ゲーム装置は、このコントローラから入力される指示信号に従って移動体を仮想空間内で行動させ、画像を生成している。この手のゲームでは、仮想空間を意図的に歪ませて表現したり、平面的に表現することによって、独特の雰囲気を醸し出し、特殊な効果を期待するものもあるが、尤らしい仮想空間を作り上げてリアルな画像を生成し、現実味のあるゲームを展開するものもある。すなわち、現実的な画像を表示することによって、ゲームにおける臨場感を高め、また、ゲームの展開に迫力や説得力を持たせ、プレーヤをゲームに引きつけ没頭させるように工夫したゲームもある。
【０００３】
しかし、リアルな画像を生成するためには、緻密な仮想空間を構築し、その仮想空間に配置された物体（すなわち、オブジェクト）の１つ１つに対して視点との位置関係を計算し、更に、光源処理等の物理的な計算を施して、描画しなければならない。換言すれば、説得力のある画像を生成しようとすればするほど、画像生成処理にかかる負担が増大し、画像の生成速度が遅くなる。一方で、ゲームの実行中において、次の１枚の画像を表示するまでの時間には制限がある。いわゆる１インターと呼ばれるものである。すなわち、画像を生成する速度が遅くなれば、次の画像を表示するタイミングに間に合わず、ゲームとして成立しないという問題が生じる。
【０００４】
そこで、画像を生成する際に、画面上にはっきりとは見えない部分に関しては表現を簡単化して処理の煩雑化を防ぐという方法がよく使われる。例えば、視点に対して遠方に存在する景色等は明瞭に描写する必要はなく、むしろぼかして表現することが望ましい場合がある。係る部分について処理を簡略して表現する方法の１つとして、その部分や範囲に板状のオブジェクトを配置し、このオブジェクトの表面にゲーム実行中の処理とは別の過程で予め生成した画像を貼りつけるといった方法がある。具体的には、視点に対する距離を基準として描画する範囲と描画しない範囲とを決定し、その境界線上に環境の画像を貼り付けた板状のオブジェクトを立て看板のように配置して表現している。
【０００５】
【発明が解決しようとする課題】
上記のような簡単化は、視点の位置の変化が小さいゲームでは、ほとんど問題を発生しない。これは、視点の移動範囲が狭い場合には、その狭い範囲から見える環境さえ尤らしく見えれば、他の角度や位置からの見え方などを考慮する必要がないからである。例えば、現実の世界において、十分遠方に見える山や星などの見え方は、視点の位置が多少ずれたとしても変化しない。これと同様に、仮想空間において、視点の位置から十分遠方に存在する環境を１種類の画像によって表現した場合であっても、視点の位置をそれほど移動させなければ不自然に見えることはない。
【０００６】
しかしながら、視点の位置が連続的に広範囲にわたって移動するようなゲームでは、予め用意してある１種類の画像によって遠景を表現するには無理が生じる場合がある。すなわち、視点の移動範囲が広い場合には、当初視点から見て遠方にあった場所も、視点の移動に伴って近景に至る可能性があり、係る場合には、徐々に詳細な部分が明瞭と化すように表現しなければならない。ところが、上記簡単化の方法によって遠方を表現すると、視点の位置に応じた無数の遠景画像が必要となるばかりでなく、遠景画像を切り替えるタイミングや、遠景から近景へと切り替わるタイミングが離散的にならざるを得ず、不自然な印象を与えかねない。また、視点の進行方向に存在する背景だけでなく、進行方向に対して垂直な方向にある背景についても、視点の連続的且つ高速な移動に伴って徐々に見え方を変化させる必要がある。このように、ゲームの進行に伴って遠景の範囲が刻々と変化するようなゲームにあっては、遠方を予め用意した画像によって表現する方法は適さず、却ってプレーヤに違和感を与える恐れがあった。
【０００７】
とりわけ、海や湖などの水面は、視点の位置や視線方向に応じて多様に変化して見えるため、尤らしく表現することが困難である。例えば、海上において海を見渡したとき、水平線近傍の海の色は雲や空の淡い色を反映した若干淡い青色に見えるが、一方、海を真下に見下ろしたときの色は、その周辺が深い海であれば、光を吸収して濃く深い青色に見えることがある。また、比較的低い位置から海を見下ろした場合と、比較的高い上空から海を見下ろした場合とでも海の見え方は異なる。すなわち、近くから海を見下ろした場合には、波のきらめきや、濃く深い海の色を見ることができるものの、高い位置から見下ろした場合には、もはや波は認識できず、また、大気等の影響を受けて海が若干空の色に溶け込んで見えるようになる。
【０００８】
このように、海や湖等の水面の示す色は必ずしも均一ではなく、視点の位置や視線方向との関係に応じて示す色に若干の変化が生じる。係る海や湖等の表現を、視点が広範囲に移動できるゲームに適用するためには、視点の位置や視線方向の変化に伴って海の色も変化させなければならない。しかし、上述のように、１種類の画像や青色を持った板状のオブジェクトによって海を表現した場合、視点の位置や視線方向の変化に伴う海の色彩の滑らかな変化を尤らしく表現することは困難である。
【０００９】
本発明の課題は、上記事項に鑑みて成されたものであって、視点の位置や視線方向の変化に伴って見え方の変化する物体について、その物体との距離感を損なうことなくリアルに表現することである。
【００１０】
【課題を解決するための手段】
上記課題を解決するための発明として、コンピュータに、仮想空間中を水平方向及び高さ方向に移動可能な所与の視点から見た水面を含む仮想空間の画像を生成して所与のゲームを実行させるためのプログラムであって、
前記水面の色を、前記仮想空間における前記所与の視点の水平位置からの距離に基づいて変更する水面色変更手段（例えば、図１５に示す色決定部２４２）として前記コンピュータを機能させるためのプログラムの発明が考えられる。
【００１１】
また他の発明として、仮想空間中を水平方向及び高さ方向に移動可能な所与の視点から見た水面を含む仮想空間の画像を生成して所与のゲームを実行するゲーム装置であって、前記水面の色を、前記仮想空間における前記所与の視点の水平位置からの距離に基づいて変更する水面色変更手段（例えば、図１５に示す色決定部２４２）を備えるゲーム装置の発明が考えられる。
【００１２】
この発明によれば、視点の水平位置からの距離に応じて仮想空間内に設定する水面の色を変更することができる。すなわち、仮想空間内を視点が水平方向に移動した場合であっても、視点の水平位置からの距離に基づいて水面の色を決めることができるため、視点に対して近い水面の色と、遠くの水面の色とを異なる色味で表現することができる。したがって、水面の奥行感をより尤らしく表現することができる。
【００１３】
またその他の発明として次のような発明が考えられる。
まず第１の発明として、コンピュータに、所与の視点に基づく仮想空間の画像を生成して所与のゲームを実行させるためのプログラムであって、所与の水平面（例えば、本実施の形態における地表面５０）を前記仮想空間に設定する設定手段（例えば、図１５に示す地形データ３３０）と、板状の透過体（例えば、本実施の形態における半透明ポリゴン）を前記所与の水平面に配置する透過体配置手段（例えば、図１５に示す地形制御部２２２）と、所与の色情報を有する仮想体を前記仮想空間に配置する仮想体配置手段（例えば、図１５に示す仮想体配置部２２４）と、前記透過体を描画する際に、前記所与の視点と前記仮想体の所与の点とを結ぶ直線が前記透過体と交差する場合には、当該透過体の色情報と当該仮想体の色情報とを合成して当該透過体を描画する描画手段（例えば、図１５に示す描画部２４６）として前記コンピュータを機能させるプログラムを構成してもよい。
【００１４】
ここで、透過体とは、完全に透明に設定されたポリゴンやオブジェクトに限らず、所与の不透明度が設定された半透過体であってもかまわない。また、水平面とは、完全に水平な面である必要はなく、若干の傾斜を持った面を含むものである。
【００１５】
この第１の発明によれば、仮想空間に水平面を定義し、この水平面に沿って透過体が配置される。また、この透過体により表現する物体の色を、仮想体の色と合成することによって決定する。すなわち、個々の透過体の色は、個々の透過体に設定される固定的な色のみならず、別途独立して設定される仮想体の色情報が加味されて決定される。したがって、例えば、視点の位置（あるいは、座標）の移動に伴って仮想体の色を変化させれば、水平面上に配置された個々の透過体の視点に対する位置関係に矛盾を来すことなく、透過体の色味のみを変更して表現することができる。
【００１６】
例えば、海や湖などを含む画像を生成するに際し、水面を透過体により表現し、その海や湖の色を仮想体によって表現すれば、仮想空間における水面の位置と、その水面に与える色とをそれぞれ切り離して決定することができる。すなわち、視点の位置の変化に伴って仮想体の色情報のみを変更すれば、水面と視点との物理的な位置関係に矛盾を来すことなく、海や湖の色を変化させて奥行感を強調することができる。したがって、第２の発明として、第１の発明のプログラムであって、前記設定手段が、前記仮想空間に含まれる水面を前記所与の水平面とする（例えば、図１５に示す地形データ３３０による半透明ポリゴン）、ように機能させるためのプログラムを構成してもよい。ここで、水面とは、海や湖沼、河川、田畑、池、水溜りなど、動不動を問わず液体がまとまって存在する際の表面を含む意である。
【００１７】
また、第３の発明として、第２の発明のプログラムであって、前記透過体配置手段が、前記水面下に物体が存在する場合には、当該物体の色情報を前記透過体の色情報に含ませる、ように機能させるためのプログラムを構成してもよい。
【００１８】
この第３の発明によれば、透過体により水面を表現する場合において、その水面下に物体の存在を表現する際には、その物体の色を透過体の色情報に含ませる。このとき、透過体の色情報に含まれた物体の色情報は、透過体を描画する際に仮想体の色情報と合成されることとなる。したがって、物体の色情報にも海や湖の色味が含まれることとなり、水面下に物体が水をかぶって存在するかのように表現することができる。
【００１９】
係る発明は、海等の深さを表現する場合にも好適である。すなわち、海の色等は、視点の向きや位置に応じて変化するだけでなく、海底の深さに応じても異なって見える。例えば、海底が深い場合には、海の表面の色は濃く深い青色であり、浅瀬や珊瑚礁の海の色は明るい青色やエメラルドグリーンに見えることがある。こうした深さに応じた海などの色を表現するために、透過体に浅瀬の色（例えば、白色や黄色など）や珊瑚礁の色を含ませれば、それ以外の部分と比較して海や湖の色を淡い色合いに表現でき、係る部分が浅瀬であることを知らしめることができる。
【００２０】
また、第４の発明として、第１から第３のいずれかの発明のプログラムであって、前記仮想体は所定形状であって、前記仮想体配置手段が、前記所与の視点に追従させて前記仮想体を前記仮想空間に配置する、ように機能させるためのプログラムを構成してもよい。
【００２１】
この第４の発明によれば、仮想体を所定の形状とし、視点に追従させるものとした。例えば、水平面に対する視点からの垂直線を算出し、その垂線と仮想体の所定位置が交差するように仮想体を配置すれば、視点の位置（座標）が変化しても、その垂線と視線ベクトルとの成す角に応じた視線ベクトルが指す仮想体の位置は変化しない。すなわち、仮想体の形状と色情報とを固定的に設定し、更に視点に追従させれば、その視点に追従させる方向ベクトルと視線ベクトルとの成す角に応じた仮想体の見え方を固定的に設定することができる。
【００２２】
例えば、海の画像を生成するに際して、仮想体を、平面的な正方形に設定し、その中心から縁にかけて深い海の色から淡い海の色へと徐々に変化させた色味を設定する。そして、視点の鉛直下方向にこの仮想体を追従させて配置すれば、視点の位置の移動に拘わらず、視点の鉛直下方向にある海の色を常に深い色によって表現し、視線ベクトルと鉛直線との成す角の増加に伴って海の色を明るく表現することができる。
【００２３】
また、第５の発明として、第４の発明のプログラムであって、前記仮想空間に地表描画範囲（例えば、本実施の形態における最大描画範囲５４）を設定する手段（例えば、図１５に示す地形制御部２２２）として更に前記コンピュータを機能させ、前記仮想体配置手段が、前記仮想体の縁部（例えば、本実施の形態における仮想体４０の上底円周４２）と前記所与の視点を通る直線が、前記地表描画範囲の縁部（例えば、本実施の形態における最大描画円周５２）に交差するように前記仮想体を配置する、ように機能させ、前記設定手段が、前記地表描画範囲内に前記所与の水平面を設定する（例えば、図１５に示す地形データ３３０；半透明ポリゴンの座標情報）ように機能させるためのプログラムを構成してもよい。
【００２４】
この第５の発明によれば、仮想体の縁部が地表描画範囲の縁部と視点とを結ぶ線分上に位置するように仮想体の配置位置を決定する。すなわち、仮想体が画面上に描画される範囲と、地表（地形）が描画される範囲とが常に等しく、画面上に地表が描画される範囲を超えて仮想体がはみ出して表現されることがない。したがって、例えば、仮想体と透過体の描画位置の重なり判定等の処理を必要とすることなく、仮想体を描画した後、その上から地表を描画することにより、透過体によって構成される水面部分にのみ仮想体の色情報を残し、矛盾なく地表全体を表現することができる。
【００２５】
また、第６の発明として、第１から第５のいずれかの発明のプログラムであって、前記仮想体配置手段が、前記仮想体の基準方向（例えば、本実施の形態における仮想体４０を定義するローカル座標系におけるｘ軸方向）を、前記仮想空間における所与の方向に向けて配置する、ように機能させるためのプログラムを構成してもよい。
【００２６】
この第６の発明によれば、仮想体をその基準となる方向を仮想空間における所与の向に向けて配置する。例えば、仮想体を定義するローカル座標系（ｘ，ｙ，ｚ）におけるｙ軸が、仮想空間における水平面と垂直に交わり、且つ、視点を向くように仮想体を配置した場合において、仮想体のｘ軸，ｚ軸の仮想空間において指す向きは任意となる。係る場合において、例えば、仮想体のｘ軸を基準方向とし、仮想空間における所与の方向に向けて配置することとすれば、仮想体の配置位置および向きを一意に決定することができるとともに、仮想空間における東西南北および上下方向といった方向と対応するように仮想体の色を定義し、且つ、配置することができる。
【００２７】
なお、仮想空間における所与の方向とは、光源の方向であってもよいことは勿論である。したがって、第７の発明として、第６の発明のプログラムであって、前記仮想体配置手段が、前記仮想空間における光源の方向を前記所与の方向とする、ように機能させるためのプログラムを構成してもよい。ここで、光源の方向とは、仮想空間に点光源が設定されている場合には、この点光源の座標の方向となり、無限光源（すなわち、平行光線）が設定されている場合には、光線ベクトルの指す向きと逆方向となる。
【００２８】
なお、海や湖などの色の変化は、視点の水平方向に対する移動や視線方向の変化に伴って変わるだけでなく、視点の高度に応じて変化する場合もある。例えば、水面に対する視点の高度が十分高くなると、水面は大気や雲等の影響を受けて霞んで明瞭には見えなくなることがある。係る場合においては、視点の高度に応じて仮想体の色を変化させることが望ましい。すなわち、第８の発明として、第１から第７のいずれかの発明のプログラムであって、少なくとも、前記仮想空間における前記所与の視点の高度（例えば、本実施の形態における仮想空間での視点のＹ座標）に応じて、前記仮想体の色情報を決定する色決定手段（例えば、図１５に示す色決定手段２４２）として前記コンピュータを更に機能させるためのプログラムを構成してもよい。
【００２９】
また、第９の発明として、第８の発明のプログラムであって、前記色決定手段は、前記仮想体に特定点及び当該特定点の色情報を設定（例えば、図９に示す特定点テーブル３２８）するとともに、少なくとも前記所与の視点の高度に応じて、前記特定点の色情報を変更する特定点設定手段（例えば、図１５に示す色決定手段２４２）を備え、この特定点設定手段により設定された特定点の色情報に基づいて、前記仮想体における所与の位置の色情報を決定する、ように機能させるためのプログラムを構成してもよい。
【００３０】
この第９の発明によれば、仮想体の色情報を変更するに際し、仮想体上に設定した特定な点の色情報のみを変更すれば、仮想体における他の点の色情報についても変更することができる。例えば、仮想体を複数のポリゴン（すなわち、複数の頂点）によって定義する場合、通常、各ポリゴンの色を変更するためには、各頂点の１つ１つに対して変更後の色を予め記憶しておく必要がある。しかし、本発明によれば、特定点の色情報のみを記憶しておけば足り、少ない情報量によって仮想体の多様な色味の変化を実現することができる。
【００３１】
また、第１０の発明として、第９の発明のプログラムであって、前記特定点設定手段が、複数の特定点を前記仮想体に設定し、当該複数の特定点の内、少なくとも一の特定点の色情報と他の特定点の色情報とを前記所与の視点の位置に基づいて配合し、配合した色情報を当該他の特定点の色情報として設定する、ように機能させるためのプログラムを構成してもよい。
【００３２】
この第１０の発明によれば、視点の位置の変化に伴って、所与の特定点の色情報に対して他の一以上の特定点の色情報を配合することができる。換言すれば、視点の仮想空間における所与の位置から他の位置への変更に伴って、所与の特定点の色を他の特定点の色に近づけることができる。例えば、視点が仮想空間における雲の下から雲のない場所へと移動する場合において、その視点の移動に伴って、暗い色情報を有する特定点に対して、明るい色を持つ特定点の色情報を配合して行けば、徐々に海の色を全体的に明るく変化させて表現することができる。
【００３３】
また、視点の高度に応じて１の特定点の色情報に対する他の特定点の色情報の配合率を変化させる構成にしてもよい。すなわち、第１１の発明として、第１０の発明のプログラムであって、前記特定点設定手段が、前記所与の視点の高度が上がるに従って、前記他の特定点の色情報を、前記少なくとも一の特定点の色情報に近づけるように前記配合を行う、ように機能させるためのプログラムを構成してもよい。
【００３４】
この第１１の発明によれば、例えば、海を表現する場合において、仮想体に、水平線近傍の色情報を有する特定点と、深い海の色情報を有する特定点とを設定する。係る場合において、視点の高度が高くなるに従って、深い海の色情報を有する特定点に対し、水平線近傍の海の色を配合していけば、視点が高くなるにつれて海の色が明るく輝くように変更することができる。すなわち、視点の高度の変化をより尤らしく表現することができる。
【００３５】
なお、仮想体上の特定点の色をフォグの色として設定してもよいことは勿論である。すなわち、第１２の発明として、第１０または第１１の発明のプログラムであって、前記特定点設定手段が、前記一の特定点の色情報としてフォグの色情報を設定する、ように機能させるためのプログラムを構成してもよい。例えば、海を表現する場合において、視点の位置に対して遠方に存在する島等は、その島を取囲む海の色を基調としてぼかして表現すると違和感なく遠方に存在するかのように表現することができる。係る表現を実現するために仮想体の特定点の色情報をフォグの色として設定すれば、簡単に視点に対して遠方の物体をもっともらしく表現することができる。
【００３６】
【発明の実施の形態】
以下に、本発明の好適な実施の形態について図面を参照して説明する。なお、本実施の形態では、本発明を海の表現に適用する場合について説明するが、本発明の適用については海に限定する必要はない。また、ゲームの一例として、飛行戦闘ゲームを例に説明するが、他のいかなるゲームに本発明を適用してもかまわない。
【００３７】
図１は、家庭用のゲーム装置の一例を示す図である。同図によれば、ゲーム装置１２１０は、ディスプレイ１２００、ゲームコントローラ１２０２、１２０４等が着脱自在な構成になっている。また、ゲームプログラムや本実施携帯を実現するために必要な情報等のゲーム情報は、ゲーム装置１２１０に着脱自在な情報記憶媒体であるＣＤ−ＲＯＭ１２０６、ＩＣカード１２０８、メモリカード１２１２および、ゲーム装置１２１０本体が備える情報記憶媒体等に格納されている。
【００３８】
プレーヤは、ディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲーム画像上に表示される戦闘機をゲームコントローラ１２０２あるいは１２０４を用いて操作することによって、飛行戦闘ゲームを楽しむ。以下、プレーヤにより操作される戦闘機を自戦闘機という。ここに、自戦闘機を操作するとは、ゲームコントローラ１２０２、１２０４の操作ボタンを押下することにより、自戦闘機の移動方向や移動速度を指定する行為を意味する。また、ゲーム画像内には、仮想空間における自戦闘機の位置が把握できるように、自戦闘機を取巻く環境、すなわち、空や地形といった環境を表現する。なお、ゲーム画像を生成するための視点の位置は、自戦闘機の操縦席に設定してもよいし、自戦闘機に追従させて自戦闘機を客観的に表現するように設定してもよい。
【００３９】
なお、飛行戦闘ゲームを実行する場合には、自戦闘機（すなわち、視点）が移動可能な全ての範囲について地形データが必要となる。具体的には、自戦闘機が山の上空を飛ぶ場合や、海上を飛ぶ場合、平地上空を飛ぶ場合などがあり、これらの一連の地形データを予め用意する必要がある。しかし、１フレームのゲーム画像を生成する際に、これら全ての地形データを読み出してモデルを構築し、且つ、視線方向に存在する全ての地形モデルを描画すると、画像の生成速度に遅延を来し、ゲームを展開できなくなるという問題が発生する。
【００４０】
そこで、本実施の形態では、画像を生成する際の描画範囲を、視点からの距離に基づいて制限する。すなわち、視点の視線方向に存在する物体であっても、視点からの距離が所定距離を越える場合には、係る物体を描画の対象としない。ただし、このように描画の範囲を制限すると、描画範囲よりも遠くの世界がふっつりと消えたような印象を与えかねない。このため、視界内の物体に対してフォグと呼ばれる処理を施して、視点から遠のくにつれて物体がぼけて見えるように表現し、描画範囲を超える部分については完全にぼけて見えないように表現する。
【００４１】
ここで、フォグ処理とは、物体が有する色に、視点からの距離に応じて所定の色を合成する処理であり、物体をぼかして見せる手法である。具体的には、物体が完全に霞んで見えなくなる距離ＤFFと、物体が霞み始める距離ＤFNとを設定し、物体の視点に対する距離ｄとの差に基づいて色情報の合成割合を決定する。例えば、物体に合成する色をフォグ色ＣF（Ｒ，Ｇ，Ｂ）とし、物体の色をＣM（Ｒ，Ｇ，Ｂ）とした場合、フォグ処理後の物体の色ＣAを、
ＣA＝｛ＣF・（ｄ−ＤFN）＋ＣM・（ＤFF−ｄ）｝／（ＤFF−ＤFN）
（ただし、ＤFN≦ｄ≦ＤFF）  …（１）
によって決定する。なお、以下では、フォグ処理を開始する距離ＤFNをフォグ開始距離といい、完全にフォグの色になる距離ＤFFをフォグ極限距離という。
【００４２】
図２は、視点１０に対するフォグ開始距離ＤFN、フォグ極限距離ＤFF、描画範囲１２を示した仮想空間の平面図である。なお、描画範囲１２を破線によって示した。同図からわかるように、視点１０からの距離に応じて同心球状にフォグ処理を施す範囲１４を決定する。すなわち、物体は、フォグ開始距離ＤFNよりも視点１０から離れると徐々にフォグの色に溶け込み、更に、視点１０との距離がフォグ極限距離ＤFFを越えると、フォグの色に塗りつぶされて完全に描画されなくなる。このように、描画範囲の最大距離をフォグ極限距離ＤFFとして設定することによって、視点１０に基づいて生成された画像上の世界が、描画範囲を超えて途切れるような印象を与えることなく仮想空間を表現できる。
【００４３】
さて、本実施形態は、仮想空間に設定された全地形のうち、海の水面となる部分を尤らしく表現するためのものである。すなわち、視点１０の移動や視線方向の変化に伴って、水面の色をリアルに変化させ、仮想空間の奥行感を強調するためのものである。
【００４４】
図３は、視点１０の位置の変化と、海の色の変化について説明するための図である。（ａ）および（ｃ）は、仮想空間の断面を模式的に描いたものであって、それぞれ視点１０が異なる位置に配置され、また、異なる視線方向を示している。（ｂ）は、（ａ）に示す視点１０に基づく画像例であり、（ｄ）は、（ｃ）に示す視点１０に基づく画像例を示す。
【００４５】
図３（ａ）によれば、視点１０は、視線ベクトル２０をほぼ水平にして、やや遠方に存在する島３０を見下ろしている。したがって、（ｂ）に示す画像例のように、島３０は、水平線３２に近い位置に表現されることとなる。一方、（ｃ）によれば、視点１０は、（ａ）に示す位置よりも島３０に近づき、且つ、島３０を見下ろす方向に視線ベクトル２０が設定されている。したがって、（ｄ）に示す画像例のように、島３０は、海に囲まれて表現されることとなる。このとき、（ｂ）に示す島３０周辺の海には、水平線近傍の空の色を反射した明るい海の色を配色し、（ｄ）に示す島３０周辺の海には、濃く深い海の色を配色することが望ましい。本実施形態によれば、このような視点１０の位置の変化に伴う海の色の変化を尤らしく表現することができる。
【００４６】
以下、海面の表現方法について詳細に説明する。
本実施の形態では、海面を半透明ポリゴンによって定義する。すなわち、仮想空間に設定される地形モデル（地形データ）には、陸となる部分と、海面となる部分とが存在するが、このうち、海面となる部分に関しては半透明ポリゴンによって表現し、海の色については、仮想体によって表現する。すなわち、半透明ポリゴンを透過して見える海の色を仮想体によって表現する。具体的には、まず、仮想体を描画する。そして、その仮想体が描かれた上に、陸や海面などの地形モデルを上書きする。このとき、海面となる部分は、半透明ポリゴンによって構築されているため、先に描いた海の色が反映されることとなる。また、陸部分については、通常のポリゴンによって定義すれば、先に描かれた海の色を排除し、陸部分の色のみを残すことができる。
【００４７】
なお、半透明ポリゴンとは、色の合成率α（もしくは、透明度）が指定されたポリゴンのうち、他の色が合成される割合の高いもの、すなわち、透過率の高いものを意味する。例えば、色の合成を次式
Ｃ＝（１−α）・ＣP＋α・ＣO  （ただし、０≦α≦１）  …（２）
によって定義する。ここで、ＣPは半透明ポリゴンに与えられた色を、ＣOは他のオブジェクトの色を意味する。すなわち、１つの画素に対して半透明ポリゴンを描画する場合には、当該半透明ポリゴンの色ＣPと、当該画素に既に与えられた色ＣOとを、合成率αに基づいて合成した色Ｃを、当該画素に与える。したがって、半透明ポリゴンを描画すると、決まって、その半透明ポリゴンについて描画する前に描いたオブジェクトの色が反映されることとなる。一方、通常のポリゴンには、色の合成率を定義しない（若しくは、α＝０とする）。したがって、通常のポリゴンを描画するときには、既に描かれた物体の色は排除され、そのポリゴンの色のみが描画されることとなる。なお、半透明ポリゴンには、白色や薄い青色を予め設定する。
【００４８】
以下、仮想体について説明する。
まず、仮想体の形状および配置位置について説明する。
なお、以下では、仮想空間を定義するための座標系をワールド座標系（Ｘ，Ｙ，Ｚ）とし、仮想体を定義するための座標系をローカル座標系（ｘ，ｙ，ｚ）と表記する。
【００４９】
図４は、仮想体４０の外観例を示す図であり、（ａ）は仮想体４０を斜俯瞰図であり、（ｂ）は仮想体４０の側面図であり、（ｃ）は仮想体４０の平面図である。各図に示すように、仮想体４０は、矩形若しくは三角形のポリゴンによって略半球状に構成されたものである。以下では、仮想体４０の上底の半径をＲ、上底から最下点４４までの距離（すなわち、仮想体４０の長さ）をＬとし、仮想体４０の上底の中心点ＯSを仮想体４０の代表点とする。また、（ｃ）に示すように、ローカル座標系（ｘ，ｙ，ｚ）の原点を中心点ＯSに設定する。ただし、ｙ軸が仮想体４０の上底に対して垂直に交わるように設定する。なお、仮想体４０を構成するポリゴンの数や、上底の半径Ｒや仮想体４０の長さＬなどの具体的な数値はいずれの値であってもかまわないが、以下の条件を満たすように仮想空間に配置する。
【００５０】
図５（ａ）および（ｂ）は、仮想空間に仮想体４０を配置した一例を示す斜俯瞰図である。（ａ）は、視点１０、仮想体４０、地表面５０とを斜めに見下ろした一例を示す図であり、（ｂ）は、視点１０、仮想体４０、地表面５０の一部断面を模式的に表現したものである。ここで、地表面５０とは、仮想空間の座標系におけるＹ＝０となる面（Ｘ−Ｚ平面）であり、この地表面５０を基準として地形モデルが配置される。また、海面（すなわち、半透明ポリゴン）についても、この地表面５０に沿って配置する。なお、（ａ）および（ｂ）において、点Ｏは、視点１０をＹ軸に沿って地表面５０に平行投影した点である。また、地表面５０に描いた円周５２は、視点１０が地表面５０に存在するときのフォグ極限距離ＤFF、すなわち、地表面５０における最大の描画範囲を示す円周５２である。なお、以下では、点Ｏを中心とする半径ＤFFの円周内の範囲を最大描画範囲５４といい、その円周を最大描画円周５２という。
【００５１】
同図に示すように、仮想体４０を、その代表点ＯSが視点１０の直下に位置するように配置し、且つ、仮想体４０の上底円周４２が視点１０と最大描画円周５２とを結ぶ直線と交わるように配置する。このとき、仮想体４０の代表点ＯSの高さｈは、比例の関係に従って、
ｈ＝ＹV・（１−Ｒ／ＤFF）  …（３）
によって算出することができる。すなわち、視点１０の座標を（ＸV，ＹV，ＺV）とした場合、仮想体４０の代表点ＯSの座標は、（ＸV，ｈ，ＺV）によって決定することができる。
【００５２】
図６（ａ）および（ｂ）は、視点１０の高度に伴う仮想体４０の位置の変化を説明するための図である。（ａ）と（ｂ）とでは、視点１０の高度が異なり、視点１０の高度の変化に伴って、視点１０と仮想体４０の代表点ＯSとの距離ｄが変化している。このように、視点１０の高度に応じて、視点１０と仮想体４０との距離ｄを変化させることによって、仮想体４０は、その大きさを変更することなく、地表面５０上の常に等しい位置の色を表現することができる。（ａ）において、仮想体４０の所与の点Ｋは、地表面５０の点Ｍの色を表現している。この仮想体４０上の点Ｋは、（ｂ）に示すように、視点１０の高度が変化しても、視点１０が水平方向に移動しない限り、常に、地表面５０の点Ｍの色を表現することとなる。
【００５３】
また、図５や図６に示したように、仮想体４０は、常に、地表面５０上の最大描画範囲５４と重なる位置に描画されることとなる。したがって、海の色だけが地形からはみ出て表現されるといった問題を心配する必要がない。また、仮想体４０は、描画されても、地表面５０において重なる位置の地形モデルが陸部分であれば、その陸の色が上書きされて見えなくなる。換言すれば、仮想体４０の描画有無について、海面の存在を判定したり、地形モデルとの重なり部分を判定するなどの処理を必要とすることなく、常に描画すればよく、煩わしい処理を必要とせずに、簡単に海の色を表現することができる。
【００５４】
続いて、仮想体４０に設定する色について説明する。
図５に示したように、仮想体４０の上底円周４２は、地表面５０における最大描画円周５２に対応し、仮想体４０の最下点４４は、視点１０の真下に該当する。したがって、仮想体４０の上底円周４２の近傍に明るい色を配色し、仮想体４０の最下点４４に近づくにつれて濃く深い色を配色すれば、視線ベクトルの向きに応じて徐々に海の色が変化するように表現できる。また、視点１０の位置の移動にかかわらず、水平線近傍の海の色は明るく、視点１０近傍の海の色は暗く表現することができる。このように、仮想体４０の上下方向（すなわち、ｙ軸方向）に色を変化させることによって、視点１０に対する海の奥行感が強調される。
【００５５】
なお、仮想体４０の水平方向に色を変化させてもよい。すなわち、ｙ軸方向と垂直な方向（例えば、ｘ軸方向若しくはｚ軸方向）に色を変化させてもよい。このように、仮想体４０の水平方向について色を変化させることによって、仮想空間における海の東西南北等の方向性を表現することができる。例えば、夕焼けのシーンなどにおいては、光源の方向とその逆方向とで海の色を変化させることが望ましいが、本実施形態によれば、仮想体４０の水平方向について色を変化させるだけで簡単に夕焼けを表現することができる。
【００５６】
具体的には、仮想体４０のｘ軸の正方向に明るい色を配し、負方向に暗い色を配する。そして、仮想体４０のｘ軸正方向が仮想空間における光源の方向に向くように仮想体４０を配置する。例えば、仮想空間において、光源が点光源によって設定されている場合には、仮想体４０のｘ軸正方向を点光源の座標の水平位置（Ｘ，０，Ｚ）に向けて仮想体４０を配置する。また、仮想空間において、光源が無限光源として設定されている場合には、仮想体４０のｘ軸正方向が、光線ベクトルと対向するように仮想体４０を配置する。なお、本実施の形態では、光源を太陽とし、平行光線（すなわち、光線ベクトル）によって光源を定義する。
【００５７】
図７は、仮想空間を斜め上方から模式的に描いた図であり、光線ベクトル６０の向きに対抗するように仮想体４０のｘ軸正方向を配置した一例を示すものである。同図によれば、仮想体４０のｘ軸は、光線ベクトル（ＸOPT，ＹOPT，ＺOPT）の水平成分（ＸOPT，ＺOPT）に対抗するように配置される。したがって、仮想空間を視点１０が移動しても光源との位置関係において、矛盾を発生することなく、海の色を尤らしく表現することができる。
【００５８】
なお、仮想体４０の色について、仮想体４０を構成するポリゴンの頂点の１つ１つに対して色を定義し、更に、各ポリゴン毎に各頂点の色をグラデーションさせることによって仮想体４０を表現してもよい。しかし、係る方法を採用した場合、海の色の変化をより滑らかに尤らしく表現するためには、仮想体４０を構成する頂点の数が多量に必要となるばかりでなく、それに伴って記憶すべき色情報の量が増加し、多容量のメモリが必要となる。かといって、ポリゴン数を減少させれば、必要なメモリ容量が少なくてすむ一方で、仮想体４０の色がポリゴン単位で変化する様子が顕著となり、自然な海の色を表現できない。
【００５９】
以上の問題を解決するために、仮想体４０に特定な点（以下、特定点という）を設定し、この特定点にのみ色を定義する。そして、仮想体４０における任意の頂点の色については、その頂点と周囲の特定点との位置関係に基づいて各特定点に与えられた色を合成することによって決定する。
【００６０】
図８は、特定点の設定例を示す図であり、仮想体４０の中心点ＯSを通るｘ−ｙ平面による断面を示す図である。同図によれば、ｘ−ｙ平面による仮想体４０の断面上の上底円周４２に２点Ｐ1A（ｘ軸正方向）、Ｐ1B（ｘ軸負方向）と、最下点４４にＰ3点が設定されているとともに、最下点４４と上底円周４２に設定した各特定点とを結ぶ曲線の中心点（以下、中間点という）にそれぞれＰ2A，Ｐ2Bが特定点として設定される。そして、上底円周４２上の特定点Ｐ1A，Ｐ1Bには明るい色を設定し、最下点４４の特定点Ｐ3には暗い深い海の色を設定する。また、中間点の特定点Ｐ2A，Ｐ2Bには、深くも淡くもない海の色を設定する。また、夕焼けのシーンなどでは、ｘ軸の正方向に存在する特定点Ｐ1A，Ｐ2Aには明るい色を配し、負方向に存在する特定点Ｐ1B，Ｐ2Bには暗めの色を設定する。
【００６１】
図９は、各特定点の色を記憶した特定点テーブル３２８の一例を示す図である。同図によれば、特定点テーブル３２８には、各特定点の座標と色情報とがそれぞれ対応付けて記憶される。なお、ここでの座標は、ローカル座標系における座標である。また、Ｌは仮想体４０の全長を、Ｌ2は仮想体４０の上底から特定点Ｐ2A，Ｐ2Bまでの距離を、Ｒは上底円周の半径を、Ｒ2はｙ軸から特定点Ｐ2A，Ｐ2Bまでの距離をそれぞれ示している（図８参照）。
【００６２】
仮想体４０を構成する各頂点（すなわち、各ポリゴンの頂点）の色は、その頂点を取囲む４つの特定点、若しくは、３つの特定点に与えられた色を合成することによって決定する。なお、各特定点の色を合成する割合は、各頂点と各特定点との距離、若しくは、成す角度に応じて決定する。例えば、図１０（ａ）に示す仮想体４０を構成する一のポリゴンにおける頂点ｖの色を決定する際には、まず、ローカル座標系における頂点ｖの座標（ｘV，ｙV，ｚV）を判定し、特定点テーブル３２８の中からｙ軸の値の近い３つ若しくは４つの特定点を選択する。すなわち、図１０（ａ）によれば、頂点ｖの近隣の特定点として、特定点Ｐ1A，Ｐ1BおよびＰ2A，Ｐ2Bが選択される。これら選択された特定点の色情報を合成する方法は、頂点ｖとの位置関係を加味したものであればいかなるものであってもかまわないが、以下にその一例を説明する。
【００６３】
まず、上底円周４２と、頂点ｖを通り上底と垂直に交わる断面との交点ｐ1を算出し、同様に、特定点Ｐ2A，Ｐ2Bを通り上底と平行な円周と、点ｖを通り上底と垂直に交わる断面との交点ｐ2を算出する。そして、各交点ｐ1，ｐ2の色ＣP1，ＣP2を決定する。例えば、交点ｐ1の色を決定する際には、図１０（ｂ）に示すように、原点ＯSから交点ｐ1へのベクトル７０と、ｘ軸との成す角φを求め、この角φに基づいて特定点Ｐ1A，Ｐ1Bの色を合成し、ＣP1を決定する。すなわち、
ＣP1＝｛Ｃ1A・（cosφ＋１）＋Ｃ1B（cos（π−φ）＋１）｝／２  …（４）
により交点ｐ1の色ＣP1を決定する。交点ｐ2についても同様に、特定点Ｐ2A，Ｐ2Bを通り上底と平行な断面における中心点から交点ｐ2へのベクトルとｘ軸方向との成す角φを求め、特定点Ｐ2A，Ｐ2Bの色を合成し、ＣP2を決定する。
【００６４】
そして、交点ｐ1およびｐ2の色を決定すると、頂点ｖと各交点との距離に応じて交点ｐ1，ｐ2の色を合成して、頂点ｖの色を決定する。例えば、図１０（ｃ）に示すように、交点ｐ1と頂点ｖの距離をｄ1とし、交点ｐ2と頂点ｖの距離をｄ2とした場合には、
ＣV＝（ＣP1・ｄ2＋ＣP2・ｄ1）／（ｄ1＋ｄ2）  …（５）
によって決定する。このように、仮想体４０を構成する各ポリゴンの各頂点の色を決定する。なお、各ポリゴン内の色については、各ポリゴンを構成する４つ若しくは３つの頂点に対して決定した色に基づいて色を補間して決定する。
【００６５】
なお、上記説明において、視点１０からの距離に応じて描画範囲内に存在する物体に対して、フォグ処理を施すこととした。したがって、例えば、図１１に示すように、視点１０の高度ＹVがフォグ開始距離ＤFFよりも長く、且つ、フォグ極限距離ＤFFよりも短い状況において、地表面５０を真下に見下ろした場合には、地形モデルの色はフォグの色と合成されることとなる。このとき、視点１０が見下ろす地形モデルに、海と陸とが混在している場合には、陸部分にはフォグの影響が現れるものの、海の色にはフォグの処理が施されず、陸のみがフォグの色に溶け込み、海は明瞭に見えるといった、遠近感のない画像を生成する恐れがある。
【００６６】
係る問題を解決するために、仮想体４０の色を、視点１０の高度（すなわち、ＹV）に応じて徐々に変更する。具体的には、中間点の特定点Ｐ2A，Ｐ2Bと最下点４４の特定点Ｐ3に設定した色Ｃ2A，Ｃ2B，Ｃ3を、視点１０の高度ＹVに基づいて上底の円周上に設定した特定点Ｐ1A，Ｐ1Bの色Ｃ1A，Ｃ1Bと合成する。このとき、各特定点の色を合成する割合は、式（１）に示したフォグ処理と同様に、距離ｄを視点の高度ＹVに置き換えて行う。例えば、中間点にある特定点Ｐ2Aの色には、特定点Ｐ1Aの色をフォグの色として合成し、特定点Ｐ2Bの色には、特定点Ｐ2Bの色をフォグの色として合成する。
【００６７】
なお、最下点４４の特定点Ｐ3の色Ｃ3には、上底円周４２上の特定点Ｐ2A，Ｐ2Bの色Ｃ1A，Ｃ1Bの平均色ＣAVEをフォグの色として合成する。すなわち、平均色ＣAVEを
ＣAVE＝（Ｃ1A＋Ｃ1B）／２  …（６）
によって決定し、この色をフォグの色として、視点１０の高さＹVと、フォグ開始距離ＤFNおよびフォグ極限距離ＤFFとの差に応じてＣ3とＣAVEを合成することによって特定点Ｐ3の新たな色ＣN3を決定する。
ＣN3＝｛ＣAVE・（ＹV−ＤFN）＋Ｃ3・（ＤFF−ＹV）｝／（ＤFF−ＤFN）  …（７）
【００６８】
図１２は、最下点４４にある特定点Ｐ3の色が、上底円周４２の平均色ＣAVEに合成される過程を説明するためのグラフである。同図において、横軸が視点１０の高さＹVを、縦軸が合成後の特定点Ｐ3の色ＣN3をそれぞれ示している。同図によれば、特定点Ｐ3の色ＣN3は、視点１０の高さＹVがフォグ開始距離ＤFNよりも小さいときには色Ｃ3であるが、高さＹVがフォグ開始距離ＤFNを超えると徐々に平均色ＣAVEが合成され、高さＹVがフォグ極限距離ＤFFを超えると完全に平均色ＣAVEになる。このように、フォグ開始距離ＤFNおよびフォグ極限距離ＤFFに基づいて、仮想体４０の色を変更することによって、仮想空間内に存在する物体に対して施すフォグの処理と同様に、海の色についても空の色を反映した淡い色合いに変化するように設定することができる。なお、中間点にある特定点Ｐ2A，Ｐ2Bの色についても、上底円周４２上の特定点の平均色ＣAVEをフォグの色として合成してもよい。
【００６９】
以上に説明した方法によれば、視点１０の位置や視線方向に基づいて海の色を徐々に変化させることとしたため、仮想空間における海の奥行感を表現することができる。また、視点１０の高度に応じて海の色を変更することができるため、仮想空間の高さ方向の遠近感が強調される。
【００７０】
しかしながら、上記説明した方法によれば、海面より上の仮想空間の奥行感や立体感を強調し、また、海面をリアルに表現することができるものの、海底の高低を表現することはできない。例えば、陸から海へと地形が急激に変化する崖近傍の海の色と、陸から海へとなだらかに変化する砂浜近傍の海の色とは、本来それぞれ異なるはずである。例えば、崖の下が海面に対して深い場合には、海岸近傍の海の色も深い青色を示し、地形がなだらかに変化する場合には、海の色も沖に向かって徐々に深い青色へと変化するはずである。しかし、上記説明によれば、地形モデルは陸部分と海面部分とから構成され、海面部分には、仮想体４０によって表現される海の色のみが反映される。したがって、崖のような海岸線でも、砂浜のような穏やかな海岸線や珊瑚礁などの浅瀬でも、それぞれ等しい海の色によって表現されてしまう。
【００７１】
係る問題を解決するために、以下のような処置を取るとよい。
すなわち、地形モデルのうち海面の部分を構成する半透明ポリゴン上に浅瀬の色を配色し、これを仮想体４０の色と合成させる。なお、浅瀬の色については、各ポリゴンの頂点に定義してもよいし、浅瀬を表すテクスチャを当該ポリゴンにマッピングすることによって定義してもよい。テクスチャによって表現する場合には、位置によって浅瀬の色合いや濃淡に変化をつける。また、色の合成率αについては、全てのポリゴンに均一の値を設定するのではなく、各ポリゴンにそれぞれ異なる色の合成率αを設定し、海の深さが海面の場所に応じて変化して見えるように設定する。
【００７２】
図１３は、半透明ポリゴンに青色以外の色（例えば、白色や黄色）を配色することによって、浅瀬を表現した画像例である。同図によれば、画像中には島８０，８２および陸８４、海面８６が表現されており、島８０，８２近傍の海面と、島８０，８２から離れた位置の海面とで異なる濃淡により表現されている。このため、島８０，８２近傍の海がそれ以外の海と比較して浅い印象を与えることができる。このように、半透明ポリゴンに浅瀬の色を定義することによって、簡単に海底の高低を表現することができる。
【００７３】
また、海面には、波による水泡や光を反射したきらめき等が見えることがしばしある。こうした海面の漣を表現するために、以下の工夫をしてもよい。すなわち、完全に透明（α＝１）に設定された平面上に、黄色若しくは白色の半透明部（α≠０）を付した漣モデルを定義する。そして、この漣モデルを海面と重ねて表現することによって、海面の波や水泡を表現する。
【００７４】
なお、漣モデルの大きさおよび形状は、地形モデルにおける海面部分の大きさに合わせたものであってもよいが、図１４に示すように、漣モデル９０が、視点１０に対する地表面５０の最大描画範囲５４と同等若しくはやや小さめの形状であってもよい。このように、漣モデル９０の大きさを描画する海面の大きさと無関係に設定する場合には、漣モデル９０を描画するタイミングに注意を払う必要がある。具体的には、仮想体４０を描画した後で、且つ、地形モデルを描画する前に漣モデル９０を描画する。このように、地形モデルを描画する前に漣モデル９０を描画することによって、漣モデル９０の形状や大きさを考慮したり、海面部分との重なり判定等の処理を必要とすることなく、簡単に海面の漣を表現することができる。すなわち、漣モデル９０を地形モデルよりも前に描画すれば、陸部分については漣モデル９０の上に上書きされるため、半透明ポリゴンによって構成される海面部分に関してのみ、漣モデル９０の色情報が反映される。
【００７５】
続いて、コンピュータ等のハードウェアを用いて本発明を実現可能とするために必要となる機能について説明する。
図１５は、機能ブロックの一例を示す図である。同図に示す機能ブロックは、ゲーム情報に基づいて作動する機能と、図１に示すゲーム装置１２１０自体が予め有する機能とからなるものである。図１５によれば、機能ブロックは、操作部１００と、処理部２００と、表示部５００と、情報記憶媒体３００と、一時記憶部４００と、から構成される。
【００７６】
操作部１００は、図１に示すコントローラ１２０２，１２０４に該当する機能部であって、プレーヤがゲームにおける自戦闘機の操作や、ゲームの開始／中止の指示、選択画面における選択項目の入力等を行うためのものである。なお、操作部１００は、図１に示したコントローラ１２０２，１２０４の他、キーボードやマウス、コントロールパネル、ジョイスティック等の操作装置により実現可能である。
【００７７】
処理部２００は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、音処理等の各種処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、あるいはＡＳＩＣ（ゲートアレイ等）等のハードウェアや、所与のプログラムにより実現できる。また、処理部２００には、主に、ゲーム演算部２２０、画像生成部２４０が含まれる。
【００７８】
ゲーム演算部２２０は、ゲームの進行処理、選択画面の設定処理、仮想空間上での各物体（オブジェクト）の位置や向きを決定する処理、視点１０の位置（座標）や視線方向等を決定する処理等、種々のゲーム処理を操作部１００から入力される操作信号や、情報記憶媒体３００に記憶されたゲーム情報３２０等に基づいて実行する。また、ゲーム演算部２２０は、本実施形態に係る処理を実行するための、地形制御部２２２と、仮想体配置部２２４とを含む。
【００７９】
地形制御部２２２は、情報記憶媒体３００に記憶された地形データ３３０のうち、視点１０（および視線方向）に係る範囲の地形データ３３０を決定する機能部である。すなわち、地形制御部２２２は、ゲーム演算部２２０により仮想空間における視点１０の座標（ＸV，ＹV，ＺV）と視線ベクトルとが決定されると、全地形データ３３０の中から視点１０の水平位置（ＸV，０，ＺV）を中心とする最大描画範囲５４（図５（ａ）参照）の地形データを読み出して、地形モデルとして画像生成部２４０に出力する。また、地形制御部２２２は、漣モデル９０の配置位置を決定し、画像生成部２４０に出力する処理を実行する。すなわち、仮想空間における視点１０の座標が決定されると、漣モデル９０の中心点ＯSUR（図１４参照）の位置を視点１０の水平位置（ＸV，０，ＺV）に設定する。
【００８０】
なお、情報記憶媒体３００に記憶される地形データ３３０には、仮想空間における陸や海面等の地形モデルを構成するための各ポリゴンの頂点座標情報等が記憶される。より詳細には、地形モデルを構成する各頂点のローカルな座標が記憶され、このローカル座標系と仮想空間における座標（ワールド座標系）とが対応付けて記憶される。また、各頂点には、地形モデルを構成する各ポリゴンの色情報や、各ポリゴンにマッピングするテクスチャ情報、色の合成率αの情報等が対応付けて記憶される。
【００８１】
仮想体配置部２２４は、ゲーム演算部２２０から視点１０の座標データ（ＸV，ＹV，ＺV）が入力されると、仮想体４０の配置位置を決定する処理を実行する。すなわち、視点１０の高度ＹVを式（３）に代入して高さｈを算出して、仮想体４０の代表点ＯSのワールド座標系における座標（ＸV，ｈ，ＺV）を決定する。また、仮想空間における光線ベクトル（ＸOPT，ＹOPT，ＺOPT）の水平成分と向き合うように仮想体４０のｘ軸を向けることによって、仮想体４０の配置位置および向きを決定する。そして、その決定した仮想体４０の代表点の座標および向きを画像生成部２４０に出力する。
【００８２】
画像生成部２４０は、ゲーム演算部２２０から入力される指示信号、各種座標データに基づき、ゲーム画像を生成する処理を実行するものであり、ＣＰＵ、ＤＳＰ、画像生成専用のＩＣ、メモリなどのハードウェアにより構成される。具体的には、画像生成部２４０は、前方、後方クリッピングを実行してビューボリューム（すなわち、描画範囲）を決定する処理、各ポリゴンに対する視点１０に基づく座標変換処理等のジオメトリ処理と、色補間処理、陰面消去処理等のレンダリング処理を実行することによりゲーム画像を生成する。そして、生成したゲーム画像を表示部５００に表示させる。なお、生成される画像は、一時記憶部４００に一時的に記憶され、表示タイミングに合わせて表示部５００に出力して表示させる。なお、画像生成部２４０は、色決定部２４２と、フォグ処理部２４４と、描画部２４６と、を含む。
【００８３】
色決定部２４２は、主に、視点１０の高度ＹVに応じて仮想体４０の各特定点の色を変更する処理、視点１０に基づく描画範囲に含まれる仮想体４０の色を決定する処理、などを実行する。すなわち、色決定部２４２は、ゲーム演算部２２０から視点１０の座標データ（ＸV，ＹV，ＺV）が入力されると、情報記憶媒体３００に記憶された特定点テーブル３２８を読み出し、式（１）、式（６）、式（７）に基づいて、最下点４４や中間点の特定点Ｐ2A，Ｐ2B，Ｐ3の色を決定する。
【００８４】
また、色決定部２４２は、情報記憶媒体３００に記憶された仮想体モデルデータ３２６と、仮想空間における仮想体４０の代表点の座標とに基づいて、仮想体４０を構成する各ポリゴンの頂点の座標（ワールド座標系における座標）を判定し、描画範囲に係る各ポリゴンおよび各頂点を決定する。そして、決定した各頂点の色を、特定点に対して決定した色情報に基づいて決定する。更に、各頂点の色に基づいて、各ポリゴン内の色を算出して、描画部２４６に出力する。
【００８５】
フォグ処理部２４４は、視点１０からの距離に応じて描画範囲内に存在する物体にフォグ処理を施す機能部である。すなわち、ジオメトリ処理によって、視点１０に基づく座標変換を実行し、視点１０に対する距離が、フォグ開始距離ＤFNよりも大きく、且つ、フォグ極限距離ＤFFよりも小さい場合には、当該物体に対して式（１）によるフォグ処理を実行する。なお、フォグ処理部２４４は、フォグの色ＣFを、視点１０から物体に対するベクトルの向きに応じて決定する。例えば、視点から物体に対するベクトルの延長線上に海が存在する場合には、その視線ベクトルと仮想体４０との交点の色をフォグの色として決定する。あるいは、上底円周４２上に設定した特定点に与えた色情報を海上のフォグの色として設定してもよい。また、物体に対するベクトルの延長線が陸と交差する場合には、陸の色と同等のフォグの色を設定する。更に、物体に対するベクトルが空を指す場合には、フォグの色として空の色を設定する。
【００８６】
描画部２４６は、描画範囲内に存在する物体について、描画する処理を実行する。すなわち、画像生成部２４０によって、ジオメトリ処理を施され、描画用のスクリーン上の座標（すなわち２次元座標系）が決定され、且つ、視点１０や光源との位置関係に応じた色情報が決定された物体について、その色情報を一時記憶部４００内のフレームバッファ４２０に順次記憶する処理を実行する。ただし、描画部２４６は、各物体を描画するに際し、視点１０からの奥行に従って各物体をソートし、視点１０に対して奥に存在する物体から順に描画する。このとき、色の合成率αを持たない物体（ポリゴン）については、先に描かれた色を排除して、当該物体の色をフレームバッファ４２０に記憶させる。一方、合成率αが設定された物体については、フレームバッファ４２０に先に描かれた色情報と、当該物体の色情報とを合成してフレームバッファ４２０に記憶する。
【００８７】
また、描画部２４６は、１フレームの画像を生成する際には、必ず、フレームバッファ４２０内のデータをリセットした後、新たな色情報を順次記憶する。その際、描画部２４６は、仮想体４０を最初のフレームバッファ４２０に描画する。次いで、漣モデル９０を描画し、その後に、地形モデルの描画を開始する。すなわち、仮想体４０がフレームバッファ４２０に描画された上に、漣モデル９０が描画され、更にその上に、地形モデルが描画される。このため、地形モデルのうち、陸部分については、仮想体４０および漣モデル９０の色情報に上書きされ、一方、海面部分については、仮想体４０および漣モデル９０の色情報とα合成されることとなる。
【００８８】
情報記憶媒体３００は、ゲーム装置の駆動に係るプログラムやゲームを実行するためのプログラム、データを記憶するためのものであり、ＣＤ−ＲＯＭ、ゲームカセット、ＩＣカード、ＭＯ、ＦＤ、ＤＶＤ、メモリ、ハードディスク等のハードウェアにより実現できる。なお、情報記憶媒体３００は、主に、所与のゲームを実行するためのゲーム情報３２０を記憶する。なお、ゲーム情報３２０には、ゲーム演算プログラム３２２や、画像生成プログラム３２４が含まれる。更に、ゲーム情報３２０には、仮想体４０のモデル情報（各ポリゴンのローカル座標データ等）を記憶した仮想体モデルデータ３２６、特定点テーブル３２８、地形データ３３０等を記憶する。
【００８９】
なお、ゲーム演算プログラム３２２には、ゲームシナリオや各物体のポリゴンモデル情報、コントローラからの操作信号に係る各物体（自戦闘機や敵の戦闘機等）の動作を決定するための情報、飛行戦闘ゲームの進行に応じて視点１０の位置を決定するための情報、ゲームの進行に係るプレーヤの得点を算出するための情報等、ゲーム進行に係る情報が含まれる。更に、ゲーム演算プログラム３２２には、視点１０の高度に応じて仮想体４０の高さを決定するための情報、仮想体４０の向きを決定するための情報などが含まれる。また、画像生成プログラム３２４には、ジオメトリ処理やレンダリング処理を実行するために必要な情報や、上記海面を表現するためのプログラムが含まれる。すなわち、画像生成プログラム３２４には、視点１０の高さに基づいて特定点の色を決定するための情報、仮想体４０や漣モデル、地形モデル等を描画する順序を決定するための情報などが含まれる。
【００９０】
一時記憶部４００は、処理部２００が情報記憶媒体３００に記憶された各種プログラムに従って実行した演算結果や、操作部１００から入力される情報、画像生成部２４０により生成された画像結果等を一時的に記憶するためのメモリ領域であり、ＲＡＭや、ＶＲＡＭ等のハードウェアにより実現される。また、一時記憶部４００は、フレームバッファ４２０を含む。なお、フレームバッファ４２０は、表示部５００に画像を表示する際の画素毎の色情報を記憶するための記憶メモリである。なお、表示部５００は、処理部２００から入力される指示に従って、一時記憶部４００内のフレームバッファ４２０に記憶された画像データを表示画面に表示する機能部である。
【００９１】
次に、図１６に示すフローチャートを用いて、本実施形態に係る処理について説明する。すなわち、視点１０に基づく描画範囲内に地形モデルが含まれる場合の処理について説明する。なお、以下の処理は、１フレーム毎に実行するものである。
図１６によれば、ゲーム演算部２２０が操作部１００からの入力指示、若しくは、ゲーム情報３２０に従って、視点１０の座標を決定する（ステップＳ１）。次いで、仮想体配置部２２４が、ゲーム演算部２２０により決定された視点１０の座標および、仮想空間における光源の位置に基づいて仮想体４０の向きを決定する（ステップＳ２）。更に、仮想体配置部２２４は、視点１０の高さＹVおよびフォグ極限距離ＤFFに基づいて仮想体４０の高さｈを決定する（ステップＳ３）。
【００９２】
色決定部２４２は、ステップＳ１にて仮想空間における視点１０の座標が決定すると、視点１０の高さＹVに応じて各特定点の色を決定し（ステップＳ４）、更に、特定点の色に基づいて仮想体４０の色を決定する（ステップＳ５）。そして、その決定した仮想体４０の色情報を描画部２４６に出力する。描画部２４６は、まず、色決定部２４２から入力された仮想体４０の色をフレームバッファ４２０に描画する（ステップＳ６）。次いで、描画部２４６は、地形制御部２２２から入力される座標データに基づいて漣モデルを描画する（ステップＳ７）。そして、漣モデルの描画が終了すると、地形モデルを描画し（ステップＳ８）、本処理を終了する。
【００９３】
次に、本実施の形態を実現できるハードウェアの構成の一例について、図１７を用いて説明する。同図に示す装置では、ＣＰＵ１０００、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６、音生成ＩＣ１００８、画像生成ＩＣ１０１０、ＶＲＡＭ１０１２、Ｉ／Ｏポート１０１４、１０１６が、システムバス１０１８により相互にデータ入出力可能に接続されている。そして、画像生成ＩＣ１０１０には、表示装置１０２２が接続され、音生成ＩＣ１００８には、スピーカ１０２０が接続され、Ｉ／Ｏポート１０１４には、コントロール装置１０２４が接続され、Ｉ／Ｏポート１０１６には、通信装置１０２６が接続されている。
【００９４】
情報記憶媒体１００６は、図１５に示す機能ブロックにおける情報記憶媒体３００に相当するものであり、プログラム、表示物を表現するための画像データ、音データ、プレイデータ等が主に格納されるものである。例えば、図１に示す家庭用ゲーム装置１２１０では、ゲーム情報等を格納する情報記憶媒体として、ＣＤ−ＲＯＭ、ゲームカセット、ＤＶＤ等が用いられ、プレイデータを格納する情報記憶媒体としてメモリカードなどが用いられる。また、本発明を業務用のゲーム装置に適用する場合には、ＲＯＭ等のメモリやハードディスクが用いられ、この場合には、情報記憶媒体１００６は、ＲＯＭ１００２になる。また、パーソナルコンピュータにおいては、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭ等のメモリ、ハードディスク等が用いられる。
【００９５】
コントロール装置１０２４は、図１に示すゲームコントローラ１２０２，１２０４や、操作パネル等に相当するものであり、ユーザがゲーム進行に応じて行う判断の結果を装置本体に入力するための装置である。
【００９６】
情報記憶媒体１００６に格納されるプログラム、ＲＯＭ１００２に格納されるシステムプログラム（装置本体の初期化情報等）、コントロール装置１０２４によって入力される信号等に従って、ＣＰＵ１０００は、装置全体の制御や各種データ処理を行う。ＲＡＭ１００４は、このＣＰＵ１０００の作業領域等として用いられる記憶手段であり、情報記憶媒体１００６やＲＯＭ１００２の所与の内容、あるいはＣＰＵ１０００の演算結果が格納される。また、ＶＲＡＭ１０１２は、図１５に示すフレームバッファ４２０に相当するものであり、画素毎の色情報を記憶するための記憶手段であり、表示装置１０２２の解像度に応じた記憶容量を必要とするものである。
【００９７】
更に、この種の装置には、音生成ＩＣ１００８と画像生成ＩＣ１０１０とが設けられていて、ゲーム音やゲーム画像の好適な出力が行えるようになっている。音生成ＩＣ１００８は、情報記憶媒体１００６やＲＯＭ１００２に記憶される情報に基づいて効果音やバックグラウンド音楽等のゲーム音を生成する集積回路であり、生成されたゲーム音は、スピーカ１０２０によって出力される。また、画像生成ＩＣ１０１０は、ＶＲＡＭ１０１２に記憶された画像情報に基づいて表示装置１０２２に出力するための画素情報を生成する集積回路である。すなわち、画像生成ＩＣ１０１０は、ＶＲＡＭ１０１２に書き込まれた情報を、表示信号に変換して表示装置１０２２に出力する。また表示装置１０２２は、ＣＲＴやＬＣＤ、ＴＶ、プラズマディスプレイ、プロジェクター等により実現される。
【００９８】
また、通信装置１０２６は、ゲーム装置内部で利用される各種の情報を外部とやり取りするものであり、他のゲーム装置と接続されてゲーム情報に応じた所与の情報を送受したり、通信回線を介して、ゲーム情報等の情報を送受すること等に利用される。
【００９９】
また、図１〜図１５で説明した種々の処理は、図１６のフローチャートに示した処理等を行うためのプログラムを格納した情報記憶媒体１００６と、該プログラムに従って動作するＣＰＵ１０００、画像生成ＩＣ１０１０、音生成ＩＣ１００８等によって実現される。なお、画像生成ＩＣ１０１０、音生成ＩＣ１００８等で行われる処理は、ＣＰＵ１０００あるいは汎用のＤＳＰ等によりソフトウェア的に行ってもよい。
【０１００】
なお、本発明は、図１に示した家庭用のゲーム装置１２１０だけでなく、他のいかなる形態のゲーム装置に適用してもかまわない。例えば、図１８に、ホスト装置１３００と、このホスト装置１３００と通信回線１３０２を介して接続される端末１３０４−１〜１３０４−ｎとを含むゲーム装置に本実施の形態を適用した場合の例を示す。
【０１０１】
図１８に示す形態の場合、図１５に示した情報記憶媒体３００に記憶されるゲーム情報３２０等は、例えば、ホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。また、端末１３０４−１〜１３０４−ｎが、ＣＰＵ、画像生成ＩＣ、音生成ＩＣ、を有し、スタンドアローンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲーム情報３２０等が端末１３０４−１〜１３０４−ｎに配送される。一方、スタンドアローンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４−１〜１３０４−ｎに伝送し端末において出力することになる。
【０１０２】
あるいは、図１９に示すように、本実施の形態を業務用ゲーム装置６００に適用してもよい。この業務用ゲーム装置６００は、プレーヤがスピーカ６０６から出力される音を聞きながら、操作ボタン６０４を操作することによって、ディスプレイ６０２上に表示される自戦闘機を操作して所与のゲームを楽しむ装置である。業務用ゲーム装置６００に内蔵されるシステム基板６０８には、ＣＰＵ、画像生成ＩＣ、音生成ＩＣ等が実装されている。そして、ゲーム情報３２０等は、システム基板６０８上の情報記憶媒体であるメモリ６１０に格納されている。
【０１０３】
なお、本発明は、上記実施の形態で説明したものに限らず、種々の変形実施が可能である。例えば、本実施の形態では、視点１０の座標をＹ軸に沿って平行投影した地表上の位置からフォグ極限距離ＤFF隔てた位置を最大描画範囲５４とし、この位置を水平線の位置となるものとして説明した。しかし、水平線の位置をこの位置に限定する必要はなく、別の手段によってより尤らしい水平線の位置を決定することとしてもよい。
【０１０４】
図２０は、本実施の形態における仮想体４０に、水平線の位置から最大描画位置までの海の色を決定するための側部を組み合わせた一例を示す図である。同図によれば、視点１０の座標の水平位置Ｏ（ＸV，０，ＺV）から距離ＤHの位置を水平線の位置７０２とし、水平線位置７０２から最大描画円周５２までの海の色を側部７００によって表現する。このように、水平線の位置を最大描画範囲５４とは無関係に設定し、最大描画円周５２から設定した水平線の位置７０２までの色を側部７００によって補うことにより、常に尤らしい位置に水平線を表現することができる。
【０１０５】
また、本実施の形態では、仮想体４０を略半球の形状のものとして説明したが、これに限定する必要は無く、例えば、以下のような変更も可能である。
図２１は、仮想体を球７１０によって構成した一例を示す図であり、球状仮想体７１０の断面を示す図である。同図によれば、視点１０の座標の水平位置Ｏからフォグ極限距離ＤFFまでの範囲を、球状仮想体７１０のｏ´点からｄFF点までの範囲の色によって決定し、視点１０からの距離がフォグ極限距離ＤFFから水平線位置７０２（距離ＤH）までの範囲については、球状仮想体のｄFF点からｄH点までの範囲の色によって決定する。ただし、このように、球状の仮想体を採用する場合には、視点１０とフォグ極限距離とを結ぶ直線と仮想体との交点に特定点Ｐ1A，Ｐ1Bが位置するように常に変更する必要がある。また、同様に、特定点Ｐ2A，Ｐ2Bについては、最下点４４であるＰ3と特定点Ｐ1A，Ｐ1Bとの中点に変更する。
【０１０６】
あるいは、仮想体は、平面的な形状であってもかまわない。
図２２は、仮想体を平面によって構成した一例を示す図であり、（ａ）は、最大描画範囲５４を覆う正方形範囲７２０と同等の大きさおよび形状に仮想体７３０を定義した一例を、（ｂ）は、最大描画範囲５４を覆う正方形範囲７２０と比例する大きさに仮想体７４０を定義した一例を示す図である。このように仮想体を平面的に設定する場合には、仮想体上に予め色の分布が定義されたテクスチャをマッピングするとよい。そして、視点１０の高度ＹVに応じてフォグとなる基調色を順次合成すれば、徐々に海や湖の色が霞んで見えなくなるように表現できる。ただし、平面的な仮想体を採用する場合には、（ｂ）に示すように、仮想体７４０上に正方形範囲７２０上の最大描画円周５２と対応する円周７４２を定義し、視点１０と最大描画円周５２とを結ぶ直線７５０が、定義した円周７４２と交わるように仮想体７４０を配置する。また、基準となる方向を定義し、その定義した方向が常に光源方向を向くように仮想体７４０を回転させて配置するとよい。
【０１０７】
なお、本実施の形態で説明した描画の順序は仮想体の形状に拘わらず等しい。すなわち、描画順序は、仮想体を描画した後、漣モデルを描画し、次いで、地形モデルを描画する。
【０１０８】
また、本実施の形態では、図１４に示したように、漣モデル９０を最大描画範囲５４と同等の大きさおよび形状のものとし、視点１０の移動に追従して移動させるものとして説明した。しかし、このように、漣モデル９０を視点１０の動きに追従させた場合、どの方向の海面を見ても常に波の様子が等しく、画像を見るプレーヤに対して違和感を与える恐れがある。そこで、漣モデルを最大描画範囲に限定せず、地形全体に定義する。そして、地表面５０を描画する際には、地形モデルに含まれる海面の有無に拘わらず、視点１０の水平位置に係る範囲の漣モデルを読み出して描画することとしてもよい。
【０１０９】
また、視点１０の高度に応じて仮想体上に定義した特定点の色に、上底に設定された特定点の色を合成することとして説明した。しかし、必ずしも上底の色に近づける必要はなく、別途独立した色味を視点１０の高さに応じて各特定点の色に合成してもよい。更に、本実施の形態では、１種類の特定点テーブル３２８を参照して各特定点の色を決定することとして説明したが、視点１０の高度ＹVや水平位置Ｏ、視線方向等の変化に伴って、参照する特定点テーブルを変更してもよい。すなわち、予め複数の特定点テーブルを用意し、仮想空間における視点１０の位置、視線方向に応じて順次採用する特定点テーブルを決定する。また、複数の特定点テーブルを採用する場合には、各特定点の色が急激に変化しないように、２以上の特定点テーブルに記憶された色情報をそれぞれ視点１０との位置関係に基づいて合成して採用することとしてもよい。
【０１１０】
更に、本実施の形態では、島の浅瀬や珊瑚礁、海底の深さなどを表現する場合には、海面を表現するための半透明ポリゴンに浅瀬用の色を配色し、これによって海の高低を表現することとして説明した。しかし、これに限定する必要はなく、浅瀬や珊瑚礁を表現するための浅瀬オブジェクトを海面となる半透明ポリゴンの下に配置する構成にしてもよい。そして、この浅瀬用オブジェクトを、仮想体を描画した後で、且つ、地形モデルを描画する前に描画する。このとき、浅瀬オブジェクトには、α値（すなわち、色の合成率）を設定し、浅瀬オブジェクトを描画する際には常に既に描画された仮想体の色と合成するように設定する。ここで、浅瀬オブジェクトは、山や陸の地形モデルと同様な３次元座標系によって定義されるリアルなモデルであってもよいが、単なる平面のオブジェクトであってもよい。ただし、平面的なオブジェクトによって浅瀬を表現する場合には、浅瀬オブジェクトの表面に浅瀬の色合いや濃淡を付すことによって、立体的に見えるように工夫する。また、合成率αの値を浅瀬オブジェクトに均一に設定するのではなく、浅瀬オブジェクト内の位置に応じて値を変化させてもよい。
【０１１１】
図２３は、陸部分７６２と海面部分７６４とを含む地形モデル７６０の断面を模式的に表現した図であり、浅瀬オブジェクト７７０を配置した一例を示すものである。同図に示すように、浅瀬オブジェクト７７０を陸部分７６２と海面部分７６４との境界近傍の下に配置する。このとき、浅瀬オブジェクト７７０の陸方向から海の沖方向にかけて、α値が大きくなるように設定すれば、浅瀬オブジェクト７７０が陸から海の沖にかけて徐々に海の色に溶け込んで見えなくなるように表現することができる。したがって、海の底が徐々に深くなり、深海に至る様子を表現することができる。
【０１１２】
あるいは、α値の異なる浅瀬オブジェクトを何層にも重ねて配置してもよい。図２４は、陸部分７６２と海面部分７６４とを含む地形モデル７６０の断面を模式的に表現した図であり、浅瀬オブジェクト７７０−１〜３を３層に重ねて表示した一例を示すものである。同図によれば、３枚の浅瀬オブジェクト７７０１〜３が、陸から海の沖にかけて徐々にずらして配置されている。このとき、最下層の浅瀬オブジェクト７７０−３の合成率αを高く、且つ、最も沖よりに配置し、最上層の浅瀬オブジェクト７７０−１の合成率αを比較的低めに、且つ、最も陸よりに配置すれば、海の底が段階的に深くなるように表現することができる。また、このように、層状に浅瀬オブジェクトを配置すれば、その浅瀬を見る高さや方向に応じて海底の地形が異なるように見えるため、より海底を立体的に且つリアルに表現することができる。
【０１１３】
なお、本実施の形態では、仮想体を用いて海などの広い水面の色を表現する場合について説明したが、陸地を流れる河川や溜め池、棚田、水田、湖沼などの水面の色を本発明によって表現しても良いことは勿論である。すなわち、地形モデルのうちの陸部分についても（すなわち、地表面５０の面上でない位置についても）、半透過ポリゴンを設定すれば、簡単に水面を表現することができる。なお、棚田や湖など、水面となる部分の高さが水面毎に異なる場合には、各水面の高さと視点の高さに応じて仮想体の配置位置を逐次変更してもよいし、全ての高さの水面について１つの仮想体によって表現してもよい。また、川等を表現する場合には、当該川の水面が必ずしも水平である必要はなく、水面が斜面となるような場合であっても本発明の適用に支障を来すものではない。
【０１１４】
また、本発明の適用については、上記飛行戦闘ゲームに限定する必要はなく、水場が登場するゲームであれば、格闘アクションゲームであってもよいし、ＲＰＧや、レースゲーム等のゲームに適用してもかまわない。あるいは、フライトシミュレータ等のシミュレーション装置に本発明を適用してもよい。
【０１１５】
【発明の効果】
本発明によれば、視点の水平位置からの距離に応じて仮想空間内に設定する水面の色を変更することができる。すなわち、仮想空間内を視点が水平方向に移動した場合であっても、視点の水平位置からの距離に基づいて水面の色を決めることができるため、視点に対して近い水面の色と、遠くの水面の色とを異なる色味で表現することができる。したがって、水面の奥行感をより尤らしく表現することができる。
【図面の簡単な説明】
【図１】本発明を家庭用のゲーム装置に適用した一例を示す図である。
【図２】描画範囲の一例を示す図である。
【図３】視点の位置と視線方向の変化に伴う水面の見え方の変化を説明するための図である。
【図４】（ａ）は、仮想体の斜め上方から見た図である。（ｂ）は、仮想体の側面図である。（ｃ）は、仮想体の平面図である。
【図５】（ａ）は、仮想空間の斜方向から見た図であり、仮想体の配置例を示す図である。（ｂ）は、（ａ）に示す仮想体の断面図である。
【図６】（ａ）は、視点の位置が比較的低いときの仮想体の配置例を示す図である。（ｂ）は、視点の位置が比較的高いときの仮想体の配置例を示す図である。
【図７】仮想体を光線方向に向けて配置した一例を示す図である。
【図８】特定点の設定例を示す図である。
【図９】特定点テーブルの一例を示す図である。
【図１０】任意の頂点ｖの色を決定する処理を説明するための図である。
【図１１】視点の真下に存在する物体にフォグ処理を施すこととなる一例を示す図である。
【図１２】視点の高度に応じた最下点にある特定点の色の変化を示すグラフである。
【図１３】浅瀬を表現した一画像例である。
【図１４】漣モデルを配置する一例を示す図である。
【図１５】機能ブロックの一例を示す図である。
【図１６】本実施の形態における処理を説明するためのフローチャートである。
【図１７】本実施の形態を実現可能とするハードウェア構成の一例を示す図である。
【図１８】ホスト装置と通信回線を介して接続されるゲーム端末に本実施の形態を適用した場合の一例を示す図である。
【図１９】本発明を業務用のゲーム装置に適用した場合の一例を示す図である。
【図２０】本実施の形態における仮想体に水平線までの色を決定するための側部を組み合わせた一例を示す図である。
【図２１】仮想体を球状のオブジェクトによって表現した一例を示す図である。
【図２２】（ａ）は、仮想体を最大描画範囲を含む正方形範囲と合同な平面によって構成した一例を示す図である。（ｂ）は、仮想体を正方形範囲と比例する平面によって構成した一例を示す図である。
【図２３】仮想空間に浅瀬用のオブジェクトを配置した一例を示す図である。
【図２４】仮想空間に浅瀬用のオブジェクトを層状に配置した一例を示す図である。
【符号の説明】
１００ 操作部
２００ 処理部
２２０ ゲーム演算部
２２２   地形制御部
２２４   仮想体配置部
２４０ 画像生成部
２４２   色決定部
２４４   フォグ処理部
２４６   描画部
３００ 情報記憶媒体
３２０ ゲーム情報
３２２ ゲーム演算プログラム
３２４   画像生成プログラム
３２６   仮想体モデルデータ
３２８   特定点テーブル
３３０   地形データ
４００ 一時記憶部
４２０ フレームバッファ
３００ 表示部
【図１】
0004950410.tif 000002
【図２】
0004950410.tif 000003
【図３】
0004950410.tif 000004
【図４】
0004950410.tif 000005
【図５】
0004950410.tif 000006
【図６】
0004950410.tif 000007
【図７】
0004950410.tif 000008
【図８】
0004950410.tif 000009
【図９】
0004950410.tif 000010
【図１０】
0004950410.tif 000011
【図１１】
0004950410.tif 000012
【図１２】
0004950410.tif 000013
【図１３】
0004950410.tif 000014
【図１４】
0004950410.tif 000015
【図１５】
0004950410.tif 000016
【図１６】
0004950410.tif 000017
【図１７】
0004950410.tif 000018
【図１８】
0004950410.tif 000019
【図１９】
0004950410.tif 000020
【図２０】
0004950410.tif 000021
【図２１】
0004950410.tif 000022
【図２２】
0004950410.tif 000023
【図２３】
0004950410.tif 000024
【図２４】
0004950410.tif 000025