(57)【要約】【課題】  比較的小規模の三次元画像処理回路を備える携帯ゲーム機において、１フレームにおいて三次元画像処理回路の能力を超えた数のポリゴンを表示すること。【解決手段】  仮想３次元ゲーム空間において表示器に表示すべき全視体積を、視点により近い手前側視体積と視点からより遠い奥側視体積とに分割する。連続する２フレームにおける１番目のフレームにおいて、奥側視体積のポリゴンを描画して奥側画像を生成し、２番目のフレームにおいて、奥側画像を背景として、手前側視体積のポリゴンを描画して全体画像を生成する。【選択図】  図７
2005321994.tif 000002
【特許請求の範囲】
【請求項１】
３次元仮想空間であるゲーム空間に配置された複数のポリゴンを当該ゲーム空間に設定された視点に基づいて表示するためのプログラムであって、
コンピュータに、
（ａ）表示手段の表示更新周期を１フレームとしたときの第（Ｎ）フレームにおいて、
第（Ｎ−１）フレームで表示用記憶手段に記憶された全視体積画像を表示手段に出力するステップ、
前記ゲーム空間内の表示すべき領域である全視体積を２分割したうちの一方の領域である第１視体積に含まれるポリゴンを描画して第１視体積画像を生成するステップ、および
前記第１視体積画像を非表示用記憶手段に記憶するステップを実行させ、
（ｂ）第（Ｎ＋１）フレームにおいて、
全視体積を２分割したうちの他方の領域である第２視体積に含まれるポリゴンを描画して第２視体積画像を生成するとともに、当該第２視体積画像と前記非表示用記憶手段に記憶されている第１視体積画像とを合成して全視体積画像を生成するステップ、
生成した全視体積画像を表示手段に出力するステップ、および
生成した全視体積画像を前記表示用記憶手段に記憶するステップを実行させるためのプログラム。
【請求項２】
第１視体積および第２視体積は、ゲーム空間に設定された視点の視線方向に沿って、第１視体積が視点から見て手前側に、第２視体積が視点から見て奥側に、それぞれ位置し、
前記全視体積画像生成ステップは、前記非表示用記憶手段に記憶されている第１視体積画像を背景として第２視体積に含まれるポリゴンを描画することによって、第２視体積画像と第１視体積画像とが合成された全視体積画像を生成するものであることを特徴とする、請求項１に記載のプログラム。
【請求項３】
第１視体積および第２視体積は、ゲーム空間に設定された視点の視線方向に沿って並んで位置し、
前記全視体積画像生成ステップは、第１視体積画像および第２視体積画像のうち、少なくとも視点から見て手前側の視体積の画像の各画素のアルファ値を用いて第１視体積画像と第２視体積画像をアルファ合成して全視体積画像を生成するものであることを特徴とする、請求項１に記載のプログラム。
【請求項４】
前記コンピュータを、全視体積に配置されるポリゴンの配置パターンに応じて第１視体積および第２視体積の大きさを適宜に変更する視体積設定手段として機能させることを特徴とする、請求項１に記載のプログラム。
【請求項５】
３次元仮想空間であるゲーム空間に配置された複数のポリゴンを当該ゲーム空間に設定された視点に基づいて表示するためのプログラムであって、
コンピュータに、
（ａ）表示手段の表示更新期間を１フレームとしたときの第（Ｎ）フレームにおいて、
第（Ｎ−１）フレームで表示用記憶手段に記憶された全視体積画像を表示出力するステップ、
前記ゲーム空間内の表示すべき領域である全視体積を３分割したうちの一つ目の領域である第１視体積に含まれるポリゴンを描画して第１視体積画像を生成するステップ、および
前記第１視体積画像を非表示用記憶手段に記憶するステップを実行させ、
（ｂ）第（Ｎ＋１）フレームにおいて、
第（Ｎ−１）フレームで表示用記憶手段に記憶された全視体積画像を表示出力するステップ、
全視体積を３分割したうちの二つ目の領域である第２視体積に含まれるポリゴンを描画して第２視体積画像を生成するとともに、前記非表示用記憶手段に記憶されている第１視体積画像と当該第２視体積画像とを合成して部分視体積画像を生成するステップ、および
前記部分視体積画像を前記非表示用記憶手段に記憶するステップを実行させ、
（ｃ）第（Ｎ＋２）フレームにおいて、
全視体積を３分割したうちの三つ目の領域である第３視体積に含まれるポリゴンを描画して第３視体積画像を生成するとともに、前記非表示用記憶手段に記憶されている部分視体積画像と当該第３視体積画像とを合成して全視体積画像を生成するステップ、
前記全視体積画像を表示手段に表示出力するステップ、および
前記全視体積画像を前記表示用記憶手段に記憶するステップを実行させるためのプログラム。
【請求項６】
表示器と、
３次元モデルデータに基づくゲーム画像を生成する３次元画像処理ユニットと、
前記３次元画像処理ユニットによって生成されるゲーム画像をライン毎に一時的に保持しては前記表示器に順次出力する第１ラインバッファと、
前記ラインバッファに格納されたデータを順次キャプチャすることによって前記ゲーム画像をキャプチャするキャプチャ回路と、
前記キャプチャ回路によってキャプチャされたゲーム画像を一時的に記憶する記憶装置と、
前記記憶装置に記憶されているゲーム画像をライン毎に一時的に保持しては前記表示器に順次出力する第２ラインバッファとを備えた携帯ゲーム機であって、
（ａ）前記表示器の表示更新周期を１フレームとしたときの第（Ｎ）フレームにおいて、
前記第２ラインバッファは、第（Ｎ−１）フレームで前記記憶装置に記憶された全視体積画像を前記表示器に出力し、
前記３次元画像処理ユニットは、前記ゲーム空間内の表示すべき領域である全視体積を２分割したうちの一方の領域である第１視体積に含まれるポリゴンを描画して第１視体積画像を生成して前記第１ラインバッファに順次出力し、
前記キャプチャ回路は、前記第１ラインバッファに格納されたデータを順次キャプチャすることによって前記第１視体積画像をキャプチャして前記記憶装置に格納し、
（ｂ）第（Ｎ＋１）フレームにおいて、
前記３次元画像処理ユニットは、全視体積を２分割したうちの他方の領域である第２視体積に含まれるポリゴンを描画して第２視体積画像を生成するとともに、当該第２視体積画像と前記記憶装置に記憶されている第１視体積画像とを合成して全視体積画像を生成して前記第１ラインバッファに順次出力し、
前記第１ラインバッファは、前記３次元画像処理ユニットによって生成される全視体積画像をライン毎に一時的に保持しては前記表示器に順次出力し、
前記キャプチャ回路は、前記第１ラインバッファに格納されたデータを順次キャプチャすることによって前記全視体積画像をキャプチャして前記記憶装置に格納することを特徴とする、携帯ゲーム機。
【請求項７】
表示器と、
３次元モデルデータに基づくゲーム画像を生成する３次元画像処理ユニットと、
前記３次元画像処理ユニットによって生成されるゲーム画像をライン毎に一時的に保持しては前記表示器に順次出力する第１ラインバッファと、
前記ラインバッファに格納されたデータを順次キャプチャすることによって前記ゲーム画像をキャプチャするキャプチャ回路と、
前記キャプチャ回路によってキャプチャされたゲーム画像を一時的に記憶する記憶装置と、
前記記憶装置に記憶されているゲーム画像をライン毎に一時的に保持しては前記表示器に順次出力する第２ラインバッファとを備えた携帯ゲーム機であって、
（ａ）前記表示器の表示更新期間を１フレームとしたときの第（Ｎ）フレームにおいて、
前記第２ラインバッファは、第（Ｎ−１）フレームで前記記憶装置に記憶された全視体積画像を前記表示器に出力し、
前記３次元画像処理ユニットは、前記ゲーム空間内の表示すべき領域である全視体積を３分割したうちの一つ目の領域である第１視体積に含まれるポリゴンを描画して第１視体積画像を生成して前記第１ラインバッファに順次出力し、
前記キャプチャ回路は、前記第１ラインバッファに格納されたデータを順次キャプチャすることによって前記第１視体積画像をキャプチャして前記記憶装置に格納し、
（ｂ）第（Ｎ＋１）フレームにおいて、
前記第２ラインバッファは、第（Ｎ−１）フレームで前記記憶装置に記憶された全視体積画像を前記表示器に出力し、
前記３次元画像処理ユニットは、全視体積を３分割したうちの二つ目の領域である第２視体積に含まれるポリゴンを描画して第２視体積画像を生成するとともに、前記記憶装置に記憶されている第１視体積画像と当該第２視体積画像とを合成して部分視体積画像を生成して前記第１ラインバッファに順次出力し、
前記キャプチャ回路は、前記第１ラインバッファに格納されたデータを順次キャプチャすることによって前記部分視体積画像をキャプチャして前記記憶装置に格納し、
（ｃ）第（Ｎ＋２）フレームにおいて、
前記３次元画像処理ユニットは、全視体積を３分割したうちの三つ目の領域である第３視体積に含まれるポリゴンを描画して第３視体積画像を生成するとともに、前記記憶装置に記憶されている部分視体積画像と当該第３視体積画像とを合成して全視体積画像を生成して前記第１ラインバッファに順次出力し、
前記第１ラインバッファは、前記３次元画像処理ユニットによって生成される全視体積画像をライン毎に一時的に保持しては前記表示器に順次出力し、
前記キャプチャ回路は、前記第１ラインバッファに格納されたデータを順次キャプチャすることによって前記全視体積画像をキャプチャして前記記憶装置に格納することを特徴とする、携帯ゲーム機。
【発明の詳細な説明】
【技術分野】
【０００１】
ポリゴンを利用した三次元のゲーム画像を用いたゲームプログラムを実行する携帯ゲーム機。
【背景技術】
【０００２】
近年、コンピュータシステムにおける三次元座標演算のための画像処理回路の回路規模を大きくすることにより、１フレーム中において表示できるポリゴン数が増加してきている。
【０００３】
一方で、１フレームにおける処理を画像処理以外の処理に割くために、１フレーム中の三次元画像処理の負担を軽減する技術として、特許文献１の技術がある。本特許文献１では、例えば草むらを表現する場合のように、複数のポリゴンで構成された、多数の似た形のポリゴンモデルを同時に表示する必要がある場合に、代表的な形をした草のポリゴンモデルを予めレンダリングしてその画像を用意しておき、この画像をポリゴンに貼り付けることで各草を簡略的に表示する。これにより、１フレームにおけるポリゴン処理数が減り、その分だけフレームレートを上げることができる。
【特許文献１】特開２００３−２２８７２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
近年、上述のコンピュータシステムや据置型のビデオゲーム機などでは、より精細でリアルなゲーム画像すなわち多数のポリゴンを用いた高度な３次元画像処理回路が採用され、大きな市場シェアを有している。例えば１フレームに２０００万ポリゴンを処理できるビデオゲーム機も存在する。
【０００５】
携帯ゲーム機においても同じように、高度な３次元画像処理回路を搭載することが望まれている。しかしながら、高度な３次元画像処理回路は、その回路規模の増大にともない半導体チップ面積の増大、画像処理回路の開発・製造コストの上昇、および発熱量の増加によるハウジングの巨大化などが生じる。したがって、携帯性や入手容易性のため小型で比較的安価に提供されることが必要な携帯ゲーム機においては、高度な３次元画像処理回路を搭載することはむしろ好ましくない。
【０００６】
このように、携帯ゲーム機には、上述したコンピュータシステムの三次元画像処理回路に比べて小規模の三次元画像処理回路を載せることが現実的であるが、このような小規模の三次元画像処理回路では、１フレームに処理できるポリゴン数が比較的少ない（例えば１フレームに数千ポリゴン処理程度）ので、リアル性にかける三次元画像しか表示できないという問題がある。
【０００７】
また、上述した特許文献１では、形が似た多数のポリゴンモデルが存在するシーンを描画するときには有効であるが、形が似たポリゴンモデルが存在しない場合には処理ポリゴン数を削減する効果は得られない。また、この特許文献１の手法では、形が似た多数のポリゴンモデルを代表的なポリゴンモデルの画像を用いて近似的に表示するため、処理ポリゴン数を削減することができる反面、シーンを忠実に表示することができないという問題がある。
【０００８】
また、従来技術のように簡易なポリゴン処理によりフレームレートを上げることは、例えばレースゲームのようにゲーム空間内を高速に移動するような物体を含むゲーム画像を表示する場合には有効であるが、携帯ゲーム機に一般的に採用される液晶ディスプレイは、ＣＲＴディスプレイなどに比べて応答速度が遅いため、液晶ディスプレイによってはフレームレートを高くしてもあまり効果がない場合がある。また、シュミレーションゲームなどのように動きが少ないゲームでは、むしろ、フレームレートを落としてでもポリゴン数のより多い繊細な画像を表示した方が良い場合もある。
【０００９】
それゆえに本発明は、仮に性能の低い三次元画像処理回路を用いた場合であっても、三次元画像処理回路の性能に縛られずに同時に多数のポリゴンを表示することのできるプログラムおよび携帯ゲーム機を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号や図番号は、本発明の理解を助けるために図面との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【００１１】
第１の発明は、３次元仮想空間であるゲーム空間に配置された複数のポリゴンを当該ゲーム空間に設定された視点に基づいて表示するためのプログラムである。
このプログラムは、コンピュータに、表示手段（１１）の表示更新周期を１フレームとしたときの第（Ｎ）フレームにおいて、第（Ｎ−１）フレームで表示用記憶手段（２７ｂ）に記憶された全視体積画像を表示手段（１１）に出力するステップ（Ｓ３５）、前記ゲーム空間内の表示すべき領域である全視体積を２分割したうちの一方の領域である第１視体積に含まれるポリゴンを描画して第１視体積画像を生成するステップ（Ｓ３０〜Ｓ３２）、および前記第１視体積画像を非表示用記憶手段（２７ａ）に記憶するステップ（Ｓ３３）を実行させる。
また、第（Ｎ＋１）フレームにおいて、全視体積を２分割したうちの他方の領域である第２視体積に含まれるポリゴンを描画して第２視体積画像を生成するとともに、当該第２視体積画像と前記非表示用記憶手段に記憶されている第１視体積画像とを合成して全視体積画像を生成するステップ（Ｓ４３）、生成した全視体積画像を表示手段に出力するステップ（Ｓ４５）、および生成した全視体積画像を前記表示用記憶手段に記憶するステップ（Ｓ４４）を実行させる。
【００１２】
第２の発明は、第１の発明において、第１視体積および第２視体積は、ゲーム空間に設定された視点の視線方向に沿って、第１視体積が視点から見て手前側に、第２視体積が視点から見て奥側に、それぞれ位置する（図７）。そして、前記全視体積画像生成ステップは、前記非表示用記憶手段に記憶されている第１視体積画像を背景として第２視体積に含まれるポリゴンを描画することによって、第２視体積画像と第１視体積画像とが合成された全視体積画像を生成する。
【００１３】
第３の発明は、第１の発明において、第１視体積および第２視体積は、ゲーム空間に設定された視点の視線方向に沿って並んで位置する（図７）。そして、前記全視体積画像生成ステップは、第１視体積画像および第２視体積画像のうち、少なくとも視点から見て手前側の視体積の画像の各画素のアルファ値（図１９）を用いて第１視体積画像と第２視体積画像をアルファ合成して全視体積画像を生成する。
【００１４】
第４の発明は、第１の発明において、このプログラムは、前記コンピュータを、全視体積に配置されるポリゴンの配置パターンに応じて第１視体積および第２視体積の大きさを適宜に変更する視体積設定手段として機能させる。
【００１５】
第５の発明は、３次元仮想空間であるゲーム空間に配置された複数のポリゴンを当該ゲーム空間に設定された視点に基づいて表示するためのプログラムである。
このプログラムは、コンピュータに、表示手段の表示更新期間を１フレームとしたときの第（Ｎ）フレームにおいて、第（Ｎ−１）フレームで表示用記憶手段に記憶された全視体積画像を表示出力するステップ、前記ゲーム空間内の表示すべき領域である全視体積を３分割したうちの一つ目の領域である第１視体積に含まれるポリゴンを描画して第１視体積画像を生成するステップ、および前記第１視体積画像を非表示用記憶手段に記憶するステップを実行させる。
また、第（Ｎ＋１）フレームにおいて、第（Ｎ−１）フレームで表示用記憶手段に記憶された全視体積画像を表示出力するステップ、全視体積を３分割したうちの二つ目の領域である第２視体積に含まれるポリゴンを描画して第２視体積画像を生成するとともに、前記非表示用記憶手段に記憶されている第１視体積画像と当該第２視体積画像とを合成して部分視体積画像を生成するステップ、および前記部分視体積画像を前記非表示用記憶手段に記憶するステップを実行させる。
また、第（Ｎ＋２）フレームにおいて、全視体積を３分割したうちの三つ目の領域である第３視体積に含まれるポリゴンを描画して第３視体積画像を生成するとともに、前記非表示用記憶手段に記憶されている部分視体積画像と当該第３視体積画像とを合成して全視体積画像を生成するステップ、前記全視体積画像を表示手段に表示出力するステップ、および前記全視体積画像を前記表示用記憶手段に記憶するステップを実行させる（図２０）。
【００１６】
第６の発明は、表示器（１１）と、３次元モデルデータに基づくゲーム画像を生成する３次元画像処理ユニット（３１）と、前記３次元画像処理ユニットによって生成されるゲーム画像をライン毎に一時的に保持しては前記表示器に順次出力する第１ラインバッファ（３２）と、前記ラインバッファに格納されたデータを順次キャプチャすることによって前記ゲーム画像をキャプチャするキャプチャ回路（３３）と、前記キャプチャ回路によってキャプチャされたゲーム画像を一時的に記憶する記憶装置（２７）と、前記記憶装置に記憶されているゲーム画像をライン毎に一時的に保持しては前記表示器に順次出力する第２ラインバッファ（３８）とを備えた携帯ゲーム機である。
そして、前記表示器の表示更新周期を１フレームとしたときの第（Ｎ）フレームにおいて、前記第２ラインバッファは、第（Ｎ−１）フレームで前記記憶装置に記憶された全視体積画像を前記表示器に出力し（Ｓ３５）、前記３次元画像処理ユニットは、前記ゲーム空間内の表示すべき領域である全視体積を２分割したうちの一方の領域である第１視体積に含まれるポリゴンを描画して第１視体積画像を生成して前記第１ラインバッファに順次出力し（Ｓ３２）、前記キャプチャ回路は、前記第１ラインバッファに格納されたデータを順次キャプチャすることによって前記第１視体積画像をキャプチャして前記記憶装置に格納する（Ｓ３３）。
また、第（Ｎ＋１）フレームにおいて、前記３次元画像処理ユニットは、全視体積を２分割したうちの他方の領域である第２視体積に含まれるポリゴンを描画して第２視体積画像を生成するとともに、当該第２視体積画像と前記記憶装置に記憶されている第１視体積画像とを合成して全視体積画像を生成して前記第１ラインバッファに順次出力し（Ｓ４３）、前記第１ラインバッファは、前記３次元画像処理ユニットによって生成される全視体積画像をライン毎に一時的に保持しては前記表示器に順次出力し（Ｓ４５）、前記キャプチャ回路は、前記第１ラインバッファに格納されたデータを順次キャプチャすることによって前記全視体積画像をキャプチャして前記記憶装置に格納する（Ｓ４４）。
【００１７】
第７の発明は、表示器（１１）と、３次元モデルデータに基づくゲーム画像を生成する３次元画像処理ユニット（３１）と、前記３次元画像処理ユニットによって生成されるゲーム画像をライン毎に一時的に保持しては前記表示器に順次出力する第１ラインバッファ（３２）と、前記ラインバッファに格納されたデータを順次キャプチャすることによって前記ゲーム画像をキャプチャするキャプチャ回路（３３）と、前記キャプチャ回路によってキャプチャされたゲーム画像を一時的に記憶する記憶装置（２７）と、前記記憶装置に記憶されているゲーム画像をライン毎に一時的に保持しては前記表示器に順次出力する第２ラインバッファ（３８）とを備えた携帯ゲーム機である。
そして、前記表示器の表示更新期間を１フレームとしたときの第（Ｎ）フレームにおいて、前記第２ラインバッファは、第（Ｎ−１）フレームで前記記憶装置に記憶された全視体積画像を前記表示器に出力し、前記３次元画像処理ユニットは、前記ゲーム空間内の表示すべき領域である全視体積を３分割したうちの一つ目の領域である第１視体積に含まれるポリゴンを描画して第１視体積画像を生成して前記第１ラインバッファに順次出力し、前記キャプチャ回路は、前記第１ラインバッファに格納されたデータを順次キャプチャすることによって前記第１視体積画像をキャプチャして前記記憶装置に格納する。
また、第（Ｎ＋１）フレームにおいて、前記第２ラインバッファは、第（Ｎ−１）フレームで前記記憶装置に記憶された全視体積画像を前記表示器に出力し、前記３次元画像処理ユニットは、全視体積を３分割したうちの二つ目の領域である第２視体積に含まれるポリゴンを描画して第２視体積画像を生成するとともに、前記記憶装置に記憶されている第１視体積画像と当該第２視体積画像とを合成して部分視体積画像を生成して前記第１ラインバッファに順次出力し、前記キャプチャ回路は、前記第１ラインバッファに格納されたデータを順次キャプチャすることによって前記部分視体積画像をキャプチャして前記記憶装置に格納する。
また、第（Ｎ＋２）フレームにおいて、前記３次元画像処理ユニットは、全視体積を３分割したうちの三つ目の領域である第３視体積に含まれるポリゴンを描画して第３視体積画像を生成するとともに、前記記憶装置に記憶されている部分視体積画像と当該第３視体積画像とを合成して全視体積画像を生成して前記第１ラインバッファに順次出力し、前記第１ラインバッファは、前記３次元画像処理ユニットによって生成される全視体積画像をライン毎に一時的に保持しては前記表示器に順次出力し、前記キャプチャ回路は、前記第１ラインバッファに格納されたデータを順次キャプチャすることによって前記全視体積画像をキャプチャして前記記憶装置に格納する（図２０）。
【発明の効果】
【００１８】
上記第１の発明によれば、第（Ｎ）フレームにおいて第１視体積画像を生成している間、第（Ｎ−１）フレームにおいて生成された全体画像を表示手段に表示するので、表示手段には三次元画像処理回路の能力を超えた数のポリゴンを毎フレーム表示させることができる。
【００１９】
上記第２の発明によれば、視点から遠い側の視体積の描画結果を背景として利用して、視点から近い側の視体積を描画することで、三次元画像処理回路が通常描画可能なポリゴン数の２倍のポリゴンを表示することができる。また、視点から近い側の視体積を描画するときには、遠い側の視体積を描画するときに利用されるＺバッファ値を無視できる（利用しなくてもよい）ので、そのＺバッファ値と比較するような計算量を減らすことができる。
【００２０】
上記第３の発明によれば、視点から遠い側の視体積の描画結果と、視点から近い側の視体積の描画結果をアルファ合成することで、三次元画像処理回路が通常描画可能なポリゴン数の２倍のポリゴンを表示することができる。
【００２１】
上記第４の発明によれば、全視体積に配置されるポリゴンの配置パターンに応じて第１視体積および第２視体積の大きさを適宜に変更するため、全視体積にポリゴンが偏って配置されている場合であっても、第１視体積と第２視体積にポリゴンがバランス良く配置されるようにすることができる。
【００２２】
上記第５の発明によれば、第１の発明に比べてさらに多くのポリゴンを表示することができる。また、第（Ｎ）フレームでは、第１視体積画像を生成している間、第（Ｎ−１）フレームで生成された全体画像が表示手段に表示されるため、表示手段には全体画像が毎フレーム表示される。
【００２３】
上記第６および第７の発明によれば、高性能な三次元処理回路を採用し難い携帯ゲーム機においても、より高精細なゲーム画像を表示することができる。特に、ラインバッファとキャプチャ回路との組合せによって、フレームバッファを用いる場合に比べて回路規模が大きくならないので、低コストで高精細なゲーム画像を表示させることができるゲーム装置を提供することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の一実施形態に係る携帯ゲーム機１について説明する。なお、本実施形態では、物理的に２つの表示画面を有し一方の表示画面がタッチパネルに覆われている携帯型ゲーム機を一例に挙げて説明するが、本発明はこれに限らない。すなわち、本発明は、据置型ビデオゲーム装置，アーケードゲーム装置，携帯端末，携帯電話またはパーソナルコンピュータなどに適用可能である。
【００２５】
図１は携帯ゲーム機１の外観図である。図１に示すように、携帯ゲーム機１は、第１表示画面１１ａと、第２表示画面１２ａとの２つの表示画面を備える。第２表示画面１２ａの表面は、タッチパネル１３によって覆われている。また、第２表示画面１２ａの右側には、プレイヤの右手によって操作可能なＡボタン１４ａ，Ｂボタン１４ｂ，Ｒスイッチ１４ｃ，及びゲーム音楽を出力するためのスピーカ１５が設けられている。一方、第２表示画面１２ａの左側には、プレイヤの左手によって操作可能な十字キー１４ｄ，スタートボタン１４ｅ，セレクトボタン１４ｆ及びＬスイッチ１４ｇが設けられている。また、携帯ゲーム機１には、タッチパネル１３に対する入力を行うためのスタイラス１６が含まれ、当該スタイラス１６は着脱自在に収納される。さらに、携帯ゲーム機１には、本発明のゲームプログラムを記憶した記憶媒体であるカートリッジ１７が着脱自在に装着される。なお、本実施形態では、入力装置としてタッチパネル１３を備える例を説明するが、本発明はこれに限定されない。また、本実施形態では、２つの表示画面のうち、第１表示画面１１ａにのみゲーム画像を表示するものとする。
【００２６】
図２は携帯ゲーム機１のブロック図である。図２に示すように、携帯ゲーム機１は、ゲームプログラムを実行するためのコンピュータの一例としてのＣＰＵ（中央処理装置）２１等を備える。ＣＰＵ２１には、ワークＲＡＭ（作業用記憶装置）２２や、２つのＧＰＵ（画像処理装置）２３，２４や、周辺回路Ｉ／Ｆ（インターフェイス）２５が電気的に接続される。ワークＲＡＭ２２は、ＣＰＵ２１によって実行されるゲームプログラムやＣＰＵ２１の演算結果などを一時的に記憶するメモリである。ＧＰＵ２３，２４は、ＣＰＵ２１からの指示に応じて、第１ＬＣＤ（液晶表示装置）１１および第２ＬＣＤ１２に表示出力するためのゲーム画像をＶＲＡＭ２７を用いてそれぞれ生成し、生成したゲーム画像を第１ＬＣＤ１１の第１表示画面１１ａおよび第２ＬＣＤ１２の第２表示画面１２ａにそれぞれに表示させるものである。周辺回路Ｉ／Ｆ２５は、タッチパネル１３，操作キー１４及びスピーカ１５などの外部入出力装置とＣＰＵ２１との間のデータの受け渡しを行う回路である。タッチパネル１３（タッチパネル用のデバイスドライバを含む）は、スタイラス１６によって入力（指示）された位置に対応する座標データを出力するものである。
【００２７】
さらに、ＣＰＵ２１には外部メモリＩ／Ｆ２６が電気的に接続されており、この外部メモリＩ／Ｆ２６にはカートリッジ１７が装着される。カートリッジ１７は、ゲームプログラムを格納するための記憶媒体であり、具体的には、ゲームプログラムを記憶するプログラムＲＯＭ１７ａと、バックアップデータを書き換え可能に記憶するバックアップＲＡＭ１７ｂとを搭載する。カートリッジ１７のプログラムＲＯＭ１７ａに記憶されたゲームプログラムは、ワークＲＡＭ２２にロードされ、こうしてワークＲＡＭ２２にロードされたゲームプログラムがＣＰＵ２１によって実行される。なお、本実施形態では、ゲームプログラムが外部記憶媒体から携帯ゲーム機１に供給される例を説明するが、ゲームプログラムは予め携帯ゲーム機１に内蔵された不揮発性メモリに記憶されていても良いし、有線または無線の通信回線を通じて携帯ゲーム機１に供給されても良い。
【００２８】
図３はＧＰＵ２３のブロック図である。図３に示すように、ＧＰＵ２３は、３次元画像処理ユニット３１および２次元画像処理ユニット３７の２つの画像処理ユニットを備える。３次元画像処理ユニット３１は、３次元モデルデータに基づいて３次元モデルの各頂点の演算等を行うジオメトリエンジンと、仮想３次元ゲーム空間に配置された３次元モデルからゲーム画像を生成するレンダリングエンジンを有する。２次元画像処理ユニット３７は、キャラクタを表す２次元画像データと背景を表す２次元画像データとに基づいてゲーム画像を生成する２Ｄレンダリングエンジンを有する。
【００２９】
３次元画像処理ユニット３１は、３Ｄラインバッファ３２に接続される。３Ｄラインバッファ３２は、第１ＬＣＤ１１の１走査線分の画像データを一時的に保持するためのバッファメモリである。３次元画像処理ユニット３１が生成した画像データは、この３Ｄラインバッファ３２に１ライン分ずつ順次格納される。
【００３０】
３Ｄラインバッファ３２は、キャプチャ回路３３およびＧＰＵセレクタ（ＳＥＬ  ＧＰＵ）３５に接続される。キャプチャ回路３３は、３Ｄラインバッファ３２に格納される１ライン分の画像データを順次読み出してＶＲＡＭ２７に順次記憶することによって、３次元画像処理ユニット３１が生成したゲーム画像をキャプチャするものである。
【００３１】
キャプチャ回路３３は、ＶＲＡＭセレクタ（ＳＥＬ  ＶＲＡＭ）３４に接続される。ＶＲＡＭ２７には、第１ＶＲＡＭ２７ａおよび第２ＶＲＡＭ２７ｂの２つのＶＲＡＭが設けられている。なお、第１ＶＲＡＭ２７ａおよび第２ＶＲＡＭ２７ｂの２つのＶＲＡＭを設ける替わりに、１つのＶＲＡＭにおける２つの異なる記憶領域をそれぞれ第１ＶＲＡＭ２７ａおよび第２ＶＲＡＭ２７ｂとして利用してもよい。ＶＲＡＭセレクタ３４は、キャプチャ回路３３の出力先を第１ＶＲＡＭ２７ａと第２ＶＲＡＭ２７ｂの間で切り替えるものである。
【００３２】
第１ＶＲＡＭ２７ａおよび第２ＶＲＡＭ２７ｂは、ＶＲＡＭセレクタ（ＳＥＬ  ＶＲＡＭ）３６に接続される。ＶＲＡＭセレクタ３６は、２次元画像処理ユニット３７へのデータの供給元を第１ＶＲＡＭ２７ａと第２ＶＲＡＭ２７ｂの間で切り替えるものである。
【００３３】
２次元画像処理ユニット３７は、２Ｄラインバッファ３８に接続される。２Ｄラインバッファ３８は、３Ｄラインバッファ３２と同様に、第１ＬＣＤ１１の１走査線分の画像データを一時的に保持するためのバッファメモリである。２次元画像処理ユニット３７が生成した画像データは、この２Ｄラインバッファ３８に１ライン分ずつ順次格納される。
【００３４】
２Ｄラインバッファ３８は、ＧＰＵセレクタ３５に接続される。ＧＰＵセレクタ３５は、第１ＬＣＤ１１へのデータの供給元を３Ｄラインバッファ３２と２Ｄラインバッファ３８の間で切り替えるものである。
【００３５】
以下、本実施形態に係る携帯ゲーム機１の動作について説明する。なお、携帯ゲーム機１の動作は、１フレーム周期で２者択一的に交互に変化する。なお、フレームとは、表示器（ここでは第１ＬＣＤ１１）の表示更新周期を指すものとする。以下、携帯ゲーム機１の動作を、第１フレームの処理と第２フレームの処理とに分けて説明する。なお、“第１フレーム”や“第２フレーム”は、便宜上そう呼ぶに過ぎない。すなわち、あるフレームを第１フレームと仮定した場合には、その前後のフレームは第２フレームということになり、逆にあるフレームを第２フレームと仮定した場合は、その前後のフレームは第１フレームということになる。
【００３６】
図４は、第１フレームにおける携帯ゲーム機１の動作を表す図である。図４に示すように、第１フレームにおいては、３次元画像処理ユニット３１が生成したゲーム画像は、３Ｄラインバッファ３２に供給される。また、キャプチャ回路３３の出力は、第１ＶＲＡＭ２７ａに供給される。すなわち、このフレームにおいて３次元画像処理ユニット３１が生成したゲーム画像は、キャプチャ回路３３によってキャプチャされ、第１ＶＲＡＭ２７ａに格納される。また、２次元画像処理ユニット３７は、第２ＶＲＡＭ２７ｂに格納されているゲーム画像（後述するように、直前の第２フレームでキャプチャ回路３３によりキャプチャされたゲーム画像）を読み出す。このゲーム画像は、後述するように、直前の第２フレームで第１ＬＣＤ１１に供給されたゲーム画像と同一となる。２次元画像処理ユニット３７によって読み出されたゲーム画像は、２Ｄラインバッファ３８を通じて第１ＬＣＤ１１に供給される。このように、第１フレームにおいては、このフレームで３次元画像処理ユニット３１が生成したゲーム画像は第１ＶＲＡＭ２７ａに記憶され、直前の第２フレームで３次元画像処理ユニット３１が生成したゲーム画像が第１ＬＣＤ１１に供給される。
【００３７】
図５は、第２フレームにおける携帯ゲーム機１の動作を表す図である。図５に示すように、第２フレームにおいては、第１ＶＲＡＭ２７ａに格納されているゲーム画像（すなわち、直前の第１フレームでキャプチャ回路３３によりキャプチャされたゲーム画像）は、ＶＲＡＭセレクタ３６を通じて３次元画像処理ユニット３１に供給される。そして、このゲーム画像に基づいて３次元画像処理ユニット３１はゲーム画像を生成し、３次元画像処理ユニット３１が生成したゲーム画像は、３Ｄラインバッファ３２を通じて第１ＬＣＤ１１に供給される。また、キャプチャ回路３３の出力は、第２ＶＲＡＭ２７ｂに供給される。すなわち、このフレームにおいて第１ＬＣＤ１１に供給されるものと同一のゲーム画像が、キャプチャ回路３３によってキャプチャされ、第２ＶＲＡＭ２７ｂに格納される。このように、第２フレームにおいては、直前の第１フレームで３次元画像処理ユニット３１が生成したゲーム画像に基づいて、３次元画像処理ユニット３１によって新たに生成されたゲーム画像が第１ＬＣＤ１１に供給される。
【００３８】
本実施形態では、第１フレームと第２フレームとで仮想カメラの設定を変えながらゲーム画像を生成する。図６は、仮想３次元ゲーム空間の一例を示す図である。図６において、この仮想３次元ゲーム空間には、多数の６面体ポリゴンモデル群、多数の４面体ポリゴンモデル群および１つの仮想カメラが配置されている。
【００３９】
以下、本実施形態における画像処理方法をより詳細に説明する。
【００４０】
本実施形態では、図７に示すように、仮想３次元ゲーム空間において、ゲーム画像として表示したい領域全体を全視体積とした場合に、この全視体積を仮想カメラに近い側の手前側視体積と仮想カメラから遠い側の奥側視体積との２つの視体積に分割し、第１フレームでは奥側視体積を描画し、第２フレームでは手前側視体積を描画する。図８および図９は、第１フレームおよび第２フレームにおける仮想カメラの設定をそれぞれ示している。第１フレームと第２フレームとで仮想カメラの位置や視線方向や画角は共通であるが、ニアクリップ面とファークリップ面の設定が異なる。すなわち図８に示すように、第１フレームでは、図７の第２クリップ面がニアクリップ面として設定され、図７の第３クリップ面がファークリップ面として設定される。また図９に示すように、第２フレームでは、図７の第１クリップ面がニアクリップ面として設定され、図７の第２クリップ面がファークリップ面として設定される。
【００４１】
図１０は、第１フレームにおける３次元画像処理ユニット３１のジオメトリ処理結果を示している。ここでは、奥側視体積に含まれるポリゴンの各頂点の座標がワールド座標系から投影座標系に変換される。このようなジオメトリ処理結果に基づいてレンダリング処理が行われる。図１１は、第１フレームにおける３次元画像処理ユニット３１のレンダリング処理結果を示している。こうして奥側視体積を表すゲーム画像が生成される。
【００４２】
図１２は、第２フレームにおける３次元画像処理ユニット３１のジオメトリ処理結果を示している。ここでは、手前側視体積に含まれるポリゴンの各頂点の座標がワールド座標系から投影座標系に変換される。このようなジオメトリ処理結果に基づいてレンダリング処理が行われるのであるが、第２フレームにおいては、第１フレームで生成したゲーム画像（図１１）を背景として利用して手前側視体積をレンダリング処理することにより全視体積を表すゲーム画像が生成される。図１３は、第２フレームにおける３次元画像処理ユニット３１のレンダリング処理結果を示している。
【００４３】
以下、図１４を参照して、本実施形態の画像処理の流れを説明する。
【００４４】
第Ｎフレームにおいては、３次元画像処理ユニット３１のジオメトリエンジンは、奥側視体積のポリゴンに関する座標計算を行い、３次元画像処理ユニット３１のレンダリングエンジンは、奥側視体積のポリゴンを描画して奥側画像Ａを生成する。キャプチャ回路３３は、３Ｄラインバッファから奥側画像Ａをキャプチャして第１ＶＲＡＭ２７ａに記憶する。これらの処理と並行して、２次元画像処理ユニット３７の２Ｄレンダリングエンジンは、前フレーム（すなわち第Ｎ−１フレーム）に３次元画像処理ユニット３１によって生成され、キャプチャ回路３３によって第２ＶＲＡＭ２７ｂに格納された全体画像（全視体積の画像）を読み出して２Ｄラインバッファ３８に出力する。２Ｄラインバッファ３８に格納された全体画像は第１ＬＣＤ１１に出力され、結果として、第１表示画面１１ａには、第Ｎ−１フレームで生成された全体画像が表示される。
【００４５】
第Ｎ＋１フレームにおいては、３次元画像処理ユニット３１のジオメトリエンジンは、手前視体積のポリゴンに関する座標計算を行い、３次元画像処理ユニット３１のレンダリングエンジンは、第１ＶＲＡＭ２７ａに記憶されている奥側画像Ａに重ねて手前視体積のポリゴンを描画し、全体画像Ｂを生成する。キャプチャ回路３３は、３Ｄラインバッファから全体画像Ｂをキャプチャして第２ＶＲＡＭ２７ｂに記憶する。３Ｄラインバッファ３２に格納された全体画像は第１ＬＣＤ１１に出力され、結果として、第１表示画面１１ａには、第Ｎ＋１フレームで生成された全体画像Ｂが表示される。
【００４６】
第Ｎ＋２フレームにおいては、３次元画像処理ユニット３１のジオメトリエンジンは、奥側視体積のポリゴンに関する座標計算を行い、３次元画像処理ユニット３１のレンダリングエンジンは、奥側視体積のポリゴンを描画して奥側画像Ｃを生成する。キャプチャ回路３３は、３Ｄラインバッファから奥側画像Ｃをキャプチャして第１ＶＲＡＭ２７ａに記憶する。これらの処理と並行して、２次元画像処理ユニット３７の２Ｄレンダリングエンジンは、前フレーム（すなわち第Ｎ＋１フレーム）に３次元画像処理ユニット３１によって生成され、キャプチャ回路３３によって第２ＶＲＡＭ２７ｂに格納された全体画像Ｂを読み出して２Ｄラインバッファ３８に出力する。２Ｄラインバッファ３８に格納された全体画像Ｂは第１ＬＣＤ１１に出力され、結果として、第１表示画面１１ａには、第Ｎ＋１フレームで生成された全体画像が表示される。
【００４７】
第Ｎ＋３フレーム以降も同様の処理が繰り返される。このように本実施形態では、表示画面１１ａに同一の全体画像が２回ずつ表示されることになる。
【００４８】
ところで、奥側視体積に５０００個のポリゴンが存在し、手前側視体積に５０００個のポリゴンが存在した場合、１フレームに最大で５０００個のポリゴンしか描画できない３次元画像処理ユニット３１ではこれらの合計１００００個のポリゴンを毎フレーム表示させることはできない（一部のポリゴンしか描画されなかったり、画面の一部の領域にしかゲーム画像が表示されなかったりする）が、本実施形態では、第１フレームで奥側視体積の５０００個のポリゴンを描画し、第２フレームで手前側視体積の５０００個のポリゴンを描画し、奥側視体積の画像と手前側視体積の画像を合成した全体画像を２フレーム連続して表示することにより、１フレームに最大で５０００個のポリゴンしか描画できない３次元画像処理ユニット３１で合計１００００個のポリゴンを毎フレーム表示させることができる。
【００４９】
次に、図１５〜図１７のフローチャートを参照して、携帯ゲーム機１の動作をより詳細に説明する。なお、ここでは、図１５のステップＳ１０〜Ｓ１６，Ｓ１８〜Ｓ２４は、カートリッジ１７のプログラムＲＯＭ１７ａに記憶されたゲームプログラムに基づくＣＰＵ２１の処理ステップとして説明する。しかしながら、これらのうちの何れかの処理ステップをハードウェアのみで実現しても構わない。
【００５０】
図１５において、ＣＰＵ２１は、仮想３次元ゲーム空間を生成する（Ｓ１０）。具体的には、複数のポリゴンで構成された、プレイヤキャラクタや敵キャラクタ等の３次元モデルの各頂点のワールド座標を初期値に設定する処理が行われる。次にＣＰＵ２１は、操作キー１４から出力される操作キーデータに基づいて、仮想３次元ゲーム空間におけるプレイヤキャラクタ等の３次元モデルの配置座標を更新する（Ｓ１１）。
【００５１】
次にＣＰＵ２１は、現在のフレームが第１フレームかどうかを判断する（Ｓ１２）
【００５２】
現在のフレームが第１フレームの場合、ＣＰＵ２１は、キャプチャ回路３３の出力先を第１ＶＲＡＭ２７ａに割り当てる（Ｓ１３）とともに、２次元画像処理ユニット３７に第２ＶＲＡＭ２７ｂを割り当てる（Ｓ１４）。さらにＣＰＵ２１は、２Ｄラインバッファ３８の出力を第１ＬＣＤ１１に割り当て（Ｓ１５）、奥側視体積の設定（ニアクリップ面、ファークリップ面等の設定）を行う（Ｓ１６）。この後、第１フレーム処理（Ｓ１７）が実行された後、ステップＳ２３に進む。第１フレーム処理の詳細については後述する。
【００５３】
一方、現在のフレームが第２フレームの場合、ＣＰＵ２１は、キャプチャ回路３３の出力先を第２ＶＲＡＭ２７ｂに割り当てる（Ｓ１８）とともに、第１ＶＲＡＭ２７ａの出力先を３次元画像処理ユニット３１に割り当てる（Ｓ１９）。さらにＣＰＵ２１は、３Ｄラインバッファ３２の出力を第１ＬＣＤ１１に割り当て（Ｓ２０）、手前側視体積の設定（ニアクリップ面、ファークリップ面等の設定）を行う（Ｓ２１）。この後、第２フレーム処理（Ｓ２２）が実行された後、ステップＳ２３に進む。第２フレーム処理の詳細については後述する。
【００５４】
ステップＳ２３で、ＣＰＵ２１は、連続する２フレーム（すなわち第１フレームとそれに続く第２フレーム）が終了したかどうかを判断し（Ｓ２３）、終了していない場合はステップＳ１２に戻って第２フレームの処理を行い、終了している場合はステップＳ２４に進む。
【００５５】
ステップＳ２４で、ＣＰＵ２１は、ゲーム終了かどうかを判断し、ゲーム続行の場合はステップＳ１１に戻って３次元モデルの配置座標を更新し、ゲーム終了の場合は処理を終える。このように、３次元モデルの配置座標の更新は第１フレームの開始時に行われる。すなわち、３次元モデルの配置座標の更新は２フレームに１度行われる。
【００５６】
次に、第１フレーム処理の詳細を図１６を用いて説明する。この第１フレーム処理はＣＰＵ２１の指示に基づきＧＰＵ２３によって実行される。
【００５７】
まず、３次元画像処理ユニット３１のジオメトリエンジンによって、奥側視体積の各ポリゴンの頂点座標（ワールド座標系）が、仮想カメラに基づくカメラ座標系に変換される（Ｓ３０）。さらに３次元画像処理ユニット３１のジオメトリエンジンによって、それらの頂点座標（カメラ座標系）が、２次元の投影座標系に変換される（Ｓ３１）。以下、３次元画像処理ユニット３１の処理と２次元画像処理ユニット３７の処理が並行して行われる。
【００５８】
３次元画像処理ユニット３１のレンダリングエンジンは、奥側視体積の各ポリゴンの頂点座標の変換結果に基づいて、最初の１ライン分に含まれるポリゴンの奥行情報（Ｚバッファ値）を参照しながら１ライン分の画像データをレンダリング処理によって生成し、これを３Ｄラインバッファ３２に格納する（Ｓ３２）。３Ｄラインバッファ３２に格納された１ライン分の画像データは、キャプチャ回路３３によって第１ＶＲＡＭ２７ａの所定の領域に格納される（Ｓ３３）。一方、２次元画像処理ユニット３７の２Ｄレンダリングエンジンは、第２ＶＲＡＭ２７ｂに格納されているゲーム画像の最初の１ライン分の画像データを読み出し、これを２Ｄラインバッファ３８に格納する（Ｓ３４）。続いて、この２Ｄラインバッファ３８に格納された１ライン分の画像データが第１ＬＣＤ１１に供給される（Ｓ３５）。この後、水平同期を確立するためにＨブランクタイミング（水平帰線区間）を待った後、ステップＳ３２に戻り、次のラインについても同様の処理が繰り返される。すなわち、３次元画像処理ユニット３１のレンダリングエンジンは、次の１ライン分の画像データをレンダリング処理によって生成し、これを３Ｄラインバッファ３２に格納する（Ｓ３２）。以降、全ラインの処理（すなわち１画面全体の処理）が終了するまで、ステップＳ３２〜Ｓ３５の処理が繰り返される。
【００５９】
全ラインの処理が終了すると（Ｓ３６でＮｏ）、第１フレーム処理は終了する。
【００６０】
次に、第２フレーム処理の詳細を図１７を用いて説明する。この第２フレーム処理はＣＰＵ２１の指示に基づきＧＰＵ２３によって実行される。
【００６１】
まず、３次元画像処理ユニット３１のジオメトリエンジンによって、手前側視体積の各ポリゴンの頂点座標（ワールド座標系）が、仮想カメラに基づくカメラ座標系に変換される（Ｓ４０）。さらに３次元画像処理ユニット３１のジオメトリエンジンによって、それらの頂点座標（カメラ座標系）が、２次元の投影座標系に変換される（Ｓ４１）。
【００６２】
３次元画像処理ユニット３１のレンダリングエンジンは、第１ＶＲＡＭ２７ａから最初の１ライン分の画像データを読み込む（Ｓ４２）。そして、手前側視体積の各ポリゴンの頂点座標の変換結果に基づいて、ステップＳ４２で読み込んだ１ライン分の画像データに足して上書きかつ当該手前側視体積における最初の１ライン分に含まれるポリゴンの奥行情報を参照しながら１ライン分の画像データをレンダリング処理によって生成し、これを３Ｄラインバッファ３２に格納する（Ｓ４３）。３Ｄラインバッファ３２に格納された１ライン分の画像データは、キャプチャ回路３３によって第２ＶＲＡＭ２７ｂの所定の領域に格納される（Ｓ４４）。また、この３Ｄラインバッファ３２に格納された１ライン分の画像データは、第１ＬＣＤ１１にも供給される（Ｓ４５）。この後、水平同期を確立するためにＨブランクタイミング（水平帰線区間）を待った後、ステップＳ４２に戻り、次のラインについても同様の処理が繰り返される。すなわち、３次元画像処理ユニット３１のレンダリングエンジンは、第１ＶＲＡＭ２７ａから次の１ライン分の画像データを読み込む（Ｓ４２）。以降、全ラインの処理（すなわち１画面全体の処理）が終了するまで、ステップＳ４２〜Ｓ４５の処理が繰り返される。
【００６３】
全ラインの処理が終了すると（Ｓ３６でＮｏ）、第２フレーム処理は終了する。
【００６４】
以上のように、本実施形態に係る携帯ゲーム機１によれば、画像表示に不具合（一部のポリゴンしか描画されなかったり、画面の一部の領域にしかゲーム画像が表示されなかったりする不具合）を生じることなく、３次元画像処理ユニットの能力を超えた多数のポリゴンを表示することができる。
【００６５】
なお、以上の説明から明らかなように、本実施形態では２次元画像処理ユニット３７は、単に、第２ＶＲＡＭ２７ｂに格納されているゲーム画像を２Ｄラインバッファ３８に転送しているに過ぎない。したがって、このような転送機能を別途用意すれば、２次元画像処理ユニット３７は必要ないことは言うまでもない。
【００６６】
なお、以上の説明では、奥側視体積と手前側視体積の境界（すなわち図７の第２クリップ面）を全視体積のどこに設定するかについて特に述べていないが、これは固定であっても良いし、状況に応じて（例えば全視体積に配置されるポリゴンの配置パターンに応じて）第２クリップ面の位置を適宜に変更してもよい。例えば、全視体積に含まれるポリゴン数を計算し、この全視体積に含まれるポリゴンのうちの半分のポリゴンが手前側視体積および奥側視体積にそれぞれ含まれるように、第２クリップ面の位置を調整してもよい。
【００６７】
また本実施形態では、第１フレームで奥側視体積を描画して奥側画像を生成し、第２フレームで、奥側画像を背景として手前側視体積を描画して全体画像を生成するとしたが、本発明はこれに限らず、第１フレームで手前側視体積を描画し、第２フレームで奥側視体積を描画してもよい。この場合、だい１フレームで手前側視体積を描画して手前側画像を生成するときに、画素毎にアルファ値を設定して手前側画像に含めておき、第２フレームで奥側視体積を描画して全体画像を生成するときに、手前側画像のアルファ値を参照して全体画像を生成すればよい。より具体的には、例えば、図１８のような手前側画像において、図１９に示すようにポリゴンが描画されている領域が不透明となり、その他の領域が透明となるように各画素のアルファ値を設定する。図１９のようなアルファ値に基づいて図１８の手前側画像と図１１の奥側画像とを合成することにより、図１３のような全体画像を生成することができる。
【００６８】
また本実施形態では、全視体積を奥側視体積と手前側視体積の二つの視体積に分割するとしたが、より多くのポリゴン数を描画したい場合には、図２０に示すように全視体積を第１視体積、第２視体積および第３視体積の３つの視体積に分割してもよい。この場合、連続する３つのフレームで、第１視体積画像、第２視体積画像および第３視体積画像を順次生成し、これらの画像をアルファ合成して全体画像を生成すればよい。または、連続する３つのフレームにおいて、最初のフレームで第３視体積画像を生成し、次のフレームで第３視体積画像を背景として第２視体積を描画することによって部分視体積画像を生成し、最後のフレームで部分視体積画像を背景として第１視体積を描画することによって全体画像を生成してもよい。
【００６９】
また本実施形態では、全視体積を、ゲーム空間に設定された視点（仮想カメラ）の視線方向に沿って並んで位置する二つの視体積に分割するとしたが、本発明はこれに限らず、全視体積を任意に分割してもよい。例えば図２１のように、全視体積を、仮想カメラ座標系でＹ座標が正となる領域（上側視体積）とＹ座標が負となる領域（下側視体積）とに分割してもよい。
【００７０】
なお、本発明の実施形態として、図２および図３のようなハードウェア構成を有する携帯ゲーム機について説明したが、本発明は必ずしもこのようなハードウェア構成を有する携帯ゲーム機のみに適用されるものではなく、一部のハードウェアを、ＣＰＵとソフトウェアによって実現してもよい。また、パソコンや携帯情報端末などのコンピュータシステムで、本実施形態の携帯ゲーム機をエミュレートすることも可能である。この場合には、コンピュータシステムに本実施形態の携帯ゲーム機の各ハードウェアの機能を達成させるようなゲームプログラムを用意して、これをコンピュータシステムに供給すればよい。これにより、汎用的なコンピュータシステムにも本発明を適用することができる。
【図面の簡単な説明】
【００７１】
【図１】本発明の一実施形態に係る携帯ゲーム機１の外観図
【図２】携帯ゲーム機１の内部構成図
【図３】ＧＰＵ２３の内部構成図
【図４】第１フレームにおける携帯ゲーム機１の動作を示す図
【図５】第２フレームにおける携帯ゲーム機１の動作を示す図
【図６】仮想３次元ゲーム空間の一例を示す図
【図７】視体積の分割例を示す図
【図８】奥側視体積を描画するときの仮想カメラの設定を示す図
【図９】手間側視体積を描画するときの仮想カメラの設定を示す図
【図１０】奥側視体積のジオメトリ処理結果を示す図
【図１１】奥側視体積のレンダリング処理結果を示す図
【図１２】手前側視体積のジオメトリ処理結果を示す図
【図１３】手前側視体積のレンダリング処理結果を示す図
【図１４】画像処理の流れを示す図
【図１５】画像処理の流れを示すフローチャート
【図１６】第１フレーム処理の流れを示すフローチャート
【図１７】第２フレーム処理の流れを示すフローチャート
【図１８】手前側画像の一例を示す図
【図１９】手前側画像の各画素のアルファ値を示す図
【図２０】視体積の分割例を示す図
【図２１】視体積の分割例を示す図
【符号の説明】
【００７２】
１  携帯ゲーム機
１１  第１ＬＣＤ
１１ａ  第１表示画面
１２  第２ＬＣＤ
１２ａ  第２表示画面
１３  タッチパネル
１４  操作キー
１４ａ  Ａボタン
１４ｂ  Ｂボタン
１４ｃ  Ｒスイッチ
１４ｄ  十字キー
１４ｅ  スタートボタン
１４ｆ  セレクトボタン
１４ｇ  Ｌスイッチ
１５  スピーカ
１６  スタイラス
１７  カートリッジ
【図１】
2005321994.tif 000003
【図２】
2005321994.tif 000004
【図３】
2005321994.tif 000005
【図４】
2005321994.tif 000006
【図５】
2005321994.tif 000007
【図６】
2005321994.tif 000008
【図７】
2005321994.tif 000009
【図８】
2005321994.tif 000010
【図９】
2005321994.tif 000011
【図１０】
2005321994.tif 000012
【図１１】
2005321994.tif 000013
【図１２】
2005321994.tif 000014
【図１３】
2005321994.tif 000015
【図１４】
2005321994.tif 000016
【図１５】
2005321994.tif 000017
【図１６】
2005321994.tif 000018
【図１７】
2005321994.tif 000019
【図１８】
2005321994.tif 000020
【図１９】
2005321994.tif 000021
【図２０】
2005321994.tif 000022
【図２１】
2005321994.tif 000023