(57)【要約】【課題】少ない処理負荷で、違和感の少ない立体視画像を生成することが可能なプログラム、情報記憶媒体、画像生成装置及びサーバを提供すること。【解決手段】第１の画像と第２の画像に基づき、立体視画像を生成する処理を行う場合に、第１の画像生成部が、スクリーンに対応する特定バッファの各画素に、前記第１の仮想カメラに対して最前面にあるプリミティブの情報を記憶させる処理を行い、第２の画像生成部が、ピクセル処理前に、第２の画像の画素毎に、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、第１の画像から流用可能な画素の画像情報が存在する場合に、前記ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行う。【選択図】図１４
2013061898.tif 000002
【特許請求の範囲】
【請求項１】
仮想３次元空間にプリミティブを配置し、立体視画像を生成する処理を行うプログラムであって、
前記仮想３次元空間において第１の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第１の画像を生成する処理を行う第１の画像生成部と、
前記仮想３次元空間において第２の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第２の画像を生成する処理を行う第２の画像生成部と、
第１の画像と第２の画像に基づき、立体視画像を生成する処理を行う立体視画像生成部として、コンピュータを機能させ、
前記第１の画像生成部が、
スクリーンに対応する特定バッファの各画素に、前記第１の仮想カメラに対して最前面にあるプリミティブの情報を記憶させる処理を行い、
前記第２の画像生成部が、
前記ピクセル処理前に、第２の画像の画素毎に、プリミティブの情報と前記特定バッファの画素のプリミティブの情報とを比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、
第１の画像から流用可能な画素の画像情報が存在する場合に、前記ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行うことを特徴とするプログラム。
【請求項２】
請求項１において、
前記第１の画像生成部が、
スクリーンに対応する特定バッファの各画素に、前記第１の仮想カメラに対して最前面にあるプリミティブの識別情報を記憶させる処理を行い、
前記第２の画像生成部が、
前記ピクセル処理前に、第２の画像の画素毎に、プリミティブの識別情報と前記特定バッファの画素のプリミティブの識別情報とを比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行うことを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記第１の画像生成部が、
スクリーンに対応する特定バッファの各画素に、前記第１の仮想カメラに対して最前面にあるプリミティブの前記仮想３次元空間の位置座標を記憶させる処理を行い、
前記第２の画像生成部が、
前記ピクセル処理前に、第２の画像の画素毎に、プリミティブの仮想３次元空間の位置座標と前記特定バッファの画素の仮想３次元空間の位置座標とを比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行うことを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかおいて、
前記第１の画像生成部が、
スクリーンに対応する特定バッファの各画素に、前記第１の仮想カメラに対して最前面にあるプリミティブの奥行き情報を記憶させる処理を行い、
前記第２の画像生成部が、
前記ピクセル処理前に、第２の画像の画素毎に、プリミティブの仮想３次元空間の位置座標と、前記第１の仮想カメラ及び前記第２の仮想カメラの仮想カメラ情報及び前記特定バッファの画素の奥行き情報に基づき算出された仮想３次元空間の位置座標と、を比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行うことを特徴とするプログラム。
【請求項５】
請求項１〜４のいずれかにおいて、
前記第２の画像生成部が、
プリミティブの情報と前記特定バッファの画素のプリミティブの情報とが同じ場合に、第１の画像から流用可能な画素の画像情報が存在すると判定する処理を行い、前記特定バッファの当該画素に対応する第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行うことを特徴とするプログラム。
【請求項６】
請求項１〜５のいずれかにおいて、
前記第２の画像生成部が、
第２の画像の画素毎に、前記第１の仮想カメラ及び前記第２の仮想カメラの仮想カメラ情報及び第２の画像の画素の奥行き情報に基づいて、前記特定バッファの探索領域を決定し、プリミティブの情報と探索領域内の画素のプリミティブの情報とを比較する処理を行うことを特徴とするプログラム。
【請求項７】
請求項１〜６のいずれかにおいて、
前記立体視画像生成部が、第１〜第Ｎ（Ｎ≧３）の仮想カメラに基づいて、立体視画像を生成する場合に、
前記第１の画像生成部が、
第１の仮想カメラに基づき、前記頂点処理と前記ピクセル処理とを行うことによって、第１の画像を生成する処理を行い、前記特定バッファの各画素に、前記第１の仮想カメラに対して最前面にあるプリミティブの情報を記憶させる処理を行い、
前記第２の画像生成部が、
前記頂点処理と前記ピクセル処理とを、第２〜第Ｎの仮想カメラ毎に行うことによって、第２〜第Ｎの各画像を生成する処理を行い、
前記第２の画像生成部が、
第２〜第Ｎの各画像において、画素毎に、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、第１の画像から流用可能な画素の画像情報が存在する場合に、前記ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、画像の画素の画像情報に流用する処理を行うことを特徴とするプログラム。
【請求項８】
請求項１〜７のいずれかにおいて、
前記第１の画像生成部が、
前記第１の画像を加工する処理を行い、
前記第２の画像生成部が、
前記第２の画像を加工する処理を行い、
前記立体視画像生成部が、
加工された第１の画像と、加工された第２の画像とに基づいて、立体視画像を生成する処理を行うことを特徴とするプログラム。
【請求項９】
請求項１〜８のいずれかにおいて、
前記画像情報は、色情報、法線情報、奥行き情報、半透明情報の少なくとも１つであることを特徴とするプログラム。
【請求項１０】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１〜９のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１１】
仮想３次元空間にプリミティブを配置し、立体視画像を生成する処理を行う画像生成装置であって、
前記仮想３次元空間において第１の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第１の画像を生成する処理を行う第１の画像生成部と、
前記仮想３次元空間において第２の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第２の画像を生成する処理を行う第２の画像生成部と、
第１の画像と第２の画像に基づき、立体視画像を生成する処理を行う立体視画像生成部と、を含み、
前記第１の画像生成部が、
スクリーンに対応する特定バッファの各画素に、前記第１の仮想カメラに対して最前面にあるプリミティブの情報を記憶させる処理を行い、
前記第２の画像生成部が、
前記ピクセル処理前に、第２の画像の画素毎に、プリミティブの情報と前記特定バッファの画素のプリミティブの情報とを比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、
第１の画像から流用可能な画素の画像情報が存在する場合に、前記ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行うことを特徴とする画像生成装置。
【請求項１２】
仮想３次元空間にプリミティブを配置し、立体視画像を生成する処理を行うサーバであって、
前記仮想３次元空間において第１の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第１の画像を生成する処理を行う第１の画像生成部と、
前記仮想３次元空間において第２の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第２の画像を生成する処理を行う第２の画像生成部と、
第１の画像と第２の画像に基づき、立体視画像を生成する処理を行う立体視画像生成部と、を含み、
前記第１の画像生成部が、
スクリーンに対応する特定バッファの各画素に、前記第１の仮想カメラに対して最前面にあるプリミティブの情報を記憶させる処理を行い、
前記第２の画像生成部が、
前記ピクセル処理前に、第２の画像の画素毎に、プリミティブの情報と前記特定バッファの画素のプリミティブの情報とを比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、
第１の画像から流用可能な画素の画像情報が存在する場合に、前記ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行うことを特徴とするサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、画像生成装置及びサーバに関する。
【背景技術】
【０００２】
従来から、立体視を実現する画像生成装置が知られている（例えば、特許文献１）。例えば、２眼式の画像生成システムでは、左眼用画像と右眼用画像を生成する。そして、立体視用の眼鏡や、視差バリア或いはレンチキュラ等の光学素子を用いて、観察者の左眼には左眼用画像のみが見え、右眼には右眼用画像のみが見えるようにすることで、立体視を実現する。また、Ｎ眼式の画像生成装置では、Ｎ個の異なる視点における画像から立体視画像を生成する。
【０００３】
例えば、従来技術では、シェーディング計算をＮ個の異なるビューについて１回だけ実行し、シェーディングされた色を、すべてのビューについて再利用するような処理を行う点が記載されている（引用文献１の００１９段落等）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−５１４２３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に示すような従来技術では、どの画素の色をどのようにして再利用しているのか不明であるので、Ｎ個の視点（ビュー）に基づき生成される画像は不正確であり、生成される立体視画像に違和感があった。
【０００６】
また、通常、画像生成処理過程において、ピクセル処理は非常に処理負荷が高いので、Ｎ個の視点に基づく各画像において、全画素の画像情報を求めるピクセル処理を行う場合、全体として処理負荷が高くなってしまう。さらには、時間をかけて正確に画像を生成したとしても、反射光成分が多いハイライト部分においては、ハイライトの位置や形状が左右画像で異なることから、その部分の立体感に違和感が生じることがある。これは、自然現象としても起こりうることであるが、映像制作時にこれらを軽減できれば、違和感のない見やすい立体視映像を作成できる。
【０００７】
本発明は、以上の課題に鑑みてなされたものであり、その目的は、少ない処理負荷で、違和感の少ない立体視画像を生成することが可能なプログラム、情報記憶媒体、画像生成装置及びサーバを提供することにある。
【課題を解決するための手段】
【０００８】
（１）本発明は、仮想３次元空間にプリミティブを配置し、立体視画像を生成する処理を行うプログラムであって、前記仮想３次元空間において第１の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第１の画像を生成する処理を行う第１の画像生成部と、前記仮想３次元空間において第２の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第２の画像を生成する処理を行う第２の画像生成部と、第１の画像と第２の画像に基づき、立体視画像を生成する処理を行う立体視画像生成部として、コンピュータを機能させ、前記第１の画像生成部が、スクリーンに対応する特定バッファの各画素に、前記第１の仮想カメラに対して最前面にあるプリミティブの情報を記憶させる処理を行い、前記第２の画像生成部が、前記ピクセル処理前に、第２の画像の画素毎に、プリミティブの情報と前記特定バッファの画素のプリミティブの情報とを比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、第１の画像から流用可能な画素の画像情報が存在する場合に、前記ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行うプログラムに関する。また、本発明は、上記プログラムを記憶した情報記憶媒体に関係する。
【０００９】
ここで、特定バッファとは、画像に関する属性情報を画素単位で記憶可能なバッファであり、例えば、ステンシルバッファである。また、第１の画像から流用可能な画素数は、１つでもよいし複数でもよい。また、流用する処理とは、例えば、第１の画像の画素の画像情報を第２の画像の画素の画像情報としてフレームバッファ等に記憶させる処理、第１の画像から、当該画素を複数サンプリング（抽出）し、それらを合成（平均化、加重平均化、等）した画像情報を第２の画像の画素の画像情報としてフレームバッファ等に記憶させる処理等である。
【００１０】
また、「プリミティブの情報」は、プリミティブの識別情報、プリミティブの仮想３次元空間の位置座標、プリミティブの奥行き情報の少なくとも１つを含む。
【００１１】
本発明によれば、ピクセル処理前に、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、第１の画像から流用可能な画素の画像情報が存在する場合に、ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行うので、第２の画像生成処理において画素のピクセル処理を省略することができ処理負荷を軽減させることができる。また、本発明は、第１の画像の当該画素の画像情報を流用することによって、例えばハイライト領域などにおいて、違和感の少ない立体視画像を生成することができる。また、本発明は、第２の画像の画素毎に、プリミティブの情報と特定バッファの画素のプリミティブの情報とを比較する処理を行うことによって、流用すべき画素か否かを適確に判断することができる。
【００１２】
（２）本発明のプログラム、情報記憶媒体は、前記第１の画像生成部が、スクリーンに対応する特定バッファの各画素に、前記第１の仮想カメラに対して最前面にあるプリミティブの識別情報を記憶させる処理を行い、前記第２の画像生成部が、前記ピクセル処理前に、第２の画像の画素毎に、プリミティブの識別情報と前記特定バッファの画素のプリミティブの識別情報とを比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行うようにしてもよい。
【００１３】
本発明は、第２の画像の画素毎に、プリミティブの識別情報と特定バッファの画素のプリミティブの識別情報とを比較する処理を行うことによって、流用すべき画素か否かを適確に判断することができる。
【００１４】
（３）本発明のプログラム、情報記憶媒体は、前記第１の画像生成部が、スクリーンに対応する特定バッファの各画素に、前記第１の仮想カメラに対して最前面にあるプリミティブの前記仮想３次元空間の位置座標を記憶させる処理を行い、前記第２の画像生成部が、前記ピクセル処理前に、第２の画像の画素毎に、プリミティブの仮想３次元空間の位置座標と前記特定バッファの画素の仮想３次元空間の位置座標とを比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行うようにしてもよい。
【００１５】
本発明は、プリミティブの仮想３次元空間の位置座標と特定バッファの画素の仮想３次元空間の位置座標とを比較する処理を行うことによって、流用すべき画素か否かを適確に判断することができる。
【００１６】
（４）本発明のプログラム、情報記憶媒体は、前記第１の画像生成部が、スクリーンに対応する特定バッファの各画素に、前記第１の仮想カメラに対して最前面にあるプリミティブの奥行き情報を記憶させる処理を行い、前記第２の画像生成部が、前記ピクセル処理前に、第２の画像の画素毎に、プリミティブの仮想３次元空間の位置座標と、前記第１の仮想カメラ及び前記第２の仮想カメラの仮想カメラ情報及び前記特定バッファの画素の奥行き情報に基づき算出された仮想３次元空間の位置座標と、を比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行うようにしてもよい。
【００１７】
第１の仮想カメラ及び第２の仮想カメラの仮想カメラ情報とは、第１の仮想カメラ及び第２の仮想カメラを制御するための基準となる基準仮想カメラ（センターカメラ）の仮想カメラ情報（例えば、基準仮想カメラの視点位置、方向、画角）と、そこからの各カメラの相対位置を決定できる情報（例えば、左右カメラの間隔など）してもよいし、第１の仮想カメラの仮想カメラ情報（例えば、第１の仮想カメラの視点位置、方向、画角）、及び、第２の仮想カメラの仮想カメラ情報（例えば、第２の仮想カメラの視点位置、方向、画角）としてもよい。
【００１８】
本発明は、プリミティブの仮想３次元空間の位置座標と、前記第１の仮想カメラ及び前記第２の仮想カメラの仮想カメラ情報及び前記特定バッファの画素の奥行き情報に基づき算出された仮想３次元空間の位置座標と、を比較する処理を行うことによって、流用すべき画素か否かを適確に判断することができる。
【００１９】
また、本発明は、特定バッファの各画素に、第１の仮想カメラに対して最前面にあるプリミティブの奥行き情報を記憶させる処理を行うので、プリミティブの仮想３次元空間の位置座標を記憶するよりも記憶する容量が少なくて済み、記憶容量を節約することができる。
【００２０】
（５）本発明のプログラム、情報記憶媒体は、前記第２の画像生成部が、プリミティブの情報と前記特定バッファの画素のプリミティブの情報とが同じ場合に、第１の画像から流用可能な画素の画像情報が存在すると判定する処理を行い、前記特定バッファの当該画素に対応する第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行うようにしてもよい。
【００２１】
本発明によれば、プリミティブの情報と特定バッファの画素のプリミティブの情報とが同じ場合に、第１の画像から流用可能な画素の画像情報が存在すると判定する処理を行うので、簡易に、第１の画像から流用可能な画素の画像情報が存在するか否かを判定することができる。
【００２２】
（６）本発明のプログラム、情報記憶媒体は、前記第２の画像生成部が、第２の画像の画素毎に、前記第１の仮想カメラ及び前記第２の仮想カメラの仮想カメラ情報及び第２の画像の画素の奥行き情報に基づいて、前記特定バッファの探索領域を決定し、プリミティブの情報と探索領域内の画素のプリミティブの情報とを比較する処理を行うようにしてもよい。
【００２３】
本発明によれば、探索領域内の画素を比較対象にするので、比較対象を減らすことができ、処理負荷を軽減することができる。また、本発明は、第１の仮想カメラ及び第２の仮想カメラの仮想カメラ情報及び第２の画像の画素の奥行き情報に基づいて、特定バッファの探索領域を決定するので、正確に探索領域を決定することができる。
【００２４】
（７）本発明のプログラム、情報記憶媒体は、前記立体視画像生成部が、第１〜第Ｎ（Ｎ≧３）の仮想カメラに基づいて、立体視画像を生成する場合に、前記第１の画像生成部が、第１の仮想カメラに基づき、前記頂点処理と前記ピクセル処理とを行うことによって、第１の画像を生成する処理を行い、前記特定バッファの各画素に、前記第１の仮想カメラに対して最前面にあるプリミティブの情報を記憶させる処理を行い、前記第２の画像生成部が、前記頂点処理と前記ピクセル処理とを、第２〜第Ｎの仮想カメラ毎に行うことによって、第２〜第Ｎの各画像を生成する処理を行い、前記第２の画像生成部が、第２〜第Ｎの各画像において、画素毎に、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、第１の画像から流用可能な画素の画像情報が存在する場合に、前記ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、画像の画素の画像情報に流用する処理を行うようにしてもよい。
【００２５】
本発明によれば、第２〜第Ｎの各画像において、画素毎に、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、第１の画像から流用可能な画素の画像情報が存在する場合に、前記ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、画像の画素の画像情報とする処理を行うので、流用した画素のピクセル処理を省略することができ処理負荷を軽減させることができる。また、第１の画像の当該画素の画像情報を流用することによって、違和感の少ない立体視画像を生成することができる。
【００２６】
（８）本発明のプログラム、情報記憶媒体は、前記第１の画像生成部が、前記第１の画像を加工する処理を行い、前記第２の画像生成部が、前記第２の画像を加工する処理を行い、前記立体視画像生成部が、加工された第１の画像と、加工された第２の画像とに基づいて、立体視画像を生成する処理を行うようにしてもよい。
【００２７】
ここで、加工処理とは、例えば、エフェクト処理等である。本発明によれば、第１、第２の画像間において異なる加工処理を行う場合において、加工処理を行う前の第１の画像の画素の画像情報を流用することによって、違和感の少ない立体視画像を生成することができる。
【００２８】
（９）本発明のプログラム、情報記憶媒体は、前記画像情報を、色情報、法線情報、奥行き情報、半透明情報の少なくとも１つとしてもよい。
【００２９】
（１０）本発明は、仮想３次元空間にプリミティブを配置し、立体視画像を生成する処理を行う画像生成装置であって、前記仮想３次元空間において第１の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第１の画像を生成する処理を行う第１の画像生成部と、前記仮想３次元空間において第２の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第２の画像を生成する処理を行う第２の画像生成部と、第１の画像と第２の画像に基づき、立体視画像を生成する処理を行う立体視画像生成部と、を含み、前記第１の画像生成部が、スクリーンに対応する特定バッファの各画素に、前記第１の仮想カメラに対して最前面にあるプリミティブの情報を記憶させる処理を行い、前記第２の画像生成部が、前記ピクセル処理前に、第２の画像の画素毎に、プリミティブの情報と前記特定バッファの画素のプリミティブの情報とを比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、第１の画像から流用可能な画素の画像情報が存在する場合に、前記ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行う画像生成装置に関する。
【００３０】
（１１）本発明は、仮想３次元空間にプリミティブを配置し、立体視画像を生成する処理を行うサーバであって、前記仮想３次元空間において第１の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第１の画像を生成する処理を行う第１の画像生成部と、前記仮想３次元空間において第２の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第２の画像を生成する処理を行う第２の画像生成部と、第１の画像と第２の画像に基づき、立体視画像を生成する処理を行う立体視画像生成部と、を含み、前記第１の画像生成部が、スクリーンに対応する特定バッファの各画素に、前記第１の仮想カメラに対して最前面にあるプリミティブの情報を記憶させる処理を行い、前記第２の画像生成部が、前記ピクセル処理前に、第２の画像の画素毎に、プリミティブの情報と前記特定バッファの画素のプリミティブの情報とを比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、第１の画像から流用可能な画素の画像情報が存在する場合に、前記ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行うサーバに関する。
【図面の簡単な説明】
【００３１】
【図１】本実施形態の画像生成装置の機能ブロック図の例。
【図２】本実施形態の立体視画像生成処理の説明図。
【図３】図３（Ａ）（Ｂ）は、本実施形態の立体視画像の説明図。
【図４】典型的なレンダリングパイプラインのフローチャート図。
【図５】プリミティブの説明図。
【図６】第１の画像（左眼用画像）の生成処理の説明図。
【図７】図７（Ａ）は、スクリーン４０の説明図。図７（Ｂ）は、特定バッファ１７５の説明図。
【図８】第１の画像（左眼用画像）のレンダリングパイプラインのフローチャート図。
【図９】第２の画像（右眼用画像）の生成処理の説明図。
【図１０】画素の流用に関する処理の説明図。
【図１１】画素の流用に関する処理の説明図。
【図１２】画素の流用に関する処理の説明図。
【図１３】画素の流用に関する処理の説明図。
【図１４】第２の画像（右眼用画像）のレンダリングパイプラインのフローチャート図。
【図１５】３個以上の仮想カメラに基づく立体視画像の説明図。
【図１６】本実施形態のサーバの機能ブロック図の例。
【発明を実施するための形態】
【００３２】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３３】
１．構成
図１に本実施の形態の画像生成装置１０（コンピュータ、画像生成システム、端末、携帯端末、ゲーム装置、携帯電話、スマートフォン）の機能ブロック図の一例を示す。なお、本実施形態の画像生成装置１０は図１の構成要素（各部）の一部を省略した構成としてもよい。
【００３４】
操作部１６０（入力部）は、観察者（プレーヤ）が操作情報（入力情報）を入力するためのものであり、ユーザの操作情報を処理部１００に出力する。操作部１６０の機能は、ボタン、方向キー（十字キー）、方向入力可能なコントロールスティック（アナログキー）、レバー、キーボード、マウス、タッチパネル型ディスプレイ、加速度センサや傾きセンサ、カメラ等を内蔵するコントローラなどのハードウェアにより実現することができる。
【００３５】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。そして、本実施形態の記憶部１７０は、ワーク領域として使用される主記憶部１７２と、画像が記憶されるフレームバッファ１７４と、特定バッファ１７５（例えば、ステンシルバッファ）、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部１７６と、各オブジェクトデータ用のテクスチャが記憶されるテクスチャ記憶部１７８と、オブジェクトの画像の生成処理時にＺ値が記憶されるＺバッファ１７９とを含む。なお、これらの一部を省略する構成としてもよい。
【００３６】
なお、フレームバッファ１７４は、第１のフレームバッファ１７４ａ（左眼用フレームバッファ）と、第２のフレームバッファ１７４ｂ（右眼用フレームバッファ）とを含む。また、テクスチャ記憶部１７８は、第１のテクスチャバッファ１７８ａ（左眼用テクスチャバッファ）と、第２のテクスチャバッファ１７８ｂ（右眼用テクスチャバッファ）とを含む。また、Ｚバッファ１７９は、第１のＺバッファ１７９ａ（左眼用Ｚバッファ）と、第２のＺバッファ１７９ｂ（右眼用Ｚバッファ）とを含む。
【００３７】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体１８０には、本実施形態の処理部１００の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【００３８】
表示部１９０は、本実施形態により生成された画像（仮想３次元空間を所与の視点から見た画像）を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはタッチパネル型ディスプレイなどにより実現できる。
【００３９】
本実施形態の表示部１９０は、立体視画像を表示する。例えば、裸眼方式では、表示部１９０は、有限個の画素からなるＬＣＤの前面又は背面に、パララックスバリアやレンチキュラ等の光学素子が配置される。例えば、垂直バリアまたは垂直レンチキュラによる２眼式の場合には、表示部１９０に、１枚（１フレーム）の第１の画像（左眼用画像）を表示するための表示領域と、１枚の右眼用画像を表示するための表示領域とが、短冊状に第１の短冊画像表示領域（左眼用短冊画像表示領域）及び第２の短冊画像表示領域（右眼用短冊画像表示領域）として交互に配置されている。パララックスバリアが配置される場合、その隙間からは、観察者の左眼には左眼用短冊画像表示領域に表示される左眼用短冊画像、右眼には右眼用短冊画像表示領域に表示される右眼用短冊画像のみが見えるようになっている。また、レンチキュラが配置される場合、各短冊集合画像に対応したレンズの光屈折効果により、観察者の左眼には左眼用短冊画像表示領域に表示される左眼用短冊画像、右眼には右眼用短冊画像表示領域に表示される右眼用短冊画像のみが見えるようになっている。また、偏光眼鏡方式では、表示部１９０の奇数ラインと偶数ラインに偏光方向の異なる偏光フィルタ（例えば、左円偏光を透過する偏光フィルタと、右円偏光を透過する偏光フィルタ）が交互に配置され、表示部１９０の奇数ラインと偶数ラインに第１の画像（左眼用画像）と第２の画像（右眼用画像）を交互に表示し、これを偏光眼鏡（例えば、左眼に左円偏光を透過する偏光フィルタ、右眼に右円偏光を透過する偏光フィルタを付けた眼鏡）で見ることで立体視を実現する。また、ページフリップ方式では、表示部１９０に第１の画像（左眼用画像）と第２の画像（右眼用画像）を所定時間毎（例えば、１／１２０秒毎）に交互に表示する。そして、この表示の切り替えに連動して液晶シャッター付きの眼鏡の左眼、右眼の液晶シャッターを交互に開閉することで、立体視を実現する。
【００４０】
通信部１９６は他の画像生成装置１０やサーバとの間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００４１】
なお、サーバ２０が有する情報記憶媒体２８０や記憶部２７０に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体１８０や記憶部１７０に記憶してもよい。このようにプログラムやデータを受信してゲームシステムを機能させる場合も本発明の範囲内に含む。
【００４２】
処理部１００（プロセッサ）は、操作部１６０からの操作データ、通信部１９６を介して受信したデータやプログラムなどに基づいて、ゲーム処理、画像生成処理、音生成処理などの処理を行う。ここで、ゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００４３】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１８、通信制御部１１９、画像生成部１２０、音生成部１３０を含む。
【００４４】
オブジェクト空間設定部１１０は、オブジェクト（キャラクタ、移動体）、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）を仮想３次元空間（オブジェクト空間、ワールド座標系）に配置設定する処理を行う。つまり、プリミティブを仮想３次元空間に配置する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義であり、例えば、ワールド座標系でのＸ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００４５】
移動・動作処理部１１２は、オブジェクト（移動体、キャラクタ等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０により観察者（プレーヤ）が入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）、物理法則などに基づいて、オブジェクトを仮想３次元空間（オブジェクト空間、ワールド座標系）内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（例えば、１／６０秒又は１／３０秒等）毎に順次求めるシミュレーション処理を行う。なお、フレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００４６】
また移動・動作処理部１１２は、ネットワークを介して接続された他の画像生成装置１０から通信部１９６を介して受信したオブジェクト（他のプレーヤに対応するオブジェクト）の移動情報や動作情報に基づき当該オブジェクトの移動情報や動作情報を更新する処理を行うようにしてもよい。
【００４７】
また、移動・動作処理部１１２は、他の画像生成装置から通信部１９６を介して受信した操作データ等に基づき、当該オブジェクトの移動・動作演算を行うようにしてもよい。
【００４８】
仮想カメラ制御部１１８は、仮想３次元空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、操作部１６０によりプレーヤが入力した操作データ或いはプログラム（移動・動作アルゴリズム）等に基づいて、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は光軸の方向（例えば、Ｘ、Ｙ、Ｚ軸の各軸の負方向からみて時計回りに回る場合における回転角度等）を制御する処理を行う。要するに、視点位置、仮想カメラの向き、画角を制御する処理を行う。
【００４９】
また、２眼式の立体視方式により立体視画像を表示する場合には、仮想カメラ制御部１１８は、第１の仮想カメラ（左眼用仮想カメラ）ＶＣＬ、第２の仮想カメラ（右眼用仮想カメラ）ＶＣＲそれぞれの位置、向き及び画角を制御する。また、仮想カメラ制御部１１８は、第１の仮想カメラと第２の仮想カメラを設定するための基準となる基準仮想カメラ（センターカメラ）ＶＣＣの制御を行い、基準仮想カメラＶＣＣの位置、向き及び第１、第２の仮想カメラ間の距離情報に基づいて、第１、第２の仮想カメラの位置、向きを制御するようにしてもよい。
【００５０】
つまり、仮想カメラ制御部１１８は、第１、第２の仮想カメラＶＣＬ、ＶＣＲそれぞれの仮想カメラ情報（位置、向き、画角の少なくとも１つ）を制御する。また、仮想カメラ制御部１１８は、基準仮想カメラＶＣＣの（位置、向き、画角の少なくとも１つ）を制御する。
【００５１】
通信制御部１１９は、他の画像生成装置又はサーバ２０とネットワークを介して相互にデータを送受信する処理を行う。
【００５２】
なお、本実施形態の画像生成装置１０では、通信制御で必要となるネットワーク情報をサーバから取得し、管理する処理等を行うようにしてもよい。例えば、画像生成装置１０は、各画像生成装置１０に個別に付与される画像生成装置１０の識別情報（オンラインゲームに参加できる画像生成装置１０を識別するために個別に付与されたデータ、ＩＤ）と、画像生成装置１０の識別情報に対応付けられたパケットの送信先を指定する宛先情報（ＩＰアドレスなど）とを取得し、管理する処理を行うようにしてもよい。
【００５３】
通信制御部１１９は、他の画像生成装置又はサーバ２０に送信するパケットを生成する処理、パケット送信先の画像生成装置１０のＩＰアドレスやポート番号を指定する処理、受信したパケットに含まれるデータを記憶部１７０に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する制御処理等を行う。
【００５４】
また、本実施形態の通信制御部１１９は、他の画像生成装置１０、又はサーバ２０においての接続が確立されてから接続が切断されるまで、データを所定周期（例えば、１秒周期で）互いに送受信する処理を行うようにしてもよい。ここで、画像生成装置１０で送受信されるデータは、操作部（入力部）の操作情報（入力情報）としてもよいし、各画像生成装置１０の操作対象のオブジェクト（機体、移動体）の位置情報、移動情報としてもよい。
【００５５】
また、本実施形態の通信制御部１１９は、他の画像生成装置（第２の画像生成装置）又はサーバ２０から送信されたパケットを受信すると、受信したパケットを解析し、パケットに含まれる他の画像生成装置の操作対象のオブジェクトの位置情報などのデータを記憶部に記憶する処理を行う。
【００５６】
また、複数の画像生成装置１０で構成されるネットワークシステムの場合は、複数の画像生成装置１０間でデータの送受信を行いながらオンラインゲームを実行するピア・ツー・ピア（いわゆるＰ２Ｐ）方式としてもよいし、サーバ２０を介して各画像生成装置１０がデータ（情報）の送受信を行いながらオンラインゲームを実行するクライアント・サーバ方式によるものであってもよい。また、本実施形態のネットワークシステムでは、有線通信のみならず無線通信でデータを送受信してもよい。
【００５７】
例えば、本実施形態の通信制御部１１９は、サーバ２０に対して操作情報を送信し、サーバ２０において生成される立体視画像の画像データ（表示データ）等を受信するようにしてもよい。
【００５８】
画像生成部１２０は、処理部１００で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。
【００５９】
画像生成部１２０は、いわゆる３次元画像を生成する場合には、まずオブジェクトの各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００６０】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換（カメラ座標変換）、クリッピング処理、射影変換（透視変換、投影変換）、ビューポート変換（スクリーン座標変換）、光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。ジオメトリ処理後のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、オブジェクトデータ記憶部１７６に保存される。
【００６１】
そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、プリミティブ（ポリゴン）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。
【００６２】
ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し（画像を構成する各画素の画像情報を求め）、透視変換されたオブジェクトの描画色などの画像情報をフレームバッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色情報（Ｒ、Ｇ、Ｂの各輝度情報）、法線情報、奥行き情報（深度情報）、半透明情報（α値）等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、仮想３次元空間（オブジェクト空間）内において仮想カメラ（所与の視点）から見える画像が生成される。
【００６３】
そして画像生成部１２０は、オブジェクトを描画する際に、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００６４】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部１７８からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００６５】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７９（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７９に格納されるＺ値を参照する。そして参照されたＺバッファ１７９のＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば参照されたＺ値よりも小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７９のＺ値を新たなＺ値に更新する。
【００６６】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。例えば、通常αブレンディングでは、α値を合成の強さ（合成率、合成割合）として線形補間を行うことにより２つの色を合成した色を求める処理を行う。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えばＲＧＢの各色成分の輝度を表す色情報以外のプラスアルファの情報（半透明情報）である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００６７】
特に本実施形態の画像生成部１２０は、第１の画像生成部１２４と第２の画像生成部１２６、立体視画像生成部１２８とを含む。
【００６８】
第１の画像生成部１２４（左眼用画像生成部）は、仮想３次元空間（ワールド座標系、オブジェクト空間）において、第１の仮想カメラ（左眼用仮想カメラＶＣＬ）から見える第１の画像（左眼用画像）の各画素の画像情報（色情報、法線情報、深度情報、半透明情報の少なくとも１つ）を、第１のバッファ（例えば、第１のフレームバッファ１７４ａ、第１のテクスチャバッファ１７８ａ、第１のＺバッファ１７９ａ）に記憶させる処理を行う。
【００６９】
特に本実施形態の第１の画像生成部１２４は、仮想３次元空間において第１の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第１の画像を生成する処理を行う。
【００７０】
また、第１の画像生成部１２４は、スクリーンに対応する特定バッファの各画素に、第１の仮想カメラに対して最前面にあるプリミティブの情報（例えば、プリミティブの識別情報、プリミティブの仮想３次元空間の位置座標、プリミティブの奥行き情報、等）を記憶させる処理を行う。
【００７１】
例えば、第１の画像生成部１２４は、スクリーンに対応する特定バッファの各画素に、第１の仮想カメラに対して最前面にあるプリミティブの識別情報（プリミティブの番号ｉ）及び仮想３次元空間の位置座標（ワールド座標値）の少なくとも一方を記憶させる処理を行う。例えば、第１の画像生成部２１４は、Ｚバッファ１７９ａの更新時に、スクリーンに対応する特定バッファの各画素に、第１の仮想カメラに対して最前面にあるプリミティブの識別情報（プリミティブの番号ｉ）及び仮想３次元空間の位置座標（ワールド座標）の少なくとも一方を記憶させる処理を行う。
【００７２】
また、第１の画像生成部１２４は、スクリーンに対応する特定バッファの各画素に、第１の仮想カメラに対して最前面にあるプリミティブの奥行き情報（Ｚ値）を記憶させる処理を行うようにしてもよい。この場合、特定バッファ１７５に記憶される奥行き情報は、第１のＺバッファ１７９ａの奥行き情報と一致する内容となる。
【００７３】
また、第１の画像生成部１２４は、第１の画像を加工する処理を行う。例えば、第１の画像を第１のテクスチャバッファ１７８ａに格納し、エフェクト処理等を行った最終的な画像を、第１のフレームバッファ１７４ａに格納するようにしてもよい。
【００７４】
また、第２の画像生成部１２６（右眼用画像生成部）は、仮想３次元空間において、第２の仮想カメラ（右眼用仮想カメラＶＣＲ）から見える第２の画像（右眼用画像）の各画素の画像情報を、第２のバッファ（例えば、第２のフレームバッファ１７４ｂ、第２のテクスチャバッファ１７８ｂ、第２のＺバッファ１７９ｂ）に記憶させる処理を行う。
【００７５】
特に、本実施形態の第２の画像生成部１２６は、仮想３次元空間において第２の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第２の画像を生成する処理を行う。
【００７６】
また、第２の画像生成部１２６は、ピクセル処理前に、第２の画像の画素毎に、プリミティブの情報と前記特定バッファの画素のプリミティブの情報とを比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、第１の画像から流用可能な画素の画像情報が存在する場合に、ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行う。
【００７７】
例えば、第２の画像生成部１２６は、ピクセル処理前に、第２の画像の画素毎に、プリミティブの識別情報と特定バッファの画素のプリミティブの識別情報とを比較する処理、及び、プリミティブの仮想３次元空間の位置座標と特定バッファの画素のプリミティブの仮想３次元空間の位置座標とを比較する処理、の少なくとも一方を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、第１の画像から流用可能な画素の画像情報が存在する場合に、ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行う。
【００７８】
また、第２の画像生成部１２６は、ピクセル処理前に、第２の画像の画素毎に、プリミティブの仮想３次元空間の位置座標と、第１の仮想カメラ及び第２の仮想カメラの仮想カメラ情報及び特定バッファの画素の奥行き情報に基づき算出された仮想３次元空間の位置座標と、を比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行うようにしてもよい。
【００７９】
また、第１の画像から流用可能な画素の画像情報は１つでもよいし、複数でもよい。また、第２の画像の画素の画像情報に流用する処理とは、例えば、第１の画像の画素の画像情報を第２の画像の画素の画像情報として第２のバッファに記憶させる処理、第１の画像から、当該画素を複数サンプリングし、それらを合成（平均化、加重平均化、等）した画像情報を第２の画像の画素の画像情報として第２のバッファに記憶させる処理である。
【００８０】
また、第２の画像生成部１２６は、プリミティブの情報と特定バッファの画素のプリミティブの情報とが同じ場合に、第１の画像から流用可能な画素の画像情報が存在すると判定する処理を行い、特定バッファの当該画素に対応する第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行う。つまり、特定バッファの当該画素と同じ位置座標にある第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行う。
【００８１】
例えば、第２の画像生成部１２６は、プリミティブの識別情報と特定バッファの画素のプリミティブの識別情報とが同じ場合に、第１の画像から流用可能な画素の画像情報が存在すると判定する処理を行い、特定バッファの当該画素に対応する第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行う。つまり、特定バッファの当該画素と同じ位置座標にある第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行う。
【００８２】
また、第２の画像生成部１２６は、プリミティブの仮想３次元空間の位置座標と特定バッファの画素のプリミティブの仮想３次元空間の位置座標とが同じ場合に、第１の画像から流用可能な画素の画像情報が存在すると判定する処理を行い、特定バッファの当該画素に対応する第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行う。つまり、特定バッファの当該画素と同じ位置座標にある第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行う。
【００８３】
また、第２の画像生成部１２６は、第２の画像の画素毎に、第１の仮想カメラ及び第２の仮想カメラの仮想カメラ情報及び第２の画像の画素の奥行き情報に基づいて、特定バッファの探索領域を決定し、プリミティブの情報と探索領域内の画素のプリミティブの情報とを比較する処理を行う。
【００８４】
例えば、第２の画像生成部１２６は、プリミティブの識別情報と探索領域内の画素のプリミティブの識別情報とを比較する処理、及び、プリミティブの仮想３次元空間の位置座標と探索領域内の画素のプリミティブの仮想３次元空間の位置座標とを比較する処理、の少なくとも一方を行う。
【００８５】
例えば、特定バッファの探索領域は、第２の画像の処理対象の画素と同じ行で、連続して配置される２画素分の領域とする。
【００８６】
例えば、探索領域において、第２の画像の処理対象の画素のプリミティブの識別情報が同じ画素が存在する場合、及び／又は、第２の画像の処理対象の画素のプリミティブの仮想３次元空間の位置座標が同じ画素が存在する場合に、同じであると判断された探索領域の画素に対応する（同じであると判断された探索領域の画素と同じ位置座標にある）第１の画像の画素の画像情報（例えば、色情報）を、第２の画像の処理対象の画素の画像情報（例えば、色情報）に流用する。
【００８７】
また、探索領域内の全ての画素が、第２の画像の処理対象の画素のプリミティブの識別情報と同じ場合、及び／又は、第２の画像の処理対象の画素のプリミティブの仮想３次元空間の位置座標と同じ場合は、探索領域内の全画素に対応する第１の画像の画素群の画像情報（例えば、色情報）をサンプリングし、サンプリングを行った画像情報を元に何らかの演算（平均化、加重平均化、等）を行って、第２の画像の画素の画像情報に流用する処理を行うようにしてもよい。
【００８８】
なお、立体視画像生成部１２８が、第１〜第Ｎ（Ｎ≧３）の仮想カメラに基づいて、立体視画像を生成する場合には、第２の画像生成部１２６は、第２〜第Ｎの各画像において、画素毎に、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、第１の画像から流用可能な画素の画像情報が存在する場合に、ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、画像の画素の画像情報に流用する処理を行う。
【００８９】
また、第２の画像生成部１２６は、第２の画像を加工する処理を行う。例えば、第２の画像を第２のテクスチャバッファ１７８ｂに格納し、エフェクト処理等を行った最終的な画像を、第２のフレームバッファ１７４ｂに格納するようにしてもよい。
【００９０】
立体視画像生成部１２８は、第１の画像と第２の画像とに基づいて、立体視画像を生成する処理を行う。つまり、立体視画像生成部１２８は、立体視の方式（裸眼方式、偏光眼鏡方式、ページフリップ方式等）に応じて、第１の画像と第２の画像から、インターリーブ処理を行い立体視画像を生成する。例えば、立体視画像生成部１２８は、第１の画像と第２の画像とを合成した結合画像を生成する処理や、所定周期で第１の画像、第２の画像の切り替え処理等を行う。また、立体視画像生成部１２８は、短冊状に第１の画像と第２の画像とを交互に配置させる処理、奇数ライン、偶数ラインに第１の画像と第２の画像とを交互に配置させる処理等を行う。
【００９１】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００９２】
また、音生成部１３０は、オブジェクトの位置に応じて音像定位が変化する音を生成してもよい。
【００９３】
２．立体視画像の生成処理の概要
立体視用画像を生成する手法の概要について、図２を用いて説明する。図２に示すように、２眼式の立体視方式で立体視画像を生成する場合は、観察者（プレーヤ）の両眼の幅に対応する距離だけ離れた左眼用仮想カメラＶＣＬと右眼用仮想カメラＶＣＲを仮想３次元空間（オブジェクト空間、ワールド座標系）に配置設定する。そして、左眼用仮想カメラＶＣＬに対応して左眼用ビューボリュームＶＶＬが設定され、右眼用仮想カメラＶＣＲに対応して右眼用ビューボリュームＶＶＲが設定される。
【００９４】
左眼用、右眼用ビューボリュームＶＶＬ、ＶＶＲは、左眼用、右眼用仮想カメラＶＣＬ、ＶＣＲの位置、向き、画角及びスクリーン（投影面）４０の位置によって上下左右の構成面が決定される視錐台の領域である。スクリーン４０は、表示部１９０の画面に対応する面であり、観察者の視点位置に相当する左眼用、右眼用仮想カメラＶＣＬ、ＶＣＲの位置及び向きと、観察者の視点位置と表示部１９０の画面との位置関係とに基づき設定される。なお、図２において、ＮＰＬは左眼用ビューボリュームＶＶＬのニアクリップ面、ＦＰＬは左眼用ビューボリュームＶＶＬのファークリップ面であり、ＮＰＲは右眼用ビューボリュームＶＶＲのニアクリップ面、ＦＰＲは右眼用ビューボリュームＶＶＲのファークリップ面である。
【００９５】
左眼用仮想カメラＶＣＬから見える画像である左眼用画像（第１の画像）は、左眼用ビューボリュームＶＶＬ内に存在するオブジェクトを構成するプリミティブ（ポリゴン）をスクリーン４０に透視投影して描画することで生成される。同様に、右眼用仮想カメラＶＣＲから見える画像である右眼用画像（第２の画像）は、右眼用ビューボリュームＶＶＲ内に存在するオブジェクトを構成するプリミティブ（ポリゴン）をスクリーン４０に透視投影して描画することで生成される。
【００９６】
ここで、仮想３次元空間においてプリミティブがスクリーン４０上に位置する場合には、左眼用画像でのプリミティブの描画位置と右眼用画像でのプリミティブの描画位置は一致し、プリミティブの画像の視差は無くなる。つまり、スクリーン４０は、スクリーン４０に位置するプリミティブが描画された画像の視差がなくなる面である。この場合、観察者からはプリミティブが表示部１９０の画面上に存在するように見える。
【００９７】
また、プリミティブが、スクリーン４０よりも左眼用、右眼用仮想カメラＶＣＬ、ＶＣＲからみて手前側のエリア（スクリーン４０とニアクリップ面ＮＰＬ、ＮＰＲに挟まれたエリア）である第１のエリアＡＲ１に位置する場合には、図３（Ａ）に示すように、左眼用画像でのプリミティブＰＴＬの描画位置は、右眼用画像でのプリミティブＰＴＲの描画位置に対して右側にずれ、観察者からはプリミティブが表示部１９０の画面よりも手前側に飛び出しているように見える。また、プリミティブが、スクリーン４０よりも左眼用、右眼用仮想カメラＶＣＬ、ＶＣＲからみて奥側のエリア（スクリーン４０とファークリップ面ＦＰＬ、ＦＰＲに挟まれたエリア）である第２のエリアＡＲ２に位置する場合には、図３（Ｂ）に示すように、左眼用画像でのプリミティブＰＴＬの描画位置は、右眼用画像でのプリミティブＰＴＲの描画位置に対して左側にずれ、観察者からはプリミティブが表示部１９０の画面よりも奥側に引っ込んでいるように見える。
【００９８】
３．典型的なレンダリングパイプラインの説明
次に、典型的なレンダリングパイプラインＲＰによる画像の生成処理について、図４を用いて説明する。例えば、レンダリングパイプラインＲＰで、画像を生成する場合には、まず、オブジェクトを構成する各プリミティブの各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル、α値等）、プリミティブデータ（プリミティブの番号等）が入力され（ステップＳ１１）、入力された頂点データ、プリミティブデータに基づいて、ジオメトリ変換（広義には、頂点処理）が行われる（ステップＳ１２）。
【００９９】
そして、ジオメトリ変換後（頂点処理後）の頂点データに基づいて、クリッピング、ラスタライズ（走査変換）が行われる（ステップＳ１３）。つまり、プリミティブの面とピクセルとが対応づけられる。
【０１００】
次に、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７９（奥行きバッファ）を用いたＺテスト（Ｚバッファ法、奥行き比較法）による隠面消去処理を行う（ステップＳ１４）。
【０１０１】
そして、画像を構成するピクセルを描画するピクセルレンダリング処理（広義には、ピクセル処理）、ライティング処理が行われる（ステップＳ１６）。なお、ピクセルレンダリング（ステップＳ１６）では、テクスチャの読出し（テクスチャマッピング）、テクスチャサンプリングを行い（ステップＳ１５）、画像を構成するピクセルの最終的な描画色を決定してもよい。
【０１０２】
そして、ピクセルの色情報をフレームバッファ（描画バッファ）１７４に出力（描画）する処理、プリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７９にＺ値を格納する処理を行う（ステップＳ１７）。
【０１０３】
例えば、従来の２眼式の立体視画像の生成する場合、まず、レンダリングパイプラインＲＰで、仮想３次元空間内の左眼用仮想カメラから見える画像である左眼用画像を左眼用フレームバッファ１７４ａに描画し、その後、レンダリングパイプラインＲＰで、仮想３次元空間内の右眼用仮想カメラから見える画像である右眼用画像を右眼用フレームバッファ１７４ｂに描画していた。つまり、左眼用画像と右眼用画像とにおいて、２回のピクセルレンダリング（ピクセル処理）を行うことが必要であったので、非常に処理負荷が高くなるという問題があった。
【０１０４】
４．本実施形態の処理の手法
そこで、本実施形態では、第１のフレームバッファ１７４ａ（左眼用フレームバッファ）に左眼用画像（第１の画像の一例）を描画した後に、左目用画像の画素の色情報を、右眼用画像（第２の画像の一例）に描画する画素の色として流用可能か否かを判定する処理を行い、左眼用画像の描画した画素の色情報を右眼用画像の画素の色として流用可能と判断した場合には、左眼用画像の描画した当該画素の色情報を、右眼用画像の画素の色として流用する処理を行う手法を採用する。
【０１０５】
例えば、左眼用画像を生成する際に、スクリーン４０に対応する特定バッファ１７５（例えば、ステンシルバッファ）の各画素に、左眼用仮想カメラＶＣＬに対して最前面にあるプリミティブの番号ｉ（識別情報）及びワールド座標値（仮想３次元空間の位置座標）の少なくとも一方を記憶させる処理を行う。
【０１０６】
そして、右眼用画像を生成する場合には、ピクセル処理前に、第２の画像の画素毎に、プリミティブの番号ｉと特定バッファ１７５のプリミティブの番号ｉとを比較する処理、及び、プリミティブのワールド座標値と特定バッファ１７５のプリミティブのワールド座標値とを比較する処理、の少なくとも一方を行うことによって、第１の画像から流用可能な画素の色情報（Ｒ、Ｇ、Ｂ）の画素が存在するか否かを判定する処理を行う。そして、第１の画像から流用可能な画素の色情報が存在する場合に、ピクセル処理の替わりに、第１の画像から当該画素の色情報（Ｒ、Ｇ、Ｂ）を、第２の画像の画素の色情報（Ｒ、Ｇ、Ｂ）に流用する処理を行う。
【０１０７】
このようにすれば、例えば、右眼用画像の画像生成処理において、ピクセル処理を省略することができ、処理負荷を軽減させることができる。また、第１の画像から画素の色情報を流用することによって、例えばハイライト領域等においては、違和感の少ない立体視画像を生成することができる。以下、本実施形態の処理の詳細について説明する。
【０１０８】
４−１．準備
まず、右眼用画像、左眼用画像の各画像を生成する際に、ワールド座標変換処理、スクリーン座標変換処理をそれぞれ行う。
【０１０９】
そして、右眼用画像、左眼用画像の各画像を生成する際は、ワールド座標変換後のプリミティブ（ポリゴン）の各頂点の頂点座標Ｖｐ（ｘ、ｙ、ｚ）を格納するための頂点バッファＶＢを用意する。頂点バッファＶＢには、頂点座標Ｖｐのほかに、各頂点の色情報（Ｒ、Ｇ、Ｂの各色値）、各頂点の法線（ｘ、ｙ、ｚ）、各頂点のテクスチャ座標（Ｕ、Ｖ）を格納してもよい。
【０１１０】
また、右眼用画像、左眼用画像の各画像を生成する際は、ワールド座標系における各プリミティブの位置座標Ｗｐ（Ｗｘ、Ｗｙ、Ｗｚ）、及び、図５に示すように、各プリミティブのプリミティブ番号ｉ（インデックス）を保持する。なお、プリミティブ番号ｉは、各プリミティブを識別可能な識別情報であり整数値が割り振られる。
【０１１１】
また、記憶部１７０の記憶領域に、スクリーン４０（画面、投影面）のサイズ（解像度）と同一サイズの特定バッファ１７５（例えば、ステンシルバッファ）を予め確保しておく。例えば、スクリーン４０のサイズが６４０×４８０である場合、特定バッファ１７５も６４０×４８０のサイズとなる。
【０１１２】
４−２．第１の画像（左眼用画像）の生成処理の説明
多眼式の立体視画像を生成する場合において、まず初めに生成する画像を第１の画像とする。なお、本実施形態では、左眼用画像を第１の画像としている。
【０１１３】
左眼用画像の生成処理では、図６に示すように、左眼用仮想カメラＶＣＬに基づき頂点処理、ラスタライズ後、スクリーン座標系４０（２次元座標）のピクセルの位置座標Ｐ（ｘ、ｙ）と同じ位置座標にある特定バッファ１７５（例えば、ステンシルバッファ）のピクセルの位置座標Ｐ（ｘ、ｙ）に、ビューボリュームＶＶＬ内であって左眼用仮想カメラＶＣＬに対して最前面にあるプリミティブの番号ｉ（「プリミティブの情報」の一例）とワールド座標系における位置座標Ｗｐ（Ｗｘ、Ｗｙ、Ｗｚ）（「プリミティブの情報」の一例）とを記憶させる処理を行う。つまり、（ｘ、ｙ）の２次元配列に、プリミティブ番号ｉとワールド座標値とを記憶させる。なお、本実施形態では、Ｚバッファの更新時に、特定バッファ１７５にプリミティブ番号ｉとワールド座標値とを上書きすることによって、左眼用仮想カメラＶＣＬに対して最前面にあるプリミティブの番号ｉと、ワールド座標値Ｗｐ（Ｗｘ、Ｗｙ、Ｗｚ）とを記憶させる処理を行う。
【０１１４】
なお、スクリーン座標系４０のピクセルの位置座標Ｐ（ｘ、ｙ）と同じ位置座標にある特定バッファ１７５のピクセルの位置座標Ｐ（ｘ、ｙ）に、プリミティブ番号ｉのみを記憶させるようにしてもよいし、プリミティブのワールド座標系における位置座標Ｗｐ（Ｗｘ、Ｗｙ、Ｗｚ）のみを記憶させるようにしてもよい。
【０１１５】
具体的には、図６に示すように、左眼用画像を生成する場合において、左眼用仮想カメラＶＣＬに基づいて、プリミティブＰＴ１（プリミティブ番号＝１）をスクリーン４０（投影面）に透視投影変換（広義には、頂点処理）を行い、その後、ラスタライズを行う。そして、ラスタライズ、ピクセル処理後、図７に示すように、スクリーン座標系４０の画素の位置座標Ｐ１（ｘ１、ｙ１）と同じ特定バッファ１７５の画素の位置座標Ｐ１（ｘ１、ｙ１）に、プリミティブＰＴ１のワールド座標系座標値Ｗｐ１（Ｗｘ１、Ｗｙ１、Ｗｚ１）とプリミティブＰＴ１の番号「１」を格納する。
【０１１６】
つまり、フレームバッファ１７４ａに左眼用画像が描画されると、特定バッファ１７５において、スクリーン座標の各画素の位置座標Ｐ（ｘ、ｙ）と、描画されたプリミティブ（左眼用仮想カメラＶＣＬから見て最前面のプリミティブ）の番号、ワールド座標値Ｗｐ（Ｗｘ、Ｗｙ、Ｗｚ）とが、対応付けられることになる。
【０１１７】
また、本実施形態では、左眼用画像で見えているプリミティブのリストを作成する処理を行う。つまり、ビューボリュームＶＶＬ内であって、左眼用仮想カメラＶＣＬから見て最前面のプリミティブの番号をリスト化する。
【０１１８】
図８は、左眼用画像のレンダリングパイプラインＲＰ１（第１のレンダリングパイプライン）の処理の流れを示すフローチャートである。
【０１１９】
例えば、レンダリングパイプラインＲＰ１で、左眼用画像を生成する場合には、まずプリミティブの各頂点の頂点データ、プリミティブデータが入力され（ステップＳ２１）、入力された頂点データ、プリミティブデータに基づいて、ジオメトリ変換（広義には、「頂点処理」）が行われる。つまり、左眼用仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理を行う（ステップＳ２２）。
【０１２０】
そして、ジオメトリ変換後の頂点データに基づいて、クリッピング、ラスタライズ（走査変換）が行われる（ステップＳ２３）。つまり、プリミティブの面とピクセルとが対応づけられる。
【０１２１】
次に、描画ピクセルのＺ値が格納されるＺバッファ１７９ａを用いたＺテストによる隠面消去処理を行う（ステップＳ２４）。
【０１２２】
そして、ピクセルレンダリング（画像を構成する各画素の画像情報を求めるピクセル処理）、ライティング処理が行われる（ステップＳ２６）。なお、ピクセルレンダリング（ステップＳ２６）では、テクスチャの読出し（テクスチャマッピング）等を行い、テクスチャサンプリングを行い（ステップＳ２５）、画像を構成するピクセルの最終的な描画色を決定してもよい。
【０１２３】
そして、特定バッファ（例えば、ステンシルバッファ）の各画素に、プリミティブのプリミティブ番号とワールド座標値を保存（記憶）させる処理を行う（ステップＳ２７）。
【０１２４】
そして、各画素の描画色を左眼用フレームバッファ（第１のフレームバッファ１７４ａ）に出力（描画）する処理、左眼Ｚバッファ（第１のＺバッファ１７９ａ）にＺ値を格納する処理を行う（ステップＳ２８）。以上で処理が終了する。
【０１２５】
４−３．第２の画像（右眼用画像）の生成処理の説明
第２の画像の生成処理について説明する。第２の画像は、第１の画像が生成された後に生成する。なお、本実施形態では、右眼用画像を第２の画像としている。
【０１２６】
まず、右眼用画像を生成する場合には、左眼用画像で見えているプリミティブから優先してシェーダ（頂点シェーダ、頂点処理）に送るように制御する。つまり、左眼用画像に描画されるプリミティブは右眼用仮想カメラＶＣＲから見て最前面に配置されている可能性が高く、演算量を削減できるからである。
【０１２７】
そして、本実施形態では、右眼用仮想カメラＶＣＲに基づき、頂点処理及びラスタライズを行い、ラスタライズ後、右眼用画像のピクセル処理の前に、画素毎に、プリミティブ番号ｉと特定バッファ１７５（例えば、ステンシルバッファ）の画素のプリミティブ番号ｉとを比較する処理、プリミティブのワールド座標値と特定バッファ１７５の画素のプリミティブのワールド座標値とを比較する処理、の少なくとも一方を行うことによって、左眼用画像（フレームバッファ１７４ａ）から流用できる画素の色情報が存在するか否かを判定し、流用できる画素の色情報が存在する場合には、当該画素の色情報を、右眼用画像の画素の色情報として、第２のフレームバッファ１７４ｂに記憶させる処理を行う。つまり、右眼用画像の全画素について、描画色を決定する前に、特定バッファ１７５を参照して、左眼用画像から流用できる色があるか否かを判断する。
【０１２８】
そして、左目用画像から流用可能な画素の色情報が存在する場合には、流用可能な画素の色情報を、第２の画素の色情報として、右眼用フレームバッファ（フレームバッファ１７４ｂ）に記憶させる処理を行う。
【０１２９】
具体的には、図９に示すように、右眼用画像を生成する場合において、右眼用仮想カメラＶＣＲに基づいて、プリミティブＰＴ１（プリミティブ番号＝１）をスクリーン４０（投影面）に透視投影変換（広義には、頂点処理）を行い、その後、ラスタライズを行う。例えば、スクリーン４０の画素Ｐ２（ｘ２、ｙ２）に描画されるプリミティブＰＴ１のワールド座標値はＷｐ１（Ｗｘ１、Ｗｙ１、Ｗｚ１）である。
【０１３０】
すると、右眼用画像の処理対象の画素の位置座標Ｐ２（ｘ２、ｙ２）と同じプリミティブ番号、ワールド座標値を格納している画素を、特定バッファ１７５から探索する。つまり、右眼用画像の処理対象の画素の位置座標Ｐ２（ｘ２、ｙ２）と同じプリミティブ番号ｉ＝１であって、ワールド座標値Ｗｐ１（Ｗｘ１、Ｗｙ１、Ｗｚ１）である画素を、特定バッファ１７５から探索する。このようにすれば、左眼用画像から流用できる画素の画像情報が存在するか否かをより正確に判定することができるからである。
【０１３１】
例えば、図１０に示すように、特定バッファ１７５において、プリミティブ番号ｉ＝１であって、ワールド座標値Ｗｐ１（Ｗｘ１、Ｗｙ１、Ｗｚ１）である画素Ｐ１（ｘ１、ｙ１）が存在する場合には、左目用画像から流用できる画素の色情報が存在すると判定する。一方、特定バッファ１７５において、プリミティブ番号ｉ＝１であって、ワールド座標値Ｗｐ１（Ｗｘ１、Ｗｙ１、Ｗｚ１）である画素が存在しない場合には、左目用画像から流用できる画素の色情報が存在しないと判定する。
【０１３２】
なお、特定バッファ１７５において、プリミティブ番号ｉのみを比較対象としてもよい。つまり、右眼用画像の処理対象の画素の位置座標Ｐ２（ｘ２、ｙ２）と同じプリミティブ番号ｉ＝１を格納している画素を、特定バッファ１７５から探索する。例えば、特定バッファ１７５において、プリミティブ番号ｉ＝１である画素Ｐ１（ｘ１、ｙ１）が存在する場合には、左目用画像から流用できる画素の色情報が存在すると判定し、特定バッファ１７５において、プリミティブ番号ｉ＝１である画素が存在しない場合には、左目用画像から流用できる画素の色情報が存在しないと判定する。このようにすれば、比較対象がプリミティブ番号ｉのみであるので、処理負荷を軽減することができる。例えば、ローポリゴン（詳細度レベルの低いオブジェクトを構成するプリミティブ、所定数以下のプリミティブ数で構成されるオブジェクト）については、プリミティブ番号ｉで比較するようにしてもよい。
【０１３３】
また、特定バッファ１７５において、プリミティブのワールド座標値のみを比較対象としてもよい。つまり、右眼用画像の処理対象の画素の位置座標Ｐ２（ｘ２、ｙ２）と同じプリミティブのワールド座標値Ｗｐ１（Ｗｘ１、Ｗｙ１、Ｗｚ１）を格納している画素を、特定バッファ１７５から探索する。例えば、特定バッファ１７５において、プリミティブのワールド座標値Ｗｐ１（Ｗｘ１、Ｗｙ１、Ｗｚ１）である画素Ｐ１（ｘ１、ｙ１）が存在する場合には、左目用画像から流用できる画素の色情報が存在すると判定し、特定バッファ１７５において、プリミティブのワールド座標値Ｗｐ１（Ｗｘ１、Ｗｙ１、Ｗｚ１）である画素が存在しない場合には、左目用画像から流用できる画素の色情報が存在しないと判定する。このようにすれば、左目用画像から流用できる画素の画像情報が存在するか否かの判定を、プリミティブ番号ｉのみを比較対象とするよりも正確に行うことができる。例えば、ハイポリゴン（詳細度レベルの高いオブジェクトを構成するプリミティブ、所定数以上のプリミティブ数で構成されるオブジェクト）については、ワールド座標値、或いは、ワールド座標値及びプリミティブ番号で比較するようにしてもよい。
【０１３４】
また、本実施形態では、探索処理を簡易なものとするために、右眼用画像の処理対象の画素Ｐ２（ｘ２、ｙ２）のＺ値（Ｚバッファ１７９ｂ（右眼用Ｚバッファ）のＺ値）と、第１、第２の仮想カメラ情報に基づいて、特定バッファ１７５に探索領域Ｂを決定し、特定バッファ１７５探索領域Ｂ内の各画素を、左目用画像から流用できる画素の画像情報が存在するか否かの判定対象としてもよい。
【０１３５】
例えば、探索領域Ｂは次のように決定する。まず、図２に示すように、左眼用仮想カメラＶＣＬと右眼用仮想カメラＶＣＲを設定するための基準となる基準仮想カメラ（センターカメラ）ＶＣＣの視点３１、画角θＣ、右眼用画像の処理対象の画素Ｐ２（ｘ２、ｙ２）のＺ値（奥行き情報、右眼用視点座標系でのＺ値）に基づいて、図１０に示すように、探索領域Ｂを決定する。
【０１３６】
具体的には、右眼用画像を生成する際に、ラスタライズされたプリミティブの描画対象の画素の位置座標をＰｎとし、つまり、右眼用画像の処理対象の画素の位置座標をＰｎとし、基準仮想カメラ（センターカメラ）ＶＣＣの視点３１、画角θＣ、右眼用画像の処理対象の画素ＰｎのＺ値に基づき、図１１に示すように、位置座標Ｐｎの特定バッファ１７５上の参照点Ｑｎを求める。そして、参照点Ｑｎに最も近い２画素Ｋａ、Ｋｂを探索領域Ｂとして決定する。
【０１３７】
なお、左眼用仮想カメラＶＣＬの視点３０Ｌ、画角θＬ、右眼用仮想カメラＶＣＲの視点３０Ｒ、画角θＲ、及び、右眼用画像のＺ値（視点座標系でのＺ値）に基づいて探索領域Ｂを決定してもよい。
【０１３８】
なお、本実施形態の探索領域Ｂは、２画素分の連続した領域としているが、探索領域Ｂは１画素、又は３以上の複数の画素からなる領域としてもよい。
【０１３９】
また、通常、左眼用仮想カメラＶＣＬの視点３０Ｌと、右眼用仮想カメラＶＣＲの視点３０Ｒは、ワールド座標系において平行に配置されるので、本実施形態では、図１０に示すように、右眼用画像の処理対象の画素Ｐ２（ｘ２、ｙ２）と同一の行（ライン）であるｎ行目において探索領域Ｂが決定される。
【０１４０】
そして、図１０に示すように、特定バッファ１７５のｎ行目の２画素分の領域（画素Ｐ１、Ｐ３）を探索領域Ｂとして決定された場合、右眼用画像の処理対象の画素Ｐ２（ｘ２、ｙ２）のプリミティブ番号ｉ＝１と、探索領域Ｂ内の各画素Ｐ１、Ｐ３のプリミティブ番号とを比較する処理を行い、右眼用画像の処理対象の画素Ｐ２（ｘ２、ｙ２）のワールド座標値Ｗｐ１（Ｗｘ１、Ｗｙ１、Ｗｚ１）と、探索領域Ｂ内の各画素Ｐ１、Ｐ３のワールド座標値とを比較する処理を行う。
【０１４１】
そして、右眼用画像の処理対象の画素Ｐ２（ｘ２、ｙ２）のプリミティブ番号及びワールド座標値の少なくとも一方が、探索領域Ｂ内に存在する場合に、左目用画像の画素の色情報を流用できると判定する。
【０１４２】
例えば、図１０に示すように、特定バッファ１７５の探索領域Ｂの画素Ｐ１（ｘ１、ｙ１）のプリミティブ番号ｉは「１」、ワールド座標値はＷｘ１、Ｗｙ１、Ｗｚ１であり、特定バッファ１７５の探索領域Ｂの画素Ｐ３（ｘ３、ｙ３）のプリミティブ番号ｉは「３」、ワールド座標値はＷｘ３、Ｗｙ３、Ｗｚ３である場合、右眼用画像の処理対象の画素Ｐ２（ｘ２、ｙ２）のプリミティブ番号ｉ＝１とワールド座標値Ｗｐ１（Ｗｘ１、Ｗｙ１、Ｗｚ１）とが同じ画素Ｐ１（ｘ１、ｙ１）＝（Ｗｘ１、Ｗｙ１、Ｗｚ１、１）が、特定バッファ１７５の探索領域Ｂ内に存在する。したがって、左目用画像の画素Ｐ１の色情報を、右眼用画像の処理対象の画素Ｐ２（ｘ２、ｙ２）の色情報として流用できると判定する。そして、図１２に示すように、特定バッファ１７５の画素Ｐ１（ｘ１、ｙ１）と同じ位置座標にある左眼用画像の画素Ｐ１（ｘ１、ｙ１）の色情報（Ｒ、Ｇ、Ｂ）を、右眼用画像の画素Ｐ２（ｘ２、ｙ２）の色情報（Ｒ、Ｇ、Ｂ）として、右眼用フレームバッファ１７４ｂに格納する処理を行う。つまり、左眼用フレームバッファ１７４ａの画素Ｐ１（ｘ１、ｙ１）の色情報を、右眼用フレームバッファ１７４ｂの画素Ｐ２（ｘ２、ｙ２）の色情報として流用する処理を行う。
【０１４３】
なお、特定バッファ１７５（或いは、探索領域Ｂ）において、右眼用画像の処理対象の画素のプリミティブ番号及びワールド座標値と同じ画素が存在しない場合は、左目用画像から流用できる画素の色情報が存在しないと判定する。
【０１４４】
例えば、図１３に示すように、右眼用画像の処理対象の画素Ｐ２（ｘ２、ｙ２）のプリミティブ番号ｉ＝２、ワールド座標値Ｗｐ２（Ｗｘ２、Ｗｙ２、Ｗｚ２）であった場合において、特定バッファ１７５（或いは、探索領域Ｂ）において、プリミティブ番号ｉ＝２、ワールド座標値Ｗｐ２（Ｗｘ２、Ｗｙ２、Ｗｚ２）の画素が存在しない場合には、左目用画像から流用できる画素の色情報が存在しないと判定し、右眼用画像の画素Ｐ２について通常のピクセル処理を行い、画素Ｐ２の描画色を求める処理を行う。つまり、右眼用画像の画素Ｐ２について、プリミティブの頂点色、テクスチャ画像の色に基づき、最終的な描画色を決定するための演算処理を行う。
【０１４５】
なお、本実施形態では、右眼用画像の処理対象の画素Ｐｎのプリミティブ番号、ワールド座標値と同じとみなされる画素が特定バッファに複数存在する場合には、当該複数の画素をサンプリングし、それらを合成（平均化、等）して、色情報を流用するようにしてもよい。例えば、図１１に示すように、探索領域Ｂの画素Ｐａ、Ｐｂの各中心点Ｋａ、Ｋｂのうち、参照点Ｑｎに最も近い画素Ｋａを、右眼用画像に流用する画素として決定してもよい。要するに、ポイントサンプリング方式によって、右眼用画像に流用する画素を決定してもよい。また、図１１に示すように、探索領域Ｂの画素Ｐａ、Ｐｂの各中心点Ｋａ、Ｋｂと参照点Ｑｎの距離に基づいて、画素Ｐａ、Ｐｂの色情報を加重平均して流用してもよい。要するに、バイリニアフィルタに基づき、探索領域Ｂの複数の画素Ｐａ、Ｐｂの色情報を、右眼用画像の画像情報として流用してもよい。
【０１４６】
以上のように、本実施形態では、右眼用画像のピクセル処理を省略することができる。また、左目用画像の画素の色情報を、右眼用画像の画素の色情報に流用することによって、違和感の少ない立体視画像を生成することができる。
【０１４７】
図１４は、第２の画像（右眼用画像）のレンダリングパイプラインＲＰ２（第２のレンダリングパイプライン）の処理の流れを示すフローチャートである。
【０１４８】
例えば、レンダリングパイプラインＲＰ２で、右眼用画像を生成する場合には、まずプリミティブの各頂点の頂点データ、プリミティブデータが入力され（ステップＳ３１）、入力された頂点データ、プリミティブデータに基づいて、ジオメトリ変換（広義には、「頂点処理」）が行われる（ステップＳ３２）。
【０１４９】
そして、ジオメトリ変換後の頂点データに基づいて、クリッピング、ラスタライズが行われる（ステップＳ３３）。つまり、プリミティブの面とピクセルとが対応づけられる。
【０１５０】
次に、センターカメラの画角、視点、右眼用の仮想カメラのＺ値（奥行き値）に基づいて、特定バッファ（例えば、ステンシルバッファ）の探索領域を決定する（ステップＳ３４）。
【０１５１】
そして、特定バッファの探索領域にプリミティブのワールド座標値及びプリミティブ番号の少なくとも一方が同じ画素が存在するか否かを判断する（ステップＳ３５）。
【０１５２】
特定バッファの探索領域に、プリミティブのワールド座標値及びプリミティブ番号の少なくとも一方が同じ画素が存在する場合には（ステップＳ３５のＹ）、当該画素と同じ位置座標にある左眼用のフレームバッファ１７４ａの画素の色情報を流用する（ステップＳ３６）。
【０１５３】
特定バッファの探索領域に、プリミティブのワールド座標値及びプリミティブ番号の少なくとも一方が同じ画素が存在しない場合には（ステップＳ３５のＮ）、描画ピクセルのＺ値が格納されるＺバッファ１７９を用いたＺテストによる隠面消去処理を行う（ステップＳ３７）。
【０１５４】
そして、画像を構成する各画素のピクセルレンダリング処理（広義には、ピクセル処理）、ライティング処理が行われる（ステップＳ３９）。なお、ピクセルレンダリング（ステップＳ３９）では、テクスチャの読出し（テクスチャマッピング）等を行い、テクスチャサンプリングを行い（ステップＳ３８）、画像を構成するピクセルの最終的な描画色を決定してもよい。
【０１５５】
そして、ステップＳ３６、Ｓ３９の後、透視変換されたプリミティブの描画色を右眼用フレームバッファ１７４ｂに出力（描画）する処理、右眼用Ｚバッファ１７９ｂにＺ値を格納する処理を行う（ステップＳ４０）。以上で処理が終了する。
【０１５６】
５．応用例
５．１  流用する画像情報の応用例
本実施形態では、右眼用画像の画素毎に、左眼用画像から流用可能な画素の色情報が存在するか否かを判定する処理を行い、左眼用画像から流用可能な画素の色情報が存在する場合に、左眼用画像の画素の色情報を、右眼用画像の画素の色情報に流用する処理例について説明したが、色情報だけでなく、輝度情報、半透明情報、法線情報、奥行き情報に流用するようにしてもよい。
【０１５７】
例えば、グレースケール画像の立体視の場合において、本実施形態では、右眼用画像の画素毎に、左眼用画像から流用可能な画素の輝度情報が存在するか否かを判定する処理を行い、左眼用画像から流用可能な画素の輝度情報が存在する場合に、左眼用画像の画素の輝度情報を、右眼用画像の画素の輝度情報に流用してもよい。左眼用画像から流用可能な画素の輝度情報が存在するか否かを判定する処理は、上述したように、右眼用画像生成時のプリミティブ番号、ワールド座標値、特定バッファ１７５（例えば、ステンシルバッファ）のプリミティブ番号、ワールド座標値を比較することによって行えばよい。このようにすれば、右眼用画像、左眼用画像で、同一のプリミティブ、同一のワールド座標値にあるプリミティブに対して、同じ輝度で画像を生成することができ、違和感の少ない立体視画像を生成することができる。
【０１５８】
つまり、本実施形態では、右眼用画像の画素毎に、左眼用画像から流用可能な画素の半透明情報（α値）が存在するか否かを判定する処理を行い、左眼用画像から流用可能な画素の半透明情報が存在する場合に、左眼用画像の画素の半透明情報を、右眼用画像の画素の半透明情報に流用してもよい。左眼用画像から流用可能な画素の半透明情報が存在するか否かを判定する処理は、上述したように、右眼用画像生成時のプリミティブ番号、ワールド座標値、特定バッファ１７５のプリミティブ番号、ワールド座標値を比較することによって行えばよい。このようにすれば、右眼用画像、左眼用画像で、同一のプリミティブ、同一のワールド座標値にあるプリミティブに対して、同じ合成割合で半透明合成処理等を行うことができ、違和感の少ない立体視画像を生成することができる。
【０１５９】
また、本実施形態では、右眼用画像の画素毎に、左眼用画像から流用可能な画素の法線情報（法線ベクトル）が存在するか否かを判定する処理を行い、左眼用画像から流用可能な画素の法線情報が存在する場合に、左眼用画像の画素の法線情報を、右眼用画像の画素の法線情報に流用してもよい。左眼用画像から流用可能な画素の法線情報が存在するか否かを判定する処理は、上述したように、右眼用画像生成時のプリミティブ番号、ワールド座標値、特定バッファ１７５のプリミティブ番号、ワールド座標値を比較することによって行えばよい。このようにすれば、右眼用画像、左眼用画像で、同一のプリミティブ、同一のワールド座標値にあるプリミティブに対して、同じ法線情報で光沢の計算、法線マッピングなど種々の処理が行うことができ、違和感の少ない立体視画像を生成することができる。
【０１６０】
また、本実施形態では、右眼用画像の画素毎に、左眼用画像から流用可能な画素の奥行き情報（深度情報）が存在するか否かを判定する処理を行い、左眼用画像から流用可能な画素の奥行き情報が存在する場合に、左眼用画像の画素の奥行き情報を、右眼用画像の画素の奥行き情報に流用してもよい。左眼用画像から流用可能な画素の奥行き情報が存在するか否かを判定する処理は、上述したように、右眼用画像生成時のプリミティブ番号、ワールド座標値、特定バッファ１７５のプリミティブ番号、ワールド座標値を比較することによって行えばよい。このようにすれば、右眼用画像、左眼用画像で、同一のプリミティブ、同一のワールド座標値にあるプリミティブに対して、同じ奥行き情報で種々の処理が行うことができ、違和感の少ない立体視画像を生成することができる。
【０１６１】
５．２  仮想カメラの応用例
本実施形態では、左眼用画像を初めに生成し、右眼用画像を後に生成する例について説明したが、右眼用画像を第１の画像として初めに生成し、左眼用画像を第２の画像として後に生成してもよい。
【０１６２】
また、本実施形態では、２つの視点（右眼、左眼）に基づく立体視画像の生成処理について説明したが、３つ以上の視点に基づく立体視画像を生成してもよい。例えば、初めに生成する仮想カメラの画像を第１の画像として、特定バッファ１７５（例えば、ステンシルバッファ）に当該仮想カメラから見て最前面にあるプリミティブのワールド座標値とプリミティブ番号を格納し、他の視点の画像（第２の画像〜第Ｎの画像（Ｎは３以上の整数））を生成する場合には、特定バッファ１７５を参照し、画素毎に、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、第１の画像から流用可能な画その画像情報が存在する場合に、第１の画像の当該画素の画像情報を、画像の画素の画像情報に流用するようにしてもよい。
【０１６３】
例えば、図１５に示すように、仮想カメラＶＣ１〜ＶＣ５の５つの多眼式の立体視画像を生成する場合には、まず、第１のレンダリングパイプラインＲＰ１によって、中心の仮想カメラＶＣ３に基づいて、画像を生成する。そして、他の仮想カメラＶＣ１、ＶＣ２、ＶＣ４、ＶＣ５の画像を生成する場合には、第２のレンダリングパイプラインＲＰ２に基づいて画像を生成する。つまり、仮想カメラＶＣ１、ＶＣ２、ＶＣ４、ＶＣ５に基づく画像を生成する場合には、ＶＣ３に基づいて生成された画像の色情報を流用できるか否かを判断し、流用できる場合には、当該画素の色情報を流用するようにする。
【０１６４】
５．３  Ｚテストを省略させる処理
本実施形態では、左眼用画像の画素の色情報を、右眼用画像の処理対象の画素Ｐｎの色情報として流用した場合には、当該右眼用画像の画素ＰｎのＺバッファ１７９ｂのＺ値を最大値に設定してもよい。つまり、当該右眼用画像の画素ＰｎのＺバッファ１７９ｂのＺ値を最大値に設定することによって、Ｚテストにおいて、画素Ｐｎを常に右眼用仮想カメラから見て最前面にある画素とすることができ、ピクセル処理を省略させることができ、処理負荷を軽減することができる。例えば、左眼用仮想カメラＶＣＬに対して最前面にあるプリミティブは、右眼用カメラＶＣＲに対しても最前面にあるという仮定が成り立つ場合において、立体視画像を生成する場合には、処理負荷が軽減されて有効である。
【０１６５】
５．４  加工処理の例
本実施形態では、第１のレンダリングパイプラインＲＰ１によって生成された左眼用画像（第１の画像）を加工する処理を行い、第２のレンダリングパイプラインＲＰ２によって生成された右眼用画像（第２の画像）を加工する処理を行い、加工された第１、第２の画像に基づいて、立体視画像を生成する処理を行うようにしてもよい。
【０１６６】
例えば、第１のレンダリングパイプラインＲＰ１によって生成された左眼用画像を第１のテクスチャバッファ１７８ａに格納し、第２のレンダリングパイプラインＲＰ２によって生成された右眼用画像を第２のテクスチャバッファ１７８ｂに格納する。
【０１６７】
そして、各テクスチャバッファ１７８ａ、１７８ｂに格納されたテクスチャ画像それぞれに対して、独立したエフェクト処理などの特殊な加工処理を施す。このようにすれば、処理負荷を軽減しながら、右眼用画像、左眼用画像で異なるような加工処理を施すことが適切である場合には、違和感の少なく、意図した光沢感を適度に保った立体視画像を生成することができる。
【０１６８】
５．５  特定バッファに奥行き情報を記憶させる例
本実施形態では、スクリーンに対応する特定バッファの各画素に、左眼用仮想カメラ（第１の仮想カメラ）ＶＣＬに対して最前面にあるプリミティブの奥行き情報（「プリミティブの情報」の一例）を記憶させる処理を行うようにしてもよい。特定バッファ１７５に記憶される奥行き情報（左眼用視点座標系でのＺ値）は、第１のＺバッファ１７９ａの奥行き情報と一致する内容となる。なお、第１のＺバッファ１７９ａを、特定バッファの一例として使用してもよい。奥行き情報は、仮想３次元空間の位置座標よりもデータ量が少ないので、記憶容量を節約することができるからである。
【０１６９】
そして、特定バッファに奥行き情報を記憶した場合には、右眼用画像のピクセル処理前に、右眼用画像（第２の画像）の画素毎に、プリミティブの仮想３次元空間の位置座標と、左眼用仮想カメラＶＣＬ及び右眼用仮想カメラＶＣＲの仮想カメラ情報及び特定バッファの画素の奥行き情報（Ｚ値）に基づき算出された仮想３次元空間の位置座標と、を比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行う。
【０１７０】
例えば、「左眼用仮想カメラＶＣＬの視点３０Ｌ及び右眼用仮想カメラＶＣＲの視点３０Ｒ」及び、特定バッファに記憶された各画素の奥行き情報（Ｚ値）に基づき、左眼用仮想カメラＶＣＬに対して最前面にあるプリミティブのワールド座標値Ｗｐ（Ｗｘ、Ｗｙ、Ｗｚ）を求める。そして、右眼用画像の処理対象の画素のワールド座標値と、求めたワールド座標値Ｗｐ（左眼用仮想カメラＶＣＬに対して最前面にあるプリミティブのワールド座標値Ｗｐ）とを比較し、左眼用画像から流用できる画素の色情報が存在するか否かを判定する。この方法では、記憶容量が少なくてすむ代わりに、計算負荷は増えるので、計算負荷よりも記憶容量の方を削減したい場合に用いると良い。
【０１７１】
６．サーバ
また、本実施形態では、クライアント・サーバ方式のサーバ２０に適用してもよい。つまり、サーバ２０が、画像生成装置１０（端末）で行う一部の処理（例えば、処理部１００の少なくとも１つの処理）を行うようにしてもよい。
【０１７２】
例えば、サーバ２０が、ネットワーク（例えば、インターネット）を介して複数の画像生成装置１０Ａ〜１０Ｃと接続され、サーバ２０が、画像生成装置１０から入力情報を受信する。そして、サーバ２０が、受信した第１、第２、第３の入力情報に基づいて画像を生成し、生成した画像を画像生成装置１０に送信してもよい。
【０１７３】
図１６は、サーバ２０の機能ブロック図の例を示す。なお本実施形態のサーバ２０は図１６の構成要素（各部）の一部を省略した構成としてもよい。
【０１７４】
記憶部２７０は、処理部２００や通信部２９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。そして、本実施形態の記憶部２７０は、ワーク領域として使用される主記憶部２７２と、画像が記憶されるフレームバッファ２７４と、特定バッファ２７５（例えば、ステンシルバッファ）、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部２７６と、各オブジェクトデータ用のテクスチャが記憶されるテクスチャ記憶部２７８と、オブジェクトの画像の生成処理時にＺ値が記憶されるＺバッファ２７９とを含む。なお、これらの一部を省略する構成としてもよい。
【０１７５】
なお、フレームバッファ２７４は、第１のフレームバッファ２７４ａ（左眼用フレームバッファ）と、第２のフレームバッファ２７４ｂ（右眼用フレームバッファ）とを含む。また、テクスチャ記憶部１７８は、第１のテクスチャバッファ２７８ａ（左眼用テクスチャバッファ）と、第２のテクスチャバッファ２７８ｂ（右眼用テクスチャバッファ）とを含む。また、Ｚバッファ１７９は、第１のＺバッファ２７９ａ（左眼用Ｚバッファ）と、第２のＺバッファ２７９ｂ（右眼用Ｚバッファ）とを含む。
【０１７６】
情報記憶媒体２８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部２００は、情報記憶媒体２８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体２８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【０１７７】
通信部２９６は外部（例えば画像生成装置１０、他のサーバ）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【０１７８】
なお、他のサーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体２８０や記憶部２７０に記憶してもよい。このようにプログラムやデータを受信して画像生成装置１０を機能させる場合も本発明の範囲内に含む。
【０１７９】
処理部２００（プロセッサ）は、受信したデータやプログラムなどに基づいて、ゲーム処理、画像生成処理、音処理などの処理を行う。
【０１８０】
この処理部２００は記憶部２７０内の主記憶部２７１をワーク領域として各種処理を行う。処理部２００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【０１８１】
処理部２００は、オブジェクト空間設定部２１０、移動・動作処理部２１２、仮想カメラ制御部２１８、通信制御部２１９、画像生成部２２０、音生成部２３０を含む。
【０１８２】
オブジェクト空間設定部２１０は、オブジェクト（キャラクタ、移動体）、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）を仮想３次元空間（オブジェクト空間）に配置設定する処理を行う。例えば、オブジェクト空間設定部２１０は、画像生成装置１０のオブジェクト空間設定部１１０と同様な処理を行う。
【０１８３】
移動・動作処理部２１２は、オブジェクト（移動体、キャラクタ等）の移動・動作演算（移動・動作シミュレーション）を行う。移動・動作処理部２１２は、画像生成装置１０からネットワークを介して受信した操作データ等に基づき、当該オブジェクトの移動・動作演算を行うようにしてもよい。例えば、移動・動作処理部２１２は、画像生成装置１０の移動・動作処理部１１２と同様な処理を行う。
【０１８４】
仮想カメラ制御部２１８は、仮想３次元空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。例えば、仮想カメラ制御部２１８は、画像生成装置１０の仮想カメラ制御部１１８と同様な処理を行う。
【０１８５】
通信制御部２１９は、画像生成装置１０又は他のサーバ２０とネットワークを介して相互にデータを送受信する処理を行う。
【０１８６】
なお、本実施形態のサーバ２０は、通信制御で必要となるネットワーク情報を画像生成装置１０に送信してもよい。なお、例えば、サーバ２０は、各端末に個別に付与される端末の識別情報と、端末の識別情報に対応付けられたパケットの送信先を指定する宛先情報を管理する。
【０１８７】
サーバ２０の通信制御部２１９は、画像生成装置１０に送信するパケットを生成する処理、パケット送信先の端末のＩＰアドレスやポート番号を指定する処理、受信したパケットに含まれるデータを記憶部２７０に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する制御処理等を行う。
【０１８８】
また、本実施形態の通信制御部２１９は、端末と接続が確立されてから接続が切断されるまで、データを所定周期（例えば、１秒周期で）互いに送受信する処理を行う。ここで、画像生成装置１０から送信されるデータは、画像生成装置１０の操作部１６０からの操作情報としてもよいし、各画像生成装置１０の操作対象のオブジェクト（キャラクタ、移動体）の位置情報、移動情報としてもよい。
【０１８９】
また、本実施形態の通信制御部２１９は、画像生成装置１０から送信されたパケットを受信すると、受信したパケットを解析し、パケットに含まれる他の端末の操作対象のオブジェクトの位置情報などのデータを主記憶部２７２に記憶する処理を行う。
【０１９０】
また、本実施形態の通信制御部２１９は、第１〜第Ｎの仮想カメラに基づき生成された各画像の画像データ（例えば、２眼式の場合、第１の画像データ、第２の画像データ）、或いは、立体視画像データを、ネットワークを介して、画像生成装置１０に送信するようにしてもよい。
【０１９１】
画像生成部２２０は、処理部２００で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成する。画像生成部２２０の処理は、画像生成装置１０の画像生成部１２０と同様な処理を行う。
【０１９２】
特に本実施形態の画像生成部２２０は、第１の画像生成部２２４と第２の画像生成部２２６、立体視画像生成部２２８とを含む。
【０１９３】
第１の画像生成部２２４は、画像生成装置１０の第１の画像生成部１２４と同様な処理を行う。
【０１９４】
例えば、第１の画像生成部２２４（左眼用画像生成部）は、仮想３次元空間（ワールド座標系、オブジェクト空間）において、第１の仮想カメラ（左眼用仮想カメラＶＣＬ）から見える第１の画像（左眼用画像）の各画素の画像情報（色情報、法線情報、深度情報、半透明情報の少なくとも１つ）を、第１のバッファ（例えば、第１のフレームバッファ２７４ａ、第１のテクスチャバッファ２７８ａ、第１のＺバッファ２７９ａ）に記憶させる処理を行う。
【０１９５】
特に本実施形態の第１の画像生成部２２４は、仮想３次元空間において第１の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第１の画像を生成する処理を行う。
【０１９６】
また、第１の画像生成部２２４は、スクリーンに対応する特定バッファ２７５（例えば、ステンシルバッファ）の各画素に、第１の仮想カメラに対して最前面にあるプリミティブの情報を記憶させる処理を行う。
【０１９７】
また、第１の画像生成部２２４は、第１の画像を加工する処理を行う。例えば、第１の画像第１のテクスチャバッファ２７８ａに格納し、エフェクト処理等を行った最終的な画像を、第１のフレームバッファ２７４ａに格納するようにしてもよい。
【０１９８】
第２の画像生成部２２６は、画像生成装置１０の第２の画像生成部１２６と同様な処理を行う。
【０１９９】
つまり、第２の画像生成部２２６（右眼用画像生成部）は、仮想３次元空間において、第２の仮想カメラ（右眼用仮想カメラＶＣＲ）から見える第２の画像（右眼用画像）の各画素の画像情報を、第２のバッファ（例えば、第２のフレームバッファ２７４ａ、第２のテクスチャバッファ２７８ｂ、第２のＺバッファ２７９ｂ）に記憶させる処理を行う。
【０２００】
特に本実施形態の第２の画像生成部２２６は、仮想３次元空間において第２の仮想カメラに基づきプリミティブをスクリーンに透視投影変換する頂点処理と、各画素の画像情報を求めるピクセル処理と、を行うことによって、第２の画像を生成する処理を行う。
【０２０１】
また、第２の画像生成部２２６は、ピクセル処理前に、第２の画像の画素毎に、プリミティブの情報と特定バッファの画素のプリミティブの情報とを比較する処理を行うことによって、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、第１の画像から流用可能な画素の画像情報が存在する場合に、ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行う。
【０２０２】
例えば、第２の画像生成部２２６は、プリミティブの識別情報と特定バッファの画素のプリミティブの識別情報とが同じ場合に、第１の画像から流用可能な画素の画像情報が存在すると判定する処理を行い、特定バッファの当該画素に対応する第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行う。また、第２の画像生成部２２６は、プリミティブの仮想３次元空間の位置座標と特定バッファの画素のプリミティブの仮想３次元空間の位置座標とが同じ場合に、第１の画像から流用可能な画素の画像情報が存在すると判定する処理を行い、特定バッファの当該画素に対応する第１の画像の当該画素の画像情報を、第２の画像の画素の画像情報に流用する処理を行う。
【０２０３】
また、第２の画像生成部２２６は、第２の画像の画素毎に、第１の仮想カメラ及び第２の仮想カメラの仮想カメラ情報及び第２の画像の画素の奥行き情報に基づいて、特定バッファの探索領域を決定し、プリミティブの識別情報と探索領域内の画素のプリミティブの識別情報とを比較する処理、及び、プリミティブの仮想３次元空間の位置座標と探索領域内の画素のプリミティブの仮想３次元空間の位置座標とを比較する処理、の少なくとも一方を行う。探索領域は、画像生成装置１０の第２の画像生成部１２６と同様な処理で決定すればよい。
【０２０４】
なお、立体視画像生成部２２８が、第１〜第Ｎ（Ｎ≧３）の仮想カメラに基づいて、立体視画像を生成する場合には、第２の画像生成部２２６は、第２〜第Ｎの各画像において、画素毎に、第１の画像から流用可能な画素の画像情報が存在するか否かを判定する処理を行い、第１の画像から流用可能な画素の画像情報が存在する場合に、ピクセル処理の替わりに、第１の画像の当該画素の画像情報を、画像の画素の画像情報とする処理を行う。
【０２０５】
また、第２の画像生成部２２６は、第２の画像を加工する処理を行う。例えば、第２の画像第２のテクスチャバッファ２７８ｂに格納し、エフェクト処理等を行った最終的な画像を、第２のフレームバッファ２７４ｂに格納するようにしてもよい。
【０２０６】
立体視画像生成部２２８は、第１の画像と第２の画像とに基づいて、立体視画像を生成する処理を行う。立体視画像生成部２２８は、立体視画像生成部１２８と同様な処理を行う。
【０２０７】
音生成部２３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行う。
【０２０８】
７．その他
本発明は、家庭用ゲームシステム、業務用ゲームシステム等の種々のゲームシステムの立体視画像の生成処理に適用できる。
【０２０９】
なお、本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０２１０】
本発明は、実施の形態で説明した構成と実質的に同一の構成（例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成）を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。なお、本実施形態で説明した実施例は、自由に組み合わせることができる。
【符号の説明】
【０２１１】
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、
１１８  仮想カメラ制御部、１１９  通信制御部、１２０  画像生成部、
１２４  第１の画像生成部、１２６  第２の画像生成部、１２８  立体視画像生成部、
１３０  音生成部、１６０  操作部、１７０  記憶部、１７２  主記憶部、
１７４  フレームバッファ、１７４ａ  第１のフレームバッファ、
１７４ｂ  第２のフレームバッファ、１７５  特定バッファ、
１７６  オブジェクトデータ記憶部、１７８  テクスチャ記憶部、
１７８ａ  第１のテクスチャバッファ、１７８ｂ  第２のテクスチャバッファ、
１７９  Ｚバッファ、１７９ａ  第１のＺバッファ、１７９ｂ  第２のＺバッファ、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、１９６  通信部、
２００  処理部、２１０  オブジェクト空間設定部、２１２  移動・動作処理部、
２１８  仮想カメラ制御部、２１９  通信制御部、２２０  画像生成部、
２２４  第１の画像生成部、２２６  第２の画像生成部、２２８  立体視画像生成部、
２３０  音生成部、２７０  記憶部、２７２  主記憶部、
２７４  フレームバッファ、２７４ａ  第１のフレームバッファ、
２７４ｂ  第２のフレームバッファ、２７５  特定バッファ、
２７６  オブジェクトデータ記憶部、２７８  テクスチャ記憶部、
２７８ａ  第１のテクスチャバッファ、２７８ｂ  第２のテクスチャバッファ、
２７９  Ｚバッファ、２７９ａ  第１のＺバッファ、２７９ｂ  第２のＺバッファ、
２８０  情報記憶媒体、２９６  通信部、
１０  端末、２０  サーバ、４０  スクリーン
【図１】
2013061898.tif 000003
【図２】
2013061898.tif 000004
【図３】
2013061898.tif 000005
【図４】
2013061898.tif 000006
【図５】
2013061898.tif 000007
【図６】
2013061898.tif 000008
【図７】
2013061898.tif 000009
【図８】
2013061898.tif 000010
【図９】
2013061898.tif 000011
【図１０】
2013061898.tif 000012
【図１１】
2013061898.tif 000013
【図１２】
2013061898.tif 000014
【図１３】
2013061898.tif 000015
【図１４】
2013061898.tif 000016
【図１５】
2013061898.tif 000017
【図１６】
2013061898.tif 000018