(57)【要約】【課題】各状況に応じた適切な画質の立体視用画像の生成を可能にするプログラム、情報記憶媒体、画像生成システム等の提供。【解決手段】画像生成システムは、第１の描画モードと第２の描画モードの切り替え処理を行う描画モード切り替え部と、立体視における第１視点から見える第１視点画像と第２視点から見える第２視点画像を立体視用画像として生成する画像生成部を含む。画像生成部は、第１の描画モードでは、第Ｋのフレームにおけるオブジェクトの描画処理により、第１視点画像を生成し、第Ｋのフレームの次の第Ｋ＋１のフレームにおけるオブジェクトの描画処理により、第１視点画像に対応する第２視点画像を生成し、第２の描画モードでは、同じ第Ｌのフレームにおけるオブジェクトの描画処理により、第１視点画像及び第２視点画像の両方を生成する。【選択図】図２
2013062731.tif 000002
【特許請求の範囲】
【請求項１】
第１の描画モードと第２の描画モードの切り替え処理を行う描画モード切り替え部と、
立体視における第１視点から見える第１視点画像と第２視点から見える第２視点画像を立体視用画像として生成する画像生成部として、
コンピュータを機能させ、
前記画像生成部は、
前記第１の描画モードでは、第Ｋのフレームにおけるオブジェクトの描画処理により、前記第１視点画像を生成し、前記第Ｋのフレームの次の第Ｋ＋１のフレームにおける前記オブジェクトの描画処理により、前記第１視点画像に対応する前記第２視点画像を生成し、
前記第２の描画モードでは、同じ第Ｌのフレームにおける前記オブジェクトの描画処理により、前記第１視点画像及び前記第２視点画像の両方を生成することを特徴とするプログラム。
【請求項２】
請求項１において、
前記画像生成部は、
前記第１の描画モードでは、高解像度の第１の解像度の前記第１視点画像、前記第２視点画像を生成し、
前記第２の描画モードでは、前記第１の解像度よりも低解像度の第２の解像度の前記第１視点画像、前記第２視点画像を生成することを特徴とするプログラム。
【請求項３】
請求項２において、
前記画像生成部は、
第Ｍのフレームにおいて前記第２の描画モードから前記第１の描画モードに切り替わった場合に、前記第１の描画モードであっても、前記オブジェクトの描画処理により、高解像度の前記第１視点画像及び前記第２視点画像の両方を生成することを特徴とするプログラム。
【請求項４】
請求項２又は３において、
画像が書き込まれる描画バッファとして、
コンピュータを機能させ、
前記描画バッファは、
書き込み用バッファ又は表示用バッファに設定される第１のバッファと、
前記第１のバッファが書き込み用バッファに設定される場合に表示用バッファに設定され、前記第１のバッファが表示用バッファに設定される場合に書き込み用バッファに設定される第２のバッファと、
前記オブジェクトの描画処理が行われる第３のバッファとを含み、
前記画像生成部は、
前記第２の描画モードでは、低解像度の前記第２の解像度の前記第１視点画像、前記第２視点画像の画素数を増やすための画素補間処理を行い、前記画素補間処理後の前記第１視点画像、前記第２視点画像を、前記第１、第２のバッファのうち書き込み用バッファに設定されたバッファに対して書き込むことを特徴とするプログラム。
【請求項５】
請求項４において、
前記第１、第２、第３のバッファの各々は、第１視点用領域と第２視点用領域を有し、
前記画像生成部は、
前記第１の描画モードでは、
前記第Ｋのフレームで生成されて前記第３のバッファの前記第１視点用領域に書き込まれた前記第１視点画像を、前記第１、第２のバッファのうち書き込み用バッファに設定された一方のバッファの前記第１視点用領域に対して書き込み、前記第Ｋのフレームの前の第Ｋ−１のフレームで生成されて前記第３のバッファの前記第２視点用領域に書き込まれた前記第２視点画像を、前記一方のバッファの前記第２視点用領域に対して書き込み、
前記一方とは異なる他方のバッファが書き込み用バッファに設定された場合には、前記第Ｋのフレームで生成されて前記第３のバッファの前記第１視点用領域に書き込まれた前記第１視点画像を、前記他方のバッファの前記第１視点用領域に対して書き込み、前記第Ｋ＋１のフレームで生成されて前記第３のバッファの前記第２視点用領域に書き込まれた前記第２視点画像を、前記他方のバッファの前記第２視点用領域に対して書き込むことを特徴とするプログラム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記描画モード切り替え部は、
操作部からの操作情報に基づいて、前記第１の描画モードと前記第２の描画モードの切り替え処理を行うことを特徴とするプログラム。
【請求項７】
請求項６において、
前記描画モード切り替え部は、
前記操作部からの前記操作情報に基づいて、前記オブジェクトのモーションが、前記第１の描画モードに対応する第１のモーションから、前記第２の描画モードに対応する第２のモーションに切り替わったと判断した場合に、前記第１の描画モードから前記第２の描画モードに描画モードを切り替えることを特徴とするプログラム。
【請求項８】
請求項７において、
前記第１のモーションは、前記オブジェクトであるキャラクタの立ちモーションであり、前記第２のモーションは、前記キャラクタが前記立ちモーションから動くモーションであることを特徴とするプログラム。
【請求項９】
請求項１乃至５のいずれかにおいて、
前記描画モード切り替え部は、
画像の動き情報に基づいて、前記第１の描画モードと前記第２の描画モードの切り替え処理を行うことを特徴とするプログラム。
【請求項１０】
請求項９において、
前記描画モード切り替え部は、
前記オブジェクトの動き情報に基づいて、前記第１の描画モードと前記第２の描画モードの切り替え処理を行うことを特徴とするプログラム。
【請求項１１】
請求項１０において、
前記描画モード切り替え部は、
前記オブジェクトのモーション処理に使用される骨の動き情報に基づいて、前記第１の描画モードと前記第２の描画モードの切り替え処理を行うことを特徴とするプログラム。
【請求項１２】
請求項１乃至１１のいずれかにおいて、
前記描画モード切り替え部は、
前記オブジェクトが静止状態であると判断される場合又はポーズ処理時に、描画モードを前記第１の描画モードに切り替えることを特徴とするプログラム。
【請求項１３】
請求項１乃至１２のいずれかにおいて、
画像が書き込まれる描画バッファとして、
コンピュータを機能させ、
前記描画バッファは、
書き込み用バッファ又は表示用バッファに設定される第１のバッファと、
前記第１のバッファが書き込み用バッファに設定される場合に表示用バッファに設定され、前記第１のバッファが表示用バッファに設定される場合に書き込み用バッファに設定される第２のバッファと、
前記オブジェクトの描画処理が行われる第３のバッファとを含み、
前記第１、第２、第３のバッファの各々は、第１視点用領域と第２視点用領域を有し、
前記画像生成部は、
前記第１の描画モードでは、
前記第Ｋのフレームで生成されて前記第３のバッファの前記第１視点用領域に書き込まれた前記第１視点画像を、前記第１、第２のバッファのうち書き込み用バッファに設定された一方のバッファの前記第１視点用領域に対して書き込み、前記第Ｋのフレームの前の第Ｋ−１のフレームで生成されて前記第３のバッファの前記第２視点用領域に書き込まれた前記第２視点画像を、前記一方のバッファの前記第２視点用領域に対して書き込み、
前記一方とは異なる他方のバッファが書き込み用バッファに設定された場合には、前記第Ｋのフレームで生成されて前記第３のバッファの前記第１視点用領域に書き込まれた前記第１視点画像を、前記他方のバッファの前記第１視点用領域に対して書き込み、前記第Ｋ＋１のフレームで生成されて前記第３のバッファの前記第２視点用領域に書き込まれた前記第２視点画像を、前記他方のバッファの前記第２視点用領域に対して書き込むことを特徴とするプログラム。
【請求項１４】
請求項１３において、
前記画像生成部は、
前記第２の描画モードでは、
前記第Ｌのフレームで生成されて前記第３のバッファの前記第１視点用領域に書き込まれた前記第１視点画像を、前記第１、第２のバッファのうち書き込み用バッファに設定された一方のバッファの前記第１視点用領域に対して書き込み、
前記第Ｌのフレームで生成されて前記第３のバッファの前記第２視点用領域に書き込まれた前記第２視点画像を、前記一方のバッファの前記第２視点用領域に対して書き込むことを特徴とするプログラム。
【請求項１５】
請求項１乃至１４のいずれかにおいて、
前記第１視点画像は、二眼式立体視における左眼用画像、右眼側画像の一方の画像であり、前記第２視点画像は、前記一方とは異なる他方の画像であることを特徴とするプログラム。
【請求項１６】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至１５のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１７】
第１の描画モードと第２の描画モードの切り替え処理を行う描画モード切り替え部と、
立体視における第１視点から見える第１視点画像と第２視点から見える第２視点画像を立体視用画像として生成する画像生成部と、
を含み、
前記画像生成部は、
前記第１の描画モードでは、第Ｋのフレームにおけるオブジェクトの描画処理により、前記第１視点画像を生成し、前記第Ｋのフレームの次の第Ｋ＋１のフレームにおける前記オブジェクトの描画処理により、前記第１視点画像に対応する前記第２視点画像を生成し、
前記第２の描画モードでは、同じ第Ｌのフレームにおける前記オブジェクトの描画処理により、前記第１視点画像及び前記第２視点画像の両方を生成することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システム等に関する。
【背景技術】
【０００２】
近年、映画やゲーム等の分野において、より臨場感が溢れる画像を生成・表示するシステムとして、立体視画像の生成・表示システムが脚光を浴びている。例えばこの立体視画像生成・表示システムの１つである２眼式の立体視画像生成・表示システムでは、左眼用画像と右眼用画像を生成・表示する。そして例えばプレーヤが立体視用の眼鏡を装着して、左眼は左眼用画像のみを見て、右眼は右眼用画像のみを見るようにすることで、立体視を実現する。このような立体視を実現する画像生成・表示システムの従来技術としては、例えば特許文献１、２等に開示される技術がある。
【０００３】
このような立体視用画像をＣＧ（Computer Graphics）で生成する場合には、左眼用仮想カメラに対応する左眼用ビューボリューム（左眼用視錐台）を視界に設定して、描画処理を行い、左眼用画像を生成する。また右眼用仮想カメラに対応する右眼用ビューボリューム（右眼用視錐台）を視界に設定して、描画処理を行い、右眼用画像を生成する。
【０００４】
このため、立体視用画像を生成する場合には、立体視用ではない通常の画像を生成する場合に比べて、約２倍の描画負荷が必要になってしまう。
【０００５】
この場合に、例えば左眼用画像、右眼用画像の解像度（画素数）を、通常の画像に比べて低くする手法も考えられる。
【０００６】
しかしながら、この手法では、画像の解像度が低くなることで画質が低下してしまう。特にゲームのキャラクタの映像等を、近い視点の仮想カメラにより鑑賞するようなモードなどでは、キャラクタの画像が綺麗に描かれなくなり、プレーヤの仮想現実感等を低下させてしまう。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−１２６９０２号公報
【特許文献２】特開２００５−２２９５６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の幾つかの態様によれば、各状況に応じた適切な画質の立体視用画像の生成を可能にするプログラム、情報記憶媒体、画像生成システム等を提供できる。
【課題を解決するための手段】
【０００９】
本発明の一態様は、第１の描画モードと第２の描画モードの切り替え処理を行う描画モード切り替え部と、立体視における第１視点から見える第１視点画像と第２視点から見える第２視点画像を立体視用画像として生成する画像生成部とを含み、前記画像生成部は、前記第１の描画モードでは、第Ｋのフレームにおけるオブジェクトの描画処理により、前記第１視点画像を生成し、前記第Ｋのフレームの次の第Ｋ＋１のフレームにおける前記オブジェクトの描画処理により、前記第１視点画像に対応する前記第２視点画像を生成し、前記第２の描画モードでは、同じ第Ｌのフレームにおける前記オブジェクトの描画処理により、前記第１視点画像及び前記第２視点画像の両方を生成する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【００１０】
本発明の一態様によれば、第１の描画モードに設定されると、第Ｋのフレームにおけるオブジェクトの描画処理により第１視点画像が生成され、次の第Ｋ＋１のフレームにおけるオブジェクトの描画処理により、第２視点画像が生成される。一方、第２の描画モードに設定されると、同じ第Ｌのフレームにおけるオブジェクトの描画処理により、第１視点画像と第２視点画像の両方が生成される。例えば第１の描画モードではフレーム毎に交互に第１視点画像、第２視点画像が生成され、第２の描画モードでは同じフレームで第１視点画像と第２視点画像が生成される。これにより、各状況に応じた適切な画質の立体視用画像の生成が可能になり、これまでにない立体視用画像の生成システムを実現できる。
【００１１】
また本発明の一態様では、前記画像生成部は、前記第１の描画モードでは、高解像度の第１の解像度の前記第１視点画像、前記第２視点画像を生成し、前記第２の描画モードでは、前記第１の解像度よりも低解像度の第２の解像度の前記第１視点画像、前記第２視点画像を生成してもよい。
【００１２】
このようにすれば、第１の描画モードでは、フレーム毎に交互に第１視点画像、第２視点画像が生成されるが、生成される第１視点画像、第２視点画像は高解像度になる。一方、第２の描画モードでは、低解像度の第１視点画像、第２視点画像になるが、これらが同じフレームで生成されることで、画像のチラツキ等を抑制することが可能になる。
【００１３】
また本発明の一態様では、前記画像生成部は、第Ｍのフレームにおいて前記第２の描画モードから前記第１の描画モードに切り替わった場合に、前記第１の描画モードであっても、前記オブジェクトの描画処理により、高解像度の前記第１視点画像及び前記第２視点画像の両方を生成してもよい。
【００１４】
このようにすれば、第Ｍのフレームでの第２の描画モードから第１の描画モードへの切り替わりの際に、不自然な立体視用画像が生成されるなどの事態を防止できる。
【００１５】
また本発明の一態様では、画像が書き込まれる描画バッファを含み（描画バッファとしてコンピュータを機能させ）、前記描画バッファは、書き込み用バッファ又は表示用バッファに設定される第１のバッファと、前記第１のバッファが書き込み用バッファに設定される場合に表示用バッファに設定され、前記第１のバッファが表示用バッファに設定される場合に書き込み用バッファに設定される第２のバッファと、前記オブジェクトの描画処理が行われる第３のバッファとを含み、前記画像生成部は、前記第２の描画モードでは、低解像度の前記第２の解像度の前記第１視点画像、前記第２視点画像の画素数を増やすための画素補間処理を行い、前記画素補間処理後の前記第１視点画像、前記第２視点画像を、前記第１、第２のバッファのうち書き込み用バッファに設定されたバッファに対して書き込んでもよい。
【００１６】
このようにすれば、例えば第１の描画モード用の画素数に第１、第２のバッファの第１視点画像、第２視点画像の領域が設定されており、第２の描画モードで低解像度の第１視点画像、第２視点画像が生成される場合にも、これに適正に対応して、第１、第２の描画モードの切り替え処理を実現できるようになる。
【００１７】
また本発明の一態様では、前記第１、第２、第３のバッファの各々は、第１視点用領域と第２視点用領域を有し、前記画像生成部は、前記第１の描画モードでは、前記第Ｋのフレームで生成されて前記第３のバッファの前記第１視点用領域に書き込まれた前記第１視点画像を、前記第１、第２のバッファのうち書き込み用バッファに設定された一方のバッファの前記第１視点用領域に対して書き込み、前記第Ｋのフレームの前の第Ｋ−１のフレームで生成されて前記第３のバッファの前記第２視点用領域に書き込まれた前記第２視点画像を、前記一方のバッファの前記第２視点用領域に対して書き込み、前記一方とは異なる他方のバッファが書き込み用バッファに設定された場合には、前記第Ｋのフレームで生成されて前記第３のバッファの前記第１視点用領域に書き込まれた前記第１視点画像を、前記他方のバッファの前記第１視点用領域に対して書き込み、前記第Ｋ＋１のフレームで生成されて前記第３のバッファの前記第２視点用領域に書き込まれた前記第２視点画像を、前記他方のバッファの前記第２視点用領域に対して書き込んでもよい。
【００１８】
このようにすれば、第１、第２のバッファのダブルバッファの動作と、第１、第２の描画モードの切り替え処理とを、両立して実現できるようになる。
【００１９】
また本発明の一態様では、前記描画モード切り替え部は、操作部からの操作情報に基づいて、前記第１の描画モードと前記第２の描画モードの切り替え処理を行ってもよい。
【００２０】
このようにすれば、操作部の操作情報を利用して、描画モードを、第１の描画モードから第２の描画モードに切り替えたり、第２の描画モードから第１の描画モードに切り替えることが可能になる。
【００２１】
また本発明の一態様では、前記描画モード切り替え部は、前記操作部からの前記操作情報に基づいて、前記オブジェクトのモーションが、前記第１の描画モードに対応する第１のモーションから、前記第２の描画モードに対応する第２のモーションに切り替わったと判断した場合に、前記第１の描画モードから前記第２の描画モードに描画モードを切り替えてもよい。
【００２２】
このようにすれば、第１のモーションから第２のモーションへの切り替えを検出することで、第１の描画モードから第２の描画モードに描画モードを切り替えることが可能になり、描画モードの切り替え処理を簡素な処理で実現することが可能になる。
【００２３】
また本発明の一態様では、前記第１のモーションは、前記オブジェクトであるキャラクタの立ちモーションであり、前記第２のモーションは、前記キャラクタが前記立ちモーションから動くモーションであってもよい。
【００２４】
但し、本発明の一態様での第１、第２のモーションはこのようなモーションには限定されず、種々の変形実施が可能である。
【００２５】
また本発明の一態様では、前記描画モード切り替え部は、画像の動き情報に基づいて、前記第１の描画モードと前記第２の描画モードの切り替え処理を行ってもよい。
【００２６】
このようにすれば、例えば画像の動きが小さい場合には第１の描画モードに切り替え、画像の動きが大きい場合には第２の描画モードに切り替えるなどの描画モードの切り替え処理を実現できる。
【００２７】
また本発明の一態様では、前記描画モード切り替え部は、前記オブジェクトの動き情報に基づいて、前記第１の描画モードと前記第２の描画モードの切り替え処理を行ってもよい。
【００２８】
このようにすれば、例えばオブジェクトのモデルとしての動きを検出して、第１、第２の描画モードの切り替え処理を行うことなどが可能になり、切り替え処理の処理負荷の軽減等を図れる。
【００２９】
また本発明の一態様では、前記描画モード切り替え部は、前記オブジェクトのモーション処理に使用される骨の動き情報に基づいて、前記第１の描画モードと前記第２の描画モードの切り替え処理を行ってもよい。
【００３０】
このようにすれば、モーション処理に使用される骨の動き情報を検出して、第１の描画モードと第２の描画モードの切り替え処理を実現できるようにため、更なる処理負荷の軽減や処理の簡素化を図れる。
【００３１】
また本発明の一態様では、前記描画モード切り替え部は、前記オブジェクトが静止状態であると判断される場合又はポーズ処理時に、描画モードを前記第１の描画モードに切り替えてもよい。
【００３２】
このようにすれば、オブジェクトが静止状態である場合やポーズ処理時に、第１の描画モードで第１視点画像、第２視点画像を生成することで、例えば第１の描画モードによる高品質の立体視用画像を生成できるようになる。
【００３３】
また本発明の一態様では、前記描画モード切り替え部は、リプレイ画像生成時におけるスロー再生時又はポーズ処理時に、描画モードを前記第１の描画モードに切り替えてもよい。
【００３４】
このようにすれば、リプレイ画像生成時におけるスロー再生時又はポーズ処理時に、例えば第１の描画モードによる高品質の立体視用画像を生成できるようになる。
【００３５】
また本発明の一態様では、画像が書き込まれる描画バッファを含み（描画バッファとしてコンピュータを機能させ）、前記描画バッファは、書き込み用バッファ又は表示用バッファに設定される第１のバッファと、前記第１のバッファが書き込み用バッファに設定される場合に表示用バッファに設定され、前記第１のバッファが表示用バッファに設定される場合に書き込み用バッファに設定される第２のバッファと、前記オブジェクトの描画処理が行われる第３のバッファとを含み、前記第１、第２、第３のバッファの各々は、第１視点用領域と第２視点用領域を有し、前記画像生成部は、前記第１の描画モードでは、前記第Ｋのフレームで生成されて前記第３のバッファの前記第１視点用領域に書き込まれた前記第１視点画像を、前記第１、第２のバッファのうち書き込み用バッファに設定された一方のバッファの前記第１視点用領域に対して書き込み、前記第Ｋのフレームの前の第Ｋ−１のフレームで生成されて前記第３のバッファの前記第２視点用領域に書き込まれた前記第２視点画像を、前記一方のバッファの前記第２視点用領域に対して書き込み、前記一方とは異なる他方のバッファが書き込み用バッファに設定された場合には、前記第Ｋのフレームで生成されて前記第３のバッファの前記第１視点用領域に書き込まれた前記第１視点画像を、前記他方のバッファの前記第１視点用領域に対して書き込み、前記第Ｋ＋１のフレームで生成されて前記第３のバッファの前記第２視点用領域に書き込まれた前記第２視点画像を、前記他方のバッファの前記第２視点用領域に対して書き込んでもよい。
【００３６】
このようにすれば、第１、第２のバッファのダブルバッファの動作と、第１の描画モードの画像生成処理とを、両立して実現できるようになる。
【００３７】
また本発明の一態様では、前記画像生成部は、前記第２の描画モードでは、前記第Ｌのフレームで生成されて前記第３のバッファの前記第１視点用領域に書き込まれた前記第１視点画像を、前記第１、第２のバッファのうち書き込み用バッファに設定された一方のバッファの前記第１視点用領域に対して書き込み、前記第Ｌのフレームで生成されて前記第３のバッファの前記第２視点用領域に書き込まれた前記第２視点画像を、前記一方のバッファの前記第２視点用領域に対して書き込んでもよい。
【００３８】
このようにすれば、第１、第２のバッファのダブルバッファの動作と、第１、第２の描画モードの画像生成処理や描画モードの切り替え処理とを、両立して実現できるようになる。
【００３９】
また本発明の一態様では、前記第１視点画像は、二眼式立体視における左眼用画像、右眼側画像の一方の画像であり、前記第２視点画像は、前記一方とは異なる他方の画像であってもよい。
【００４０】
但し、第１視点画像、第２視点画像は多眼式立体視や空間像方式立体視における第１視点画像、第２視点画像であってもよい。
【図面の簡単な説明】
【００４１】
【図１】本実施形態の画像生成システムの構成例。
【図２】本実施形態の手法を説明するフローチャート。
【図３】図３（Ａ）、図３（Ｂ）は第１、第２の描画モードの説明図。
【図４】第２の描画モードから第１の描画モードに切り替わる際の画像生成手法についての説明図。
【図５】図５（Ａ）、図５（Ｂ）は第１の描画モード時に生成されるゲーム画像の例。
【図６】図６（Ａ）、図６（Ｂ）は第２の描画モード時に生成されるゲーム画像の例。
【図７】図７（Ａ）、図７（Ｂ）も第２の描画モード時に生成されるゲーム画像の例。
【図８】図８（Ａ）、図８（Ｂ）は第１の描画モードでの画像生成手法の詳細例の説明図。
【図９】図９（Ａ）、図９（Ｂ）は第２の描画モードでの画像生成手法の詳細例の説明図。
【図１０】図１０（Ａ）、図１０（Ｂ）は第２の描画モードから第１の描画モードに切り替わる際の画像生成手法の詳細例の説明図。
【図１１】図１１（Ａ）、図１１（Ｂ）は描画モードの切り替え手法の説明図。
【図１２】モーションデータを用いるモーション処理の説明図。
【図１３】モーション処理に使用される骨の動き情報に基づいて描画モードを切り替える手法の説明図。
【図１４】図１４（Ａ）、図１４（Ｂ）はポーズ処理時やスロー再生時に描画モードを第１の描画モードに切り替える手法の説明図。
【発明を実施するための形態】
【００４２】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００４３】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）のブロック図の例を示す。なお、本実施形態の画像生成システムの構成は図１に限定されず、その構成要素（各部）の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００４４】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、方向指示キー、操作ボタン、アナログスティック、レバー、各種センサ（角速度センサ、加速度センサ等）、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【００４５】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＤＲＡＭ、ＶＲＡＭ）などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部１７０に保持される。
【００４６】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリ（ＲＯＭ等）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータ（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００４７】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＬＣＤ、有機ＥＬディスプレイ、ＣＲＴ、各種プロジェクタ型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。また、これらは、タッチパネル等と一体型であってもよい。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００４８】
補助記憶装置１９４（補助メモリ、２次メモリ）は、記憶部１７０の容量を補うために使用される記憶装置であり、ＳＤメモリーカード、マルチメディアカードなどのメモリーカードなどにより実現できる。
【００４９】
通信部１９６は、有線や無線のネットワークを介して外部（例えば他の画像生成システム、サーバ、ホスト装置）との間で通信を行うものであり、その機能は、通信用ＡＳＩＣ又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【００５０】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバ（ホスト装置）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０、補助記憶装置１９４）に配信してもよい。このようなサーバ（ホスト装置）による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００５１】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部１００は記憶部１７０をワーク領域として各種処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＧＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００５２】
処理部１００は、ゲーム演算部１０２、オブジェクト空間設定部１０４、移動体演算部１０６、仮想カメラ制御部１０８、描画モード切り替え部１１０、動き情報検出部１１２、リプレイ処理部１１４、画像生成部１２０、音生成部１３０を含む。
【００５３】
ゲーム演算部１０２はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００５４】
オブジェクト空間設定部１０４は、複数のオブジェクトが配置されるオブジェクト空間の設定処理を行う。例えば、キャラクタ（人、動物、ロボット、車、船舶、飛行機等）、マップ（地形）、建物、コース（道路）、樹木、壁などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。具体的には、記憶部１７０のオブジェクトデータ記憶部１７２には、オブジェクト（パーツオブジェクト）の位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。オブジェクト空間設定部１０４は、例えば各フレーム毎にこのオブジェクトデータを更新する処理などを行う。
【００５５】
移動体演算部１０６は、キャラクタ等の移動体を移動させるための演算を行う。また移動体（移動体オブジェクト）を動作させるための演算も行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、移動体（オブジェクト、モデルオブジェクト）をオブジェクト空間内で移動させたり、移動体を動作（モーション、アニメーション）させる処理を行う。具体的には、移動体の移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒等）毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００５６】
移動体演算部１０６は、モーション処理部１０７を有する。モーション処理部１０７は、キャラクタ等のモデルオブジェクトにモーション（アニメーション）を行わせるモーション処理（モーション再生、モーション生成）を行う。
【００５７】
具体的にはモーションデータ記憶部１７３には、キャラクタ（モデルオブジェクト）のスケルトンを構成する各骨（キャラクタを構成する各パーツオブジェクト）の位置又は回転角度（親の骨に対する子の骨の３軸周りの回転角度）等を含むモーションデータが記憶されている。モーション処理部１０７は、このモーションデータをモーションデータ記憶部１７３から読み出し、読み出されたモーションデータに基づいてスケルトンを構成する各骨（パーツオブジェクト）を動かすことで（スケルトン形状を変形させることで）、キャラクタのモーションを再生する。
【００５８】
仮想カメラ制御部１０８は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点、基準仮想カメラ）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００５９】
例えば仮想カメラによりキャラクタを後方から撮影する場合には、キャラクタの位置又は方向の変化に仮想カメラが追従するように、仮想カメラの位置（視点位置）や方向（視線方向）を制御する。この場合には、移動体演算部１０６で得られたキャラクタの位置、方向又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は方向を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００６０】
描画モード切り替え部１１０は描画モードの切り替え処理を行う。動き情検出部１１２は画像の動き情報を検出する。これらの描画モード切り替え部１１０の描画モードの切り替え処理や、動き情報検出部１１２の動き情報の検出処理の詳細については後述する。
【００６１】
リプレイ処理部１１４は、リプレイデータ記憶部１７４に記憶されているリプレイデータを読み出し、リプレイ画像を生成するためのリプレイ処理を行う。例えばリプレイデータ記憶部１７４は、ゲーム時の各タイミングにおけるプレーヤの操作情報（キー入力情報、操作履歴情報）を、リプレイデータとして記憶している。なお、操作情報に加えて、キャラクタの位置情報、方向情報等をリプレイデータとして記憶してもよい。リプレイモードになると、このリプレイデータがリプレイデータ記憶部１７４から読み出される。そしてリプレイ処理部１１４は、このリプレイデータに基づいて、ゲーム時の動作と同じ動作を行うようにキャラクタを制御する。そして画像生成部１２０が、リプレイ用の仮想カメラから見える画像を生成することで、リプレイ画像が生成される。
【００６２】
画像生成部１２０は、処理部１００で行われる種々の処理（ゲーム処理、シミュレーション処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。具体的には、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を、描画バッファ１７６（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画する。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００６３】
画像生成部１２０は第１視点画像生成部１２２、第２視点画像生成部１２４を含む。第１視点画像生成部１２２は立体視における第１視点から見える画像を生成し、第２視点画像生成部１２４は立体視における第２視点から見える画像を生成する。二眼式立体視を例にとれば、第１視点画像生成部１２２は、オブジェクト空間内において左眼用仮想カメラから見える左眼用画像を生成し、第２視点画像生成部１２４は、オブジェクト空間内において右眼用仮想カメラから見える右眼用画像を生成する。
【００６４】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６５】
そして本実施形態では、描画モード切り替え部１１０が、第１の描画モードと第２の描画モードの切り替え処理を行う。また画像生成部１２０は、立体視における第１視点（狭義には、左眼用仮想カメラ及び右眼用仮想カメラの一方のカメラ）から見える第１視点画像（狭義には、左眼用画像及び右用画像の一方の画像）を、立体視用画像として生成する。また、立体視における第２視点（狭義には、左眼用仮想カメラ及び右眼用仮想カメラの他方のカメラ）から見える第２視点画像（狭義には、左眼用画像及び右用画像の他方の画像）を、立体視用画像として生成する。これらの第１視点画像、第２視点画像は、第１視点画像生成部１２２、第２視点画像生成部１２４が生成する。
【００６６】
そして画像生成部１２０は、第１の描画モードでは、第Ｋ（Ｋは自然数）のフレームにおけるオブジェクトの描画処理により、第１視点画像を生成し、第Ｋのフレームの次の第Ｋ＋１のフレームにおけるオブジェクトの描画処理により、第２視点画像を生成する。この第２視点画像は、第Ｋのフレームの描画処理により生成された第１視点画像に対応する画像である。二眼式立体視を例にとれば、第Ｋのフレームの第１視点画像が左眼用画像である場合には、第２視点画像は、この左眼用画像に対応する右眼側画像である。即ち、第Ｋのフレームで生成された第１視点画像（左眼用画像）と第Ｋ＋１のフレームで生成された第２視点画像（右眼用画像）により、物体が立体的に見える立体視用画像の表示が可能になる。
【００６７】
一方、画像生成部１２０は、第２の描画モードでは、同じ第Ｌ（Ｌは自然数）のフレームにおけるオブジェクトの描画処理により、第１視点画像及び第２視点画像の両方を生成する。即ち、第１の描画モードでは、フレーム毎に交互に第１視点画像、第２視点画像を生成しているが、第２の描画モードでは、同じフレームで第１視点画像と第２視点画像の両方を生成する。
【００６８】
このように本実施形態では、第１の描画モードでは第１視点画像、第２視点画像をフレーム単位で交互に生成し、第２の描画モードでは第１視点画像、第２視点画像を同じフレームで同時に生成しているため、各状況に応じた適切な画質の立体視用画像の生成が可能になる。
【００６９】
更に具体的には画像生成部１２０は、第１の描画モードでは、高解像度の第１の解像度の第１視点画像、第２視点画像を生成する。一方、第２の描画モードでは、第１の解像度よりも低解像度の第２の解像度の第１視点画像、第２視点画像を生成する。即ち、第１の描画モードでは、高解像度の第１視点画像、第２視点画像が、フレーム毎に交互に生成される。一方、第２の描画モードでは、低解像度の第１視点画像、第２視点画像が、同じフレームで生成される。このようにすれば、第１の描画モードでは、画像のチラツキ等は発生しやすいが、高解像度の立体視用画像を生成できるようになる。一方、第２の描画モードでは、画像の解像度は落ちるが、例えば動きが大きい画像等において画像のチラツキ等を低減できるようになり、各状況に応じた適切な画質の立体視用画像の生成が可能になる。なお、第１の描画モードと第２の描画モードとで、第１視点画像と第２視点画像の解像度を変更しない変形実施も可能である。
【００７０】
また画像生成部１２０は、第Ｍ（Ｍは自然数）のフレームにおいて第２の描画モードから第１の描画モードに切り替わった場合に、第１の描画モードであっても、オブジェクトの描画処理により、高解像度の第１視点画像と第２視点画像の両方を生成してもよい。即ち、第２の描画モードから第１の描画モードに切り替わった場合には、通常の第１の描画モードのように、高解像度の第１視点画像と第２視点画像をフレーム毎に交互に生成するのが原則である。しかしながら、第２の描画モードから第１の描画モードに切り替わった際に、原則通りに画像を生成すると、低解像度の第１視点画像及び第２視点画像の一方を画素補間処理した画像と、高解像度の第１視点画像及び第２視点画像の他方が混在してしまい、不自然な立体視表示になるおそれがある。この点、第２の描画モードから第１の描画モードに切り替わった際に、高解像度の第１視点画像と第２視点画像の両方を同じフレームで生成するようにすれば、このような事態の発生を防止できる。
【００７１】
また図１の画像生成システムの記憶部１７０は、画像が書き込まれる描画バッファ１７６を含む。そして、この描画バッファ１７６は、第１のバッファ１７７、第２のバッファ１７８、第３のバッファ１７９を含む。
【００７２】
ここで、第１のバッファ１７７は、書き込み用バッファ又は表示用バッファに設定されるバッファ（画像記憶領域）である。また、第２のバッファ１７８は、第１のバッファ１７７が書き込み用バッファに設定される場合に表示用バッファに設定され、第１のバッファ１７７が表示用バッファに設定される場合に書き込み用バッファに設定されるバッファである。即ち、第１のバッファ１７７、第２のバッファ１７８により、ＶＲＡＭにおけるダブルバッファ動作が実現される。
【００７３】
また、第３のバッファ１７９は、オブジェクトの描画処理が行われるバッファである。即ち、実際のオブジェクトの描画書き込みは、第３のバッファ１７９（一時バッファ、中間バッファ）に対して行われる。そして、ダブルバッファを構成する第１のバッファ１７７、第２のバッファ１７８のうち、書き込み用バッファに設定されたバッファに対して、第３のバッファ１７９の画像（ＲＧＢデータ等）がコピーされて書き込まれる。
【００７４】
そして画像生成部１２０は、第２の描画モードでは、低解像度の第２の解像度の第１視点画像、第２視点画像の画素数を増やすための画素補間処理を行う。そして、画素補間処理後の第１視点画像、第２視点画像を、第１、第２のバッファ１７７、１７８のうち書き込み用バッファに設定されたバッファに対して書き込む。ここで画素補間処理は、例えば第ｉの画素の画素値（ＲＧＢ値）と、第ｉの画素に隣接する第ｉ＋１の画素の画素値の補間処理を行って、第ｉの画素の画素値と第ｉ＋１の画素の画素値の間の画素値を求める処理などである。このようにすることで、低解像度の画像を、高解像度の画像と同じ画素数の画像に変換できるようになる。従って、例えば第１、第２のバッファ１７７、１７８が、高解像度用の画素数のバッファである場合にも、第３のバッファ１７９に書き込まれた低解像度の第１視点画像、第２視点画像を、第１、第２のバッファ１７７、１７８に適切に書き込めるようになる。
【００７５】
また、例えば第１、第２、第３のバッファ１７７、１７８、１７９の各々は、第１視点用領域と第２視点用領域を有する。そして画像生成部１２０は、第１の描画モードでは、第Ｋのフレームで生成されて第３のバッファ１７９の第１視点用領域に書き込まれた第１視点画像を、第１、第２のバッファ１７７、１７８のうち書き込み用バッファに設定された一方のバッファの第１視点用領域に対して書き込む。また、第Ｋのフレームの前の第Ｋ−１のフレームで生成されて第３のバッファ１７９の第２視点用領域に書き込まれた第２視点画像を、上述の一方のバッファの第２視点用領域に対して書き込む。
【００７６】
また画像生成部１２０は、第１、第２のバッファ１７７、１７８のうち、上述の一方とは異なる他方のバッファが書き込み用バッファに設定された場合には、第Ｋのフレームで生成されて第３のバッファ１７９の第１視点用領域に書き込まれた第１視点画像を、他方のバッファの第１視点用領域に対して書き込む。また、第Ｋ＋１のフレームで生成されて第３のバッファ１７９の第２視点用領域に書き込まれた第２視点画像を、他方のバッファの第２視点用領域に対して書き込む。
【００７７】
例えば第１のバッファ１７７が、一方のバッファとして書き込み用バッファに設定されたとする。この場合に画像生成部１２０は、第１の描画モードでは、第Ｋのフレームで生成されて第３のバッファ１７９の第１視点用領域に書き込まれた第１視点画像を、第１のバッファ１７７の第１視点用領域に対して書き込み、第Ｋ−１のフレームで生成されて第３のバッファ１７９の第２視点用領域に書き込まれた第２視点画像を、第１のバッファ１７７の第２視点用領域に対して書き込む。
【００７８】
次に、第２のバッファ１７８が、他方のバッファとして書き込み用バッファに設定されたとする。この場合には、画像生成部１２０は、第Ｋのフレームで生成されて第３のバッファ１７９の第１視点用領域に書き込まれた第１視点画像を、第２のバッファ１７８の第１視点用領域に対して書き込み、第Ｋ＋１のフレームで生成されて第３のバッファ１７９の第２視点用領域に書き込まれた第２視点画像を、第２のバッファ１７８の第２視点用領域に対して書き込む。
【００７９】
このようにすることで、第１視点画像と第２視点画像をフレーム毎に交互に生成する第１の描画モードと、第１、第２のバッファ１７７、１７８のダブルバッファ動作とを両立して実現できるようになる。
【００８０】
また画像生成部１２０は、第２の描画モードでは、第Ｌのフレームで生成されて第３のバッファ１７９の第１視点用領域に書き込まれた第１視点画像を、第１、第２のバッファ１７７、１７８のうち書き込み用バッファに設定された一方のバッファの第１視点用領域に対して書き込む。一方、第Ｌのフレームで生成されて第３のバッファ１７９の第２視点用領域に書き込まれた第２視点画像を、上述の一方のバッファの第２視点用領域に対して書き込む。
【００８１】
このようにすることで、同じ第Ｌのフレームにおけるオブジェクトの描画処理により第１視点画像及び第２視点画像の両方を生成する第２の描画モードと、第１、第２のバッファ１７７、１７８のダブルバッファ動作とを両立して実現できるようになる。
【００８２】
また描画モード切り替え部１１０は、種々の情報に基づいて、第１、第２の描画モードの切り替え処理を行う。例えば描画モード切り替え部１１０は、操作部１６０からの操作情報に基づいて、第１、第２の描画モードの切り替え処理を行う。具体的には、操作部１６０からの操作情報（キー入力）に基づいて、オブジェクト（キャラクタ）のモーションが、第１の描画モードに対応する第１のモーションから、第２の描画モードに対応する第２のモーションに切り替わったと判断したとする。この場合に、描画モード切り替え部１１０は、第１の描画モードから第２の描画モードに描画モードを切り替える。一方、操作部１６０からの操作情報に基づいて、オブジェクトのモーションが、第２のモーションから第１のモーションに切り替わったと判断した場合に、描画モードを第２の描画モードから第１の描画モードに切り替える。
【００８３】
ここで、第１のモーションは、例えばオブジェクトであるキャラクタの立ちモーションである。一方、第２のモーションは、例えばキャラクタが立ちモーションから動くモーションである。従って、この場合には、キャラクタのモーションが、立ちモーションから、動くモーションになった場合に、第１の描画モードから第２の描画モードに切り替わる。一方、動くモーションから立ちモーションになると、第２の描画モードから第１の描画モードに切り替わる。ここで、立ちモーションは、例えば格闘技ゲーム等で基本姿勢モーションと呼ばれるモーションであり、キャラクタが立ちながら微妙に動いているモーションである。また、立ちモーションから動くモーションとは、立っているキャラクタが、足を動かして走ったり歩くモーションや、手などの体の一部を大きく動かすモーションなどである。
【００８４】
また描画モード切り替え部１１０は、画像の動き情報に基づいて、第１の描画モードと第２の描画モードの切り替え処理を行ってもよい。ここで、画像の動き情報（動きベクトル、オプティカルフロー等）は、公知の動き検出処理で検出される情報であり、この動き情報の検出は動き情報検出部１１２により実行される。そして描画モード切り替え部１１０は、検出された動き情報に基づいて、例えば画像の動き量が所定のしきい値以上であると判断した場合に、第１の描画モードから第２の描画モードに切り替える。一方、画像の動き量が所定のしきい値よりも小さいと判断した場合に、第２の描画モードから第１の描画モードに切り替える。
【００８５】
例えば、画像の動き情報は、画像に映るオブジェクトの動き情報であってもよい。この場合には、描画モード切り替え部１１０は、このオブジェクトの動き情報に基づいて、第１、第２の描画モードの切り替え処理を行う。
【００８６】
このオブジェクトの動き情報は、画像自体で検出されるものであってもよいし、オブジェクトを動作させるために使用されるモーションデータに基づいて検出されるものであってもよい。具体的には、描画モード切り替え部１１０は、オブジェクトのモーション処理に使用される骨（スケルトン）の動き情報に基づいて、第１、第２の描画モードの切り替え処理を行う。例えばオブジェクトのスケルトンを構成する複数の骨のうちの特定の骨（例えば手、足、腰の骨等）の動き情報に基づいて、第１、第２の描画モードの切り替え処理を行う。例えば、その特定の骨の動き量が、所定のしきい値以上である場合に、第１の描画モードから第２の描画モードに切り替える。
【００８７】
また、描画モード切り替え部１１０は、オブジェクトが静止状態であると判断される場合又はポーズ処理時に、描画モードを第１の描画モードに切り替えてもよい。例えば、オブジェクトであるキャラクタが止まっていると判断される場合や、ゲーム映像のポーズ処理が行われた場合には、描画モードを第２の描画モードから第１の描画モードに切り替える。ここで、静止状態は、完全に停止している状態である必要はなく、例えばオブジェクトの動き量が所定のしきい値より小さくなる状態である。また、ポーズ処理は、ゲーム中にプレーヤが所定の操作等を行うことで実行されるモードである。
【００８８】
また描画モード切り替え部１１０は、リプレイ画像生成時におけるスロー再生時又はポーズ処理時に、描画モードを第１の描画モードに切り替えてもよい。即ち、前述のようにゲーム後に、リプレイ処理部１１４がリプレイデータ記憶部１７４のリプレイデータに基づいてリプレイ処理を行うことで、リプレイ画像が生成される。そして、生成されたリプレイ画像の表示中に、プレーヤがスロー再生やポーズ処理の指示を行った場合に、描画モードを第２の描画モードから第１の描画モードに切り替える。
【００８９】
なお、第１視点画像は、例えば、二眼式立体視における左眼用画像、右眼側画像の一方の画像であり、第２視点画像は、この一方とは異なる他方の画像である。即ち、第１視点画像を生成する第１視点は、例えば二眼式立体視における左眼側仮想カメラ、右眼側仮想カメラの一方の視点であり、第２視点画像を生成する第２視点は、二眼式立体視における左眼側仮想カメラ、右眼側仮想カメラの他方の視点である。或いは、第１視点、第２視点は、多眼式立体視における視点、又は空間像方式立体視における観者の位置を想定した視点であってもよい。例えば多眼式立体視における視点群のうちの２つの視点、又は空間像方式立体視における設定観察範囲内の任意の２視点であってもよい。
【００９０】
なお仮想カメラ制御部１０８は、例えば第１視点（左眼用仮想カメラ）、第２視点（右眼用仮想カメラ）を設定するための基準となる基準視点（基準仮想カメラ、センターカメラ）の制御を行う。例えば基準視点は第１視点と第２視点の間に位置する視点である。そして、得られた基準視点の位置情報、方向情報と、設定された視点間距離（カメラ間距離）の情報に基づいて、第１視点、第２視点（左眼用、右眼用仮想カメラ）の位置情報（視点位置）、方向情報（視線方向）を求める。なお仮想カメラ制御部１０８が、第１視点、第２視点（左眼用、右眼用仮想カメラ）を直接制御するようにしてもよい。
【００９１】
また立体視方式としては、２眼分離眼鏡方式や、パララックスバリアやレンティキュラーレンズや、その他、光線の方向を制御することができる光学素子を用いた裸眼方式などの様々な方式を想定できる。２眼分離眼鏡方式としては、例えば偏光眼鏡方式、継時分離方式、色分離方式などがある。偏光眼鏡方式では、例えば表示部１９０の奇数ラインと偶数ラインに左眼用画像と右眼用画像を交互に表示し、これを偏光眼鏡（例えば左眼に水平方向の偏光フィルタ、右眼に垂直方向の偏光フィルタを付けた眼鏡）で見ることで立体視を実現する。或いは左眼用画像と右眼用画像を特殊な偏光フィルタを有するプロジェクタで投影し、投影画像を偏光眼鏡で見ることで立体視を実現してもよい。また継時分離方式（ページ・フリップ方式）では、表示部１９０に左眼用画像、右眼用画像を所定期間毎（例えば１／１２０秒毎、１／６０秒毎）に交互に表示する。そして、この表示の切り替えに連動して液晶シャッター付きの眼鏡の左眼、右眼の液晶シャッターを交互に開閉することで、立体視を実現する。色分離方式では、例えばアナグリフ画像を生成し、赤青眼鏡等で見ることで、立体視を実現する。
【００９２】
また左眼用画像と右眼用画像から立体用視画像を生成する機能は、画像生成部１２０に持たせてもよいし、表示部１９０（テレビ等）に持たせてもよい。例えば画像生成部１２０が、サイドバイサイド方式の画像信号を出力する。すると表示部１９０が、このサイドバイサイドの画像信号に基づいて、奇数ラインと偶数ラインに左眼用画像と右眼用画像が交互に割り当てられるフィールドシーケンシャル方式の画像を表示する。或いは、左眼用画像と右眼用画像が所定期間毎に交互に切り替えられるフレームシーケンシャル方式の画像を表示する。或いは画像生成部１２０の方が、フィールドシーケンシャル方式やフレームシーケンシャル方式の画像を生成して、表示部１９０に出力するようにしてもよい。
【００９３】
２．本実施形態の手法
次に本実施形態の手法について具体的に説明する。なお、以下では、立体式方式が二眼式立体視であり、左眼用画像が第１視点画像、右眼用画像が第２視点画像である場合について主に例にとり説明するが、本実施形態の手法はこれに限定されず、多眼式立体視、空間像方式立体等にも適用可能である。
【００９４】
２．１  第１、第２の描画モード
本実施形態では、立体視用画像を生成するための描画モードとして、第１、第２の描画モードを用意している。図２は、この第１、第２の描画モードにより立体視用画像を生成する本実施形態の手法を説明するフローチャートである。
【００９５】
まず、操作部１６０からの操作情報又は画像の動き情報を取得する（ステップＳ１）。そして、取得された操作情報や動き情報に基づいて描画モードの切り替え判定処理を行う（ステップＳ２）。
【００９６】
例えば、操作部１６０からの操作情報に基づいて、プレーヤが操作するキャラクタのモーションが、第１の描画モードが対応づけられた第１のモーション（立ちモーション等）から、第２の描画モードが対応づけられた第２のモーション（走りモーション、手の振りモーション等）に切り替わったと判断した場合には、第１の描画モードから第２の描画モードに切り替える。例えばキャラクタの第１のモーションの再生中に、第２のモーションへの発動条件が満たされると、キャラクタのモーションを第２のモーションに切り替えると共に、描画モードも第２の描画モードに切り替える。モーションの発動条件が満たされたか否かは、例えば、当該モーションを発動するための操作入力が所与の期間内に行われたか否か等を判断することで判定できる。一方、操作部１６０からの操作情報に基づいて、第２のモーションから第１のモーションに切り替わった場合には、第２の描画モードから第１の描画モードに切り替える。
【００９７】
また、画像の動き情報に基づいて、画像に映るキャラクタ等の動きが大きくなった（動きベクトルが大きくなった）と判断された場合には、描画モードを第１の描画モードから第２の描画モードに切り替える。一方、画像に映るキャラクタ等の動きが小さくなったと判断された場合には、描画モードを第２の描画モードから第１の描画モードに切り替える。この場合の画像の動き情報は、表示部１９０に表示されるフレーム画像に対して公知の動き検出処理（動きベクトルの検出処理）を行うことで検出してもよいし、キャラクタのモーションデータの骨（スケルトン）の動きに基づいて検出してもよい。
【００９８】
ステップＳ２の描画モードの切り替え判定処理において、描画モードが第１の描画モードであると判断した場合には（ステップＳ３）、フレーム毎に交互に高解像度の左眼用画像（広義には第１視点画像）、右眼用画像（広義には第２視点画像）を生成する（ステップＳ４）。例えば、あるフレームで左眼用画像を生成した場合には、それに続く次のフレームでは右眼用画像を生成し、その次のフレームでは左眼用画像を生成し、更にその次のフレームでは右眼用画像を生成する。
【００９９】
一方、ステップＳ２の描画モードの切り替え判定処理において、描画モードが第２の描画モードであると判断した場合には（ステップＳ３）、同じフレームで低解像度の左眼用画像と右眼用画像の両方を生成する（ステップＳ５）。例えば、あるフレームで左眼用画像及び右眼用画像の両方を生成し、その次のフレームでも左眼用画像及び右眼用画像の両方を生成し、更にその次のフレームでも左眼用画像及び右眼用画像の両方を生成する。そして、ステップＳ４、Ｓ５で生成された左眼用画像、右眼用画像を立体視用画像として表示する（ステップＳ６）。
【０１００】
図３（Ａ）、図３（Ｂ）は、第１、第２の描画モードを説明するための図である。図３（Ａ）の第１の描画モードでは、フレームＫ（第１のフレーム）において、高解像度の左眼用画像ＬＸ１が生成され、次のフレームＫ＋１（第２のフレーム）において、高解像度の右眼用画像ＲＸ１が生成される。同様に、次のフレームＫ＋２（第３のフレーム）において、高解像度の左眼用画像ＬＸ２が生成され、次のフレームＫ＋３（第４のフレーム）において、高解像度の右眼用画像ＲＸ２が生成される。以降のフレームも同様である。
【０１０１】
このように第１の描画モードでは、フレーム毎に交互に高解像（第１の解像度）の左眼用画像（第１視点画像）と右眼用画像（第２視点画像）が生成される。即ち、第１の描画モードでは、フレームＫ（第Ｋのフレーム）におけるオブジェクトの描画処理により、左眼用画像ＬＸ１（第１視点画像）を生成し、次のフレームＫ＋１（第Ｋ＋１のフレーム）におけるオブジェクトの描画処理により、左眼用画像ＬＸ１に対応する右眼用画像ＲＸ１（第２視点画像）を生成する。これらの対応する左眼用画像ＬＸ１、右眼用画像ＲＸ１により、二眼式の立体視が実現される。
【０１０２】
ここで、第１の描画モードでフレーム毎に交互に生成される画像ＬＸ１、ＲＸ１、ＬＸ２、ＲＸ２の解像度は、例えば１２８０×７２０の画素数の解像度となる。即ち、第１の描画モードでは、高解像度の第１の解像度の左眼用画像、右眼用画像を生成する。
【０１０３】
一方、図３（Ｂ）の第２の描画モードでは、フレームＬ（第１のフレーム）において、低解像度の左眼用画像ＬＹ１、右眼用画像ＲＹ１の両方が生成され、次のフレームＬ＋１（第２のフレーム）において、低解像度の左眼用画像ＬＹ２、右眼用画像ＲＹ２の両方が生成される。同様に、次のフレームＬ＋２（第３のフレーム）において、低解像度の左眼用画像ＬＹ３、右眼用画像ＲＹ３の両方が生成され、更に次のフレームＬ＋３（第４のフレーム）において、低解像度の左眼用画像ＬＹ４、右眼用画像ＲＹ４の両方が生成される。以降のフレームの同様である。
【０１０４】
このように第２の描画モードでは、同じフレームにおいて低解像度（第２の解像度）の左眼用画像（第１視点画像）、右眼用画像（第２視点画像）の両方が生成される。即ち、第２の描画モードでは、同じフレームＬ（第Ｌのフレーム）におけるオブジェクトの描画処理により、左眼用画像、右眼用画像の両方を生成する。
【０１０５】
ここで、第２の描画モードにおいて同じフレームで生成される画像ＬＹ１、ＲＹ１、ＬＹ２、ＲＹ２等の解像度は、例えば７２０×５７６の画素数の解像度となっており、第１の描画モードでの１２８０×７２０の画素数の解像度よりも低い解像度となっている。即ち、第２の描画モードでは、第１の解像度（１２８０×７２０）よりも低解像度の第２の解像度（７２０×５７６）の左眼用画像、右眼用画像を生成する。なお、第１、第２の描画モードの解像度は、このような画素数（１２８０×７２０、７２０×５７６）の解像度に限定されるものではなく、種々の変形実施が可能である。
【０１０６】
図４は、第２の描画モードから第１の描画モードに切り替わる際の画像生成手法を示す図である。
【０１０７】
図４では、フレームＭ（第Ｍのフレーム）において、第２の描画モードから第１の描画モードに切り替わっている。後述するモーション切り替えにより描画モードの切り替わりの場合には、フレームＭにおいて、走りモーションや手の振りモーションから、立ちモーション（基本姿勢モーション）に切り替わっている。
【０１０８】
このようにフレームＭにおいて、第２の描画モードから第１の描画モードに切り替わった場合には、フレームＭが第１の描画モードであっても、オブジェクトの描画処理により、高解像度の左眼用画像、右眼用画像（第１視点画像、第２視点画像）の両方を同時に生成する。
【０１０９】
例えば図４では、フレームＭ−１は第２の描画モードに設定されているため、フレームＭ−１では、低解像度の左眼用画像ＬＹ１０、右眼用画像ＲＹ１０の両方が生成されている。前のフレームＭ−２においても同様である。
【０１１０】
そして、フレームＭにおいて、第２の描画モードから第１の描画モードに切り替わった場合には、フレームＭは第１の描画モードに設定されているため、原則は、フレーム毎に交互に高解像度の左眼用画像、右眼用画像を生成すべきである。
【０１１１】
しかしながら、このようにフレームＭにおいて直ぐに第１の描画モードの画像生成処理を行うと、不自然な画像が生成されてしまうおそれがある。具体的には、フレームＭで生成される高解像度の左眼用画像と対となる右眼用画像を、例えば第２の描画モードで生成された低解像度の右眼用画像から、画素補間処理等により生成しなければならなくなる。そして、このように、高解像度の左眼用画像と、低解像度の右眼用画像から画素補間処理等により生成した右眼用画像とが混在した立体視表示が行われると、不自然な立体視表示になってしまうおそれがある。
【０１１２】
そこで本実施形態では、図４に示すように、第２の描画モードから第１の描画モードに切り替わった際のフレームＭでは、第１の描画モードであっても、高解像度の左眼用画像ＬＸ１、右眼用画像ＲＸ１の両方を生成する。これにより、高解像度の左眼用画像と、低解像度の右眼用画像から画素補間処理等により生成した右眼用画像とが混在して不自然な立体視表示が行われてしまう事態を防止できる。
【０１１３】
そして、このように、フレームＭにおいて、高解像度の左眼用画像ＬＸ１、右眼用画像ＲＸ１の両方を生成すると、描画処理が間に合わなくなってフレーム落ちしてしまうおそれがある。即ち、１フレームの時間内に、左眼用画像ＬＸ１、右眼用画像ＲＸ１の両方の描画処理を完了できないおそれがある。しかしながら、第１の描画モードは、元々、キャラクタの動き（画像の動き）が少ない時に適用される描画モードであるため、このようなフレーム落ちが生じても、それほど目立つことがない。また、１フレームだけのフレーム落ちでは、プレーヤに気づかれるおそれも少ない。このため本実施形態では、上述のような不自然な立体視を防止することを優先して、図４の画像生成手法を採用している。そして、以降のフレームＭ＋１、Ｍ＋２（フレーム落ち発生の場合のフレームＭ＋２、Ｍ＋３）では、通常の第１の描画モードにより、フレーム毎に交互に高解像度の左眼用画像、右眼用画像を生成するようにする。
【０１１４】
図５（Ａ）、図５（Ｂ）は、第１の描画モード時に本実施形態により生成されるゲーム画像の例である。図５（Ａ）、図５（Ｂ）は、キャラクタＣＨが、立ちモーションを行っている場合のゲーム画像の例である。ここで、ＬＸは左眼用画像であり、ＲＸは右眼用画像であり、両画像間には立体視表示のための視差が設定されている。また、第１の描画モードであるため、左眼用画像ＬＸ、右眼用画像ＲＸは高解像度の画像になっている。
【０１１５】
図５（Ａ）、図５（Ｂ）の立ちモーションは、格闘技ゲーム等において、キャラクタＣＨの基本姿勢となるモーションである。キャラクタＣＨは、基本姿勢である立ちモーションから次のモーションを開始し、開始したモーションが終了すると、基本姿勢である立ちモーションに戻る。
【０１１６】
この立ちモーションでは、キャラクタＣＨの体は微妙に動いているが、その動きは小さく、静止状態であると見なすことができる。従って、この場合には、画像のチラツキ防止よりも、画像の解像度の方を優先して、図３（Ａ）で説明したように、高解像度の左眼用画像ＬＸ、右眼用画像ＲＸをフレーム毎に交互に生成するようにする。
【０１１７】
このようにすれば、プレーヤは、図５（Ａ）、図５（Ｂ）のような立ちモーションのキャラクタＣＨを、解像度の高い画像で見ることができ、細部が高精度に描かれた画像を見ながらゲームプレイできるようになる。これによりプレーヤの仮想現実感等を向上できる。また、例えばキャラクタの鑑賞モード（ビューアーモード）に本実施形態の手法を適用した場合には、プレーヤは、細部が高精細に描かれたキャラクタＣＨを鑑賞できるようになり、鑑賞モードの画像の品質を向上できる。
【０１１８】
図６（Ａ）、図６（Ｂ）、図７（Ａ）、図７（Ｂ）は、第２の描画モード時に本実施形態により生成されるゲーム画像の例である。図６（Ａ）、図６（Ｂ）は、キャラクタＣＨが、走りモーションを行っている場合のゲーム画像の例であり、図７（Ａ）、図７（Ｂ）は、キャラクタＣＨが、手の振りモーションを行っている場合のゲーム画像の例である。ここで、ＬＹは左眼用画像であり、ＲＹは右眼用画像であり、両画像間には立体視表示のための視差が設定されている。また、第２の描画モードであるため、左眼用画像ＬＹ、右眼用画像ＲＹは低解像度の画像になっている。
【０１１９】
図６（Ａ）、図６（Ｂ）の走りモーションや、図７（Ａ）、図７（Ｂ）の手の振りモーションは、図５（Ａ）、図５（Ｂ）の立ちモーションから動くモーションであり、プレーヤが走りや手の振りに相当する操作情報を入力すると、立ちモーションから、これらの走りモーション、手の振りモーションが行われるようになる。そして、これらの走りモーションや手の振りモーションが終了すると、例えば基本姿勢である立ちモーションに戻る。
【０１２０】
そして、これらの走りモーション、手の振りモーションでは、図５（Ａ）、図５（Ｂ）の立ちモーションに比べて、キャラクタＣＨの体の全部又は一部の動き（仮想カメラに対する相対的な動き）が大きくなっている。従って、この場合には、画像の解像度よりも、画像のチラツキ防止の方を優先して、図３（Ｂ）で説明したように、低解像度の左眼用画像ＬＹ、右眼用画像ＲＹを同じフレームで同時に生成するようにする。
【０１２１】
このようにすれば、プレーヤは、図６（Ａ）〜図７（Ｂ）のようにキャラクタＣＨの体の全部又は一部が大きく動いた場合にも、チラツキの少ない画像を見ながらゲームプレイできるようになる。また、鑑賞モードにおいて、プレーヤの操作指示によりキャラクタＣＨに走りモーションや手の振りモーションを行わせた場合にも、プレーヤは、チラツキの少ない画像でキャラクタＣＨを鑑賞できるようになる。
【０１２２】
以上の本実施形態の手法によれば、第１の描画モードでは左眼用画像、右眼用画像を交互に生成し、第２の描画モードでは左眼用画像、右眼用画像を同じフレームで生成しているため、各状況に応じた適切な画質の立体視用画像の生成が可能になる。
【０１２３】
例えば図５（Ａ）、図５（Ｂ）のように高画質の画像が要求される状況では、第１の描画モードに設定してキャラクタ等のオブジェクトを描画して、フレーム毎に交互に高解像度の左眼用画像、右眼用画像を生成する。こうすることで、図５（Ａ）、図５（Ｂ）のようにキャラクタが静止状態であり、画像のチラツキが少ないと考えられる状況では、高解像度の左眼用画像、右眼用画像を生成することで、当該状況に応じた適切な画質の立体視用画像を生成できるようになる。
【０１２４】
一方、図６（Ａ）〜図７（Ｂ）のように画像のチラツキの抑制が要求される状況では、第２の描画モードに設定してキャラクタ等のオブジェクトを描画して、同じフレームで低解像度の左眼用画像、右眼用画像の両方を生成する。こうすることで、図６（Ａ）〜図７（Ｂ）のようにキャラクタの動きが大きく、画像のチラツキが生じ易いと考えられる状況では、低解像度の左眼用画像、右眼用画像を同じフレームで生成することで、当該状況に応じた適切な画質の立体視用画像を生成できるようになる。
【０１２５】
２．２  画像生成手法の詳細例
次に、本実施形態の画像生成手法の詳細例について説明する。図８（Ａ）、図８（Ｂ）は、第１の描画モードでの画像生成手法の詳細例を示す図であり、図９（Ａ）、図９（Ｂ）は、第２の描画モードでの画像生成手法の詳細例を示す図である。
図８（Ａ）〜図９（Ｂ）では、画像が書き込まれる描画バッファ１７６が、第１のバッファＢＦ１、第２のバッファＢＦ２、第３のバッファＢＦ３（第１、第２、第３の描画領域）を有する。
【０１２６】
第１、第２のバッファＢＦ１、ＢＦ２（図１の１７７、１７８）は、いわゆるダブルバッファ構成となっている。即ち、第１のバッファＢＦ１が書き込み用バッファに設定される場合に、第２のバッファＢＦ２は表示用バッファに設定される。一方、第１のバッファＢＦ１が表示用バッファに設定される場合に、第２のバッファＢＦ２は書き込み用バッファに設定される。これらの第１、第２のバッファＢＦ１、ＢＦ２は、フレームバッファとなるＶＲＡＭに確保される領域である。そして図１の表示部１９０には、表示用バッファに設定された方のバッファの画像が表示される。
【０１２７】
第３のバッファＢＦ３（図１の１７９）は、オブジェクトの描画処理が行われるバッファである。即ち画像生成部１２０は、この第３のバッファＢＦ３に対してオブジェクトの描画処理を行って、左眼用画像、右眼用画像を生成する。
【０１２８】
そして第１、第２、第３のバッファＢＦ１、ＢＦ２、ＢＦ３の各々は、左眼用領域（広義には第１視点用領域）と右眼用領域（広義には第２視点用領域）を有する。例えば図８（Ａ）の第１のバッファＢＦ１の領域ＡＬ１、ＡＲ１が、各々、ＢＦ１の左眼用領域、右眼用領域であり、第２のバッファＢＦ２の領域ＡＬ２、ＡＲ２が、各々、ＢＦ２の左眼用領域、右眼用領域である。また第３のバッファＢＦ３の領域ＡＬ３、ＡＲ３が、各々、ＢＦ３の左眼用領域、右眼用領域である。これらの各領域は、各バッファの記憶領域として確保される領域である。
【０１２９】
図８（Ａ）では、第１、第２のバッファＢＦ１、ＢＦ２のうちの一方のバッファであるＢＦ１が書き込み用バッファに設定され、他方のバッファであるＢＦ２が表示用バッファに設定されている。
【０１３０】
そして図８（Ａ）に示すように、第１の描画モードでは、フレームＫにおいてオブジェクトＯＢが第３のバッファＢＦ３の左眼用領域ＡＬ３に描画されて、左眼用画像が生成される。そして、この左眼用画像が、書き込み用バッファに設定された第１のバッファＢＦ１の左眼用領域ＡＬ１にコピーされて書き込まれる。
【０１３１】
一方、前のフレームＫ−１で生成されて第３のバッファＢＦ３の右眼用領域ＡＲ３に書き込まれた右眼用画像が、書き込み用バッファに設定された第１のバッファＢＦ１の右眼用領域ＡＲ１にコピーされて書き込まれる。
【０１３２】
このようにすることで、フレームＫでの高解像度（１２８０×７２０）の左眼用画像、右眼用画像が、書き込み用バッファに設定された第１のバッファＢＦ１の左眼用領域ＡＬ１、右眼用領域ＡＲ１に書き込まれるようになる。
【０１３３】
次のフレームでは、図８（Ｂ）に示すように、一方のバッファＢＦ１と異なる他方のバッファであるＢＦ２が、書き込み用バッファに設定されている。即ち図８（Ａ）と図８（Ｂ）とでは、書き込み用バッファと表示用バッファがお互いに入れ替わっている。
【０１３４】
そして図８（Ｂ）に示すように、第１の描画モードでは、フレームＫ＋１において、オブジェクトＯＢが第３のバッファＢＦ３の右眼用領域ＡＲ３に描画されて、右眼用画像が生成される。そして、この右眼用画像が、書き込み用バッファに設定された第２のバッファＢＦ２の右眼用領域ＡＲ２にコピーされて書き込まれる。
【０１３５】
一方、前のフレームＫで生成されて第３のバッファＢＦ３の左眼用領域ＡＬ３に書き込まれた左眼用画像が、書き込み用バッファに設定された第２のバッファＢＦ２の左眼用領域ＡＬ２にコピーされて書き込まれる。
【０１３６】
このようにすることで、フレームＫ＋１での高解像度の左眼用画像、右眼用画像が、書き込み用バッファに設定された第２のバッファＢＦ２の左眼用領域ＡＬ２、右眼用領域ＡＲ２に書き込まれるようになる。
【０１３７】
以上のように本実施形態では、第１の描画モードでは、フレームＫで生成されて第３のバッファＢＦ３の左眼用領域ＡＬ３（第１視点用領域）に書き込まれた左眼用画像（第１視点画像）を、ＢＦ１、ＢＦ２のうち書き込み用バッファに設定された一方のバッファＢＦ１の左眼用領域ＡＬ１（第１視点用領域）に対して書き込む。また、前のフレームＫ−１で生成されて第３のバッファＢＦ３の右眼用領域ＡＲ３（第２視点用領域）に書き込まれた右眼用画像（第２視点画像）を、一方のバッファＢＦ１の右眼用領域ＡＲ１（第２視点用領域）に対して書き込む。
【０１３８】
また図８（Ｂ）に示すように、一方とは異なる他方のバッファＢＦ２が書き込み用バッファに設定された場合には、フレームＫで生成されて第３のバッファＢＦ３の左眼用領域ＡＬ３（第１視点用領域）に書き込まれた左眼用画像（第１視点画像）を、他方のバッファＢＦ２の左眼用領域ＡＬ２（第１視点用領域）に対して書き込む。また、フレームＫ＋１で生成されて第３のバッファＢＦ３の右眼用領域ＡＲ３（第２視点用領域）に書き込まれた右眼用画像（第２視点画像）を、他方のバッファＢＦ２の右眼用領域ＡＲ２（第２視点用領域）に対して書き込む。
【０１３９】
このようにすることで、ダブルバッファ構成の第１、第２のバッファＢＦ１、ＢＦ２を用いる場合に、フレーム毎に交互に左眼用画像、右眼用画像を生成して、生成された左眼用画像、右眼用画像を、ＢＦ１、ＢＦ２のうちの書き込み用バッファに設定されたバッファに対して、適切に書き込むことが可能になる。従って、第１の描画モードの画像生成手法と、第１、第２のバッファＢＦ１、ＢＦ２によるダブルバッファ動作とを両立して実現できるようになる。
【０１４０】
図９（Ａ）、図９（Ｂ）は、第２の描画モードの画像生成手法の詳細を説明する図である。図９（Ａ）では、ＢＦ１、ＢＦ２のうちの一方のバッファＢＦ１が書き込み用バッファに設定され、他方のバッファＢＦ２が表示用バッファに設定されている。
【０１４１】
そして図９（Ａ）に示すように、第２の描画モードでは、フレームＬにおいて、オブジェクトＯＢが第３のバッファＢＦ３の左眼用領域ＡＬ３に描画されて、左眼用画像が生成される。そして、この左眼用画像が、書き込み用バッファに設定された第１のバッファＢＦ１の左眼用領域ＡＬ１にコピーされて書き込まれる。
【０１４２】
また、同じフレームＬにおいて、オブジェクトＯＢが第３のバッファＢＦ３の右眼用領域ＡＲ３に描画されて、右眼用画像が生成される。そして、この右眼用画像が、書き込み用バッファに設定された第１のバッファＢＦ１の右眼用領域ＡＲ１にコピーされて書き込まれる。
【０１４３】
このようにすることで、フレームＬでの低解像度（７２０×５７６）の左眼用画像、右眼用画像が、書き込み用バッファに設定された第１のバッファＢＦ１の左眼用領域ＡＬ１、右眼用領域ＡＲ１に書き込まれるようになる。
【０１４４】
次のフレームでは、図９（Ｂ）に示すように、一方のバッファＢＦ１と異なる他方のバッファＢＦ２が、書き込み用バッファに設定されている。
【０１４５】
そして図９（Ｂ）に示すように、第２の描画モードでは、フレームＬ＋１において、オブジェクトＯＢが第３のバッファＢＦ３の左眼用領域ＡＬ３に描画されて、左眼用画像が生成される。そして、この左眼用画像が、書き込み用バッファに設定された第２のバッファＢＦ２の左眼用領域ＡＬ２にコピーされて書き込まれる。
【０１４６】
また、同じフレームＬ＋１において、オブジェクトＯＢが第３のバッファＢＦ３の右眼用領域ＡＲ３に描画されて、右眼用画像が生成される。そして、この右眼用画像が、書き込み用バッファに設定された第２のバッファＢＦ２の右眼用領域ＡＲ２にコピーされて書き込まれる。
【０１４７】
このようにすることで、フレームＬ＋１での低解像度の左眼用画像、右眼用画像が、書き込み用バッファに設定された第２のバッファＢＦ２の左眼用領域ＡＬ２、右眼用領域ＡＲ２に書き込まれるようになる。
【０１４８】
以上のように本実施形態では、図９（Ａ）に示すように、第２の描画モードでは、フレームＬで生成されて第３のバッファＢＦ３の左眼用領域ＡＬ３（第１視点用領域）に書き込まれた左眼用画像（第１視点画像）を、ＢＦ１、ＢＦ２のうち書き込み用バッファに設定された一方のバッファＢＦ１の左眼用領域ＡＬ１（第１視点用領域）に対して書き込む。また、フレームＬで生成されて第３のバッファＢＦ３の右眼用領域ＡＲ３（第２視点用領域）に書き込まれた右眼用画像（第２視点画像）を、一方のバッファＢＦ１の右眼用領域ＡＲ１（第２視点用領域）に対して書き込む。
【０１４９】
そして、図９（Ｂ）に示すように、一方とは異なる他方のバッファＢＦ２が書き込み用バッファに設定された場合にも、図９（Ａ）と同様に、フレームＬ＋１で生成されて第３のバッファＢＦ３の左眼用領域ＡＬ３に書き込まれた左眼用画像を、書き込み用バッファに設定された他方のバッファＢＦ２の左眼用領域ＡＬ２に対して書き込む。また、フレームＬ＋１で生成されて第３のバッファＢＦ３の右眼用領域ＡＲ３に書き込まれた右眼用画像を、他方のバッファＢＦ２の右眼用領域ＡＲ２に対して書き込む。
【０１５０】
このようにすることで、ダブルバッファ構成の第１、第２のバッファＢＦ１、ＢＦ２を用いる場合に、同じフレームで左眼用画像、右眼用画像を生成して、生成された左眼用画像、右眼用画像を、ＢＦ１、ＢＦ２のうちの書き込み用バッファに設定されたバッファに対して、適切に書き込むことが可能になる。従って、第２の描画モードの画像生成手法と、第１、第２のバッファＢＦ１、ＢＦ２によるダブルバッファ動作とを両立して実現できるようになる。
【０１５１】
更に本実施形態では図９（Ａ）、図９（Ｂ）に示すように、第２の描画モードでは、低解像度の左眼用画像、右眼用画像（第１視点画像、第２視点画像）の画素数を増やすための画素補間処理を行い、画素補間処理後の左眼用画像、右眼用画像を、ＢＦ１、ＢＦ２のうち書き込み用バッファに設定されたバッファに対して書き込んでいる。
【０１５２】
即ち、図９（Ａ）では、第３のバッファＢＦ３に生成される左眼用画像、右眼用画像は、低解像度（７２０×５７６）の画像になっており、第１、第２のバッファＢＦ１、ＢＦ２の各領域の画素数と一致していない。
【０１５３】
そこで図９（Ａ）では、第３のバッファＢＦ３の低解像度の左眼用画像、右眼用画像の画素補間処理を行っている。例えば７２０×５７６の画素数から１２８０×７２０の画素数に増やす画素補間処理を行って、画素補間処理後の左眼用画像、右眼用画像を、第１のバッファＢＦ１の左眼用領域ＡＬ１、右眼用領域ＡＲ１に書き込んでいる。次のフレームＬ＋１においても、図９（Ｂ）に示すように同様の画素補間処理を行っている。
【０１５４】
このようにすれば、例えば第１の描画モード用に、第１、第２のバッファＢＦ１、ＢＦ２の左眼用領域、右眼用領域の画素数が、高解像度の１２８０×７２０になっており、第２の描画モードで生成される左眼用画像、右眼用画像の画素数が、低解像度の７２０×５７６である場合にも、これに適正に対応できるようになる。従って、第１、第２のバッファＢＦ１、ＢＦ２のダブルバッファ動作と、第１、第２の描画モードを切り替えながら行う本実施形態の画像生成手法とを、両立して実現することが可能になる。
【０１５５】
図１０（Ａ）、図１０（Ｂ）は、図４で説明した第２の描画モードから第１の描画モードに切り替わる際の画像生成手法の詳細例を示す図である。
【０１５６】
図１０（Ａ）、図１０（Ｂ）では、フレームＭ−１では、描画モードが第２の描画モードに設定されており、フレームＭにおいて第２の描画モードから第１の描画モードに切り替わっている。
【０１５７】
そして図１０（Ａ）のフレームＭ−１では、第２の描画モードであるため、図９（Ａ）、図９（Ｂ）と同様の手法で第２の描画モードの画像生成処理が行われる。即ち、オブジェクトＯＢが第３のバッファＢＦ３の左眼用領域ＡＬ３、右眼用領域ＡＲ３に書き込まれて、左眼用画像、右眼用画像が生成される。そして、これらの左眼用画像、右眼用画像の画素補間処理が行われ、画素補間処理後の左眼用画像、右眼用画像が、書き込み用バッファに設定された第１のバッファＢＦ１の左眼用領域ＡＬ１、右眼用領域ＡＲ１にコピーして書き込まれる。
【０１５８】
次に図１０（Ｂ）に示すようにフレームＭになって、第２の描画モードから第１の描画モードに切り替わると、第１の描画モードであっても、図８（Ａ）、図８（Ｂ）とは異なる手法で画像生成処理が行われる。即ち、オブジェクトＯＢが第３のバッファＢＦ３の左眼用領域ＡＬ３、右眼用領域ＡＲ３の両方に書き込まれて、左眼用画像、右眼用画像の両方が生成される。つまり、第１の描画モードでは左眼用画像、右眼用画像をフレーム毎に交互に生成するのが原則であるが、図１０（Ｂ）では、第１の描画モードであっても左眼用画像、右眼用画像の両方を生成する。そして、生成された左眼用画像、右眼用画像を、書き込み用バッファに設定された第２のバッファＢＦ２の左眼用領域ＡＬ２、右眼用領域ＡＲ２にコピーして書き込む。
【０１５９】
このようにすることで、第２の描画モードから第１の描画モードに切り替わった場合にも、適正な左眼用画像、右眼用画像を、ＢＦ１、ＢＦ２のうちの書き込み用バッファに設定されたバッファに対して適切に書き込むことが可能になる。
【０１６０】
例えば本実施形態の比較例の手法として、図１０（Ｂ）のフレームＭにおいて、第３のバッファＢＦ３の左眼用領域ＡＬ３へのオブジェクトＯＢの描画により、左眼用画像だけを生成して、第２のバッファＢＦ２の左眼用領域ＡＬ２に書き込む手法が考えられる。この比較例の手法では、右眼用画像については、図１０（Ａ）の右眼用領域ＡＲ３の低解像度（７２０×５７６）の右眼用画像に対して画素補間処理を行い、画素補間処理後の画像を、図１０（Ｂ）において、第２のバッファＢＦ２の右眼用領域ＡＲ２に書き込む。
【０１６１】
しかしながら、この比較例の手法では、高解像度の左眼用画像と、低解像度の右眼用画像を画素補間処理することで生成された右眼用画像とが混在して、立体視表示が行われてしまう。従って、プレーヤにとって不自然に見える画像が生成されるおそれがある。
【０１６２】
この点、本実施形態では、図１０（Ｂ）に示すように、第１の描画モードに切り替わったフレームＭにおいて、第２のバッファＢＦ２の左眼用領域ＡＬ２、右眼用領域ＡＲ２には、同じ高解像度（１２８０×７２０）の左眼用画像、右眼用画像が書き込まれるようになる。従って、上述のように、高解像度の左眼用画像と、低解像度の右眼用画像を画素補間処理した右眼用画像とが混在するような立体視表示を防止でき、プレーヤにとってより自然に見える立体視用画像を生成できるようになる。
【０１６３】
２．３  第１、第２の描画モードの切り替え手法
次に、第１、第２の描画モードの切り替え手法の詳細について説明する。第１、第２の描画モードの切り替え手法としては、操作部１６０の操作情報に基づいて切り替える手法や、画像の動き情報に基づいて切り替える手法などを想定できる。
【０１６４】
例えば図１１（Ａ）では、図５（Ａ）、図５（Ｂ）で説明した立ちモーション（基本姿勢モーション）に対しては、描画モードフラグＦＬ１が１にセットされ、描画モードフラグＦＬ２が０にセットされる。一方、図６（Ａ）〜図７（Ｂ）で説明した走りモーションや手の振りモーションに対しては、描画モードフラグＦＬ１が０にセットされ、描画モードフラグＦＬ２が１にセットされる。
【０１６５】
ここで描画モードフラグＦＬ１は第１の描画モードを指示するフラグであり、描画モードフラグＦＬ２は第２の描画モードを指示するフラグである。これらのフラグＦＬ１、ＦＬ２は、例えばキャラクタのモーション処理に使用される各モーションデータに対応づけてモーションデータ記憶部１７３に記憶される。
【０１６６】
そして、図５（Ａ）、図５（Ｂ）の立ちモーションの再生時においては、立ちモーションのモーションデータに関連づけられた描画モードフラグＦＬ１が１にセットされているため、図３（Ａ）の第１の描画モードで画像生成処理が行われるようになる。一方、図６（Ａ）〜図７（Ｂ）の走りモーションや手の振りモーションの再生時においては、走りモーションや手の振りモーションのモーションデータに関連づけられた描画モードフラグＦＬ２が１にセットされているため、図３（Ｂ）の第２の描画モードで画像生成処理が行われるようになる。
【０１６７】
このようにすれば、操作部１６０からの操作情報に基づいて、オブジェクトのモーションが、第１の描画モードに対応する第１のモーション（立ちモーション）から、第２の描画モードに対応する第２のモーション（走りモーション、手の振りモーション）に切り替わったと判断した場合に、第１の描画モードから第２の描画モードに描画モードを切り替えることが可能になる。第２の描画モードから第１の描画モードへの切り替えも同様である。
【０１６８】
なお、図１１（Ａ）では、上述の第１のモーションが、キャラクタの立ちモーションであり、第２のモーションが、キャラクタが立ちモーションから動くモーションである走りモーションや手の振りモーションである場合について例示しているが、本実施形態はこれに限定されるものではない。例えば第１、第２のモーションは図１１（Ａ）に例示されるものに限定されず、種々の変形実施が可能である。
【０１６９】
また、画像の動き情報に基づいて、第１、第２の描画モードの切り替え処理を行う場合には、公知の動き情報検出処理を用いて、画像の動き情報を検出すればよい。例えば図１１（Ｂ）では、画像（フレーム画像）をブロック分割し、各ブロックでの動きベクトルを検出することで、画像の動き情報を検出する。そして、動き情報で表される画像の動きが、所与のしきい値よりも小さく、動きが小さいと判断された場合には、描画モードを第１の描画モードに設定する。一方、動き情報で表される画像の動きが、所与のしきい値以上であり、動きが大きいと判断された場合には、描画モードを第２の描画モードに切り替える。
【０１７０】
このようにすれば、画像の動きが小さい場合には、フレーム毎に交互に高解像度の左眼用画像、右眼用画像を生成して、高解像度の立体視用画像を表示し、画像の動きが大きい場合には、低解像度の左眼用画像、右眼用画像を同じフレームで生成して、画像のチラツキの少ない立体視用画像を表示することが可能になる。
【０１７１】
また、画像の動き情報は、図１１（Ｂ）のように画像自体の動き情報を検出する手法には限定されず、例えばオブジェクトの動き情報に基づいて、第１、第２の描画モードの切り替え処理を行ってもよい。即ち、オブジェクトのモデルとしての動きを検出して、第１、第２の描画モードの切り替え処理を行う。具体的には、オブジェクトのモーション処理に使用される骨の動き情報に基づいて、第１、第２の描画モードの切り替え処理を行う。
【０１７２】
例えば図１２に、キャラクタ等を表すモデルオブジェクトＭＯＢのスケルトンの情報であるモーションデータの例を示す。図１２に示すように、モデルオブジェクトＭＯＢは、複数のパーツオブジェクトＰＢ０〜ＰＢ１５により構成される。そして、これらのパーツオブジェクト（部位）の位置や回転角度（方向）は、モデルオブジェクトＭＯＢのスケルトンモデルを構成する骨Ｂ０〜Ｂ１９の位置（関節Ｊ０〜Ｊ１５の位置）や回転角度（親の骨に対する子の骨の相対的な回転角度）により特定される。なお、これらの骨、関節は仮想的なものであり、現実に表示されるオブジェクトではない。
【０１７３】
モデルオブジェクトＭＯＢのスケルトンを構成する骨（モーション骨、関節、パーツオブジェクト）は、親子（階層）構造を有している。例えば、手の骨Ｂ７、Ｂ１１の親は前腕の骨Ｂ６、Ｂ１０になり、Ｂ６、Ｂ１０の親は上腕の骨Ｂ５、Ｂ９になり、Ｂ５、Ｂ９の親は肩の骨Ｂ４、Ｂ８になる。足、脛（すね）、大腿、腰、胸、頭の骨も同様である。
【０１７４】
図１のモーションデータ記憶部１７３には、これらの骨（パーツオブジェクト、関節）の位置、回転角度が、モーションデータとして記憶されている。なお骨の回転角度だけをモーションデータに含ませて、骨（アーク）の位置（関節の位置）についてはモデルオブジェクトのモデルデータの中に含ませてもよい。
【０１７５】
例えば、歩きモーションが、Ｍ０、Ｍ１、Ｍ２・・・・ＭＮという基準モーション（各フレームでのモーション）により構成されているとする。するとこれらの各基準モーションＭ０、Ｍ１、Ｍ２・・・・ＭＮでの各骨の位置又は回転角度が、モーションデータとして予め記憶されている。そして、例えば基準モーションＭ０の各骨（各パーツオブジェクト）の位置、回転角度を読み出し、次に基準モーションＭ１の各骨の位置、回転角度を読み出すというように、基準モーションのモーションデータを時間経過に伴い順次読み出すことで、モーション処理（モーション再生）が実現される。
【０１７６】
なお、モーションデータ記憶部１７３に記憶するモーションデータは、一般的には、モーションキャプチャにより取得したり、デザイナが作成する。またモーションデータは、親の骨の位置、回転角度に対する子の骨の相対的な位置、相対的な回転角度（３軸周りの回転角度）で表される。具体的には、親の骨に対する子の骨のＸ軸、Ｙ軸、Ｚ軸回りの回転角度（相対的な回転角度）が、モーションデータとして記憶される。なお親の骨に対する子の骨の相対的な位置（相対距離）は、例えばモデルオブジェクト（キャラクタ）のモデルデータに含ませてもよい。
【０１７７】
本実施形態では、図１２のようなスケルトンを構成する骨の動き情報に基づいて、第１、第２の描画モードの切り替え処理を行ってもよい。具体的には、例えば図１３のＡ１、Ａ２、Ａ３に示すように、腰の骨Ｂ０の動き情報や、手の骨Ｂ７、Ｂ１１の動き情報を検出する。即ち、これらの骨Ｂ０、Ｂ７、Ｂ１１の位置や回転角度等をモニターして、これらの骨Ｂ０、Ｂ７、Ｂ１１の動き情報を検出する。そして、骨の動きが大きくなったことが検出された場合には、描画モードを第１の描画モードから第２の描画モードに切り替える。例えば図６（Ａ）、図６（Ｂ）では、キャラクタＣＨが走ることで、腰の骨Ｂ０が大きく動くことが検出され、図７（Ａ）、図７（Ｂ）では、キャラクタＣＨが手を振ることで、手の骨Ｂ７、Ｂ１１が大きく動くことが検出される。従って、これらの場合には、第１の描画モードから第２の描画モードに切り替えて、同じフレームで左眼用画像、右眼用画像の両方を生成して、画像のチラツキの発生等を抑制する。
【０１７８】
このように骨の動き情報に基づいて描画モードを切り替える手法によれば、キャラクタの様々な動きを自動的に検出して、第１、第２の描画モードの切り替え処理を行うことが可能になる。また、仮想カメラが動いて、画像上のキャラクタが相対的に動いた場合にも、第１の描画モードから第２の描画モードに切り替えることが可能になり、様々な状況に対応できるようになる。そして、骨の動き情報を用いる手法は、図１１（Ｂ）のようにブロック分割して動き情報を検出する手法に比べて、処理負荷を軽くできるという利点がある。従って、少ない処理負荷で、様々な状況に対応した第１、第２の描画モードの切り替え処理を実現できるようになる。
【０１７９】
なお、第１、第２の描画モードの切り替え手法は、上述した手法に限定されず、種々の変形実施が可能である。例えば仮想カメラの動きを検出して、第１、第２の描画モードの切り替え処理を行ってもよい。
【０１８０】
或いは、オブジェクトが静止状態であると判断される場合や、ポーズ処理時に、描画モードを第１の描画モードに切り替えるようにしてもよい。例えば図１４（Ａ）では、キャラクタＣＨの手の振りモーションの再生時に、プレーヤの指示によりポーズ処理が行われている。例えば、鑑賞モード時に、プレーヤが操作部１６０を用いて所定の操作を行うことで、表示画像のポーズ処理が行われて、手を振っていたキャラクタＣＨが静止状態になる。
【０１８１】
そして、このようにキャラクタＣＨが、手の振りモーションからポーズ指示により静止状態になった場合に、図３（Ｂ）のように低解像度の左眼用画像、右眼用画像が生成される第２の描画モードのままになっていると、表示画像が低解像度であることがプレーヤに認識されてしまう。また、ポーズ処理等により静止状態になっている場合には、画像中の動きもないため、画像のチラツキも目立たない。
【０１８２】
そこで、このように、キャラクタ等のオブジェクトが静止状態であると判断される場合や、ポーズ処理時には、描画モードを第１の描画モードに切り替える。そして、高解像度の左眼用画像、右眼用画像を、フレーム毎に交互に生成するようにする。このようにすれば、静止状態時やポーズ処理時に高解像度の表示画像が生成されるようになり、各状況に応じた適切な画質の画像を表示できるようになる。
【０１８３】
図１４（Ｂ）は、リプレイ時に生成される画像の例である。本実施形態では、このようなリプレイ画像生成時におけるスロー再生時やポーズ処理時に、描画モードを第１の描画モードに切り替えてもよい。例えばリプレイ時に、図１４（Ｂ）に示すような操作パネルオブジェクト９０が表示され、プレーヤが、この操作パネルオブジェクトによりスロー再生やポーズを指示すると、描画モードが第１の描画モードに切り替わる。そして、高解像度の左眼用画像、右眼用画像がフレーム毎に交互に生成されるリプレイ画像を表示するようにする。
【０１８４】
このようにすることで、プレーヤがリプレイ時に、ゲーム中でのキャラクタの動き等を鑑賞する場合に、高解像度で高精細に描かれたキャラクタの静止画像を鑑賞できるようになり、リプレイモードでの画像の品質の向上等を図れるようになる。
【０１８５】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（第１視点画像、第２視点画像、第１視点用領域、第２視点用領域等）と共に記載された用語（左眼用画像、右眼用画像、左眼用領域、右眼用領域等）は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、第１の描画モードでの画像生成処理、第２の描画モードでの画像生成処理、第１、第２の描画モードの切り替え処理等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、サーバシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【符号の説明】
【０１８６】
１００  処理部、１０２  ゲーム演算部、１０４  オブジェクト空間設定部、
１０６  移動体演算部、１０７  モーション処理部、１０８  仮想カメラ制御部、
１１０  描画モード切り替え部、１１２  動き情報検出部、１１４  リプレイ処理部、
１２０  画像生成部、１２２  第１視点画像生成部、１２４  第２視点画像生成部、
１３０  音生成部、１６０  操作部、１７０  記憶部、
１７２  オブジェクトデータ記憶部、１７３  モーションデータ記憶部、
１７４  リプレイデータ記憶部、１７６  描画バッファ、１７７  第１のバッファ、
１７８  第２のバッファ、１７９  第３のバッファ、１８０  情報記憶媒体、
１９０  表示部、１９２  音出力部、１９４  補助記憶装置、１９６  通信部
【図１】
2013062731.tif 000003
【図２】
2013062731.tif 000004
【図３】
2013062731.tif 000005
【図４】
2013062731.tif 000006
【図５】
2013062731.tif 000007
【図６】
2013062731.tif 000008
【図７】
2013062731.tif 000009
【図８】
2013062731.tif 000010
【図９】
2013062731.tif 000011
【図１０】
2013062731.tif 000012
【図１１】
2013062731.tif 000013
【図１２】
2013062731.tif 000014
【図１３】
2013062731.tif 000015
【図１４】
2013062731.tif 000016