(57)【特許請求の範囲】
【請求項１】
第１オブジェクトおよび第２オブジェクトが存在する仮想三次元空間を仮想カメラで撮影して描画する画像表示装置のコンピュータにおいて実行される画像表示プログラムであって、
前記コンピュータを、
前記仮想カメラから見て、前記第１オブジェクトと、当該第１オブジェクトより近い側に存在する第２オブジェクトの少なくとも一部とが重なるときに、当該第１オブジェクトのシルエットを表すためのシルエット画像を生成するシルエット画像生成手段であって、当該シルエット画像内の階調情報が当該第２オブジェクトから当該第１オブジェクトの各部までの距離に応じて変化するようなシルエット画像を生成するシルエット画像生成手段、
前記仮想カメラから見た前記第２オブジェクトの画像を生成する第２オブジェクト描画手段、および
前記シルエット画像が、前記第２オブジェクトに対して近い前記第１オブジェクトの部位に対応する部分ほど色が濃くなるように、当該シルエット画像を、前記仮想カメラから見た前記第２オブジェクトの画像に対して合成する合成手段として機能させる、画像表示プログラム。
【請求項２】
前記シルエット画像生成手段は、前記第２オブジェクトからの距離に応じて階調が変化するようなテクスチャを前記第１オブジェクトにマッピングすることにより、前記シルエット画像を生成する、請求項１に記載の画像表示プログラム。
【請求項３】
前記シルエット画像生成手段は、投影テクスチャマッピングにより、前記シルエット画像を生成する、請求項２に記載の画像表示プログラム。
【請求項４】
前記テクスチャは、黒色から白色まで段階的に階調を変化させたテクスチャである、請求項２に記載の画像表示プログラム。
【請求項５】
前記シルエット画像生成手段は、前記第２オブジェクト側から見た前記第１オブジェクトの深度情報に基づいて、前記シルエット画像を生成する、請求項１に記載の画像表示プログラム。
【請求項６】
前記合成手段は、前記第２オブジェクトの画像の色と、前記第１オブジェクトのシルエットを表すための特定色とを、前記シルエット画像に応じて混合することにより、前記仮想カメラから見た前記第２オブジェクトの画像に前記シルエット画像を合成する、請求項１に記載の画像表示プログラム。
【請求項７】
前記シルエット画像生成手段は、前記第２オブジェクトに対してより近い前記第１オブジェクトの部位に対応する部分ほど、色がより濃くなるようなシルエット画像を生成する、請求項１に記載の画像表示プログラム。
【請求項８】
前記合成手段は、前記第２オブジェクトの画像と、前記シルエット画像を、所定のピクセル数の間隔で交互に表示することにより、前記仮想カメラから見た前記第２オブジェクトの画像に前記シルエット画像を合成する、請求項７に記載の画像表示プログラム。
【請求項９】
前記コンピュータを、
前記仮想カメラから見て前記第２オブジェクトに遮蔽されていない前記第１オブジェクトの部分の画像を、前記合成手段による合成後の画像における当該部分に対応する位置に上書きする第１オブジェクト描画手段としてさらに機能させる、請求項１に記載の画像表示プログラム。
【請求項１０】
前記第２オブジェクト描画手段は、前記仮想カメラからの深度情報を生成しながら、前記第２オブジェクトの画像を生成し、
前記合成手段は、前記第２オブジェクト描画手段で生成された前記深度情報を更新せずに、前記第２オブジェクトの画像に前記シルエット画像を合成し、
前記第１オブジェクト描画手段は、
前記深度情報に基づいて、前記第２オブジェクトに遮蔽されていない前記第１オブジェクトの部分を判定する非遮蔽部分判定手段を含み、
前記非遮蔽部分判定手段の判定結果に基づき、前記第２オブジェクトに遮蔽されていない前記第１オブジェクトの部分の画像を、前記合成手段による合成後の画像における当該部分に対応する位置に上書きする、請求項９に記載の画像表示プログラム。
【請求項１１】
前記コンピュータを、前記仮想三次元空間における前記第１オブジェクトの位置または姿勢を更新する更新手段としてさらに機能させ、
前記更新手段による前記更新処理と、
前記シルエット画像生成手段による前記生成処理と、
前記第２オブジェクト描画手段による前記生成処理と
前記合成手段による前記合成処理と、
前記第１オブジェクト描画手段による前記上書き処理が一連の処理として、繰り返し実行される、請求項９に記載の画像表示プログラム。
【請求項１２】
第１オブジェクトおよび第２オブジェクトが存在する仮想三次元空間を仮想カメラで撮影して描画するための画像表示装置であって、
前記仮想カメラから見て、前記第１オブジェクトと、当該第１オブジェクトより近い側に存在する第２オブジェクトの少なくとも一部とが重なるときに、当該第１オブジェクトのシルエットを表すためのシルエット画像を生成するシルエット画像生成手段であって、当該シルエット画像内の階調情報が当該第２オブジェクトから当該第１オブジェクトの各部までの距離に応じて変化するようなシルエット画像を生成するシルエット画像生成手段、
前記仮想カメラから見た前記第２オブジェクトの画像を生成する第２オブジェクト描画手段、および
前記シルエット画像が、前記第２オブジェクトに対して近い前記第１オブジェクトの部位に対応する部分ほど色が濃くなるように、当該シルエット画像を、前記仮想カメラから見た前記第２オブジェクトの画像に対して合成する合成手段を備える、画像表示装置。
【請求項１３】
第１オブジェクトおよび第２オブジェクトが存在する仮想三次元空間を仮想カメラで撮影して描画するための画像表示システムであって、
前記仮想カメラから見て、前記第１オブジェクトと、当該第１オブジェクトより近い側に存在する第２オブジェクトの少なくとも一部とが重なるときに、当該第１オブジェクトのシルエットを表すためのシルエット画像を生成するシルエット画像生成手段であって、当該シルエット画像内の階調情報が当該第２オブジェクトから当該第１オブジェクトの各部までの距離に応じて変化するようなシルエット画像を生成するシルエット画像生成手段、
前記仮想カメラから見た前記第２オブジェクトの画像を生成する第２オブジェクト描画手段、および
前記シルエット画像が、前記第２オブジェクトに対して近い前記第１オブジェクトの部位に対応する部分ほど色が濃くなるように、当該シルエット画像を、前記仮想カメラから見た前記第２オブジェクトの画像に対して合成する合成手段を備える、画像表示システム。
【請求項１４】
第１オブジェクトおよび第２オブジェクトが存在する仮想三次元空間を仮想カメラで撮影して描画するための画像表示装置のコンピュータが実行する画像表示方法であって、
前記コンピュータが、
前記仮想カメラから見て、前記第１オブジェクトと、当該第１オブジェクトより近い側に存在する第２オブジェクトの少なくとも一部とが重なるときに、当該第１オブジェクトのシルエットを表すためのシルエット画像を生成するシルエット画像生成ステップであって、当該シルエット画像内の階調情報が当該第２オブジェクトから当該第１オブジェクトの各部までの距離に応じて変化するようなシルエット画像を生成するシルエット画像生成ステップ、
前記仮想カメラから見た前記第２オブジェクトの画像を生成する第２オブジェクト描画ステップ、および
前記シルエット画像が、前記第２オブジェクトに対して近い前記第１オブジェクトの部位に対応する部分ほど色が濃くなるように、当該シルエット画像を、前記仮想カメラから見た前記第２オブジェクトの画像に対して合成する合成ステップを実行する、画像表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像表示プログラム、画像表示システム、画像表示方法および画像表示装置に関し、より具体的には、仮想三次元空間に存在するオブジェクトを表示する画像表示プログラム、画像表示システム、画像表示方法および画像表示装置に関する。
【背景技術】
【０００２】
仮想空間を表示する装置では、オブジェクトの挙動をより写実的に表示するために多くのパラメータに基づき計算することが要請される。例えば、非特許文献１は、仮想空間を表示するゲーム装置で行われるゲームの一例を示している。このゲームは、仮想空間で表現される、カーテン越しに見える風景を、その仮想空間内に配置された光源から放たれた光など様々なパラメータに基づいて描画することにより写実的な表現を行っている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】任天堂株式会社監修、「任天堂公式ガイドブック  ゼルダの伝説  風のタクト」、初版、株式会社小学館、２００３年３月１日、ｐ．１４６
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１を含む多くの例では、仮想空間内に配置された光源から放たれた光等様々なパラメータに基づいて描画している。最近はコンピュータやグラフィックチップの性能が向上してきており、前述のような様々なパラメータに基づいた描画計算を行った上で写実的な描画を行うことが可能になってきた。しかし、そのような複雑な計算を行うことによって、処理負荷が高くなることは変わらず、他の処理に少なからず影響を与えていた。
【０００５】
そこで、本発明の目的は、写実的な表現を実現しつつ比較的軽い処理負荷で、複数のオブジェクトを含む仮想三次元空間を描画可能にすることである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、以下に述べるような特徴を有している。
【０００７】
一態様において、本発明は、第１オブジェクトおよび第２オブジェクトが存在する仮想三次元空間を仮想カメラで撮影して描画する画像表示装置のコンピュータにおいて実行される画像表示プログラムを提供する。この画像表示プログラムは、上記コンピュータを、シルエットを表すためのシルエット画像を生成するシルエット画像生成手段と、第２オブジェクト描画手段と、上記シルエット画像を第２オブジェクトの画像に合成する合成手段として機能させる。
【０００８】
ここで、シルエット画像生成手段は、上記仮想カメラから見て、上記第１オブジェクトと、当該第１オブジェクトより近い側に存在する第２オブジェクトの少なくとも一部とが重なるときに、当該第１オブジェクトのシルエットを表すためのシルエット画像を生成する。
【０００９】
また、シルエット画像生成手段は、当該シルエット画像内の階調情報が当該第２オブジェクトから当該第１オブジェクトの各部までの距離に応じて変化するようなシルエット画像を生成する。第２オブジェクト描画手段は、上記仮想カメラから見た上記第２オブジェクトの画像を生成する。そして、合成手段は、上記シルエット画像が、上記第２オブジェクトに対して近い上記第１オブジェクトの部位に対応する部分ほど色が濃くなるように、当該シルエット画像を、上記仮想カメラから見た上記第２オブジェクトの画像に対して合成する。
【００１０】
一実施形態において、上記シルエット画像生成手段は、上記第２オブジェクトからの距離に応じて階調が変化するようなテクスチャを上記第１オブジェクトにマッピングすることにより、上記シルエット画像を生成する。
【００１１】
他の実施形態において、上記シルエット画像生成手段は、投影テクスチャマッピングにより、上記シルエット画像を生成する。
【００１２】
別の実施形態において、上記テクスチャは、黒色から白色まで段階的に階調を変化させたテクスチャである。
【００１３】
さらに別の実施形態において、上記シルエット画像生成手段は、上記第２オブジェクト側から見た上記第１オブジェクトの深度情報に基づいて、上記シルエット画像を生成する。
【００１４】
さらに別の実施形態において、上記合成手段は、上記第２オブジェクトの画像の色と、上記第１オブジェクトのシルエットを表すための特定色とを、上記シルエット画像に応じて混合することにより、上記仮想カメラから見た上記第２オブジェクトの画像に上記シルエット画像を合成する。
【００１５】
さらに別の実施形態において、上記シルエット画像生成手段は、上記第２オブジェクトに対してより近い上記第１オブジェクトの部位に対応する部分ほど、色がより濃くなるようなシルエット画像を生成する。
【００１６】
さらに別の実施形態において、上記合成手段は、上記第２オブジェクトの画像と、上記シルエット画像を、所定のピクセル数の間隔で交互に表示することにより、上記仮想カメラから見た上記第２オブジェクトの画像に上記シルエット画像を合成する。
【００１７】
さらに別の実施形態において、上記画像表示プログラムは、上記コンピュータを、上記仮想カメラから見て上記第２オブジェクトに遮蔽されていない上記第１オブジェクトの部分の画像を、上記合成手段による合成後の画像における当該部分に対応する位置に上書きする第１オブジェクト描画手段としてさらに機能させる。
【００１８】
さらに別の実施形態において、上記第２オブジェクト描画手段は、上記仮想カメラからの深度情報を生成しながら、上記第２オブジェクトの画像を生成する。そして、上記合成手段は、上記第２オブジェクト描画手段で生成された上記深度情報を更新せずに、上記第２オブジェクトの画像に上記シルエット画像を合成する。さらに、上記第１オブジェクト描画手段は、上記深度情報に基づいて、上記第２オブジェクトに遮蔽されていない上記第１オブジェクトの部分を判定する非遮蔽部分判定手段を含む。ここで、上記第１オブジェクト描画手段は、上記非遮蔽部分判定手段の判定結果に基づき、上記第２オブジェクトに遮蔽されていない上記第１オブジェクトの部分の画像を、上記合成手段による合成後の画像における当該部分に対応する位置に上書きする。
【００１９】
さらに別の実施形態において、上記画像表示プログラムは、上記コンピュータを、上記仮想三次元空間における上記第１オブジェクトの位置または姿勢を更新する更新手段としてさらに機能させる。そして、以下の処理が、一連の処理として繰り返し実行される。すなわち、上記更新手段による上記更新処理と、上記シルエット画像生成手段による上記生成処理と、上記第２オブジェクト描画手段による上記生成処理と、上記合成手段による上記合成処理と、上記第１オブジェクト描画手段による上記上書き処理とが、繰り返し実行される。
【００２０】
また、上述の画像表示プログラムは、それを実行する画像表示装置として使用されたとしても、１または複数の装置が通信可能に構成される画像表示システムとして使用されてもよい。また、本発明は、上述のようなプログラム、装置、システムとして実装され得る、画像表示の方法も含む。
【００２１】
本明細書において使用される場合、「システム」（例えば、画像表示システム、情報処理システム、ゲームシステム）との用語は、１つの装置だけでなく、複数の装置であって、その各々の装置が他の装置のいずれかと通信可能であるものも含む。
【発明の効果】
【００２２】
本発明によれば、写実的な表現を実現しつつ比較的軽い処理負荷で、複数のオブジェクトを含む仮想三次元空間を描画可能となる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態に係るゲームシステム１を示す外観図
【図２】図１のゲーム装置本体５の一例を示すブロック図
【図３】図１のコアユニット７０の上面後方から見た一例を示す斜視図
【図４】図３のコアユニット７０を下面前方から見た一例を示す斜視図
【図５】図３のコアユニット７０の構成例を示すブロック図
【図６Ａ】仮想三次元空間内に配置されるオブジェクトとそれを撮影する仮想カメラＶＣの位置関係の一例を模式的に示した図
【図６Ｂ】オブジェクトＪ１とオブジェクトＪ２との位置関係と、オブジェクトＪ１に投影マッピングされるテンプレートテクスチャの一例について説明する模式図
【図６Ｃ】テクスチャ画像Ｄ３１の例を模式的に示した図
【図７Ａ】オブジェクトＪ２が描画されていない状態で仮想カメラＶＣ側から撮像された場合のオブジェクトＪ１を示す模式図
【図７Ｂ】一定方向に階調を有するテンプレートテクスチャを用いて、オブジェクトＪ１に投影テクスチャマッピングを施し、フレームバッファ３４ａに描画した結果の一例を示した図
【図８】フレームバッファ３４ａに書き込まれたオブジェクトＪ２を示す画像の一例を示す図
【図９】ゲーム装置本体５によりフレームバッファ３４ａに書き込まれた、オブジェクトＪ１のシルエット画像が合成されたオブジェクトＪ２の画像の一例を示す図
【図１０】オブジェクトＪ１の一部が、オブジェクトＪ２により遮蔽され、そのオブジェクトＪ１の遮蔽された部分がオブジェクトＪ２の表面にシルエットを落とした効果を反映させた画像の一例を示す図
【図１１】本発明の例示的な実施形態における、複数のオブジェクトを含むシーンを描画するための一連の描画処理の一例を示すフローチャート
【図１２】シルエット生成処理に関する一連の処理手順を示すフローチャート
【図１３】本発明の例示的な実施形態の画像表示システムにおける主要なデータを示すメモリマップ
【発明を実施するための形態】
【００２４】
（画像表示システムの基本構成）
図１を参照して、本発明の一実施形態に係る画像表示システムについて説明する。以下、説明を具体的にするために、当該画像表示システムとして、据置型のゲーム装置本体５を含むゲームシステム１を用いて説明する。
【００２５】
ここで、図１は、据置型のゲーム装置３を含むゲームシステム１の一例を示す外観図である。また、図２は、ゲーム装置本体５の一例を示すブロック図である。以下、当該ゲームシステム１について説明する。なお、本明細書に添付の図面は、本発明の例示的な実施形態を説明するためのものであり、本発明の範囲がその図面に記載される具体的な態様に限定されることを意図するものではない。
【００２６】
なお、これ以降の説明において、Ｄ１０からＤ５１まで符号が付されたプログラム、データ等について説明する場合があるが、当該符号は、後述の図１３で示されるゲーム装置本体５の記憶領域との関係を示したもの（メモリマップにおける符号）である。
【００２７】
図１において、ゲームシステム１は、表示手段の一例の家庭用テレビジョン受像機２（以下、モニタ２と記載する）と、当該モニタ２に接続コードを介して接続する据置型のゲーム装置３とから構成される。モニタ２は、ゲーム装置３から出力された音声信号を音声出力するためのスピーカ２ａを備える。
【００２８】
また、ゲーム装置３は、プログラム（例えば、後述する画像表示プログラムＤ１１や、ゲームアプリケーションＤ１２）および各種データを記録した光ディスク４と、当該光ディスク４のプログラムを実行してゲーム画面をモニタ２に表示出力させるためのコンピュータを搭載したゲーム装置本体５と、ゲーム画面に表示されたキャラクタ等を操作するゲームに必要な操作情報をゲーム装置本体５に与えるためのコントローラ７とを備えている。
【００２９】
また、ゲーム装置本体５は、無線コントローラモジュール１９（図２参照）を内蔵する。無線コントローラモジュール１９は、コントローラ７から無線送信されるデータを受信し、ゲーム装置本体５からコントローラ７へデータを送信して、コントローラ７とゲーム装置本体５とを無線通信によって接続する。さらに、ゲーム装置本体５には、当該ゲーム装置本体５に対して交換可能に用いられる情報記憶媒体の一例の光ディスク４が脱着される。
【００３０】
また、ゲーム装置本体５には、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ１７（図２参照）が搭載される。ゲーム装置本体５は、光ディスク４に記憶されたプログラムを実行することによって、その結果をゲーム画像としてモニタ２に表示する。また、プログラムは、光ディスク４に限らず、フラッシュメモリ１７にあらかじめ記録されたものを実行するようにしてもよい。さらに、ゲーム装置本体５は、フラッシュメモリ１７に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ２に表示することもできる。そして、ゲーム装置３のユーザは、モニタ２に表示されたゲーム画像を見ながら、コントローラ７を操作することによって、ゲーム進行を楽しむことができる。
【００３１】
コントローラ７は、無線コントローラモジュール１９を内蔵するゲーム装置本体５へ、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて操作情報等の送信データを無線送信する。
【００３２】
コントローラ７は、コアユニット７０を備えている。コアユニット７０は、主にモニタ２の表示画面に表示されるオブジェクト等を操作するための操作手段である。
【００３３】
コアユニット７０は、片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン（十字キーやスティック等を含む）とが設けられている。また、後述により明らかとなるが、コアユニット７０は、当該コアユニット７０から見た画像を撮像する撮像情報演算部７４を備えている。また、撮像情報演算部７４の撮像対象の一例として、モニタ２の表示画面近傍に２つのＬＥＤモジュール（以下、マーカと記載する）８Ｌおよび８Ｒが設置される。これらマーカ８Ｌおよび８Ｒは、それぞれモニタ２の前方に向かって例えば赤外光を出力する。
【００３４】
また、コントローラ７（例えば、コアユニット７０）は、ゲーム装置本体５の無線コントローラモジュール１９から無線送信された送信データを通信部７５で受信して、当該送信データに応じた音や振動を発生させることもできる。
【００３５】
（ゲーム装置本体の内部構成）
次に、図２を参照して、ゲーム装置本体５の内部構成について説明する。図２は、ゲーム装置本体５の構成を示すブロック図である。ゲーム装置本体５は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、システムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ／Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）１３、ディスクドライブ１４、およびＡＶ−ＩＣ（Ａｕｄｉｏ  Ｖｉｄｅｏ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１５等を有する。
【００３６】
ＣＰＵ１０は、光ディスク４に記憶されたプログラムに基づいて情報処理を行う。
【００３７】
ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、およびＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムＬＳＩ１１の内部構成については、後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたプログラムおよび各種データや、フラッシュメモリ１７から読み出された各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置本体５の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ３５または外部メインメモリ１２に読み出したデータを書き込む。
【００３８】
また、システムＬＳＩ１１には、入出力プロセッサ３１、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）３２、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）３３、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３４、および内部メインメモリ３５が設けられる。図示は省略するが、これらの構成要素３１〜３５は、内部バスによって互いに接続される。
【００３９】
ＧＰＵ３２は、ゲーム装置５における描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。より具体的には、ＧＰＵ３２は、当該グラフィクスコマンドに従って３Ｄグラフィックスの表示に必要な計算処理、例えば、レンダリングの前処理にあたる３Ｄ座標から２Ｄ座標への座標変換などの処理や、テクスチャマッピング（ピクセル単位で、ポリゴンの色とテクスチャの色を合成して最終的な色をピクセル単位で出力する処理）などの最終的なレンダリング処理を行うことで、ゲーム画像データを生成する。
【００４０】
より具体的には、ＧＰＵ３２の機能としてラスタライズを一例にとれば、いわゆる透視変換処理などの処理を受けた頂点単位（ポリゴン単位）のデータが得られた際に、ＧＰＵ３２は、ポリゴンを構成する三角形の各辺を（そのデータに含まれる）頂点から計算し（「トライアングルセットアップ」）、計算した三角形の内部を塗りつぶす処理（ＤＤＡ（Ｄｉｇｉｔａｌ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ａｎａｌｙｚｅｒ）としての処理）を行う。この三角形の内部を塗りつぶすための色は、三角形の各頂点が有する色情報をもとに補間された色が用いられる。
【００４１】
また、ラスタライザとしてのＧＰＵ３２は、三角形を塗りつぶすときのピクセル１つ１つに対して、模様となる画像（テクスチャ）の対応するピクセル（テクセルとも呼ばれる）の選び出しも行っている。例えば、ＧＰＵ３２は、上記のポリゴンを構成する頂点のデータがテクスチャ画像から切り抜くべき位置の情報もあわせ持つ場合に、その位置の情報からテクスチャ画像を走査して、塗りつぶすべき各ピクセルにそれぞれ対応するテクスチャ画像のピクセルの位置情報を計算する。
【００４２】
ＶＲＡＭ３４は、ＧＰＵ３２がグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。また、ＶＲＡＭ３４は、フレームバッファ３４ａとＺバッファ３４ｂを含む。
【００４３】
フレームバッファ３４ａは、例えば、モニタ２へ供給すべき１フレーム分の画像データを描画または蓄積しておくためのメモリである。後述のＡＶ−ＩＣ１５が所定の周期（例えば、６０分の１秒の周期）でフレームバッファ３４ａのデータを読み出すことによって、モニタ２の画面上に三次元ゲーム画像が表示される。
【００４４】
また、Ｚバッファ３４ｂは、フレームバッファ３４ａに対応する画素（記憶位置またはアドレス）数×１画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ３４ａの各記憶位置に対応するドットの奥行き情報または奥行きデータ（Ｚ値）を記憶するものである。
【００４５】
ＤＳＰ３３は、オーディオプロセッサとして機能し、内部メインメモリ３５や外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。
【００４６】
また、内部メインメモリ３５は、外部メインメモリ１２と同様に、プログラムや各種データを記憶したり、ＣＰＵ１０のワーク領域またはバッファ領域などとしても用いられる。
【００４７】
上述のように生成された画像データおよび音声データは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、ＡＶコネクタ１６を介して、読み出した画像データをモニタ２に出力するとともに、読み出した音声データをモニタ２に内蔵されるスピーカ２ａに出力する。これによって、画像がモニタ２に表示されるとともに音がスピーカ２ａから出力される。
【００４８】
入出力プロセッサ（Ｉ／Ｏプロセッサ）３１は、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ３１は、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、および外部メモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００４９】
入出力プロセッサ３１は、無線通信モジュール１８およびアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ３１は、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データがある場合には、無線通信モジュール１８およびアンテナ２２を介して当該データをネットワークに送信する。また、入出力プロセッサ３１は、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２、および無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０は、フラッシュメモリ１７に記憶されたデータを読み出して利用することができる。フラッシュメモリ１７には、ゲーム装置本体５と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置本体５を利用してプレイしたゲームのセーブデータ（ゲームの結果データまたは途中データ）が記憶されてもよい。
【００５０】
また、入出力プロセッサ３１は、アンテナ２３および無線コントローラモジュール１９を介して、コントローラ７から送信される操作データ等を受信し、内部メインメモリ３５または外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００５１】
さらに、入出力プロセッサ３１には、拡張コネクタ２０および外部メモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。外部メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ３１は、拡張コネクタ２０や外部メモリカード用コネクタ２１を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００５２】
また、ゲーム装置本体５（例えば、前部主面）には、当該ゲーム装置本体５の電源ボタン２４、ゲーム処理のリセットボタン２５、光ディスク４を脱着する投入口、およびゲーム装置本体５の投入口から光ディスク４を取り出すイジェクトボタン２６等が設けられている。電源ボタン２４およびリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオン状態にされると、ゲーム装置本体５の各構成要素に対して、図示しないＡＣアダプタを介して電力が供給される。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置本体５の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００５３】
（コアユニットの基本構成）
図３および図４を参照して、コアユニット７０について説明する。なお、図３は、コアユニット７０の上面後方から見た一例を示す斜視図である。図４は、コアユニット７０を下面前方から見た一例を示す斜視図である。
【００５４】
図３および図４において、コアユニット７０は、例えばプラスチック成型によって形成されたハウジング７１を有しており、当該ハウジング７１に複数の操作部７２が設けられている。ハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【００５５】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。ユーザが十字キー７２ａのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばユーザが十字キー７２ａを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【００５６】
なお、十字キー７２ａは、上述したユーザの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でも構わない。例えば、十字方向に４つのプッシュスイッチを配設し、ユーザによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記４つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、４つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング７１上面から突出した傾倒可能なスティック（いわゆる、ジョイスティック）を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を十字キー７２ａの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもかまわない。また、タッチパッドを、十字キー７２ａの代わりに設けてもかまわない。
【００５７】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、ユーザがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、１番ボタン、２番ボタン、およびＡボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン７２ａ〜７２ｇは、ゲーム装置本体５が実行するプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図３に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂおよび７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、ユーザが不意に誤って押下することのないタイプのボタンである。
【００５８】
また、ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置本体５の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、ユーザが不意に誤って押下することのないタイプのボタンである。
【００５９】
また、ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コアユニット７０は、他のコントローラと区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コアユニット７０に現在設定されている上記コントローラ種別をユーザに通知するために用いられる。具体的には、無線コントローラモジュール１９からコアユニット７０へ、複数のＬＥＤ７０２のうち、上記コントローラ種別に対応するＬＥＤを点灯させるための信号が送信される。
【００６０】
また、ハウジング７１上面には、操作ボタン７２ｂおよび操作ボタン７２ｅ〜７２ｇの間に後述するスピーカからの音を外部に放出するための音抜き孔が形成されている。
【００６１】
一方、ハウジング７１下面には、凹部が形成されている。ハウジング７１下面の凹部は、ユーザがコアユニット７０の前面をマーカ８Ｌおよび８Ｒに向けて片手で把持したときに、当該ユーザの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＢボタンとして機能する操作部である。
【００６２】
また、ハウジング７１前面には、撮像情報演算部７４の一部を構成する撮像素子７４３が設けられる。ここで、撮像情報演算部７４は、コアユニット７０が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコアユニット７０の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７１の後面には、コネクタ７３が設けられている。コネクタ７３は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【００６３】
ここで、以下の説明を具体的にするために、コアユニット７０に対して設定する座標系について定義する。図３および図４に示すように、互いに直交するＸＹＺ軸をコアユニット７０に対して定義する。具体的には、コアユニット７０の前後方向となるハウジング７１の長手方向をＺ軸とし、コアユニット７０の前面（撮像情報演算部７４が設けられている面）方向をＺ軸正方向とする。また、コアユニット７０の上下方向をＹ軸とし、ハウジング７１の上面（操作ボタン７２ａが設けられた面）方向をＹ軸正方向とする。さらに、コアユニット７０の左右方向をＸ軸とし、ハウジング７１の右側面（図３では表されている側面）方向をＸ軸正方向とする。
【００６４】
（コントローラの内部構成）
次に、図５を参照して、コントローラ７の内部構成について説明する。なお、図５は、コントローラ７の構成の一例を示すブロック図である。
【００６５】
図５において、コアユニット７０は、上述した操作部７２、撮像情報演算部７４、加速度センサ７０１、バイブレータ７０４、スピーカ７０６、サウンドＩＣ７０７、およびアンプ７０８の他に、その内部に通信部７５を備えている。
【００６６】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コアユニット７０の前方から入射する光から赤外線のみを通過させる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ出射する。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。
【００６７】
したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。撮像素子７４３で生成された画像データは、画像処理回路７４４で処理される。具体的には、画像処理回路７４４は、撮像素子７４３から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部７５へ出力する。なお、これらの撮像情報演算部７４は、コアユニット７０のハウジング７１に固設されており、ハウジング７１自体の方向を変えることによってその撮像方向を変更することができる。
【００６８】
コアユニット７０は、３軸（Ｘ、Ｙ、Ｚ軸）の加速度センサ７０１を備えていることが好ましい。この３軸の加速度センサ７０１は、３方向、すなわち、上下方向（図３に示すＹ軸）、左右方向（図３に示すＸ軸）、および前後方向（図３に示すＺ軸）で直線加速度を検知する。また、少なくとも１軸方向（例えば、Ｚ軸方向）に沿った直線加速度を検知する加速度検出手段を使用してもよい。例えば、これらの加速度センサ７０１は、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能であるタイプのものでもよい。加速度センサ７０１は、シリコン微細加工されたＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍｓ：微小電子機械システム）の技術に基づいた静電容量式（静電容量結合式）であることが好ましい。しかしながら、既存の加速度検出手段の技術（例えば、圧電方式や圧電抵抗方式）あるいは将来開発される他の適切な技術を用いて、加速度センサ７０１が提供されてもよい。
【００６９】
加速度センサ７０１に用いられるような加速度検出手段は、加速度センサ７０１の持つ各軸に対応する直線に沿った加速度（直線加速度）のみを検知することができる。つまり、加速度センサ７０１からの直接の出力は、それら３軸のそれぞれに沿った直線加速度（静的または動的）を示す信号である。このため、加速度センサ７０１は、非直線状（例えば、円弧状）の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【００７０】
しかしながら、加速度センサ７０１から出力される加速度の信号に基づいて、ゲーム装置のプロセッサ（例えばＣＰＵ１０）またはコントローラのプロセッサ（例えばマイコン７５１）等のコンピュータが処理を行うことによって、コアユニット７０に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。
【００７１】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。また、マイコン７５１は、アンテナ７５４を介して無線モジュール７５３が受信したゲーム装置本体５からのデータに応じて、サウンドＩＣ７０７およびバイブレータ７０４の動作を制御する。サウンドＩＣ７０７は、通信部７５を介してゲーム装置本体５から送信されたサウンドデータ等を処理する。また、マイコン７５１は、通信部７５を介してゲーム装置本体５から送信された振動データ（例えば、バイブレータ７０４をＯＮまたはＯＦＦする信号）等に応じて、バイブレータ７０４を作動させる。
【００７２】
コアユニット７０に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの３軸方向の加速度信号（Ｘ、Ｙ、およびＺ軸方向加速度データ）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。
【００７３】
マイコン７５１は、入力した各データ（キーデータ、Ｘ、Ｙ、およびＺ軸方向加速度データ、処理結果データ）を無線コントローラモジュール１９へ送信する送信データとして一時的にメモリ７５２に記憶する。ここで、通信部７５から無線コントローラモジュール１９への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。
【００７４】
具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥースで構成される通信部７５の送信間隔は５ｍｓである。マイコン７５１は、無線コントローラモジュール１９への送信タイミングが到来すると、メモリ７５２に記憶されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばブルートゥースの技術を用いて、操作情報を示す電波信号を所定周波数の搬送波を用いてアンテナ７５４から放射する。つまり、コアユニット７０に設けられた操作部７２からのキーデータと、加速度センサ７０１からのＸ、Ｙ、およびＺ軸方向加速度データと、撮像情報演算部７４からの処理結果データがコアユニット７０から送信される。そして、ゲーム装置本体５の無線コントローラモジュール１９でその電波信号を受信し、ゲーム装置本体５で当該電波信号を復調や復号することによって、一連の操作情報（キーデータ、Ｘ、Ｙ、およびＺ軸方向加速度データ、処理結果データ）を取得する。そして、ゲーム装置本体５のＣＰＵ１０は、取得した操作情報に基づいて、情報処理を行う。なお、ブルートゥースの技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【００７５】
（画像表示処理の概要）
次に、図６Ａから図１０を参照しつつ、本ゲーム装置本体５で行われる画像表示処理の概要について説明する。
【００７６】
なお、本明細書に添付の図面は、本発明の例示的な実施形態を説明するためのものであり、本発明の範囲がその図面に記載される具体的な態様に限定されることを意図するものではないことは上述のとおりである。特に、図６Ａから図１０までの図は、明細書に添付の図面という制約のために、無彩色の形式で表現されているが、その図によっては、実際の画像で表現される色は、色相を含み、彩度もゼロ（０）ではないものも含まれ得る。
【００７７】
例示的な実施形態において、ゲーム装置本体５は、光ディスク４から読み出した画像表示プログラムＤ１１（図１３参照）に従って画像表示処理を行う。以下では、太陽光が上から緑色の葉に降り注いでおり、その葉の上に４本足の黄色の生物体が乗っているという状況において、葉の下側から葉を見上げたときに見える画像を生成する場合を例として説明する。この場合、図１０に示すように、葉に重ねて生物体のシルエットを合成表示（より具体的には、半透明表示）するとともに、葉により近い部位（この例では、足の裏の部分）ほどより濃くなるように当該シルエットに濃淡を加えることで、より現実に近い写実的な表現が可能となる。本実施形態では、これから説明する画像表示処理によって、図１０に示すような画像を、軽い処理負荷で生成することができる。
【００７８】
図６Ａは、図１０に示す画像を生成する際の、仮想三次元空間内に配置されるオブジェクトと、それを撮影する仮想カメラＶＣの位置関係を模式的に示した図である。
【００７９】
オブジェクトＪ１は、４本足で歩行する黄色の生物体を模した三次元モデルであり、オブジェクトＪ２は、緑色の葉を模した三次元モデルである。より具体的には、オブジェクトＪ２は、格子を伴った開口部を有し、厚みのある葉を模した三次元モデルである。ただし、図６Ａにおいては、オブジェクトＪ２は、説明の都合上、その表示されるべき外形の一部を点線のみで簡略化して示している。
【００８０】
この例示的な実施形態において、ゲーム装置本体５は、最終的には図１０に示されるような、複数のオブジェクトを含むシーンの画像を表示するために、以下のような手順により処理を進める。
【００８１】
まず、ゲーム装置本体５は、図６Ａに示すように仮想三次元空間に配置されるオブジェクトＪ１およびオブジェクトＪ２の位置・姿勢を確定する。
【００８２】
その後、ゲーム装置本体５は、そのオブジェクトＪ２に合成表示すべきオブジェクトＪ１のシルエットを表現するためのシルエット画像Ｄ５１を生成する。
【００８３】
具体的には、ゲーム装置本体５（具体的には、ＧＰＵ３２）は、シルエット画像を生成するために用意された一定の方向に階調が付された（すなわち所定の方向に向かって段階的に色が濃くなるような）テクスチャ（以下、テンプレートテクスチャと称す）を用いて、オブジェクトＪ１の形状モデルにそのテクスチャを投影テクスチャマッピングし、そのマッピングされたモデルをフレームバッファ３４ａに書き込む。その後、ゲーム装置本体５は、フレームバッファ３４ａに書き込まれた、階調が付されたオブジェクトＪ１に対応する画像における階調情報を、テクスチャメモリ３２ａのアルファチャネル（画像表示プログラムＤ１１が利用できるデータ加工用補助のビット）に転送して、シルエット画像Ｄ５１を得る。次いで、ゲーム装置本体５は、フレームバッファ３４ａをクリアする。このような処理は、画像表示プログラムＤ１１による制御命令のもと、ＧＰＵ３２が有するＧＰＵとしての汎用的な機能により実現され得る。
【００８４】
なお、ゲーム装置本体５は、ポリゴンで構成される複数のオブジェクトを重ね合わせて描画する際に、奥行き方向に沿ったポリゴン間の描画優先順位を決定するために深度情報（例えば、Ｚバッファ３４ｂに記憶される）を利用する（ゲーム装置本体５は、シルエット画像Ｄ５１の生成後に、フレームバッファ３４ａをクリアすると同時に、Ｚバッファ３４ｂもクリアする。）。
【００８５】
ここで、テンプレートテクスチャでマッピングされたオブジェクトＪ１について、図６Ａから図７Ｂまでを参照しつつ説明する。
【００８６】
図６Ａから理解されるように、オブジェクトＪ１は、仮想三次元空間内でオブジェクトＪ２の上に位置づけられている。図７Ａは、オブジェクトＪ２が描画されていない状態で仮想カメラＶＣ側から撮像された場合のオブジェクトＪ１を示す模式図である。この図から理解されるように、仮想カメラＶＣからみた場合には、オブジェクトＪ１は、その腹部があらわになる姿勢をとる。
【００８７】
図６Ｂは、オブジェクトＪ１とオブジェクトＪ２との位置関係と、オブジェクトＪ１に投影マッピングされるテンプレートテクスチャの一例について説明する模式図である。
【００８８】
図６Ｂの左側に模式的に示されるように、オブジェクトＪ１にテンプレートテクスチャが投影マッピングされる際のオブジェクトＪ１に反映される階調は、オブジェクトＪ１がオブジェクトＪ２と接している位置で最も濃い色となり、オブジェクトＪ２から離れるに従い薄い色となるような階調である。ゲーム装置本体５（具体的には、ＧＰＵ３２）は、投影されるテクスチャ画像に規定されるテクスチャ座標と、オブジェクトＪ１のポリゴンの各頂点を規定づける座標とを対応づけることで、階調付のテンプレートテクスチャ画像（例えば、一定方向に黒色から白色へと段階的に変化するテクスチャ）をオブジェクトＪ１を構成するポリゴンにマッピングすることが可能である。
【００８９】
ここで、図６Ｂで示された例では、オブジェクトＪ１は、その前足の一方（左前足）をオブジェクトＪ２からｄａだけ浮かせた姿勢を取っている。上述のような階調が達成されるようにテンプレートテクスチャがマッピングされる場合、オブジェクトＪ１のオブジェクトＪ２からｄａだけ離れた位置にある前足（左前足）は、オブジェクトＪ２に接地しているもう一方の前足（右前足）にマッピングされるテンプレートテクスチャ画像の色と比べて薄い色に対応するテンプレートテクスチャ画像の部分（テクセル）でマッピングを受ける。
【００９０】
図７Ｂは、一定方向に階調を有するテンプレートテクスチャを用いて、オブジェクトＪ１に投影テクスチャマッピングを施し、フレームバッファ３４ａに描画した結果の一例を示した図である。
【００９１】
図７Ｂから理解されるように、フレームバッファ３４ａに書き込まれたオブジェクトＪ１に対応する画像は、オブジェクトＪ２から近い（すなわち、距離が短い）部位（例えば、オブジェクトＪ２に接地している足など）ほど濃い色となるような画像として書き込まれている。
【００９２】
そして、ゲーム装置本体５は、このようにしてフレームバッファ３４ａに書き込まれた階調の情報を、テクスチャメモリ３２ａのアルファチャネルに書き込むことで、シルエット画像Ｄ５１（アルファテクスチャ）を得る。
【００９３】
次いで、ゲーム装置本体５は、フレームバッファ３４ａをクリアし、その後、そのクリアされたフレームバッファ３４ａにオブジェクトＪ２を描画する。図８は、フレームバッファ３４ａに書き込まれたオブジェクトＪ２を示す画像の一例を示す図である。この際、ゲーム装置本体５は、オブジェクトＪ２の深度情報をＺバッファ３４ｂに書き込んでいる。
【００９４】
その後、ゲーム装置本体５は、テクスチャメモリ３２ａのアルファチャネルに書き込まれているシルエット画像Ｄ５１の階調に応じた混合比で、オブジェクトＪ２の画像の色に特定の色（シルエットの基本色）を混合する。このときは、Ｚバッファ３４ｂに記憶されている深度情報は更新されない。
【００９５】
この結果、オブジェクトＪ１のシルエットが合成されたオブジェクトＪ２の画像が、フレームバッファ３４ａに書き込まれる。図９は、ゲーム装置本体５によりフレームバッファ３４ａに書き込まれた、オブジェクトＪ１のシルエット画像が合成されたオブジェクトＪ２の画像の一例である。
【００９６】
その後、ゲーム装置本体５は、Ｚバッファ３４ｂに書き込まれているオブジェクトＪ２の深度情報に基づき、オブジェクトＪ１をフレームバッファ３４ａに書き込むことで、オブジェクトＪ２の開口部から視認されるオブジェクトＪ１の画像をフレームバッファ３４ａに描画することができる。このようにして、図１０に示されるような画像が得られる。
【００９７】
（画像表示処理の詳細な説明）
次に、ゲームシステム１において行われる画像表示処理の詳細を説明する。
【００９８】
ゲームシステム１のゲーム装置本体５において、ＣＰＵ１０は、ゲームアプリケーションＤ１２を実行し、それと協働して、画像表示プログラムＤ１１を実行する。ＧＰＵ３２は、画像表示手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。ＧＰＵ３２は、グラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）をＶＲＡＭ３４など記憶領域から取得して、それらのデータを用いて画像データを生成する。
【００９９】
（画像表示処理において用いられる主なデータ）
図１３は、上記画像表示システムにおける主要なデータを示すメモリマップである。このメモリマップに示される各種データは、ＶＲＡＭ３４、内部メインメモリ３５、テクスチャメモリ３２ａなどのゲーム装置本体５が有する記憶領域の所定の位置に記憶され、画像表示プログラムＤ１１の処理において、ゲーム装置本体５（ＣＰＵ１０、ＧＰＵ３２）が要求するタイミングで、必要とするデータが読み出され、利用される。
【０１００】
プログラム群Ｄ１０は、主に、以下のプログラム群を含む。
【０１０１】
画像表示プログラムＤ１１は、本実施形態の画像表示システムで行われる一連の処理を統合するためのプログラム群である。
ゲームアプリケーションＤ１２は、画像表示プログラムＤ１１と協働して実行されるゲームアプリケーションの一例である。
【０１０２】
モデルデータＤ２０は、仮想三次元空間に表示されるオブジェクト（例えば、オブジェクトＪ１、オブジェクトＪ２）の三次元モデルデータである。この三次元モデルデータは、多角形（ポリゴン）とその多角形の表面の模様（テクスチャデータ）を構成する画像データの集合である。ゲーム装置本体５は、それらのモデルデータを利用して画像を生成することで、１または複数のオブジェクトを含むシーンをリアルタイムに描画することができる。
【０１０３】
なお、一般に、オブジェクトの形状のモデリングは、個々のオブジェクト（物体）の形状や変形を扱うための「ローカル座標系」により規定され、ここで用いられるオブジェクトＪ１およびオブジェクトＪ２の形状データ（それぞれ、モデルデータＤ２１、モデルデータＤ２２とする）についても、同様である。また、それぞれのポリゴンのデータは、例えば、三角形のポリゴンを構成する頂点のリストとしてゲーム装置本体５が有する記憶領域（頂点バッファ）に記憶され得る。また、各モデルデータは、必要に応じてその表面にマッピングされるテクスチャを規定することができる。各頂点のデータは、位置情報、色情報を保持する。また、モデルデータには、仮想三次元空間で表現されるべきオブジェクトの付加的な属性情報も必要に応じて含まれる。
【０１０４】
テンプレートテクスチャデータＤ３０は、三次元形状モデルにより規定されるオブジェクトに投影される一定方向に階調が付けられたテクスチャ画像である。
【０１０５】
シルエット用色データＤ４０は、シルエットの基本色を表す色情報（ＲＧＢ）である。なお前述のように、実際に表示されるシルエットの色は、例えば、色データＤ４１に記憶される色データおよびシルエット画像Ｄ５１（アルファテクスチャ）に基づいて決定される。
【０１０６】
シルエット画像データＤ５０は、特定のオブジェクトに対してテンプレートテクスチャで投影テクスチャマッピングして描画することによって生成される画像を示す。
【０１０７】
（画像表示処理の具体的な流れ）
以下に、ゲーム装置本体５のプロセッサ（ＣＰＵ１０またはＧＰＵ３２）が行う画像表示処理の具体的な流れを説明する。
【０１０８】
図１１を参照して、ゲーム装置本体５のプロセッサ（以下、単にプロセッサと称す）が画像表示プログラムＤ１１に従って実行する画像表示処理の流れを説明する。図１１は、上記実施形態における、複数のオブジェクトを含むシーンを描画するための一連の描画処理の一例を示すフローチャートである。このフローチャートに示される一連のステップは、代表的には、モニタ２の画面の表示更新周期と同じ周期で繰り返される。ただし、当該繰り返しの頻度は、調整可能であり、例えば、画像表示プログラムＤ１１と協働するゲームアプリケーションＤ１２の要請などにより、適宜変更され得る。本図および後続の図では、「ステップ」を、「Ｓ」と略記する。
【０１０９】
ステップ１において、プロセッサは、仮想三次元空間に配置される１または複数のオブジェクトの位置・姿勢を確定する処理を行う。具体的には、本実施形態おいて、プロセッサは、オブジェクトＪ１およびオブジェクトＪ２の位置および姿勢を決定または更新し、仮想カメラＶＣの位置を決定または更新する。なお、オブジェクトの位置や、仮想カメラＶＣの位置の更新が必要ないときは、本ステップにおける処理の一部は適宜省略されてもよい。
【０１１０】
ステップ２において、プロセッサは、ステップ１で確定したオブジェクトの位置・姿勢（すなわち、それらを表現するためのパラメータ）に基づき、オブジェクト同士の位置関係ならびに仮想カメラＶＣの視点と各オブジェクトとの位置関係から、特定のオブジェクトが、他のオブジェクトの一部または全部を仮想カメラＶＣの視点から遮蔽する可能性がある否かを判定する。
【０１１１】
代表的には、プロセッサは、仮想カメラＶＣの視点と、描画対象となっている複数のオブジェクトのうち特定のオブジェクトとの間に、別のオブジェクトが存在するか否かにより判定する。この場合、この別のオブジェクトが存在するときは、上記特定のオブジェクトの一部または全部が、当該別のオブジェクトにより仮想カメラＶＣから遮蔽される可能性がある。
【０１１２】
特定のオブジェクトの一部または全部が、別のオブジェクトにより仮想カメラＶＣから遮蔽される場合であって、当該特定のオブジェクト（以下、被遮蔽オブジェクトと称す）のシルエットを当該別のオブジェクト（以下、遮蔽オブジェクトと称す）に対して合成表示する必要があるとき、ステップ３のシルエット生成処理に進む（ステップ２において、ＹＥＳ）。他方、特定のオブジェクトが別のオブジェクトにより仮想カメラＶＣの視点から遮蔽されない場合などには、シルエットの生成が必要ないものとして、プロセッサは、シルエット生成処理を伴わずフレームバッファにオブジェクトを描画する処理にすすむ（ステップ２において、ＮＯ）。
【０１１３】
この例示的な本実施形態では、上述のように、オブジェクトＪ１は、４本足で歩行する生物体を模したキャラクタを示すオブジェクトであり、他方、オブジェクトＪ２は、格子を伴った開口部を有し、厚みのある葉を模したオブジェクトである。そして、オブジェクトＪ２の開口部がオブジェクトＪ１の一部を仮想カメラＶＣ側から撮影可能となることを許容しつつも、オブジェクトＪ２の開口部以外の部分がオブジェクトＪ１の別部分を仮想カメラＶＣから遮蔽する位置に存在する。
【０１１４】
なお、描画の対象となるオブジェクトの位置関係が予め特定されている場合（例えば、シルエットの描画が常に必要である場合）などにおいては、仮想カメラＶＣの視点と、描画対象となっている複数のオブジェクトのうち特定のオブジェクトとの間に、別のオブジェクトが存在するか否かの判定は、必須の処理ではなく、省略可能な処理である。
【０１１５】
以下では、上記被遮蔽オブジェクトがオブジェクトＪ１であり、上記遮蔽オブジェクトがオブジェクトＪ２であるものと仮定して説明を続ける。
【０１１６】
ステップ３において、プロセッサは、特定のオブジェクトのシルエットを、当該特定のオブジェクトの一部または全部を遮蔽している別のオブジェクトに合成表示した画像を生成するためのシルエット生成処理を行う。このシルエット生成処理の一例としては、図１２に記載されるような処理が挙げられる。
【０１１７】
図１２を参照してその処理の詳細を説明する。図１２は、シルエット生成処理に関する一連の処理手順を示すフローチャートである。
【０１１８】
ステップ３１において、プロセッサ（具体的には、ＧＰＵ３２）は、三次元モデルに投影するためテンプレートテクスチャとしてのテクスチャ画像を取得する。具体的には、ＧＰＵ３２は、テンプレートテクスチャデータＤ３０の領域を参照してテクスチャ画像Ｄ３１を取得する。このテクスチャ画像Ｄ３１は、例えば、図６Ｃに示されるような一定方向に階調が付けられたテクスチャ画像である。図６Ｃは、一定の方向に階調が付されたテクスチャ画像Ｄ３１の例を示すための模式的であり、一定の方向に付された階調の態様はこの例に限られない。
【０１１９】
ステップ３２において、プロセッサ（ＧＰＵ３２）は、オブジェクトＪ１のシルエット画像Ｄ５１を生成する。具体的には、ＧＰＵ３２は、投影テクスチャマッピングを応用して、テクスチャ画像Ｄ３１をオブジェクトＪ１の形状モデルにマッピングし、最終的な画像をフレームバッファ３４ａに描画する。このとき、ＧＰＵ３２は、オブジェクトＪ１がオブジェクトＪ２と接している位置で最も濃い色となり、オブジェクトＪ２から離れるに従い薄い色となるような階調が生じるようにマッピングする。
【０１２０】
テクスチャ画像Ｄ３１をオブジェクトＪ１の形状モデルにマッピングする手法の一例として以下のような手法が挙げられる。
【０１２１】
既述のように、テンプレートテクスチャ画像は、その画像の部位を特定するためのテクスチャ座標系を有している。ＧＰＵ３２は、このテンプレートテクスチャ画像をオブジェクトＪ１に投影するために、オブジェクトＪ１のポリゴンを規定する頂点に対応するテクスチャ座標を計算する。このテクスチャ座標を計算する方法は、各頂点のワールド空間での座標（ＸＹＺ座標）を、所定のテクスチャ変換行列で変換することで与えられる。
【０１２２】
ここで、ＧＰＵ３２は、オブジェクトＪ１を構成する各頂点のワールド空間での座標を、ステップ１以降の過程で既に取得している。また、上述のテクスチャ変換行列は、一例として、テンプレートテクスチャ画像をオブジェクトＪ１に投影する方向からのビュー行列の逆行列により与える。一般に、ビュー行例（ビューイングマトリクス）は、視点の位置ベクトルＰ、注視点の位置ベクトルＥ、および視点の上方向を表すベクトルＵを規定することで定義づけられる。本例では、このようなビュー行列において、ワールド座標系におけるオブジェクトＪ２の上方向を示す方向ベクトルを、ベクトルＵとし、テクスチャを投影する方向ベクトルをＰ（これはＵと垂直であることを満たしていればよい）とし、オブジェクトＪ１がオブジェクトＪ２と接地する位置に対応する位置ベクトルＥとして求めることができる。なお、オブジェクトＪ１がオブジェクトＪ２に載っている面を上して、オブジェクトＪ２における上方向を規定する。
【０１２３】
なお、仮に、テクスチャ画像Ｄ３１として用いられる画像が、図６Ｃに示されたテクスチャ画像のみであるとしても、ＧＰＵ３２は、テクスチャ画像Ｄ３１をテンプレートテクスチャとしてオブジェクトＪ１に投影するときに、上述のベクトルに適宜にオフセットなどを設定することで、投影する位置を所定方向にずらすことが可能である。同様に、ＧＰＵ３２が投影テクスチャマッピングを行う際に用いる行列に所定のスケール成分を設定することで、投影されるテクスチャの範囲を変化させることも可能である。
【０１２４】
また、ゲーム装置本体５は、ポリゴンで構成される複数のオブジェクトを重ね合わせて描画する際に、奥行き方向に沿ったポリゴン間の描画優先順位を決定するために深度情報（例えば、Ｚバッファ３４ｂに記憶される）を利用する。
【０１２５】
ステップ３３では、プロセッサ（ＧＰＵ３２）が、階調付テクスチャでマッピングした上述のオブジェクトＪ１の画像を、シルエット画像Ｄ５１として保存する。具体的には、ＧＰＵ３２は、このオブジェクトＪ１の画像における階調情報を、テクスチャメモリ３２ａのアルファチャネルに書き込むことで、シルエット画像Ｄ５１（アルファテクスチャ）を得る。より具体的は、アルファチャネルの値（Ａ）が０．０≦Ａ≦１．０との範囲の値をとるとしたときに、ステップ３２でフレームバッファ３４ａに描画されたオブジェクトＪ１の画像において、より濃い領域に対応するピクセルほど、対応するシルエット画像Ｄ５１のアルファチャネルの値（Ａ）が１．０に近づき、また、より薄い領域に対応するピクセルほど、Ａが０．０に近づくように、シルエット画像Ｄ５１のアルファチャネルの値（Ａ）を設定することが可能である。
【０１２６】
ステップ３４において、プロセッサ（ＧＰＵ３２）は、フレームバッファ３４ａをクリアする。この際、プロセッサは、Ｚバッファ３４ｂもクリアする。
【０１２７】
ステップ３５において、プロセッサ（ＧＰＵ３２）は、仮想カメラＶＣから見たオブジェクトＪ２をフレームバッファ３４ａに描画する。この際、プロセッサは、Ｚバッファ３４ｂは有効にして描画し、その深度情報はＺバッファ３４ｂに書き込まれる。図８は、このときのフレームバッファ３４ａに書き込まれたオブジェクトＪ２を示す画像の一例を示す図である。
【０１２８】
ステップ３６において、プロセッサ（ＧＰＵ３２）は、フレームバッファ３４ａに描画されたオブジェクトＪ２の画像に、シルエット画像Ｄ５１として（アルファチャネルに）保存された情報をもとに、特定の色（シルエットの基本色）を合成する。具体的には、ＧＰＵ３２は、シルエット画像Ｄ５１のアルファチャネルに保持された階調情報に応じた混合比で、オブジェクトＪ２の画像の色に特定の色（例えば、深緑色、黒色などの色であって、オブジェクトＪ２に合成すべきシルエットの基本色としてあらかじめ定められた色）を混合する。
【０１２９】
より具体的には、ステップ３６において更新された後にフレームバッファ３４ａに記憶されるピクセルの色は、ステップ３５においてフレームバッファ３４ａに書き込まれている画像の色Ｆと、上記特定の色とが、シルエット画像Ｄ５１のアルファチャネルに保持された階調情報に応じた混合比で混合されたものとなる。より詳細な色の合成手順の一例は、次のとおりである。
【０１３０】
ステップ３５でオブジェクトＪ２が描画された後にフレームバッファ３４ａに記憶されている色をＦとし、ステップ３３で保存されたシルエット画像Ｄ５１のアルファチャネルの値をＡとし、上記特定色をＣとすると、ステップ３６における合成後の各ピクセルの色は、下記の式で表される。
（合成後の色）＝Ｆ＊（１−Ａ）＋Ｃ＊Ａ
【０１３１】
すなわち、オブジェクトＪ１がオブジェクトＪ２と接しているような位置に対応するシルエット画像Ｄ５１の部位では、合成後の色においてシルエットの基本色であるＣの割合が大きくなり、オブジェクトＪ１がオブジェクトＪ２から離れている位置に対応するシルエット画像Ｄ５１の部位では、合成後の色においてシルエットの基本色であるＣの割合が小さくなる。
【０１３２】
なお、上述の例では、アルファチャネルの値（Ａ）が０．０≦Ａ≦１．０との範囲の値をとるとしたときに、ステップ３２でフレームバッファ３４ａに描画されたオブジェクトＪ１の画像において、より濃い領域に対応するピクセルほど、対応するシルエット画像Ｄ５１のアルファチャネルの値（Ａ）が１．０に近づき、また、より薄い領域に対応するピクセルほど、Ａが０．０に近づくように、シルエット画像Ｄ５１のアルファチャネルの値（Ａ）が設定される。このＡの設定の仕方は、この例に限られず、アルファチャネルの値（Ａ）が０．０≦Ａ≦１．０との範囲の値をとるとしたときに、ステップ３２でフレームバッファ３４ａに描画されたオブジェクトＪ１の画像において、より濃い領域に対応するピクセルほど、対応するシルエット画像Ｄ５１のＡが０．０に近づき、また、より薄い領域に対応するピクセルほど、Ａが１．０に近づくように、シルエット画像Ｄ５１のアルファチャネルの値（Ａ）を設定してもよい。ただし、この場合は、ステップ３６における合成後の色は、下記の式で表される。
（合成後の色）＝Ｆ＊Ａ＋Ｃ＊（１−Ａ）
すなわち、合成後の色を得る前に、シルエット画像Ｄ５１のアルファチャネルの値が、どのような態様で階調情報を保持していても、合成後の色において、オブジェクトＪ１がオブジェクトＪ２により近い位置に対応するシルエット画像Ｄ５１の部位で、シルエットの基本色であるＣの割合がより大きくなればよい。
【０１３３】
ステップ３６において、プロセッサが画像合成を行うと、図１１に示されるメインのフローチャートに戻り、プロセッサは、そのステップ４に規定される処理を実行する。
【０１３４】
具体的には、ステップ４において、プロセッサは、Ｚバッファを有効にして、オブジェクトＪ１の本来の模様を表すテクスチャ（例えば、黄色いテクスチャ）を用いて、仮想カメラＶＣから見たオブジェクトＪ１をフレームバッファ３４ａに描画する。その後、プロセッサは、フレームバッファ３４ａに描画された画像を画面（例えば、モニタ２）に表示する。
【０１３５】
ところで、ステップ３５におけるシルエットの合成処理は、ステップ３５においてフレームバッファ３４ａに描画された画像全体に対して行われるので、図９に示すように、オブジェクトＪ２の開口部を通じて見えている背景の一部分にもシルエットが合成表示されてしまうが、ステップ３７においてオブジェクトＪ１を描画することによって当該部分は上書きされるため、何ら不都合は生じない。
【０１３６】
よって、ステップ３５におけるシルエットの合成処理を、フレームバッファ３４ａに記憶されている画像全体に対して画一的に行うことができるので、例外的な処理を追加することなしに、一般的なＧＰＵが有する標準的な機能を用いてシルエットの合成処理を実現することができる。
【０１３７】
このように、遮蔽オブジェクトに近い部位ほど濃くなるような被遮蔽オブジェクトのシルエット画像を、遮蔽オブジェクトに合成表示することができるので、例えば濃淡のないシルエットを合成表示する場合と比較して、写実的な表現が可能である。
【０１３８】
また、そのようなシルエット画像を、上述のような一定方向に階調を有するテクスチャを用いた投影テクスチャマッピングによって生成することができるので、例えば、遮蔽オブジェクトと被遮蔽オブジェクトの間の距離をピクセル毎に計算してシルエット画像を生成する場合と比較して、軽い処理負荷でシルエット画像を生成することができる。
【０１３９】
また、投影テクスチャマッピングは、一般的なＧＰＵが有する標準的な機能であるので、遮蔽オブジェクトと被遮蔽オブジェクトの間の距離をピクセル毎に計算するというような例外的な処理を追加する必要がないため、プログラミングの手間も軽減される。
【０１４０】
（変形例その他）
上述の例示的実施形態におけるステップ３６では、プロセッサ（ＧＰＵ３２）は、フレームバッファ３４ａに既に書き込まれている画像における色Ｆと、シルエットを描画するための特定色Ｃとを合成する際に、シルエット画像Ｄ５１のアルファチャネルに保持されていた階調情報に応じて色Ｆと特定色Ｃとを混合することによって、フレームバッファ３４ａに既に書き込まれている画像にシルエットを合成した。しかしながら、見た目上、オブジェクトＪ１のシルエットがオブジェクトＪ２に重ねて半透明表示されているように視認されさえすれば、他の任意の合成手法を採用しても構わない。例えば、シルエットとして表示すべき領域の色を、色Ｆと色Ｃとを所定のピクセル（例えば、１ピクセル）ごとに交互に表示する手法により、シルエットを合成してもよい。
【０１４１】
上述の例示的実施形態におけるステップ３３では、プロセッサ（ＧＰＵ３２）は、一定方向に階調を有するテンプレートテクスチャをオブジェクトＪ１にマッピングすることにより、シルエット画像Ｄ５１を得た。別の実施形態において、シルエット画像Ｄ５１を得るために異なる態様を用いることが可能である。例えば、オブジェクトＪ２側から見たオブジェクトＪ１を、Ｚバッファ３４ｂを有効にして描画（レンダリング）し（必ずしもフレームバッファ３４ａに色を描画する必要はない）、描画終了後のＺバッファ３４ｂの値（深度情報）を画像の濃淡レベルへと変換し（例えば、深度情報を所定の変換関数により濃淡レベルへと変換して、ステップ３３と同様に、テクスチャメモリのアルファチャネルに書き込む）、オブジェクトＪ２に近いほど濃くなるようなシルエット画像Ｄ５１を生成してもよい。
【０１４２】
上述の例示的な実施形態においては、オブジェクトＪ１とオブジェクトＪ２の２つのオブジェクトが存在するシーンを描画する場合について説明したが、オブジェクトの数が３つ以上の場合であっても、プロセッサは、本画像表示プログラムＤ１１の処理を同様に適用することが可能である。
【０１４３】
例えば、上述の例示的な実施形態において、オブジェクトＪ１の他にオブジェクトＪ３が、オブジェクトＪ２の上に配置されているシーンを想定した場合、プロセッサは、まず、オブジェクトＪ２のみをフレームバッファ３４ａに描画し、次いで、そのオブジェクトＪ１およびＪ３に対応する２つのシルエット画像のそれぞれの濃淡に応じた混合比で、オブジェクトＪ２の画像に特定の色（例えば、黒色）を混合する。その後、プロセッサは、オブジェクトＪ１およびＪ３のモデルをフレームバッファ３４ａに描画する。このように３つ以上のオブジェクトが存在しても、シルエットが落とされるオブジェクトを先にフレームバッファ３４ａに描き、次いで、シルエット画像をフレームバッファ３４ａに描かれている画像に対して、そのシルエット画像のそれぞれの濃淡に応じた混合比で合成し、最後に、シルエットの原因となったオブジェクトをフレームバッファ３４ａに描画すればよいことが理解される。
【０１４４】
なお、上記実施形態では、オブジェクトＪ１のシルエット画像Ｄ５１を生成する際に、オブジェクトＪ１のモデルデータＤ２１に基づいてシルエット画像Ｄ５１を生成しているが、他の実施例では、オブジェクトＪ１のシルエット画像を生成するためだけに用いるシルエット用モデルデータ（例えば、オブジェクトＪ１のモデルデータＤ２１よりも少ないポリゴン数でオブジェクトＪ１の形状を表したモデルデータ）を別途用意して、当該シルエット用モデルデータを用いてオブジェクトＪ１のシルエット画像Ｄ１を生成するようにしてもよい。例えば、オブジェクトＪ１のモデルデータＤ２１よりも少ないポリゴン数のシルエット用モデルデータを用いてシルエット画像Ｄ１を生成するようにすれば、シルエット画像生成処理の速度を向上させることができる。
【０１４５】
なお、１つの連続したオブジェクトの第１の部位が、その第２の部位よりも仮想カメラＶＣから離れた位置に存在し、仮想カメラＶＣから見て第１の部位の一部が第２の部位により遮蔽されるような場合にも、上記第１の部位および第２の部位を、それぞれ前述の被遮蔽オブジェクトおよび遮蔽オブジェクトとみなして上記実施形態と同様の処理を行うことによって、上記第１の部位のシルエットを第２の部位に合成表示することが可能である。
【０１４６】
上述した例示的な実施形態においては、太陽光が上から緑色の葉に降り注いでおり、その葉の上に４本足の黄色の生物体が乗っているという状況において、葉の下側から葉を見上げたときに見えるシーンに関する画像を生成する場合を例として説明した。しかし、ここで示された、４本足の黄色の生物体（被遮蔽オブジェクト）、太陽光が上から緑色の葉（遮蔽オブジェクト）などの描画使用とする対象は、あくまでも例示的なものであって、この例に限られるものではない。すなわち、被遮蔽オブジェクトのシルエットが遮蔽オブジェクトの表面に対して一定の効果として現れるシーンを描画するのであれば、上述の例示的な実施形態における手法を別のシーンを描画することに利用できる。
【０１４７】
例えば、光を完全には透過しない厚手の障子が遮蔽オブジェクトとして存在し、灯籠の光により、非遮蔽オブジェクトとしての武士のシルエットが遮蔽オブジェクトの表面に反映されるシーンの描画などに用いられる。
【０１４８】
また、上記実施例では、据置型のゲーム装置３に本願発明を適用した例を説明したが、ゲーム装置３で行われる同様の画像表示処理を実行する画像表示装置であればよく、例えば一般的なパーソナルコンピュータ、携帯電話機、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、携帯ゲーム装置等のデバイスにも適用することができる。
【０１４９】
別の実施形態において、画像表示プログラムＤ１１の構成する個々の部分が同時並行的に複数のコンピュータ上で実行され、それらがネットワークを介して互いに通信しあう形態（分散システム）で実施されてもよい。
【０１５０】
また、上記画像表示プログラムＤ１１は、光ディスク４等の外部記憶媒体を通じてゲーム装置本体５に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置本体５に供給されてもよい。
【０１５１】
また、その画像表示プログラムＤ１１は、ゲーム装置本体５内部の不揮発性記憶装置にあらかじめ記録されていてもよい。なお、画像表示プログラムＤ１１を記憶する情報記憶媒体としては、任意のコンピュータ読み取り可能な記憶媒体であればよく、例えば、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体の他に、不揮発性半導体メモリでもよい。
【０１５２】
なお、上記実施形態では、画像表示プログラムＤ１１と、その他のゲームアプリケーションＤ１２とを別個に設けている。しかしながら、この構成はあくまでも一例である。したがって、ゲームアプリケーションＤ１２の中に画像表示プログラムＤ１１が組み込まれていてもよい。
【０１５３】
また、本明細書において例示される画像表示プログラムＤ１１の特徴の本質を維持しつつ、本発明の画像表示プログラムＤ１１が総体としてユーザに提供する機能を別のプログラム上の構成単位を用いて再構築することが可能である（例えば、所定機能のモジュール化などを利用することが可能である。）。
【０１５４】
また、コンピュータのオペレーティングシステムの一部として様々なプログラムモジュール（関数等）を用意しておくことが一般的傾向である。さらに、アプリケーションプログラムはこれらのモジュールを必要な時に呼び出して処理を進める方式が一般的である。そして、一般的なプラットフォームを使用する限り、そうしたモジュールを含ませたソフトを流通させる必要はない。したがって、上記プログラムからそれらモジュールに対応する部分を除いたソフトウェアが、記録媒体に記憶された形式で、またはネットワーク上で提供される形式で提供／流通された場合であって、上述のモジュールによって機能が補完されたときには、結果として上記プログラムそのものが提供された場合と等価な効果が存在し得る。よって、上述のようなモジュールによって機能が補完されることを前提に、上記画像表示プログラムから上述のようなモジュールに対応する機能を除いたものは、実質的に上記画像表示プログラムに相当するものと解釈され得る。
【０１５５】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて均等な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用されるすべての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【産業上の利用可能性】
【０１５６】
本発明は、例えば、仮想３次元ゲーム空間において進行するゲームを実行するゲーム装置に好適である。
【符号の説明】
【０１５７】
１…ゲームシステム
２…モニタ
２ａ、７０６…スピーカ
３…ゲーム装置
４…光ディスク
５…ゲーム装置本体
１０…ＣＰＵ
１１…システムＬＳＩ
１２…外部メインメモリ
１３…ＲＯＭ／ＲＴＣ
１４…ディスクドライブ
１５…ＡＶ−ＩＣ
１６…ＡＶコネクタ
１７…フラッシュメモリ
１８…無線通信モジュール
１９…無線コントローラモジュール
２０…拡張コネクタ
２１…外部メモリカード用コネクタ
２２、２３…アンテナ
２４…電源ボタン
２５…リセットボタン
２６…イジェクトボタン
３１…入出力プロセッサ
３２…ＧＰＵ
３２ａ…テクスチャメモリ
３３…ＤＳＰ
３４…ＶＲＡＭ
３４ａ…フレームバッファ
３４ｂ…Ｚバッファ
３５…内部メインメモリ
７…コントローラ
７０…コアユニット
７１…ハウジング
７２…操作部
７３…コネクタ
７４…撮像情報演算部
７４１…赤外線フィルタ
７４２…レンズ
７４３…撮像素子
７４４…画像処理回路
７５…通信部
７５１…マイコン
７５２…メモリ
７５３…無線モジュール
７５４…アンテナ
７０１…加速度センサ
７０２…ＬＥＤ
７０４…バイブレータ
７０７…サウンドＩＣ
７０８…アンプ
７６１…制御部
７６２…発光部
７６３…受光部
８…マーカ
【図１】
0005469516.tif 000002
【図２】
0005469516.tif 000003
【図３】
0005469516.tif 000004
【図４】
0005469516.tif 000005
【図５】
0005469516.tif 000006
【図６Ａ】
0005469516.tif 000007
【図６Ｂ】
0005469516.tif 000008
【図６Ｃ】
0005469516.tif 000009
【図７Ａ】
0005469516.tif 000010
【図８】
0005469516.tif 000011
【図９】
0005469516.tif 000012
【図１０】
0005469516.tif 000013
【図１１】
0005469516.tif 000014
【図１２】
0005469516.tif 000015
【図１３】
0005469516.tif 000016
【図７Ｂ】
0005469516.tif 000017