(57)【要約】【課題】チラツキの少ない立体視画像の効率的な生成を可能にするプログラム等の提供。【解決手段】画像生成システムは、第１、第２の領域ＡＲ１、ＡＲ２を有するバッファＴＢと、多眼立体視画像ＩＳを生成するための描画処理を行う描画部を含む。描画部は、多眼立体視の第１の視点画像ＩＲを高さ方向において１／２に圧縮して、バッファＴＢの第１の領域ＡＲ１に書き込むと共に、多眼立体視の第２の視点画像ＩＬを高さ方向において１／２に圧縮して、バッファＴＢの第２の領域ＡＲ２に書き込む。そしてバッファＴＢから画像を読み出すことで、第１の領域ＡＲ１に書き込まれた第１の視点画像ＩＲのピクセル画像と第２の領域ＡＲ２に書き込まれた第２の視点画像ＩＬのピクセル画像とが、ライン毎に交互に表示される多眼立体視画像ＩＳを生成する。【選択図】図６
2009064355.tif 000002
【特許請求の範囲】
【請求項１】
第１の領域と第２の領域を有するバッファと、
多眼立体視画像を生成するための描画処理を行う描画部として、
コンピュータを機能させ、
前記描画部は、
多眼立体視の第１の視点画像を高さ方向において１／２に圧縮して、前記バッファの前記第１の領域に書き込むと共に、多眼立体視の第２の視点画像を高さ方向において１／２に圧縮して、前記バッファの前記第２の領域に書き込み、
前記バッファから画像を読み出すことで、前記第１の領域に書き込まれた前記第１の視点画像のピクセル画像と前記第２の領域に書き込まれた前記第２の視点画像のピクセル画像とが、ライン毎に交互に表示される前記多眼立体視画像を生成することを特徴とするプログラム。
【請求項２】
請求項１において、
前記バッファは、
幅がＷピクセルであり高さがＨ／２ピクセルである前記第１の領域と、幅がＷピクセルであり高さがＨ／２ピクセルである前記第２の領域を有し、
前記描画部は、
前記バッファのメモリピッチを２Ｎバイトに設定し、幅がＷピクセルであり高さがＨピクセルである前記第１の視点画像を高さ方向において圧縮して、前記第１の領域に書き込むと共に、幅がＷピクセルであり高さがＨピクセルである前記第２の視点画像を高さ方向において圧縮して、前記第２の領域に書き込み、
前記バッファのメモリピッチをＮバイトに設定し、前記バッファから画像を読み出すことで、前記第１の視点画像のピクセル画像と前記第２の視点画像のピクセル画像がライン毎に交互に表示される前記多眼立体視画像を生成することを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記第１、第２の視点画像を描画するための描画バッファを含み、
前記描画部は、
前記第１の視点画像を前記描画バッファに描画し、前記描画バッファに描画された前記第１の視点画像を高さ方向において圧縮して前記バッファの前記第１の領域にコピーし、前記第２の視点画像を前記描画バッファに描画し、前記描画バッファに描画された前記第２の視点画像を高さ方向において圧縮して前記バッファの前記第２の領域にコピーすることを特徴とするプログラム。
【請求項４】
請求項３において、
前記描画部は、
前記描画バッファに描画された前記第１の視点画像を、前記第１の領域のサイズのポリゴンにテクスチャマッピングして前記第１の領域に描画することで、前記描画バッファから前記第１の領域への前記第１の視点画像のコピーを行い、前記描画バッファに描画された前記第２の視点画像を、前記第２の領域のサイズのポリゴンにテクスチャマッピングして前記第２の領域に描画することで、前記描画バッファから前記第２の領域への前記第２の視点画像のコピーを行うことを特徴とするプログラム。
【請求項５】
請求項４において、
前記描画部は、
前記第２の視点画像を前記第２の領域のサイズのポリゴンにテクスチャマッピングする際に、高さ方向のテクスチャ座標を１テクセル分だけシフトさせることを特徴とするプログラム。
【請求項６】
請求項３乃至５のいずれかにおいて、
前記描画部は、
前記第１、第２の視点画像が前記第１、第２の領域にコピーされた後に、前記バッファの画像を前記描画バッファに書き戻すことを特徴とするプログラム。
【請求項７】
請求項６において、
前記描画部は、
前記バッファの画像を、前記描画バッファのサイズのポリゴンにテクスチャマッピングして前記描画バッファに描画することで、前記バッファの画像を前記描画バッファに書き戻すことを特徴とするプログラム。
【請求項８】
請求項６又は７において、
前記描画バッファとして、第１、第２の描画バッファが用意され、
前記描画部は、
前記第１、第２の描画バッファの一方の描画バッファから前記バッファへの画像のコピー処理及び前記バッファから前記一方の描画バッファへの画像の書き戻し処理を行った後に、前記一方の描画バッファをバックバッファからフロントバッファに切り替え、前記一方とは異なる他方の描画バッファをフロントバッファからバックバッファに切り替えることを特徴とするプログラム。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記描画部は、
前記第１、第２の視点画像を高さ方向において圧縮して前記第１、第２の領域に書き込む際に、前記第１、第２の視点画像の第ｉのラインのピクセル画像と次の第ｉ＋１のラインのピクセル画像の平均化処理を行うことを特徴とするプログラム。
【請求項１０】
請求項９において、
前記描画部は、
前記第１、第２の視点画像を、前記第１、第２の領域のサイズのポリゴンにテクセル補間方式でテクスチャマッピングして前記第１、第２の領域に描画することで、前記第ｉのラインのピクセル画像と前記第ｉ＋１のラインのピクセル画像の前記平均化処理を行うことを特徴とするプログラム。
【請求項１１】
請求項９又は１０において、
前記描画部は、
前記多眼立体視画像の第ｍのラインについては、前記第１の視点画像の第ｊのラインのピクセル画像と次の第ｊ＋１のラインのピクセル画像の平均化が行われ、前記多眼立体視画像の第ｍ＋１のラインについては、前記第２の視点画像の第ｊ＋１のラインのピクセル画像と次の第ｊ＋２のラインのピクセル画像の平均化が行われるように、前記平均化処理を行うことを特徴とするプログラム。
【請求項１２】
請求項１乃至１１のいずれかにおいて、
前記描画部は、
多眼立体視の第１の視点用の仮想カメラの注視点と、多眼立体視の第２の視点用の仮想カメラの注視点を、高さ方向においてずらして、前記第１の視点画像と前記第２の視点画像を生成することを特徴とするプログラム。
【請求項１３】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至１２のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１４】
多眼立体視のための画像生成システムであって、
第１の領域と第２の領域を有するバッファと、
多眼立体視画像を生成するための描画処理を行う描画部と、
を含み、
前記描画部は、
多眼立体視の第１の視点画像を高さ方向において１／２に圧縮して、前記バッファの前記第１の領域に書き込むと共に、多眼立体視の第２の視点画像を高さ方向において１／２に圧縮して、前記バッファの前記第２の領域に書き込み、
前記バッファから画像を読み出すことで、前記第１の領域に書き込まれた前記第１の視点画像のピクセル画像と前記第２の領域に書き込まれた前記第２の視点画像のピクセル画像とが、ライン毎に交互に表示される前記多眼立体視画像を生成することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、ゲームや映画などの分野において、臨場感溢れる画像を生成するシステムとして、立体視画像の生成が可能な画像生成システムが注目を浴びている。このような画像生成システムとしては例えば特許文献１に開示される従来技術がある。この画像生成システムでは、右目用画像と左目用画像を用意し、これらの画像を表示画面上にフレーム毎（例えば１／６０秒毎）に交互に表示する。そして観者は専用の眼鏡を装着し、右目は右目用画像のみを見て、左目は左目用画像のみを見ることで、立体視を実現する。
【０００３】
しかしながら、この方式の立体視では、右目用画像と左目用画像がフレーム毎に交互に表示されるため、画面にチラツキが発生する。従って、例えば３次元ゲームの画像を、このような方式で表示すると、長時間のゲームプレイが難しいという課題があった。
【特許文献１】特開２００４−１７８５８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の幾つかの態様によれば、チラツキの少ない立体視画像の効率的な生成を可能にするプログラム、情報記憶媒体及び画像生成システムを提供できる。
【課題を解決するための手段】
【０００５】
本発明は、多眼立体視のための画像生成システムであって、第１の領域と第２の領域を有するバッファと、多眼立体視画像を生成するための描画処理を行う描画部とを含み、前記描画部は、多眼立体視の第１の視点画像を高さ方向において１／２に圧縮して、前記バッファの前記第１の領域に書き込むと共に、多眼立体視の第２の視点画像を高さ方向において１／２に圧縮して、前記バッファの前記第２の領域に書き込み、前記バッファから画像を読み出すことで、前記第１の領域に書き込まれた前記第１の視点画像のピクセル画像と前記第２の領域に書き込まれた前記第２の視点画像のピクセル画像とが、ライン毎に交互に表示される前記多眼立体視画像を生成する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【０００６】
本発明によれば、第１、第２の視点画像が、高さ方向に１／２に圧縮されてバッファの第１、第２の領域に書き込まれる。そしてこのバッファから画像を読み出すことで、第１の領域の第１の視点画像と第２の領域の第２の視点画像がライン毎に交互に表示された多眼立体視画像が生成される。このようにすれば、第１、第２の視点画像の高さ方向に圧縮した書き込み処理と、バッファからの画像の読み出し処理だけで、第１、第２の視点画像がライン毎に交互に表示された多眼立体視画像を生成できるため、チラツキの少ない立体視画像の効率的な生成が可能になる。
【０００７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記バッファは、幅がＷピクセルであり高さがＨ／２ピクセルである前記第１の領域と、幅がＷピクセルであり高さがＨ／２ピクセルである前記第２の領域を有し、前記描画部は、前記バッファのメモリピッチを２Ｎバイトに設定し、幅がＷピクセルであり高さがＨピクセルである前記第１の視点画像を高さ方向において圧縮して、前記第１の領域に書き込むと共に、幅がＷピクセルであり高さがＨピクセルである前記第２の視点画像を高さ方向において圧縮して、前記第２の領域に書き込み、前記バッファのメモリピッチをＮバイトに設定し、前記バッファから画像を読み出すことで、前記第１の視点画像のピクセル画像と前記第２の視点画像のピクセル画像がライン毎に交互に表示される前記多眼立体視画像を生成してもよい。
【０００８】
このようにすれば、画像の書き込み時にはメモリピッチを２Ｎバイトに設定し、画像の読み出し時にはメモリピッチをＮバイトに設定することで、第１、第２の視点画像のピクセル画像がライン毎に交互に表示された多眼立体視画像を生成できる。
【０００９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記第１、第２の視点画像を描画するための描画バッファを含み、前記描画部は、前記第１の視点画像を前記描画バッファに描画し、前記描画バッファに描画された前記第１の視点画像を高さ方向において圧縮して前記バッファの前記第１の領域にコピーし、前記第２の視点画像を前記描画バッファに描画し、前記描画バッファに描画された前記第２の視点画像を高さ方向において圧縮して前記バッファの前記第２の領域にコピーしてもよい。
【００１０】
このようにすれば、高さ方向での画像の圧縮は、描画バッファから第１、第２の領域へのコピー処理の際に行えば済むため、処理の簡素化、効率化を図れる。
【００１１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部は、前記描画バッファに描画された前記第１の視点画像を、前記第１の領域のサイズのポリゴンにテクスチャマッピングして前記第１の領域に描画することで、前記描画バッファから前記第１の領域への前記第１の視点画像のコピーを行い、前記描画バッファに描画された前記第２の視点画像を、前記第２の領域のサイズのポリゴンにテクスチャマッピングして前記第２の領域に描画することで、前記描画バッファから前記第２の領域への前記第２の視点画像のコピーを行ってもよい。
【００１２】
このようにすれば、ポリゴンのサイズの設定だけで高さ方向の画像圧縮を実現できるため、処理の更なる簡素化、効率化を図れる。
【００１３】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部は、前記第２の視点画像を前記第２の領域のサイズのポリゴンにテクスチャマッピングする際に、高さ方向のテクスチャ座標を１テクセル分だけシフトさせてもよい。
【００１４】
このようにすれば、第１、第２の視点画像のピクセル画像が適正に配列された多眼立体視画像を生成できる。
【００１５】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部は、前記第１、第２の視点画像が前記第１、第２の領域にコピーされた後に、前記バッファの画像を前記描画バッファに書き戻してもよい。
【００１６】
このようにすれば、描画バッファを用いた既存の描画アルゴリズムに対して、バッファ等を追加するだけで、多眼立体視画像を生成できるようになる。
【００１７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部は、前記バッファの画像を、前記描画バッファのサイズのポリゴンにテクスチャマッピングして前記描画バッファに描画することで、前記バッファの画像を前記描画バッファに書き戻してもよい。
【００１８】
このようにすれば、テクスチャマッピングを有効活用した効率的な処理で、描画バッファへの画像の書き戻しを実現できる。
【００１９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画バッファとして、第１、第２の描画バッファが用意され、前記描画部は、前記第１、第２の描画バッファの一方の描画バッファから前記バッファへの画像のコピー処理及び前記バッファから前記一方の描画バッファへの画像の書き戻し処理を行った後に、前記一方の描画バッファをバックバッファからフロントバッファに切り替え、前記一方とは異なる他方の描画バッファをフロントバッファからバックバッファに切り替えてもよい。
【００２０】
このようにすれば、複数バッファ方式を採用した既存の描画アルゴリズムに対して、バッファ等を追加するだけで、多眼立体視画像を生成できるようになる。
【００２１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部は、前記第１、第２の視点画像を高さ方向において圧縮して前記第１、第２の領域に書き込む際に、前記第１、第２の視点画像の第ｉのラインのピクセル画像と次の第ｉ＋１のラインのピクセル画像の平均化処理を行ってもよい。
【００２２】
このようにすれば、ジャギー等を低減して、高品位の画像を生成できるようになる。
【００２３】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部は、前記第１、第２の視点画像を、前記第１、第２の領域のサイズのポリゴンにテクセル補間方式でテクスチャマッピングして前記第１、第２の領域に描画することで、前記第ｉのラインのピクセル画像と前記第ｉ＋１のラインのピクセル画像の前記平均化処理を行ってもよい。
【００２４】
このようにすれば、テクスチャマッピングを行うことで、平均化処理が自動的に実行されるようになるため、処理を効率化できる。
【００２５】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部は、前記多眼立体視画像の第ｍのラインについては、前記第１の視点画像の第ｊのラインのピクセル画像と次の第ｊ＋１のラインのピクセル画像の平均化が行われ、前記多眼立体視画像の第ｍ＋１のラインについては、前記第２の視点画像の第ｊ＋１のラインのピクセル画像と次の第ｊ＋２のラインのピクセル画像の平均化が行われるように、前記平均化処理を行ってもよい。
【００２６】
このようにすれば、適正な位置に適正な第１、第２の視点画像のピクセル画像が表示された多眼立体視画像を生成できる。
【００２７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部は、多眼立体視の第１の視点用の仮想カメラの注視点と、多眼立体視の第２の視点用の仮想カメラの注視点を、高さ方向においてずらして、前記第１の視点画像と前記第２の視点画像を生成してもよい。
【００２８】
このようにすれば、更に適正な多眼立体視画像を生成できる。
【発明を実施するための最良の形態】
【００２９】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３０】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）のブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００３１】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、方向キー、操作ボタン、アナログスティック、レバー、ステアリング、アクセル、ブレーキ、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【００３２】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＤＲＡＭ、ＶＲＡＭ）などにより実現できる。この記憶部１７０は、電源を切るとデータが消えてしまう揮発性のメモリにより構成できるが、補助記憶装置１９４よりも高速な記憶装置になっている。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部１７０に保持される。
【００３３】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、ＨＤＤ（ハードディスクドライブ）、或いはメモリ（ＲＯＭ等）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータ（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００３４】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００３５】
補助記憶装置１９４（補助メモリ、２次メモリ）は、記憶部１７０の容量を補うために使用される大容量の記憶装置であり、ＳＤメモリーカード、マルチメディアカードなどのメモリーカードや、ＨＤＤなどにより実現できる。この補助記憶装置１９４は脱着自在になっているが、内蔵されるものであってもよい。この補助記憶装置１９４は、ゲームの途中結果などのセーブデータや、プレーヤ（ユーザ）の個人的な画像データや音楽データなどを保存するために使用される。
【００３６】
通信部１９６は、有線や無線のネットワークを介して外部（例えば他の画像生成システム、サーバ、ホスト装置）との間で通信を行うものであり、その機能は、通信用ＡＳＩＣ又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【００３７】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバ（ホスト装置）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（或いは記憶部１７０、補助記憶装置１９４）に配信してもよい。このようなサーバ（ホスト装置）による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００３８】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部１００は記憶部１７０（主記憶部１７２）をワーク領域として各種処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＧＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３９】
処理部１００は、ゲーム演算部１０２、オブジェクト空間設定部１０４、移動体演算部１０６、仮想カメラ制御部１０８、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００４０】
ゲーム演算部１０２はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００４１】
オブジェクト空間設定部１０４は、モデルオブジェクト（車、戦闘機、人、ロボット、ミサイル、弾等の移動体）、マップ（地形）、建物、コース（道路）、樹木、壁などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。具体的には、記憶部１７０のモデルデータ記憶部ＭＳには、オブジェクトの位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。そしてこのオブジェクトデータは、移動体演算部１０６の移動体演算処理等により順次更新される。
【００４２】
オブジェクト空間設定部１０４はカリング処理部１０５を含む。このカリング処理部１０５は例えばソフトウェアによるカリング処理を行う。具体的には、オブジェクトデータのオブジェクトリストの中から、当該フレームにおいて表示されることがないオブジェクトを削除する処理を行う。例えば当該フレームにおいて仮想カメラの視野範囲内に存在せず、表示処理を行う必要がないオブジェクトを予め削除する。このようにすれば、削除されたオブジェクトを構成するポリゴンについては頂点データ等を作成しなくても済むため、処理負荷を大幅に軽減できる。
【００４３】
移動体演算部（移動体制御部）１０６は、移動体（移動体オブジェクト）を移動させるための演算を行う。また移動体を動作させるための演算も行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、移動体（オブジェクト、モデルオブジェクト）をオブジェクト空間内で移動させたり、移動体を動作（モーション、アニメーション）させる処理を行う。具体的には、移動体の移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００４４】
より具体的には、移動体演算部１０６は、モーションデータ記憶部ＭＴＳに記憶されるモーションデータに基づいて、オブジェクトのモーションを再生する処理を行う。即ち、オブジェクト（スケルトン）を構成する各パーツオブジェクト（スケルトンを構成する骨）の位置又は回転角度（方向）等を含むモーションデータを、モーションデータ記憶部ＭＴＳから読み出す。そして、オブジェクトの各パーツオブジェクト（骨）を動かすことで（スケルトン形状を変形させることで）、オブジェクトのモーションを再生する。
【００４５】
仮想カメラ制御部１０８は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向或いは画角を制御する処理）を行う。
【００４６】
例えば仮想カメラにより車、キャラクタ、戦闘機などの移動体を後方から撮影する場合には、移動体の位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動体演算部１０６で得られた移動体の位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００４７】
なお本実施形態では仮想カメラ制御部１０８は、多眼立体視画像を生成するために、複数の視点の仮想カメラの制御を行う。具体的には第１の視点用（例えば右目用）の仮想カメラと第２の視点用（例えば左目用）の仮想カメラを制御して、プレーヤに立体感を感じさせるための両眼視差等を実現する。
【００４８】
描画部１２０（画像生成部）は、処理部１００で行われる種々の処理（ゲーム処理、シミュレーション処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずモデル（オブジェクト）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が生成され、これらのデータに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００４９】
頂点処理（頂点シェーダ処理）では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。
【００５０】
ピクセル処理（ピクセルシェーダ処理）では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたモデルの描画色を描画バッファＤＢ（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット、フレームバッファ）に出力（描画）する。即ち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定或いは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００５１】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００５２】
描画部１２０は、ライティング処理部１２２、テクスチャマッピング部１２４を含む。なおこれらの一部を省略する構成としてもよい。
【００５３】
ライティング処理部１２２は、照明モデル等に基づくライティング処理（シェーディング処理）を行う。具体的にはこのライティング処理は、光源情報（光源ベクトル、光源色、明るさ、光源タイプ等）、仮想カメラ（視点）の視線ベクトル、オブジェクト（半透明オブジェクト）の法線ベクトル、オブジェクトのマテリアル（色、材質）などを用いて行われる。なお照明モデルとしては、アンビエント光とディフューズ光だけを考慮したランバードの拡散照明モデルや、アンビエント光、ディフューズ光に加えてスペキュラ光も考慮するフォンの照明モデルやブリン・フォンの照明モデルなどがある。
【００５４】
テクスチャマッピング部１２４は、オブジェクト（ポリゴン）にテクスチャをマッピングする処理を行う。ここでテクスチャマッピング処理は、テクスチャ記憶部ＴＳに記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングする処理である。具体的には、オブジェクト（プリミティブ面）の頂点やピクセルに設定（付与）されるテクスチャ座標等を用いてテクスチャ記憶部ＴＳからテクスチャ（色、α値などの表面プロパティ）を読み出す。そして２次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（広義にはテクセル補間）などを行う。
【００５５】
そして本実施形態では描画部１２０は、多眼立体視画像（ｎ眼立体視画像。ｎ≧２）を生成するための描画処理を行う。具体的には描画部１２０は、多眼立体視（２眼立体視）の第１の視点画像（例えば右目用画像）を高さ方向（縦方向）において例えば１／２に圧縮（縮小）して、バッファＴＢの第１の領域ＡＲ１（例えば左半分側の領域）に書き込む。また多眼立体視の第２の視点画像（例えば左目用画像）を高さ方向（縦方向）において例えば１／２に圧縮（縮小）して、バッファＴＢの第２の領域ＡＲ２（例えば右半分側の領域）に書き込む。そしてバッファＴＢから画像（ＡＲ１、ＡＲ２の画像）を読み出すことで、第１の領域ＡＲ１に書き込まれた第１の視点画像のピクセル画像（Ｒ、Ｇ、Ｂ、α）と第２の領域ＡＲ２に書き込まれた第２の視点画像のピクセル画像とが、ライン毎（例えば走査ライン毎、ビットマップライン毎）に交互に表示される多眼立体視画像を生成する。
【００５６】
更に具体的には、第１、第２の領域ＡＲ１、ＡＲ２は、幅がＷピクセル（例えば１９２０ピクセル）であり高さがＨ／２ピクセル（例えば１０８０／２＝５４０ピクセル）の領域になっている。
【００５７】
そして画像の書き込み時には、バッファＴＢのメモリピッチを２Ｎバイト（例えば２×４バイト×２０４８ピクセル＝１６３８４バイト）に設定する。ここでメモリピッチ（ピッチサイズ）は、ビットマップラインの先頭を表すアドレスと、次のラインの先頭を表すアドレスとのバイト単位の距離である。描画部１２０は、このように設定されたバッファＴＢにおいて、幅がＷピクセルであり高さがＨピクセルである第１の視点画像を、第１の領域ＡＲ１に書き込む。また幅がＷピクセルであり高さがＨピクセルである第２の視点画像を、第２の領域ＡＲ２に書き込む。例えば第１の視点画像を描画バッファＤＢ（ＤＢ１又はＤＢ２）に描画し、描画された第１の視点画像を高さ方向において圧縮してバッファＴＢの第１の領域ＡＲ１にコピーする。また第２の視点画像を描画バッファＤＢ（ＤＢ１又はＤＢ２）に描画し、描画された第２の視点画像を高さ方向において圧縮してバッファＴＢの第２の領域ＡＲ２にコピーする。この場合のコピー処理は、第１、第２の領域ＡＲ１、ＡＲ２のサイズのポリゴン（画面に表示されない仮想的なポリゴン）に対して、第１又は第２の視点画像をテクスチャとしてマッピングし、当該ポリゴンを第１又は第２の領域ＡＲ１、ＡＲ２に描画することで実現できる。
【００５８】
一方、画像の読み出し時には、バッファＴＢのメモリピッチをＮバイトに設定する。描画部１２０は、このように設定されたバッファＴＢから画像を読み出すことで、多眼立体視画像を生成する。例えば第１、第２の視点画像が第１、第２の領域ＡＲ１、ＡＲ２にコピーされた後に、バッファＴＢの画像を描画バッファＤＢ（ＤＢ１又はＤＢ２）に書き戻す（ライトバックする）。この場合の書き戻し処理は、バッファＴＢの画像を、描画バッファＤＢ（ＤＢ１又はＤＢ２）のサイズのポリゴンにテクスチャマッピングし、当該ポリゴンを描画バッファＤＢに描画することなどで実現できる。
【００５９】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６０】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００６１】
２．本実施形態の手法
２．１  立体視方式
まず、図２、図３を用いて、本実施形態において採用される立体視方式の一例について説明する。
【００６２】
図２の画像生成システム３００（例えばゲーム装置）により生成された多眼立体視画像は、表示装置３１０（例えばハイビジョン対応テレビ）の表示画面に表示される。表示画面には、右目用偏光フィルタと左目用偏光フィルタが走査ライン毎に交互に配列されたフィルム３１２が貼られている。プレーヤは、これらの偏光フィルタに対応する偏光眼鏡３２０を掛けて表示画面を見ることで、立体視映像を鑑賞する。
【００６３】
具体的には表示装置３１０の表示画面には、走査ライン毎に右目用画像と左目用画像とが交互に表示される。プレーヤは、偏光眼鏡３２０の右目部分３２２に設けられた偏光フィルタを介して、フィルム３１２の右目用偏光フィルタにより偏光された各走査ラインの右目用画像を見る。また偏光眼鏡３２０の左目部分３２４を介して、フィルム３１２の左目用偏光フィルタにより偏光された各走査ラインの左目用画像を見る。
【００６４】
図２の立体視方式によれば、プレーヤは、右目用画像及び左目用画像を偏光眼鏡３２０の右目部分３２２及び左目部分３２４を介して同時に見ることができる。従って、右目用画像と左目用画像がフレーム毎に交互に表示される従来の立体視方式に比べて、チラツキが少なく疲れにくい理想的な立体視表示を実現できる。特に３次元ゲーム映像のように、動きの速い映像では、従来の立体視方式では立体感が失われたり、眼の疲労が大きくなるなどの欠点があるが、図２の立体視方式によれば、このような欠点を解消できる。
【００６５】
図３に右目用画像ＩＲ、左目用画像ＩＬ、多眼立体視画像ＩＳを概念的に示す。図３の多眼立体視画像ＩＳでは、奇数番目の走査ラインには右目用画像ＩＲのピクセル画像が表示され、偶数番目の走査ラインには左目用画像ＩＬのピクセル画像が表示される。プレーヤは、奇数番目の走査ラインのピクセル画像を偏光眼鏡３２０の右目部分３２２を介して見ると共に、偶数番目の走査ラインのピクセル画像を左目部分３２４を介して見ることで、立体感のある映像を楽しむことができる。
【００６６】
図４（Ａ）、図４（Ｂ）、図５に、本実施形態の画像生成システムにより生成される右目用画像ＩＲ、左目用画像ＩＬ、多眼立体視画像ＩＳの一例を示す。これらは３次元レースゲームに本実施形態の手法を適用した場合の画像例である。
【００６７】
図４（Ａ）、図４（Ｂ）では、全ての走査ラインについて右目用画像ＩＲ、左目用画像ＩＬのピクセル画像が生成されている。例えばフルハイビジョン対応の場合には、１０８０本の全ての走査ラインについてピクセル画像が生成される。そして図５の多眼立体視画像ＩＳは、これらのフルハイビジョン対応の右目用画像ＩＲ、左目用画像ＩＬを合成することで生成される。従って、フルハイビジョンの解像度で立体視ゲーム映像を表示できるため、プレーヤの仮想現実感を飛躍的に向上できる。即ち従来の立体視方式では、立体視画像にすることで、解像度が落ちたり、フレームレートが低下するため、画像品質が低下してしまうという問題があったが、図４（Ａ）〜図５の手法によればこのような問題を解消できる。
【００６８】
２．２  立体視画像の生成手法
次に本実施形態の立体視画像の生成手法について説明する。本実施形態では、図４（Ａ）〜図５に示すような高品質の立体視画像を生成するために以下に説明する手法を採用している。なお以下では第１の視点画像が右目用画像であり、第２の視点画像が左目用画像である場合を例にとり説明するが、本実施形態はこれに限定されない。例えば第１の視点画像が左目用画像等であり、第２の視点画像が右目用画像等であってもよい。
【００６９】
図６に示すように本実施形態では、バッファＴＢに第１、第２の領域ＡＲ１、ＡＲ２を確保する。そして図４（Ａ）に例示されるような右目用画像ＩＲ（広義には第１の視点画像）を生成し、この右目用画像ＩＲを高さ方向（縦方向）において圧縮（縮小）して、バッファＴＢの第１の領域ＡＲ１に書き込む。また図４（Ｂ）に例示されるような左目用画像ＩＬ（広義には第２の視点画像）を生成し、この左目用画像ＩＬを高さ方向において圧縮して、バッファＴＢの第２の領域ＡＲ２に書き込む。
【００７０】
そして、このバッファＴＢから画像を読み出すことで、図５に例示されるような多眼立体視画像ＩＳを生成（合成）する。即ち領域ＡＲ１の右目用のピクセル画像と領域ＡＲ２の左目用のピクセル画像とが、ライン毎（走査ライン毎、ビットマップライン毎）に交互に表示される多眼立体視画像ＩＳを生成する。
【００７１】
具体的には右目用画像ＩＲ、左目用画像ＩＬは、幅がＷピクセル、高さがＨピクセルの画像になっている。フルハイビジョン対応の場合には例えばＷ＝１９２０、Ｈ＝１０８０になる。一方、領域ＡＲ１、ＡＲ２は、幅がＷピクセル、高さがＨ／２ピクセルの領域になっている。
【００７２】
バッファＴＢへの画像の書き込み時においては、バッファＴＢのメモリピッチ（ラインの先頭アドレスから次のラインの先頭アドレスまでのバイト単位の距離）は２Ｎバイトに設定される。例えば１ピクセル（Ｒ、Ｇ、Ｂ、α）が４バイトである場合には、フルハイビジョン対応では例えば２Ｎバイト＝２×４×２０４８バイトになる。そして図６では、幅がＷピクセル、高さがＨピクセルである右目用画像ＩＲが、高さ方向において１／２に圧縮されて、領域ＡＲ１に書き込まれ、幅がＷピクセルであり高さがＨピクセルである左目用画像ＩＬが、高さ方向において１／２に圧縮されて、領域ＡＲ２に書き込まれる。
【００７３】
一方、バッファＴＢからの画像の読み出し時においては、バッファＴＢのメモリピッチはＮバイトに設定される。そしてこのように設定されたバッファＴＢから右目用画像ＩＲ、左目用画像ＩＬを読み出すことで、図５に例示されるような多眼立体視画像ＩＳが合成される。
【００７４】
具体的には、書き込み時に２Ｎバイトに設定されたメモリピッチ（ピッチサイズ）を、読み出し時にＮバイトに設定することで、領域ＡＲ１の第１のラインの右目用ピクセル画像が、多眼立体視画像ＩＳの第１のラインに表示され、領域ＡＲ２の第１のラインの左目用ピクセル画像が、多眼立体視画像ＩＳの第２のラインに表示されるようになる。また領域ＡＲ１の第２のラインの右目用ピクセル画像が、多眼立体視画像ＩＳの第３のラインに表示され、領域ＡＲ２の第２のラインの左目用ピクセル画像が、多眼立体視画像ＩＳの第４のラインに表示されるようになる。即ち右目用ピクセル画像と左目用ピクセル画像がライン毎に交互に表示されるようになる。
【００７５】
２．３  描画バッファの利用
レンダリングにより生成された右目用画像ＩＲ、左目用画像ＩＬは、直接にバッファＴＢの領域ＡＲ１、ＡＲ２に描画してもよいが、図７（Ａ）、図７（Ｂ）に示すように、描画バッファＤＢに描画した後に、領域ＡＲ１、ＡＲ２にコピーするようにしてもよい。
【００７６】
即ち図７（Ａ）では、右目用画像ＩＲを描画バッファＤＢに描画し、描画された右目用画像ＩＲを高さ方向において圧縮して、テンポラリバッファ（ワークバッファ）として機能するバッファＴＢの領域ＡＲ１にコピーする。また図７（Ｂ）では、左目用画像ＩＬを描画バッファＤＢに描画し、描画された左目用画像ＩＬを高さ方向において圧縮して、バッファＴＢの領域ＡＲ２にコピーする。
【００７７】
このようにすれば、高さ方向での画像の圧縮（平均化、間引き、縮小）は、描画バッファＤＢから領域ＡＲ１、ＡＲ２へのコピー処理の際に行えばよく、画像圧縮と右目用・左目用画像の生成を同時に行わなくても済むため、処理の簡素化、効率化を図れる。
【００７８】
この場合に図７（Ａ）、図７（Ｂ）のコピー処理は、例えばテクスチャマッピングを利用して実現できる。
【００７９】
具体的には図８（Ａ）に示すように、描画バッファＤＢに描画された右目用画像ＩＲを、領域ＡＲ１のサイズのポリゴンＰＬ（画面に表示されない仮想的なプリミティブ面）にテクスチャマッピングする。この場合に、テクスチャマッピングは、ポイントサンプリング方式ではなく例えばテクセル補間方式（狭義にはバイリニアフィルタモード）に設定する。そしてこのように右目用画像ＩＲがテクスチャとしてマッピングされたポリゴンＰＬを領域ＡＲ１に描画することで、図７（Ａ）のコピー処理を実現する。
【００８０】
また図８（Ｂ）に示すように、描画バッファＤＢに描画された左目用画像ＩＬを、領域ＡＲ２のサイズのポリゴンＰＬにテクスチャマッピングする。この場合に、テクスチャマッピングはテクセル補間方式に設定する。また高さ方向にテクスチャ座標（ＵＶ空間の例えばＶ座標）を例えば１テクセル分だけシフトしてテクスチャマッピングを行う。そしてこのように左目用画像ＩＬがテクスチャとしてマッピングされたポリゴンＰＬを領域ＡＲ２に描画することで、図７（Ｂ）のコピー処理を実現する。
【００８１】
図８（Ａ）、図８（Ｂ）のようにテクスチャマッピングによりコピー処理を実現すれば、ポリゴンＰＬのサイズの設定だけで高さ方向の画像圧縮を実現できるため、処理の簡素化、効率化を図れる。また、後述するような隣り合うラインのピクセル画像の平均化処理を、テクスチャマッピングのテクセル補間方式（バイリニアフィルタ）を利用して実現できるため、更に処理を効率化できる。
【００８２】
なお図７（Ａ）、図７（Ｂ）のように右目用画像ＩＲ、左目用画像ＩＬが領域ＡＲ１、ＡＲ２にコピーされた後に、バッファＴＢの画像は描画バッファＤＢに書き戻される。具体的にはバッファＴＢのメモリピッチを２ＮバイトからＮバイトに変更して、バッファＴＢの画像を描画バッファＤＢに書き戻し、図５に例示されるような多眼立体視画像ＩＳを生成する。
【００８３】
このようにすれば、描画バッファＤＢを利用した既存の描画アルゴリズムに対して、テンポラリバッファであるバッファＴＢやコピー・書き戻しアルゴリズム等を追加するだけで、右目用画像ＩＲ、左目用画像ＩＬのテンポラリバッファＴＢへのコピー処理を実現して、多眼立体視画像ＩＳを生成できるようになる。
【００８４】
なお描画バッファＤＢへの画像の書き戻し（ライトバック）は、図８（Ａ）、図８（Ｂ）と同様にテクスチャマッピングを利用した手法により実現できる。具体的には、バッファＴＢのピッチサイズを２ＮバイトからＮバイトに変更する。そしてバッファＴＢの画像（ＴＢの全体の画像）を、描画バッファＤＢ（ＤＢ１又はＤＢ２）のサイズのポリゴンにテクスチャマッピングする。そして、バッファＴＢの画像がテクスチャマッピングされたポリゴンを描画バッファＤＢに描画することで、バッファＴＢの画像を描画バッファＤＢに書き戻す。
【００８５】
２．４  ダブルバッファ方式
描画バッファＤＢとしてダブルバッファ方式（或いはトリプルバッファ等の複数バッファ方式）を採用する場合には、図９（Ａ）、図９（Ｂ）に示す手法を採用することが望ましい。
【００８６】
例えば図９（Ａ）では、描画バッファＤＢとして、第１、第２の描画バッファＤＢ１、ＤＢ２が用意（確保）されている。また図９（Ａ）の期間では、第１の描画バッファＤＢ１がバックバッファ（描画用バッファ）に設定され、第２の描画バッファＤＢ２がフロントバッファ（表示用バッファ）に設定されている。なおトリプルバッファ等の複数バッファ方式では、第１、第２の描画バッファＤＢ１、ＤＢ２を含む３個以上の描画バッファを用意（確保）すればよい。
【００８７】
そして図９（Ａ）では、描画バッファＤＢ１（広義には、第１、第２の描画バッファの一方の描画バッファ）からバッファＴＢに対して、図７（Ａ）、図７（Ｂ）で説明した画像のコピー処理が行われる。またバッファＴＢから描画バッファＤＢ１への画像の書き戻し処理が行われる。これにより、描画バッファＤＢ１には、次のフレームに表示すべき多眼立体視画像ＩＳが生成される。
【００８８】
このように多眼立体視画像ＩＳが描画バッファＤＢ１に生成された後に、図９（Ｂ）に示すように、描画バッファＤＢ１をバックバッファからフロントバッファに切り替える（フリップする）。これにより、描画バッファＤＢ１の多眼立体視画像ＩＳが表示装置の画面に表示される。またこの時に、描画バッファＤＢ２（広義には、一方とは異なる他方の描画バッファ）は、フロントバッファからバックバッファに切り替えられる。
【００８９】
そして図９（Ｂ）では、描画バッファＤＢ２からバッファＴＢに対して、図７（Ａ）、図７（Ｂ）で説明した画像のコピー処理が行われる。またバッファＴＢから描画バッファＤＢ２への画像の書き戻し処理が行われる。これにより、描画バッファＤＢ２には、次のフレームに表示すべき多眼立体視画像ＩＳが生成される。
【００９０】
以上の図９（Ａ）、図９（Ｂ）の手法によれば、ダブルバッファ方式の既存の描画アルゴリズムに対して、テンポラリバッファであるバッファＴＢやコピー・書き戻しアルゴリズム等を追加するだけで、ダブルバッファ方式と本実施形態による多眼立体視画像ＩＳの生成手法を両立できるようになる。
【００９１】
２．５  平均化処理
図６に示すように高さ方向（走査ラインの並ぶ方向）での圧縮処理を行う場合には、隣り合うラインのピクセル画像の平均化処理（補間処理）を行うことが望ましい。
【００９２】
具体的には図１０に示すように、右目用画像ＩＲ（第１の視点画像）を高さ方向において圧縮して領域ＡＲ１に書き込む際に、右目用画像の第ｉ（ｉは自然数）のラインのピクセル画像と次の第ｉ＋１のラインのピクセル画像の平均化処理を行う。同様に、左目用画像ＩＬ（第２の視点画像）を高さ方向において圧縮して領域ＡＲ２に書き込む際に、左目用画像の第ｉのラインのピクセル画像と次の第ｉ＋１のラインのピクセル画像の平均化処理を行う。
【００９３】
例えば図１０において、右目用画像ＩＲの第１、第２、第３、第４のラインのピクセル画像（ライン中の特定ピクセルのＲＧＢ画像）をＲ１、Ｒ２、Ｒ３、Ｒ４とする。この場合には、領域ＡＲ１の第１のラインのピクセル画像は、Ｒ１とＲ２の平均化処理により（Ｒ１＋Ｒ２）／２になり、第２のラインのピクセル画像は、Ｒ３とＲ４の平均化処理により（Ｒ３＋Ｒ４）／２になる。右目用画像ＩＲの他のラインや、左目用画像ＩＬについても同様である。
【００９４】
このような平均化処理を行えば、多眼立体視画像において右目用ピクセル画像と左目用ピクセル画像がライン毎に交互に表示される場合にも、例えばハイビジョン等に対応した高精細な解像度を維持した立体視画像の表示が可能になる。また、ジャギーやエイリアシングの発生を低減でき、高品位な立体視画像を生成できる。
【００９５】
なおこのような平均化処理は、図８（Ａ）、図８（Ｂ）で説明したように、テクスチャのマッピングモードをテクセル補間方式（バイリニアフィルタモード）に設定して、高さ方向にテクスチャを圧縮したテクスチャマッピングを行うことで、自動的に実行できる。具体的には、右目用画像ＩＲ、左目用画像ＩＬを、領域ＡＲ１、ＡＲ２のサイズのポリゴンにテクセル補間方式でテクスチャマッピングして領域ＡＲ１、ＡＲ２に描画することで、第ｉのラインのピクセル画像と第ｉ＋１のラインのピクセル画像の平均化処理を実現する。
【００９６】
即ちテクスチャを高さ方向に１／２に圧縮すると、右目用画像ＩＲ、左目用画像ＩＬのテクスチャのテクセル間隔と、領域ＡＲ１、ＡＲ２のピクセル間隔が一致しなくなり、テクセル間隔はピクセル間隔の例えば１／２倍になる。従って、複数のテクセル画像を平均化した画像が、領域ＡＲ１、ＡＲ２の各ピクセルにマッピングされるようになる。これにより図１０に示すような平均化処理が自動的に実行されるため、処理を効率化できる。
【００９７】
図１１に、本実施形態の平均化処理の更に詳細な具体例を示す。図１１では、多眼立体視画像ＩＳの第ｍ（ｍは自然数）のラインについては、右目用画像ＩＲ（第１の視点画像）の第ｊ（ｊは自然数）のラインのピクセル画像と次の第ｊ＋１のラインのピクセル画像の平均化が行われる。また多眼立体視画像ＩＳの第ｍ＋１のラインについては、左目用画像ＩＬ（第２の視点画像）の第ｊ＋１のラインのピクセル画像と次の第ｊ＋２のラインのピクセル画像の平均化が行われる。これは図８（Ｂ）で説明したテクスチャ座標の１テクセル分のシフトにより実現できる。
【００９８】
例えば右目用画像ＩＲの第１〜第６のラインのピクセル画像をＲ１〜Ｒ６とし、左目用画像ＩＬの第１〜第７のラインのピクセル画像をＬ１〜Ｌ７としたとする。この場合に、多眼立体視画像ＩＳの第１のライン（第ｍのライン）には、右目用画像ＩＲの第１のライン（第ｊのライン）のピクセル画像Ｒ１と、第２のライン（第ｊ＋１のライン）のピクセル画像Ｒ２を平均化した画像（Ｒ１＋Ｒ２）／２が表示（配列）される。また多眼立体視画像ＩＳの第２のライン（第ｍ＋１のライン）には、左目用画像ＩＬの第２のライン（第ｊ＋１のライン）のピクセル画像Ｌ２と、第３のライン（第ｊ＋２のライン）のピクセル画像Ｌ３を平均化した画像（Ｌ２＋Ｌ３）／２が表示される。
【００９９】
同様に、多眼立体視画像ＩＳの第３のラインには、右目用画像ＩＲの第３のラインのピクセル画像Ｒ３と、第４のラインのピクセル画像Ｒ４を平均化した画像（Ｒ３＋Ｒ４）／２が表示される。また多眼立体視画像ＩＳの第４のラインには、左目用画像ＩＬの第４のラインのピクセル画像Ｌ４と、第５のラインのピクセル画像Ｌ５を平均化した画像（Ｌ４＋Ｌ５）／２が表示される。他のラインについても同様である。なお図１１では、多眼立体視画像ＩＳの最終ラインでは、ピクセル画像Ｌ１０８０の合成対象となるピクセル画像が存在しないため、ピクセル画像Ｌ１０８０が表示されるようになる。
【０１００】
図１１の手法によれば、多眼立体視画像ＩＳにおいて適正な位置に適正な右目用ピクセル画像又は左目用ピクセル画像が表示されるようになるため、ジャギーやアンチエイリアシングを効果的に低減できる。
【０１０１】
例えば図１２に、本実施形態の平均化手法を採用した場合に生成される画像の例を示す。図１２は、例えばレースゲームにおけるガードレール部分を拡大した画像である。図１２に示すように、階段状に変化するガードレールのエッジ部分に対して、平均化処理によるブラーがかかったような表示が行われるため、ジャギーが目立たなくなり、アンチエイリアシングを低減できる。
【０１０２】
一方、図１３は、本実施形態の平均化手法を採用しなかった場合に生成される画像の例である。具体的には図１３では、多眼立体視画像ＩＳの第１のラインに右目用の画像Ｒ１、第２のラインに左目用の画像Ｌ２、第３のラインに右目用の画像Ｒ３、第４のラインに左目の画像Ｌ４が表示される。図１３では、階段状に変化するガードレールのエッジ部分に対して、図１２に示すようなブラーがかからないため、ジャギーが目立ってしまい、画像の品質が劣化する。本実施形態の平均化手法によれば、このような問題を解消できる。
【０１０３】
なお図１１では、多眼立体視画像ＩＳの最終ライン（Ｌ１０８０）では、平均化処理が行われず、この部分では正しい表示を実現できないという問題がある。このような問題を解決するために、仮想カメラの注視点（描画範囲）をずらす手法を採用してもよい。
【０１０４】
具体的には図１４に示すように、多眼立体視の右目用（第１の視点用）の仮想カメラＶＣＲの注視点と、多眼立体視の左目用（第２の視点用）の仮想カメラＶＣＬの注視点を、例えば高さ方向（走査ラインの並ぶ方向）においてずらして（シフトさせて）、右目用画像、左目用画像（第１の視点画像、第２の視点画像）を生成している。
【０１０５】
更に具体的には、右目用の仮想カメラＶＣＲの注視点については、例えば上方向に０．５ピクセルだけずらし、左目用の仮想カメラＶＣＬの注視点については、例えば下方向に０．５ピクセルだけずらす。これにより、左右の注視点は上下に例えば１ピクセルだけずれるようになる。この結果、図１１の最終ラインにおいても、画像Ｌ１０７９とＬ１０８０を平均化したものが表示されるようになり、生成される画像の品質を更に向上できる。
【０１０６】
２．６  詳細な処理例
次に本実施形態の詳細な処理例を図１５、図１６のフローチャートを用いて説明する。
【０１０７】
まず、図６、図９（Ａ）、図９（Ｂ）で説明したように、メモリピッチがＮバイト、幅がＷピクセル、高さがＨピクセルである第１、第２の描画バッファＤＢ１、ＤＢ２を確保する（ステップＳ１）。また、幅がＷピクセル、高さがＨ／２ピクセルである第１、第２の領域ＡＲ１、ＡＲ２を有し、メモリピッチが２Ｎバイト、高さがＨ／２ピクセルであるバッファＴＢを確保する（ステップＳ２）。
【０１０８】
次に、右目用の仮想カメラＶＣＲから見える右目用画像ＩＲを第１の描画バッファＤＢ１に描画する（ステップＳ３）。そして図７（Ａ）〜図８（Ｂ）で説明したように、第１の描画バッファＤＢ１に描画された画像（Ｗ×Ｈピクセル）をテクスチャとして、第１の領域ＡＲ１（Ｗ×Ｈ／２ピクセル）にポリゴンを描画することで、ＤＢ１の画像を高さ方向に圧縮してＡＲ１にコピーする。この際に、第１の領域ＡＲ１に書き込むポリゴンには、第１の描画バッファＤＢ１の画像の全域をマッピングする（ステップＳ４）。
【０１０９】
次に、左目用の仮想カメラＶＣＬから見える左目用画像ＩＬを第１の描画バッファＤＢ１に描画する（ステップＳ５）。そして、第１の描画バッファＤＢ１に描画された画像（Ｗ×Ｈピクセル）をテクスチャとして、第２の領域ＡＲ２（Ｗ×Ｈ／Ｚピクセル）にポリゴンを描画することで、ＤＢ１の画像を高さ方向に圧縮してＡＲ２にコピーする。この際に、第２の領域ＡＲ２に書き込むポリゴンには、第１の描画バッファＤＢ１の画像を下方向に１テクセルずらしてマッピングする（ステップＳ６）。
【０１１０】
次に、バッファＴＢの全領域をメモリピッチがＮバイト、幅がＷピクセル、高さがＨピクセルのテクスチャとして、ＤＢ１の全域（Ｗ×Ｈピクセル）にポリゴンを描画することで、バッファＴＢの画像を第１の描画バッファＤＢ１にコピーする（ステップＳ７）。次の、ＶＳＹＮＣのタイミング（フレームの切り替えタイミング）で、図９（Ａ）、図９（Ｂ）で説明したように、第１の描画バッファＤＢ１をバックバッファからフロントバッファに切り替える（ステップＳ８）。
【０１１１】
次に、右目用の仮想カメラＶＣＲから見える右目用画像ＩＲを第２の描画バッファＤＢ２に描画する（ステップＳ９）。そして、第２の描画バッファＤＢ２に描画された画像（Ｗ×Ｈピクセル）をテクスチャとして、第１の領域ＡＲ１（Ｗ×Ｈ／２ピクセル）にポリゴンを描画することで、ＤＢ２の画像を高さ方向に圧縮してＡＲ１にコピーする。この際に、第１の領域ＡＲ１に書き込むポリゴンには、第２の描画バッファＤＢ２の画像の全域をマッピングする（ステップＳ１０）。
【０１１２】
次に、左目用の仮想カメラＶＣＬから見える左目用画像ＩＬを第２の描画バッファＤＢ２に描画する（ステップＳ１１）。そして、第２の描画バッファＤＢ２に描画された画像（Ｗ×Ｈピクセル）をテクスチャとして、第２の領域ＡＲ２（Ｗ×Ｈ／２ピクセル）にポリゴンを描画することで、ＤＢ２の画像を高さ方向に圧縮してＡＲ２にコピーする。この際に、第２の領域ＡＲ２に書き込むポリゴンには、第２の描画バッファＤＢ２の画像を下方向に１テクセルずらしてマッピングする（ステップＳ１２）。
【０１１３】
次に、バッファＴＢの全領域をメモリピッチがＮバイト、幅がＷピクセル、高さがＨピクセルのテクスチャとして、第２の描画バッファＤＢ２の全域（Ｗ×Ｈピクセル）にポリゴンを描画することで、バッファＴＢの画像を第２の描画バッファＤＢ２にコピーする（ステップＳ１３）。
【０１１４】
次のＶＳＹＮＣのタイミングで、第２の描画バッファＤＢ２をバックバッファからフロントバッファに切り替える（ステップＳ１４）。
【０１１５】
３．ハードウェア構成
図１７（Ａ）に本実施形態を実現できるハードウェアの構成例を示す。
【０１１６】
ＣＰＵ９００（メインプロセッサ）は、複数のＣＰＵコア１、ＣＰＵコア２、ＣＰＵコア３を含むマルチコアプロセッサである。またＣＰＵ９００は図示しないキャッシュメモリを含む。ＣＰＵコア１、２、３の各々にはベクタ演算器等が設けられている。そしてＣＰＵコア１、２、３の各々は、例えば２つのＨ／Ｗスレッド処理をコンテクストスイッチをすることなしに並列実行でき、マルチスレッド機能がハードウェアでサポートされている。そして３つのＣＰＵコア１、２、３の合計で、６つのＨ／Ｗスレッド処理を並列実行できる。
【０１１７】
ＧＰＵ９１０（描画プロセッサ）は、頂点処理やピクセル処理を行って、描画（レンダリング）処理を実現する。具体的には、シェーダプログラムに従って、頂点データの作成・変更やピクセル（フラグメント）の描画色の決定を行う。１フレーム分の画像がＶＲＡＭ９２０（フレームバッファ）に書き込まれると、その画像はビデオ出力を介してＴＶなどのディスプレイに表示される。なおメインメモリ９３０はＣＰＵ９００やＧＰＵ９１０のワークメモリとして機能する。またＧＰＵ９１０では、複数の頂点スレッド、複数のピクセルスレッドが並列実行され、描画処理のマルチスレッド機能がハードウェアでサポートされている。またＧＰＵ９１０にはハードウェアのテッセレータも備えられている。またＧＰＵ９１０は、頂点シェーダとピクセルシェーダとがハードウェア的に区別されていないユニファイド・シェーダ・タイプとなっている。
【０１１８】
ブリッジ回路９４０（サウスブリッジ）は、システム内部の情報流通を制御する回路であり、ＵＳＢコントローラ（シリアルインターフェース）、ネットワークの通信コントローラ、ＩＤＥコントローラ、或いはＤＭＡコントローラなどのコントローラを内蔵する。そしてこのブリッジ回路９４０により、ゲームコントローラ９４２、メモリーカード９４４、ＨＤＤ９４６、ＤＶＤドライブ９４８との間のインターフェース機能が実現される。
【０１１９】
なお本実施形態を実現できるハードウェア構成は図１７（Ａ）に限定されず、例えば図１７（Ｂ）のような構成であってもよい。
【０１２０】
図１７（Ｂ）ではＣＰＵ９０２が、プロセッサエレメントＰＰと８つのプロセッサエレメントＰＥ１〜ＰＥ８を含む。プロセッサエレメントＰＰは汎用的なプロセッサコアであり、プロセッサエレメントＰＥ１〜ＰＥ８は比較的シンプルな構成のプロセッサコアである。そしてプロセッサエレメントＰＰとプロセッサエレメントＰＥ１〜ＰＥ８のアーキテクチャは異なっており、プロセッサエレメントＰＥ１〜ＰＥ８は、複数のデータに対して１命令で同じ処理を同時にできるＳＩＭＤ型のプロセッサコアとなっている。これによりストリーミング処理などのマルチメディア処理を効率的に実行できる。プロセッサエレメントＰＰは、２つのＨ／Ｗスレッド処理を並列実行でき、プロセッサエレメントＰＥ１〜ＰＥ８の各々は、１つのＨ／Ｗスレッド処理を実行できる。従って、ＣＰＵ９０２では、合計で１０個のＨ／Ｗスレッド処理の並列実行が可能になる。
【０１２１】
図１７（Ｂ）では、ＧＰＵ９１２とＣＰＵ９０２の連携が密になっており、ＧＰＵ９１２は、ＣＰＵ９０２側のメインメモリ９３０に直接にレンダリング処理を行うことができる。また例えばＣＰＵ９０２がジオメトリ処理を行って、頂点データを転送したり、ＧＰＵ９１２からＣＰＵ９０２にデータを戻すことも容易にできる。またＣＰＵ９０２が、レンダリングのプリプロセッシング処理やポストプロセッシング処理を行うことも容易であり、テッセレーション（平面分割）やドットフィルをＣＰＵ９０２が実行できる。例えば抽象度の高い処理はＣＰＵ９０２が行い、抽象度が低い細かな処理はＧＰＵ９１２が行うというような役割分担が可能である。
【０１２２】
なお本実施形態の各部の処理をハードウェアとプログラムにより実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアであるプロセッサ（ＣＰＵ、ＧＰＵ）に処理を指示すると共に、必要であればデータを渡す。そして、プロセッサは、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１２３】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（第１の視点画像、第２の視点画像、第１の視点、第２の視点等）と共に記載された用語（右目用画像、左目用画像、右目、左目等）は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【０１２４】
また、第１、第２の視点画像の描画処理、コピー処理、書き戻し処理、テクスチャマッピング処理や、描画バッファ、バッファの確保手法等も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１２５】
【図１】本実施形態の画像生成システムのブロック図の例。
【図２】本実施形態が採用する立体視方式の一例を説明する図。
【図３】本実施形態が採用する立体視方式の一例を説明する図。
【図４】図４（Ａ）、図４（Ｂ）は本実施形態により生成された右目用画像、左目用画像の例。
【図５】本実施形態により生成された多眼立体視画像の例。
【図６】本実施形態の多眼立体視画像生成手法の説明図。
【図７】図７（Ａ）、図７（Ｂ）は右目用画像、左目用画像のコピー処理の説明図。
【図８】図８（Ａ）、図８（Ｂ）はテクスチャマッピングを利用したコピー処理の説明図。
【図９】図９（Ａ）、図９（Ｂ）はダブルバッファ方式を採用した場合の本実施形態の手法の説明図。
【図１０】本実施形態の平均化処理手法の説明図。
【図１１】本実施形態の平均化処理手法の説明図。
【図１２】本実施形態の平均化手法を採用した場合に生成される画像の例。
【図１３】本実施形態の平均化手法を採用しなかった場合に生成される画像の例。
【図１４】仮想カメラの注視点をシフトする手法の説明図。
【図１５】本実施形態の詳細な処理を説明するフローチャート。
【図１６】本実施形態の詳細な処理を説明するフローチャート。
【図１７】図１７（Ａ）、図１７（Ｂ）はハードウェア構成例。
【符号の説明】
【０１２６】
ＤＢ  描画バッファ、ＤＢ１、ＤＢ２  第１、第２の描画バッファ、
ＴＢ  バッファ、ＡＲ１、ＡＲ２  第１、第２の領域、ＭＳ  モデルデータ記憶部、
ＴＳ  テクスチャ記憶部、ＭＴＳ  モーションデータ記憶部、
１００  処理部、１０２  ゲーム演算部、１０４  オブジェクト空間設定部、
１０５  カリング処理部、１０６  移動体演算部、１０８  仮想カメラ制御部、
１２０  描画部、１２２  ライティング処理部、１２４  テクスチャマッピング部、
１３０  音生成部、１６０  操作部、１７０  記憶部、１８０  情報記憶媒体、
１９０  表示部、１９２  音出力部、１９４  補助記憶装置、１９６  通信部
【図１】
2009064355.tif 000003
【図２】
2009064355.tif 000004
【図３】
2009064355.tif 000005
【図４】
2009064355.tif 000006
【図５】
2009064355.tif 000007
【図６】
2009064355.tif 000008
【図７】
2009064355.tif 000009
【図８】
2009064355.tif 000010
【図９】
2009064355.tif 000011
【図１０】
2009064355.tif 000012
【図１１】
2009064355.tif 000013
【図１４】
2009064355.tif 000014
【図１５】
2009064355.tif 000015
【図１６】
2009064355.tif 000016
【図１７】
2009064355.tif 000017
【図１２】
2009064355.tif 000018
【図１３】
2009064355.tif 000019