"右目用の実カメラ撮像部および左目用の実カメラ撮像部からの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示プログラムであって、コンピュータを、前記2つの実カメラ撮像部からそれぞれ出力される2つの実世界画像データのそれぞれについて、当該各実世界画像データ内の所定の撮像対象を認識することにより、前記2つの実カメラ撮像部と当該撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報をそれぞれ算出する位置姿勢算出手段、前記位置姿勢算出手段によって算出された2つの位置姿勢情報を統合して、単一の位置姿勢情報を算出する位置姿勢統合手段、前記位置姿勢統合手段によって統合された単一の前記位置姿勢情報に基づいて、所定の仮想空間における右目用の仮想画像を生成するための右仮想カメラおよび左目用の仮想画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する仮想カメラ設定手段、前記右仮想カメラから見た前記仮想空間を示す右仮想空間画像を生成する右仮想空間画像生成手段、前記左仮想カメラから見た前記仮想空間を示す左仮想空間画像を生成する左仮想空間画像生成手段、および、前記右目用の実カメラ撮像部から出力される実世界画像データに前記右仮想空間画像を合成し、かつ、前記左目用の実カメラ撮像部から出力される実世界画像データに前記左仮想空間画像を合成して、前記立体表示装置に立体視のための画像を出力する表示制御手段として機能させる、画像表示プログラム。前記仮想カメラ設定手段は、前記右仮想カメラと前記左仮想カメラとの間の相対姿勢の関係が、前記右目用の実カメラおよび前記左目用の実カメラとの間の設計上の相対姿勢の関係と同一になるように、前記右仮想カメラと前記左仮想カメラの位置および姿勢を決定する、請求項1に記載の画像表示プログラム。前記位置姿勢統合手段は、前記位置姿勢算出手段によって算出された右目用の実カメラ撮像部と前記撮像対象との相対的な姿勢の情報と、左目用の実カメラ撮像部と前記撮像対象との相対的な姿勢の情報を用いて、それらの姿勢の情報を統合した単一の姿勢を算出し、前記仮想カメラ設定手段は、前記位置姿勢統合手段によって統合された姿勢を前記右仮想カメラおよび左仮想カメラの姿勢として用いる、請求項1に記載の画像表示プログラム。前記位置姿勢統合手段は、前記位置姿勢算出手段によって算出された右目用の実カメラ撮像部と前記撮像対象との相対的な位置の情報と、左目用の実カメラ撮像部と前記撮像対象との相対的な位置の位置を用いて、それらの位置の情報を統合した単一の位置を算出し、前記仮想カメラ設定手段は、前記位置姿勢統合手段によって統合された位置から対称な位置に前記右仮想カメラおよび左仮想カメラの位置を設定する、請求項1に記載の画像表示プログラム。前記位置姿勢統合手段は、前記位置姿勢算出手段によって算出された右目用の実カメラ撮像部と前記撮像対象との相対的な姿勢の情報と、左目用の実カメラ撮像部と前記撮像対象との相対的な姿勢の情報を用いて、それらの姿勢の情報を平均した姿勢を算出し、前記仮想カメラ設定手段は、前記位置姿勢統合手段によって平均された姿勢を前記右仮想カメラおよび左仮想カメラの姿勢として用いる、請求項1に記載の画像表示プログラム。前記位置姿勢統合手段は、前記位置姿勢算出手段によって算出された右目用の実カメラ撮像部と前記撮像対象との相対的な位置の情報と、左目用の実カメラ撮像部と前記撮像対象との相対的な位置の位置を用いて、それらの位置の中点を算出し、前記仮想カメラ設定手段は、前記位置姿勢統合手段によって算出された前記中点から対象な位置に前記右仮想カメラおよび左仮想カメラの位置を設定する、請求項1に記載の画像表示プログラム。前記コンピュータを、前記右仮想カメラと前記左仮想カメラの間の距離を決定する仮想カメラ間距離決定手段としてさらに機能させ、前記仮想カメラ設定手段は、前記位置姿勢統合手段によって統合された位置から前記仮想カメラ間距離決定手段によって決定された前記距離だけ対称に離れた位置に記右仮想カメラおよび左仮想カメラの位置を設定する、請求項4または6に記載の画像表示プログラム。前記仮想カメラ距離決定手段は、前記右目用の実カメラから出力される実世界画像データと前記左目用の実カメラから出力される実世界画像データの視差に基づいて前記右仮想カメラと前記左仮想カメラの間の距離を決定する、請求項4に記載の画像表示プログラム。前記仮想カメラ距離定手段は、前記位置姿勢算出手段によって算出された右目用の実カメラ撮像部と前記撮像対象との相対的な位置および姿勢の情報と、左目用の実カメラ撮像部と前記撮像対象との相対的な位置および姿勢の情報を用いて、前記右仮想カメラと前期左仮想カメラとの間の距離を算出する、請求項4または8に記載の画像表示プログラム。右目用の実カメラおよび左目用の実カメラからの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示装置であって、前記2つの実カメラ撮像部からそれぞれ出力される2つの実世界画像データのそれぞれについて、当該各実世界画像データ内の所定の撮像対象を認識することにより、前記2つの実カメラ撮像部と当該撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報をそれぞれ算出する位置姿勢算出手段、前記位置姿勢算出手段によって算出された2つの位置姿勢情報を統合して、単一の位置姿勢情報を算出する位置姿勢統合手段、前記位置姿勢統合手段によって統合された単一の前記位置姿勢情報に基づいて、所定の仮想空間における右目用の仮想画像を生成するための右仮想カメラおよび左目用の仮想画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する仮想カメラ設定手段、前記右仮想カメラから見た前記仮想空間を示す右仮想空間画像を生成する右仮想空間画像生成手段、前記左仮想カメラから見た前記仮想空間を示す左仮想空間画像を生成する左仮想空間画像生成手段、および、前記右目用の実カメラから出力される実世界画像データに前記右仮想空間画像を合成し、かつ、前記左目用の実カメラから出力される実世界画像データに前記左仮想空間画像を合成して、前記立体表示装置に立体視のための画像出力を行う表示制御手段を備える、画像表示装置。右目用の実カメラおよび左目用の実カメラからの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示システムであって、前記2つの実カメラ撮像部からそれぞれ出力される2つの実世界画像データのそれぞれについて、当該各実世界画像データ内の所定の撮像対象を認識することにより、前記2つの実カメラ撮像部と当該撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報をそれぞれ算出する位置姿勢算出手段、前記位置姿勢算出手段によって算出された2つの位置姿勢情報を統合して、単一の位置姿勢情報を算出する位置姿勢統合手段、前記位置姿勢統合手段によって統合された単一の前記位置姿勢情報に基づいて、所定の仮想空間における右目用の仮想画像を生成するための右仮想カメラおよび左目用の仮想画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する仮想カメラ設定手段、前記右仮想カメラから見た前記仮想空間を示す右仮想空間画像を生成する右仮想空間画像生成手段、前記左仮想カメラから見た前記仮想空間を示す左仮想空間画像を生成する左仮想空間画像生成手段、および、前記右目用の実カメラから出力される実世界画像データに前記右仮想空間画像を合成し、かつ、前記左目用の実カメラから出力される実世界画像データに前記左仮想空間画像を合成して、前記立体表示装置に立体視のための画像出力を行う表示制御手段を備える、画像表示システム。右目用の実カメラおよび左目用の実カメラからの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示方法であって、前記2つの実カメラ撮像部からそれぞれ出力される2つの実世界画像データのそれぞれについて、当該各実世界画像データ内の所定の撮像対象を認識することにより、前記2つの実カメラ撮像部と当該撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報をそれぞれ算出する位置姿勢算出ステップ、前記位置姿勢算出ステップにおいて算出された2つの位置姿勢情報を統合して、単一の位置姿勢情報を算出する位置姿勢統合ステップ、前記位置姿勢統合ステップによって統合された単一の前記位置姿勢情報に基づいて、所定の仮想空間における右目用の仮想画像を生成するための右仮想カメラおよび左目用の仮想画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する仮想カメラ設定ステップ、前記右仮想カメラから見た前記仮想空間を示す右仮想空間画像を生成する右仮想空間画像生成ステップ、前記左仮想カメラから見た前記仮想空間を示す左仮想空間画像を生成する左仮想空間画像生成ステップ、および、前記右目用の実カメラから出力される実世界画像データに前記右仮想空間画像を合成し、かつ、前記左目用の実カメラから出力される実世界画像データに前記左仮想空間画像を合成して、前記立体表示装置に立体視のための画像出力を行う表示制御ステップを備える、画像表示方法。しかしながら、カメラによって撮像された画像におけるマーカーの位置および姿勢に基づいて、実世界におけるマーカーとカメラとの相対位置及び相対姿勢を計算する場合、カメラによって撮像された画像がぼけている場合や、マーカー認識の精度が完璧でない場合には、計算結果に誤差が含まれてしまうことになる。したがって、特許文献1に開示されている立体表示装置において、右目カメラによって撮像された画像に基づいて計算された、マーカーに対する右目カメラの相対位置姿勢は、必ずしも正確ではなく、同様に、左目カメラによって撮像された画像に基づいて計算された、マーカーに対する左目カメラの相対位置姿勢も、必ずしも正確ではない。正確でない計算結果に基づいて生成された右目用の仮想オブジェクトの画像と左目用の仮想オブジェクトの画像は、互いに整合しない矛盾した画像となるため、ユーザは仮想オブジェクトを正常に立体視することができない。それ故、本発明の目的は、正常に立体視できるように仮想オブジェクトを表示することができる、画像表示プログラム、装置、システムおよび方法を提供することである。本発明は、上記の課題を解決するために、以下の構成を採用した。本発明の画像表示プログラムは、右目用の実カメラ撮像部および左目用の実カメラ撮像部からの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示プログラムであるコンピュータを、前記2つの実カメラ撮像部からそれぞれ出力される2つの実世界画像データのそれぞれについて、当該各実世界画像データ内の所定の撮像対象を認識することにより、前記2つの実カメラ撮像部と当該撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報をそれぞれ算出する位置姿勢算出手段、前記位置姿勢算出手段によって算出された2つの位置姿勢情報を統合して、単一の位置姿勢情報を算出する位置姿勢統合手段、前記位置姿勢統合手段によって統合された単一の前記位置姿勢情報に基づいて、所定の仮想空間における右目用の仮想画像を生成するための右仮想カメラおよび左目用の仮想画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する仮想カメラ設定手段、前記右仮想カメラから見た前記仮想空間を示す右仮想空間画像を生成する右仮想空間画像生成手段、前記左仮想カメラから見た前記仮想空間を示す左仮想空間画像を生成する左仮想空間画像生成手段、および、前記右目用の実カメラ撮像部から出力される実世界画像データに前記右仮想空間画像を合成し、かつ、前記左目用の実カメラ撮像部から出力される実世界画像データに前記左仮想空間画像を合成して、前記立体表示装置に立体視のための画像を出力する表示制御手段として機能させる。また、この発明では、前記仮想カメラ設定手段は、前記右仮想カメラと前記左仮想カメラとの間の相対姿勢の関係が、前記右目用の実カメラおよび前記左目用の実カメラとの間の設計上の相対姿勢の関係と同一になるように、前記右仮想カメラと前記左仮想カメラの位置および姿勢を決定するようにしてもよい。また、この発明では、前記位置姿勢統合手段は、前記位置姿勢算出手段によって算出された右目用の実カメラ撮像部と前記撮像対象との相対的な姿勢の情報と、左目用の実カメラ撮像部と前記撮像対象との相対的な姿勢の情報を用いて、それらの姿勢の情報を統合した単一の姿勢を算出し、前記仮想カメラ設定手段は、前記位置姿勢統合手段によって統合された姿勢を前記右仮想カメラおよび左仮想カメラの姿勢として用いるようにしてもよい。また、この発明では、前記位置姿勢統合手段は、前記位置姿勢算出手段によって算出された右目用の実カメラ撮像部と前記撮像対象との相対的な位置の情報と、左目用の実カメラ撮像部と前記撮像対象との相対的な位置の位置を用いて、それらの位置の情報を統合した単一の位置を算出し、前記仮想カメラ設定手段は、前記位置姿勢統合手段によって統合された位置から対称な位置に前記右仮想カメラおよび左仮想カメラの位置を設定するようにしてもよい。また、この発明では、前記位置姿勢統合手段は、前記位置姿勢算出手段によって算出された右目用の実カメラ撮像部と前記撮像対象との相対的な姿勢の情報と、左目用の実カメラ撮像部と前記撮像対象との相対的な姿勢の情報を用いて、それらの姿勢の情報を平均した姿勢を算出し、前記仮想カメラ設定手段は、前記位置姿勢統合手段によって平均された姿勢を前記右仮想カメラおよび左仮想カメラの姿勢として用いるようにしてもよい。また、この発明では、前記位置姿勢統合手段は、前記位置姿勢算出手段によって算出された右目用の実カメラ撮像部と前記撮像対象との相対的な位置の情報と、左目用の実カメラ撮像部と前記撮像対象との相対的な位置の位置を用いて、それらの位置の中点を算出し、前記仮想カメラ設定手段は、前記位置姿勢統合手段によって算出された前記中点から対象な位置に前記右仮想カメラおよび左仮想カメラの位置を設定するようにしてもよい。また、この発明では、前記コンピュータを、前記右仮想カメラと前記左仮想カメラの間の距離を決定する仮想カメラ間距離決定手段としてさらに機能させ、前記仮想カメラ設定手段は、前記位置姿勢統合手段によって統合された位置から前記仮想カメラ間距離決定手段によって決定された前記距離だけ対称に離れた位置に記右仮想カメラおよび左仮想カメラの位置を設定するようにしてもよい。また、この発明では、前記仮想カメラ距離決定手段は、前記右目用の実カメラから出力される実世界画像データと前記左目用の実カメラから出力される実世界画像データの視差に基づいて前記右仮想カメラと前記左仮想カメラの間の距離を決定するようにしてもよい。また、この発明では、前記仮想カメラ距離定手段は、前記位置姿勢算出手段によって算出された右目用の実カメラ撮像部と前記撮像対象との相対的な位置および姿勢の情報と、左目用の実カメラ撮像部と前記撮像対象との相対的な位置および姿勢の情報を用いて、前記右仮想カメラと前期左仮想カメラとの間の距離を算出するようにしてもよい。本発明の画像表示装置は、右目用の実カメラおよび左目用の実カメラからの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示装置である。前記2つの実カメラ撮像部からそれぞれ出力される2つの実世界画像データのそれぞれについて、当該各実世界画像データ内の所定の撮像対象を認識することにより、前記2つの実カメラ撮像部と当該撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報をそれぞれ算出する位置姿勢算出手段、前記位置姿勢算出手段によって算出された2つの位置姿勢情報を統合して、単一の位置姿勢情報を算出する位置姿勢統合手段、前記位置姿勢統合手段によって統合された単一の前記位置姿勢情報に基づいて、所定の仮想空間における右目用の仮想画像を生成するための右仮想カメラおよび左目用の仮想画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する仮想カメラ設定手段、前記右仮想カメラから見た前記仮想空間を示す右仮想空間画像を生成する右仮想空間画像生成手段、前記左仮想カメラから見た前記仮想空間を示す左仮想空間画像を生成する左仮想空間画像生成手段、および、前記右目用の実カメラから出力される実世界画像データに前記右仮想空間画像を合成し、かつ、前記左目用の実カメラから出力される実世界画像データに前記左仮想空間画像を合成して、前記立体表示装置に立体視のための画像出力を行う表示制御手段を備える。本発明の画像表示システムは、右目用の実カメラおよび左目用の実カメラからの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示システムである。前記2つの実カメラ撮像部からそれぞれ出力される2つの実世界画像データのそれぞれについて、当該各実世界画像データ内の所定の撮像対象を認識することにより、前記2つの実カメラ撮像部と当該撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報をそれぞれ算出する位置姿勢算出手段、前記位置姿勢算出手段によって算出された2つの位置姿勢情報を統合して、単一の位置姿勢情報を算出する位置姿勢統合手段、前記位置姿勢統合手段によって統合された単一の前記位置姿勢情報に基づいて、所定の仮想空間における右目用の仮想画像を生成するための右仮想カメラおよび左目用の仮想画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する仮想カメラ設定手段、前記右仮想カメラから見た前記仮想空間を示す右仮想空間画像を生成する右仮想空間画像生成手段、前記左仮想カメラから見た前記仮想空間を示す左仮想空間画像を生成する左仮想空間画像生成手段、および、前記右目用の実カメラから出力される実世界画像データに前記右仮想空間画像を合成し、かつ、前記左目用の実カメラから出力される実世界画像データに前記左仮想空間画像を合成して、前記立体表示装置に立体視のための画像出力を行う表示制御手段を備える。本発明の画像表示方法は、右目用の実カメラおよび左目用の実カメラからの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示方法である。前記2つの実カメラ撮像部からそれぞれ出力される2つの実世界画像データのそれぞれについて、当該各実世界画像データ内の所定の撮像対象を認識することにより、前記2つの実カメラ撮像部と当該撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報をそれぞれ算出する位置姿勢算出ステップ、前記位置姿勢算出ステップにおいて算出された2つの位置姿勢情報を統合して、単一の位置姿勢情報を算出する位置姿勢統合ステップ、前記位置姿勢統合ステップによって統合された単一の前記位置姿勢情報に基づいて、所定の仮想空間における右目用の仮想画像を生成するための右仮想カメラおよび左目用の仮想画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する仮想カメラ設定ステップ、前記右仮想カメラから見た前記仮想空間を示す右仮想空間画像を生成する右仮想空間画像生成ステップ、前記左仮想カメラから見た前記仮想空間を示す左仮想空間画像を生成する左仮想空間画像生成ステップ、および、前記右目用の実カメラから出力される実世界画像データに前記右仮想空間画像を合成し、かつ、前記左目用の実カメラから出力される実世界画像データに前記左仮想空間画像を合成して、前記立体表示装置に立体視のための画像出力を行う表示制御ステップを備える。本発明によれば、正常に立体視できるように仮想オブジェクトを表示することができる。ゲーム装置の構成以下、本発明の一実施形態に係るゲーム装置について説明する。図1~図3は、ゲーム装置10の外観を示す平面図である。ゲーム装置10は携帯型のゲーム装置であり、図1~図3に示すように折り畳み可能に構成されている。図1および図2は、開いた状態開状態におけるゲーム装置10を示し、図3は、閉じた状態閉状態におけるゲーム装置10を示している。図1は、開状態におけるゲーム装置10の正面図であり、図2は、開状態におけるゲーム装置10の右側面図である。ゲーム装置10は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバーや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。まず、図1~図3を参照して、ゲーム装置10の外観構成について説明する。図1~図3に示されるように、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能折り畳み可能に接続されている。本実施形態では、各ハウジング11および21はともに横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。図1および図2に示されるように、下側ハウジング11の上側長辺部分には、下側ハウジング11の内側面主面11Bに対して垂直な方向に突起する突起部11Aが設けられる。また、上側ハウジング21の下側長辺部分には、上側ハウジング21の下側面から当該下側面に垂直な方向に突起する突起部21Aが設けられる。下側ハウジング11の突起部11Aと上側ハウジング21の突起部21Aとが連結されることにより、下側ハウジング11と上側ハウジング21とが、折り畳み可能に接続される。下側ハウジングの説明まず、下側ハウジング11の構成について説明する。図1~図3に示すように、下側ハウジング11には、下側LCDLiquidCrystalDisplay:液晶表示装置12、タッチパネル13、各操作ボタン14A~14L図1、図3、アナログスティック15、LED16A~16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。下側LCD12は下側ハウジング11の中央に配置される。下側LCD12は、下側ハウジング11の内側面主面に設けられ、下側ハウジング11に設けられた開口部から当該下側LCD12の画面が露出される。ゲーム装置10を使用しない場合には閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、例えば、256dot×192dot横×縦であってもよい。下側LCD12は、後述する上側LCD22とは異なり、画像を立体視可能ではなく平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばELElectroLuminescence:電界発光を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度検出精度のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング11の上側面には挿入口17図1および図3dに示す点線が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。各操作ボタン14A~14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面主面には、各操作ボタン14A~14Lのうち、十字ボタン14A方向入力ボタン14A、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが、設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14B、ボタン14C、ボタン14D、ボタン14Eは、十字状に配置される。ボタン14A~14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B~14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。アナログスティック15は、方向を指示するデバイスであり、下側ハウジング11の内側面の下側LCD12より左側領域の上部領域に設けられる。図1に示すように、十字ボタン14Aは下側LCD12より左側領域の下部領域に設けられるので、アナログスティック15は、十字ボタン14Aの上方に設けられる。また、アナログスティック15、および、十字ボタン14Aは、下側ハウジングを把持した左手の親指で操作可能な位置に設計される。また、アナログスティック15を上部領域に設けたことにより、下側ハウジング11を把持する左手の親指が自然と位置するところにアナログスティック15が配され、十字ボタン14Aは、左手の親指を少し下にずらした位置に配される。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。十字状に配置される、ボタン14B、ボタン14C、ボタン14D、ボタン14Eの4つのボタンは、下側ハウジング11を把持する右手の親指が自然と位置するところに配置される。また、これらの4つのボタンと、アナログスティック15とは、下側LCD12を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの4つのボタンを使用して方向指示入力をすることも可能である。また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク図6参照が設けられ、当該マイクがゲーム装置10の外部の音を検出する。図3aは閉状態におけるゲーム装置10の左側面図であり、図3bは閉状態におけるゲーム装置10の正面図であり、図3cは閉状態におけるゲーム装置10の右側面図であり、図3dは閉状態におけるゲーム装置10の背面図である。図3bおよびdに示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14Gは、下側ハウジング11の上面の左端部に設けられ、Rボタン14Hは、下側ハウジング11の上面の右端部に設けられる。Lボタン14GおよびRボタン14Hは、例えば、撮像部のシャッターボタン撮影指示ボタンとして機能することができる。また、図3aに示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。図3aに示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ図示せずが設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶保存するために用いられる。なお、上記コネクタおよびそのカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。また、図3dに示されるように、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ図示せずが設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよびその挿入口11Dは、下側ハウジング11の他の側面例えば、右側面等に設けられてもよい。また、図1および図3cに示されるように、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第1LED16Bは、無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる図3c参照。なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面例えば、上側面に設けられた端子を介して当該電池を充電することができる。上側ハウジングの説明次に、上側ハウジング21の構成について説明する。図1~図3に示すように、上側ハウジング21には、上側LCDLiquidCrystalDisplay:液晶表示装置22、外側撮像部23外側撮像部左23aおよび外側撮像部右23b、内側撮像部24、3D調整スイッチ25、および、3Dインジケータ26が設けられる。以下、これらの詳細について説明する。図1に示すように、上側LCD22は上側ハウジング21に収納される。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、下側LCD12の画面の面積よりも大きく設定される。また、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される。上側LCD22の画面は、上側ハウジング21の内側面主面21Bに設けられ、上側ハウジング21に設けられた開口部から当該上側LCD22の画面が露出される。また、図2に示すように、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。当該スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、例えば、640dot×200dot横×縦であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばELElectroLuminescence:電界発光を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で例えば、1列ずつ横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式視差バリア方式のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像立体画像を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像立体視可能な画像を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する平面視画像を表示する平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。外側撮像部23は、上側ハウジング21の外側面上側LCD22が設けられた主面と反対側の背面21Dに設けられた2つの撮像部23aおよび23bの総称である。外側撮像部左23aと外側撮像部右23bの撮像方向は、いずれも当該外側面21Dの外向きの法線方向である。また、これらの撮像部はいずれも、上側LCD22の表示面内側面の法線方向と180度反対の方向に設計される。すなわち、外側撮像部左23aの撮像方向および外側撮像部右23bの撮像方向は、平行である。外側撮像部左23aと外側撮像部右23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、2つの外側撮像部23aおよび23bのいずれか一方を単独で用いて、外側撮像部23を非ステレオカメラとして使用することも可能である。また、プログラムによっては、2つの外側撮像部23aおよび23bで撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像をおこなうことも可能である。本実施形態では、外側撮像部23は、外側撮像部左23aおよび外側撮像部右23bの2つの撮像部で構成される。外側撮像部左23aおよび外側撮像部右23bは、それぞれ所定の共通の解像度を有する撮像素子例えば、CCDイメージセンサやCMOSイメージセンサ等と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。図1の破線および図3bの実線で示されるように、外側撮像部23を構成する外側撮像部左23aおよび外側撮像部右23bは、上側LCD22の画面の横方向と平行に並べられて配置される。すなわち、2つの撮像部を結んだ直線が上側LCD22の画面の横方向と平行になるように、外側撮像部左23aおよび外側撮像部右23bが配置される。図1の破線で示す23aおよび23bは、上側ハウジング21の内側面とは反対側の外側面に存在する外側撮像部左23aおよび外側撮像部右23bをそれぞれ表している。図1に示すように、ユーザが上側LCD22の画面を正面から視認した場合に、外側撮像部左23aは左側に外側撮像部右23bは右側にそれぞれ位置している。外側撮像部23をステレオカメラとして機能させるプログラムが実行されている場合、外側撮像部左23aは、ユーザの左目で視認される左目用画像を撮像し、外側撮像部右23bは、ユーザの右目で視認される右目用画像を撮像する。外側撮像部左23aおよび外側撮像部右23bの間隔は、人間の両目の間隔程度に設定され、例えば、30mm~70mmの範囲で設定されてもよい。なお、外側撮像部左23aおよび外側撮像部右23bの間隔は、この範囲に限らない。なお、本実施例においては、外側撮像部左23aおよび外側撮像部右23はハウジングに固定されており、撮像方向を変更することはできない。また、外側撮像部左23aおよび外側撮像部右23bは、上側LCD22上側ハウジング21の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側撮像部左23aおよび外側撮像部右23bは、上側LCD22を左右に2等分する線に対して対称の位置にそれぞれ配置される。また、外側撮像部左23aおよび外側撮像部右23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側撮像部左23aおよび外側撮像部右23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。このように、外側撮像部23の2つの撮像部23aおよび23bが、上側LCD22の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側LCD22を正視した場合に、外側撮像部23の撮像方向をユーザの視線方向と一致させることができる。また、外側撮像部23は、上側LCD22の画面の上端より上方の裏側の位置に配置されるため、外側撮像部23と上側LCD22とが上側ハウジング21の内部で干渉することがない。従って、外側撮像部23を上側LCD22の画面の裏側に配置する場合と比べて、上側ハウジング21を薄く構成することが可能となる。内側撮像部24は、上側ハウジング21の内側面主面21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子例えば、CCDイメージセンサやCMOSイメージセンサ等と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。図1に示すように、内側撮像部24は、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方に配置され、上側ハウジング21の左右方向に関して中央の位置上側ハウジング21上側LCD22の画面を左右に2等分する線の線上に配置される。具体的には、図1および図3bに示されるように、内側撮像部24は、上側ハウジング21の内側面であって、外側撮像部23の左右の撮像部外側撮像部左23aおよび外側撮像部右23bの中間の裏側の位置に配置される。すなわち、上側ハウジング21の外側面に設けられた外側撮像部23の左右の撮像部を上側ハウジング21の内側面に投影した場合、当該投影した左右の撮像部の中間に、内側撮像部24が設けられる。図3bで示される破線24は、上側ハウジング21の内側面に存在する内側撮像部24を表している。このように、内側撮像部24は、外側撮像部23とは反対方向を撮像する。内側撮像部24は、上側ハウジング21の内側面であって、外側撮像部23の左右の撮像部の中間位置の裏側に設けられる。これにより、ユーザが上側LCD22を正視した際、内側撮像部24でユーザの顔を正面から撮像することができる。また、外側撮像部23の左右の撮像部と内側撮像部24とが上側ハウジング21の内部で干渉することがないため、上側ハウジング21を薄く構成することが可能となる。3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像立体画像の立体感を調整するために用いられる。図1~図3に示されるように、3D調整スイッチ25は、上側ハウジング21の内側面および右側面の端部に設けられ、ユーザが上側LCD22を正視した場合に、当該3D調整スイッチ25を視認できる位置に設けられる。また、3D調整スイッチ25の操作部は、内側面および右側面の両方に突出しており、どちらからも視認および操作することができる。なお、3D調整スイッチ25以外のスイッチは全て下側ハウジング11に設けられる。図4は、図1に示す上側ハウジング21のA-A’線断面図である。図4に示すように、上側ハウジング21の内側面の右端部には、凹部21Cが形成され、当該凹部21Cに3D調整スイッチ25が設けられる。3D調整スイッチ25は、図1および図2に示されるように、上側ハウジング21の正面および右側面から視認可能に配置される。3D調整スイッチ25のスライダ25aは、所定方向上下方向の任意の位置にスライド可能であり、当該スライダ25aの位置に応じて上側LCD22の表示モードが設定される。図5Aから図5Cは、3D調整スイッチ25のスライダ25aがスライドする様子を示す図である。図5Aは、3D調整スイッチ25のスライダ25aが最下点第3の位置に存在する様子を示す図である。図5Bは、3D調整スイッチ25のスライダ25aが最下点よりも上方位置第1の位置に存在する様子を示す図である。図5Cは、3D調整スイッチ25のスライダ25aが最上点第2の位置に存在する様子を示す図である。図5Aに示すように、3D調整スイッチ25のスライダ25aが最下点位置第3の位置に存在する場合、上側LCD22は平面表示モードに設定され、上側LCD22の画面には平面画像が表示されるなお、上側LCD22を立体表示モードのままとして、左目用画像と右目用画像を同一の画像とすることにより平面表示してもよい。一方、図5Bに示す位置最下点より上側の位置第1の位置から図5Cに示す位置最上点の位置第2の位置までの間にスライダ25aが存在する場合、上側LCD22は立体表示モードに設定される。この場合、上側LCD22の画面には立体視可能な画像が表示される。スライダ25aが第1の位置から第2の位置の間に存在する場合、スライダ25aの位置に応じて、立体画像の見え方が調整される。具体的には、スライダ25aの位置に応じて、右目用画像および左目用画像の横方向の位置のずれ量が調整される。3D調整スイッチ25のスライダ25aは、第3の位置で固定されるように構成されており、第1の位置と第2の位置との間では上下方向に任意の位置にスライド可能に構成されている。例えば、スライダ25aは、第3の位置において、3D調整スイッチ25を形成する側面から図5Aに示す横方向に突出した凸部図示せずによって固定されて、所定以上の力が上方に加わらないと第3の位置よりも上方にスライドしないように構成されている。第3の位置から第1の位置にスライダ25aが存在する場合、立体画像の見え方は調整されないが、これはいわゆるあそびである。他の例においては、あそびをなくして、第3の位置と第1の位置とを同じ位置としてもよい。また、第3の位置を第1の位置と第2の位置の間としてもよい。その場合、スライダを第3の位置から第1の位置の方向に動かした場合と、第2の方向に動かした場合とで、右目用画像および左目用画像の横方向の位置のずれ量の調整する方向が逆になる。3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。なお、3Dインジケータ26は、上側LCD22が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているときすなわち、3D調整スイッチが上記第1の位置から上記第2の位置にあるときに、左目用画像と右目用画像が異なるような画像処理が実行されているときに限り、点灯するようにしてもよい。図1に示されるように、3Dインジケータ26は、上側ハウジング21の内側面に設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。従って、ユーザは上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。ゲーム装置10の内部構成次に、図6を参照して、ゲーム装置10の内部の電気的構成について説明する。図6は、ゲーム装置10の内部構成を示すブロック図である。図6に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス外部メモリI/F33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロックRTC38、加速度センサ39、電源回路40、およびインターフェイス回路I/F回路41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11または上側ハウジング21でもよい内に収納される。情報処理部31は、所定のプログラムを実行するためのCPUCentralProcessingUnit311、画像処理を行うGPUGraphicsProcessingUnit312等を含む情報処理手段である。情報処理部31のCPU311は、ゲーム装置10内のメモリ例えば外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35に記憶されているプログラムを実行することによって、当該プログラムに応じた処理例えば、撮影処理や、後述する画像表示処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAMVideoRAM313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22及び/又は下側LCD12に出力し、上側LCD22及び/又は下側LCD12に当該画像が表示される。情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、および、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。メインメモリ32は、情報処理部31のCPU311のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部外部メモリ44や他の機器等から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAMPseudo-SRAMを用いる。外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ44は、例えば読み取り専用の半導体メモリで構成される。外部メモリ44が外部メモリI/F33に接続されると、情報処理部31は外部メモリ44に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ例えばNAND型フラッシュメモリで構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ45には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ45がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ45に記憶された画像を読み込み、上側LCD22及び/又は下側LCD12に当該画像を表示することができる。データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ例えばNAND型フラッシュメモリで構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式例えば独自プロトコルによる通信や、赤外線通信により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。また、情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸xyz軸方向に沿った直線方向の加速度直線加速度の大きさを検出する。加速度センサ39は、下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面主面に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸又は2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ加速度データを受信して、ゲーム装置10の姿勢や動きを検出することができる。また、情報処理部31には、RTC38および電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻日付を計算する。電源回路40は、ゲーム装置10が有する電源下側ハウジング11に収納される上記充電式電池からの電力を制御し、ゲーム装置10の各部品に電力を供給する。また、情報処理部31には、I/F回路41が接続される。I/F回路41には、マイク42およびスピーカ43が接続される。具体的には、I/F回路41には、図示しないアンプを介してスピーカ43が接続される。マイク42は、ユーザの音声を検知して音声信号をI/F回路41に出力する。アンプは、I/F回路41からの音声信号を増幅し、音声をスピーカ43から出力させる。また、タッチパネル13はI/F回路41に接続される。I/F回路41は、マイク42およびスピーカ43アンプの制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。操作ボタン14は、上記各操作ボタン14A~14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A~14Iに対する入力状況押下されたか否かを示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。下側LCD12および上側LCD22は情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31のGPU312の指示に従って画像を表示する。本実施形態では、情報処理部31は、上側LCD22に立体画像立体視可能な画像を表示させる。具体的には、情報処理部31は、上側LCD22のLCDコントローラ図示せずと接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。以上がゲーム装置10の内部構成の説明である。ゲーム装置10の動作の概要以下、本実施形態におけるゲーム装置10の動作の概要について説明する。本実施形態では、画像表示プログラムに基づいて、外側撮像部23外側撮像部左23a、外側撮像部右23bによって現在撮像されている実世界の画像と、3次元の仮想空間に存在する仮想オブジェクトの画像とを合成した合成画像が、上側LCD22の画面に立体視可能に表示される。実世界画像の立体視表示外側撮像部23で撮影された2つの撮影画像は所定の視差を有するように上側LCDに供給されて立体視表示される。図7は、外側撮像部23によって3つのボール60a~60c実オブジェクトが撮像されているときに上側LCD22の画面に表示される立体画像の一例を示している。外側撮像部23によって3つのボール60a~60cが撮像されると、上側LCD22には、これらのボール60a~60cが立体視可能に表示される。図7に示されるように、上側LCD22の画面上では、外側撮像部23に最も近いボール60aが最も手前に位置するようにユーザに視認され、外側撮像部23から最も遠いボール60cが最も遠くに位置するようにユーザに視認される。なお、図7では、理解を容易にするために、上側LCD22の画面からボールをはみ出して図示しているが、実際にはボールは画面内に表示される。後述の図8や図10についても同様である。なお、図7では、後述するマーカー61図8参照が外側撮像部23によって撮像されていないため、上側LCD22の画面には仮想オブジェクトは表示されていない。また、図7、図8、図10等においては、表示対象が飛び出ているように視認される様子を図示しているが、立体視可能に表示する、と言った場合、必ずしも飛び出し方向に視認される場合のみでなく、画面より奥側に、奥行きを持って表示される場合も含む。実世界画像およびCG画像の立体視表示図8は、外側撮像部23によってマーカー61実オブジェクトが撮像されているときに上側LCD22の画面に表示される立体画像の一例を示している。図8に示すように、マーカー61には、矢印を含む正方形が描かれており、CPU311は、外側撮像部23から取得される画像に対して例えばパターンマッチング等の画像処理を行うことによって、当該画像にマーカーが含まれているか否かを判定することができる。外側撮像部23によってマーカー61が撮像されているときには、上側LCD22には、実世界画像としてマーカー61が立体視可能に表示されるとともに、マーカー61の位置に仮想オブジェクト62例えば犬を模した仮想オブジェクトが立体視可能に合成表示される。なお、図9に示すように、マーカー61には向き前方向、右方向、上方向が定義されており、マーカー61の姿勢に応じた姿勢で仮想オブジェクトを配置することができる。例えば、仮想オブジェクト62の前方向がマーカー61の前方向と一致するように、マーカー61の上に仮想オブジェクト62を配置することが可能である。図10は、外側撮像部23によってマーカー61が撮像されているときに上側LCD22の画面に表示される立体画像の他の一例を示している。このように、ユーザーがゲーム装置10を移動させることによって、上側LCD22の画面に表示されるマーカー61の位置および向きが変化すると、それに追従するように、仮想オブジェクト62の位置および向きが変化する。よって、ユーザーには仮想オブジェクト62があたかも実世界に本当に存在しているかのように見える。以下、図11~図40を参照して、ゲーム装置10において画像表示プログラムに基づいて実行される画像表示処理の詳細について説明する。メモリマップまず、画像表示処理の際にメインメモリ32に記憶される主なデータについて説明する。図11は、ゲーム装置10のメインメモリ32のメモリマップを示す図である。図11に示されるように、メインメモリ32には、画像表示プログラム70、最新左実世界画像71L、最新右実世界画像71R、表示用左実世界画像72L、表示用右実世界画像72R、立体視ゼロ距離73、仮想オブジェクト情報74、左変換行列75L、右変換行列75R、左ビュー行列76L、右ビュー行列76R、左射影行列77L、右射影行列77R、表示モード78、マーカー認識モード79、メイン実世界画像識別情報80、各種変数81等が記憶される。画像表示プログラム70は、CPU311に上記画像表示処理を実行させるためのプログラムである。最新左実世界画像71Lは、外側撮像部左23aによって撮像された最新の画像である。最新右実世界画像71Rは、外側撮像部右23bによって撮像された最新の画像である。表示用左実世界画像72Lは、外側撮像部左23aによって撮像された画像のうち、上側LCD22に表示されることが決定された最新の画像である。表示用右実世界画像72Rは、外側撮像部右23bによって撮像された画像のうち、上側LCD22に表示されることが決定された最新の画像である。立体視ゼロ距離73は、外側撮像部23から撮影方向にどれだけの距離だけ離れた物体が、上側LCD22の画面に立体表示されたときに上側LCD22の画面と同じ奥行き位置にあるように視認されるかを示す変数であり、例えば、センチメートルの単位で表される。本実施形態では、立体視ゼロ距離73は25cmで固定とするが、これは単なる一例に過ぎず、ユーザーの指示に応じて、またはコンピュータによって自動的に、立体視ゼロ距離73を随時変更するようにしても構わない。立体視ゼロ距離73は、マーカー61からの距離や、外側撮像部23とマーカー61の間の距離における比で指定しても構わない。また、必ずしも現実空間の距離として指定せず、仮想空間における距離で指定してもよい。マーカー61のサイズが既知のときなどには、実世界における長さの単位と仮想空間における長さの単位とを一致させることができる。このように両者の単位を一致させることができる場合には、立体視ゼロ距離73を実世界における長さの単位で設定できる。しかしながら、両者の単位を一致させることができない場合には、立体視ゼロ距離73を仮想空間における長さの単位で設定してもよい。なお、後述の通り、本実施形態においては、マーカー61のサイズを用いずに、実世界における長さの単位と仮想空間における長さの単位とを一致させることができる。仮想オブジェクト情報74は、前述の仮想オブジェクト62に関連する情報であって、仮想オブジェクト62の形状を表す3Dモデルデータポリゴンデータや、仮想オブジェクト62の模様を表すテクスチャデータや、仮想空間における仮想オブジェクト62の位置や姿勢の情報などを含む。左変換行列75Lは、左実世界画像におけるマーカー61の位置および姿勢を認識することにより計算される行列であり、マーカー61の位置および姿勢を基準として設定される座標系マーカー座標系で表された座標を外側撮像部左23aの位置および姿勢を基準として表された座標系外側撮像部左座標系に変換する座標変換行列である。左変換行列75Lは、マーカー61の位置および姿勢に対する外側撮像部左23aの相対的な位置および姿勢の情報を含む行列であり、より具体的には、マーカー座標系における外側撮像部左23aの位置および姿勢の情報を含む行列である。右変換行列75Rは、右実世界画像におけるマーカー61の位置および姿勢を認識することにより計算される行列であり、マーカー座標系で表された座標を外側撮像部右23bの位置および姿勢を基準として表された座標系外側撮像部右座標系に変換する座標変換行列である。右変換行列75Rは、マーカー61の位置および姿勢に対する外側撮像部右23bの相対的な位置および姿勢の情報を含む行列であり、より具体的には、マーカー座標系における外側撮像部右23bの位置および姿勢の情報を含む行列である。なお、本明細書において、マーカー座標系から外側撮像部左座標系または外側撮像部右座標系への変換行列のことをマーカーカメラ変換行列と呼ぶ。左変換行列75Lおよび右変換行列75Rはマーカーカメラ変換行列である。左ビュー行列76Lは、左仮想カメラから見た仮想オブジェクト62を描画する際に用いられる行列であり、仮想世界のワールド座標系で表された座標を左仮想カメラ座標系で表された座標へと変換するための座標変換行列である。左ビュー行列76Lは、仮想世界のワールド座標系における左仮想カメラの位置および姿勢の情報を含む行列である。右ビュー行列76Rは、右仮想カメラから見た仮想オブジェクト62を描画する際に用いられる行列であり、仮想世界のワールド座標系で表された座標を右仮想カメラ座標系で表された座標へと変換するための座標変換行列である。右ビュー行列76Rは、仮想世界のワールド座標系における右仮想カメラの位置および姿勢の情報を含む行列である。左射影行列77Lは、左仮想カメラから見た仮想世界仮想世界に存在する仮想オブジェクト62を描画する際に用いられる行列であり、左仮想カメラ座標系で表された座標をスクリーン座標系で表された座標へと変換するための座標変換行列である。右射影行列77Rは、右仮想カメラから見た仮想世界仮想世界に存在する仮想オブジェクト62を描画する際に用いられる行列であり、右仮想カメラ座標系で表された座標をスクリーン座標系で表された座標へと変換するための座標変換行列である。表示モード78は、現在の処理モードを示すデータであって、より具体的には、実世界画像と仮想空間画像とを同期させて合成表示する同期表示モードか、実世界画像と仮想空間画像とを同期させずに合成表示する非同期表示モードかを示すデータである。マーカー認識モード79は、現在の処理モードを示すデータであって、より具体的には、左実世界画像と右実世界画像のいずれか一方のみに対してマーカー認識処理を行う片画像認識モードか、左実世界画像と右実世界画像の両方に対してそれぞれマーカー認識処理を行う両画像認識モードかを示すデータである。メイン実世界画像識別情報80は、左実世界画像と右実世界画像のいずれがメイン実世界画像なのかを示すデータである。上記の片画像認識モードでは、メイン実世界画像に対してのみマーカー認識処理が行われ、他方の実世界画像以下、サブ実世界画像と称すに対してはマーカー認識処理は行われない。各種変数81は、画像表示プログラム70の実行の際に用いられる変数であって、図12に示すような変数を含む。これらの変数の意味については、以下の説明において随時説明する。ゲーム装置10の電源が投入されると、ゲーム装置10の情報処理部31CPU311は、図示しないROMに記憶されている起動プログラムを実行し、これによってメインメモリ32等の各ユニットが初期化される。次に、データ保存用内部メモリ35に記憶された画像表示プログラムがメインメモリ32に読み込まれ、情報処理部31のCPU311によって当該画像表示プログラムの実行が開始される。以下、図13~図19のフローチャートを参照して、画像表示プログラムに基づいて実行される処理の流れを説明する。なお、図13~図19のフローチャートは、単なる一例に過ぎない。したがって、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、図13~図19のフローチャートの全てのステップの処理をCPU311が実行するものとして説明するが、図13~図19のフローチャートの一部のステップの処理を、CPU311以外のプロセッサや専用回路が実行するようにしてもよい。マーカー処理図13は、画像表示プログラム70に基づいてCPU311によって実行されるマーカー処理の流れを示すフローチャートである。マーカー処理は、後述するメイン処理と並列的に実行される処理であり、本実施形態では、CPU311がアイドル状態のときに実行される。以下、マーカー処理の詳細について説明する。図13のステップS10において、CPU311は、外側撮像部23から両方の実世界画像すなわち左実世界画像および右実世界画像を取得したか否かを判断し、両方の実世界画像が取得されている場合には処理はステップS11に進む。外側撮像部23から取得された最新の左実世界画像は、最新左実世界画像71Lとしてメインメモリ32に格納され、最新の右実世界画像は、最新右実世界画像71Rとしてメインメモリ32に格納される。なお、前述のように、上側ハウジング21において、外側撮像部左23aと外側撮像部右23bは一定の間隔例えば3.5cm、以下、撮像部間距離だけ離れている。したがって、外側撮像部左23aと外側撮像部右23bによって同時にマーカー61を撮像した場合、図20に示すように、外側撮像部左23aによって撮像された左実世界画像におけるマーカー61の位置及び姿勢と、外側撮像部右23bによって撮像された右実世界画像におけるマーカー61の位置及び姿勢との間には、視差によるズレが生じる。ステップS11において、CPU311は、メイン実世界画像に対してマーカー認識処理を行う。より具体的には、パターンマッチング手法等によってメイン実世界画像にマーカー61が含まれているか否かを判断し、メイン実世界画像にマーカー61が含まれている場合には、メイン実世界画像におけるマーカー61の位置および姿勢に基づいて、左変換行列75Lまたは右変換行列75Rを算出するメイン実世界画像が左実世界画像である場合には、左変換行列75Lを算出し、メイン実世界画像が右実世界画像である場合には、右変換行列75Rを算出する。なお、左変換行列75Lは、左実世界画像におけるマーカー61の位置および姿勢に基づいて計算される外側撮像部左23aの位置および姿勢を反映した行列である。より正確には、図21に示すように、マーカー座標系実世界におけるマーカー61の位置を原点とし、マーカー61の縦方向、横方向、法線方向の各方向を各軸とする座標系で表された座標を、左実世界画像におけるマーカー61の位置および姿勢に基づいて計算された外側撮像部左23aの位置および姿勢を基準とした外側撮像部左座標系で表される座標へと変換するための座標変換行列である。また、右変換行列75Rは、右実世界画像におけるマーカー61の位置および姿勢に基づいて計算される外側撮像部右23bの位置および姿勢を反映した行列である。より正確には、図22に示すように、マーカー座標系で表された座標を、右実世界画像におけるマーカー61の位置および姿勢に基づいて計算された外側撮像部右23bの位置および姿勢を基準とした外側撮像部右座標系で表される座標へと変換するための座標変換行列である。なお、マーカー認識精度に誤差が全く無く、かつゲーム装置10に対する外側撮像部左23aおよび外側撮像部右23bの取り付け精度に誤差が全く無いと仮定すると、右実世界画像のマーカー認識結果である右変換行列75Rが示す外側撮像部右23bの位置は、左実世界画像のマーカー認識結果である左変換行列75Lが示す外側撮像部左23aの位置を、外側撮像部左座標系のx軸方向ゲーム装置10の横方向であり使用時の水平方向に沿って一定距離撮像部間距離だけずらした位置となり、右変換行列75Rが示す外側撮像部右23bの姿勢と左変換行列75Lが示す外側撮像部左23aの姿勢はゲーム装置10における外側撮像部左23aと外側撮像部右23bの取り付け状態と同じとなる。本実施例においては、ゲーム装置10において外側撮像部左23aと外側撮像部右23bは平行に取り付けられるように設計さているので、外側撮像部左座標系のx軸,y軸,z軸が、外側撮像部右座標系のx軸,y軸,z軸とそれぞれ平行となる。しかしながら実際には、マーカー認識精度にも、ゲーム装置10に対する外側撮像部左23aおよび外側撮像部右23bの取り付け精度にも誤差があるため、左変換行列75Lが示す外側撮像部左23aの位置及び姿勢と、右変換行列75Rが示す外側撮像部右23bの位置及び姿勢は、理想的な関係にはならない。例えば、左変換行列75Lと右変換行列75Rは、外側撮像部左23aと外側撮像部右23bが近すぎたり、離れすぎたり、外側撮像部左23aの姿勢と外側撮像部右23bの姿勢が異なったりするような行列になる。また、外側撮像部左23aの姿勢と外側撮像部右23bの姿勢が平行でないような行列になる。ここで、ARでは、マーカー座標系を外側撮像部左座標系または外側撮像部右座標系に変換する行列を仮想カメラのビュー行列に指定することにより、実世界画像にCG画像を合成することができるが、単に、左変換行列75Lを左ビュー行列76Lに指定し、右変換行列75Rを右ビュー行列76Rに指定して仮想空間画像を上側LCD22に立体表示する場合には、仮想オブジェクト62が正常に立体視できないことがあり得る。そこで本実施形態では、後述する説明から明らかになるように、左実世界画像および右実世界画像のいずれか一方のマーカー認識結果マーカーカメラ変換行列から計算される一方の仮想カメラの位置及び姿勢ビュー行列に基づいて、左仮想カメラ63Lの位置及び姿勢と右仮想カメラ63Rの位置及び姿勢が理想的な関係となるように、他方の仮想カメラの位置及び姿勢ビュー行列が決定される。なお、ステップS11において、メイン実世界画像からマーカー61が認識されなかった場合には、左変換行列75Lまたは右変換行列75Rにヌル値が格納され、これによって、左実世界画像または右実世界画像におけるマーカー61の認識に失敗したことが記録される。ステップS12において、CPU311は、マーカー認識モードが片画像認識モードであるかどうかを判断する。そして、片画像認識モードである場合には、処理はステップS13に進み、そうでない場合すなわち両画像認識モードである場合には、処理はステップS14に進む。ステップS13において、CPU311は、左実世界画像及び右実世界画像のうち、メイン実世界画像ではない方の実世界画像以下、サブ実世界画像と称すのマーカー認識結果を失敗とみなす。より具体的には、メイン実世界画像が左実世界画像である場合には、右変換行列75Rにヌル値を格納し、メイン実世界画像が右実世界画像である場合には、左変換行列75Lにヌル値を格納する。ステップS14において、CPU311は、サブ実世界画像に対してマーカー認識処理を行う。より具体的には、パターンマッチング手法等によってサブ実世界画像にマーカー61が含まれているか否かを判断し、サブ実世界画像にマーカー61が含まれている場合には、サブ実世界画像におけるマーカー61の位置および姿勢に基づいて、左変換行列75Lまたは右変換行列75Rを算出するサブ実世界画像が左実世界画像である場合には、左変換行列75Lを算出し、サブ実世界画像が右実世界画像である場合には、右変換行列75Rを算出する。ステップS15において、CPU311は、表示モードが同期表示モードであるかどうかを判断する。そして、同期表示モードである場合には、処理はステップS17に進み、そうでない場合すなわち非同期表示モードである場合には、処理はステップS16に進む。ステップS16において、CPU311は、最新左実世界画像71L及び最新右実世界画像71Rを、表示用左実世界画像72L及び表示用右実世界画像72Rとしてそれぞれメインメモリ32に記憶する。そして、処理はステップS10に戻る。ステップS17において、CPU311は、マーカー認識モードが片画像認識モードかどうかを判断する。そして、片画像認識モードである場合には、処理はステップS18に進み、そうでない場合すなわち両画像認識モードである場合には、処理はステップS19に進む。ステップS18において、CPU311は、メイン実世界画像のマーカー認識に成功したかどうかを判断する。より具体的には、CPU311は、メイン実世界画像が左実世界画像である場合には、左変換行列75Lにヌル値ではない有効な行列が格納されているかどうかを判断し、メイン実世界画像が右実世界画像である場合には、右変換行列75Rにヌル値ではない有効な行列が格納されているかどうかを判断する。そして、メイン実世界画像のマーカー認識に成功したと判断された場合には、処理はステップS16に進み、そうでない場合には、処理はステップS10に戻る。ステップS19において、CPU311は、左実世界画像及び右実世界画像の少なくとも一方のマーカー認識に成功したかどうかを判断する。より具体的には、CPU311は、左変換行列75L及び右変換行列75Rの両方に、ヌル値ではない有効な行列が格納されているかどうかを判断する。そして、左実世界画像及び右実世界画像の少なくとも一方のマーカー認識に成功したと判断された場合には、処理はステップS16に進み、そうでない場合には、処理はステップS10に戻る。メイン処理図14は、画像表示プログラム70に基づいてCPU311によって実行されるメイン処理の流れを示すフローチャートである。メイン処理は、上述したマーカー処理と並列的に実行される処理である。以下、メイン処理の詳細について説明する。図14のステップS20において、CPU311は、3次元の仮想空間の所定位置に仮想オブジェクト62を配置する。本実施形態では、仮想空間の原点ワールド座標系の原点に仮想オブジェクト62を配置する。ステップS21において、CPU311は、更新処理を実行する。この更新処理では、仮想オブジェクト62を描画するために用いられる種々の変数を更新するための処理である。更新処理の詳細については後述する。ステップS22において、CPU311は、仮想オブジェクト処理を実行する。仮想オブジェクト処理とは、仮想空間に配置された仮想オブジェクト62に関する処理であり、例えば、必要に応じて、仮想オブジェクト62の大きさを変化させたり、仮想オブジェクト62に所定の動作仮想空間内で移動する。例えば、仮想空間の原点の周りを歩くような移動をさせると、マーカー座標系の原点の周りを歩くような表示がされるを行わせたりする。なお、仮想オブジェクト62の移動制御は、仮想空間のワールド座標系における仮想オブジェクトの位置座標を変更することにより実現される。ステップS23において、CPU311は、立体視ゼロ距離73に応じて左実世界画像のうちの表示に使う範囲である描画範囲を決定する。より具体的には、図23に示すように、外側撮像部23から立体視ゼロ距離73の値例えば30cmだけ撮影方向に離れており、かつ外側撮像部左23aと外側撮像部右23bから等距離にある点を立体視ゼロ点とし、外側撮像部左23aから見て当該立体視ゼロ点が中心にくるような範囲を、左実世界画像の描画範囲として決定する。当該範囲の横方向の長さは、例えば、図23に示すように、外側撮像部左23aの撮影方向に垂直な直線を、外側撮像部左23aの画角を表す直線によって切り取った線分上での比として求めることができ、当該比を実世界画像の横方向の長さに対応させることによって、実世界画像上での範囲として決定される。なお、当該範囲の縦方向の長さについては、表示画面の縦横比に合うように、横方向の長さから決定される。なお、後述するステップS27において右実世界画像の描画範囲を決定するときには、図24に示すように、外側撮像部右23bから見て当該立体視ゼロ点が中心にくるような範囲を、右実世界画像の描画範囲として決定する。これにより、上側LCD22に表示される左目用画像における立体視ゼロ点の位置と右目用画像における立体視ゼロ点の位置が、上側LCD22の画面上で一致することになり、ユーザーから見て画面と同じ奥行き位置に存在するように見える。ステップS24において、CPU311は、表示用左実世界画像72Lにおける、ステップS23で決定した描画範囲を、上側LCD22へ供給すべき左目用画像を一時的に記憶するためのVRAM313内の所定の記憶領域以下、左フレームバッファと称すに描画する。ステップS25において、CPU311は、ARActive図12参照の値がtrueかどうかを判断する。ARActiveとは、実世界画像に仮想オブジェクトを合成表示することができる状況かどうかを示す変数フラグであって、実世界画像に仮想オブジェクトを合成表示することができる状況では、その値がtrueに設定され、実世界画像に仮想オブジェクトを合成表示することができない状況例えば、マーカー61が全く認識できていない状況などでは、その値がfalse初期値に設定される。ARActiveの値がtrueである場合には、処理はステップS26に進み、そうでない場合すなわちARActiveの値がfalseである場合には、処理はステップS27に進む。ステップS26において、CPU311は、例えば図23に示すように、左仮想カメラ63Lから見た仮想空間以下、左目用の仮想空間画像と称すを左フレームバッファに上書きする実際には、典型的には、CPU311からの指示にしたがってGPU312によって描画される。これにより、図26に示すように、ステップS24で左フレームバッファに描画された左実世界画像に左目用の仮想空間画像が合成される。左フレームバッファに描画された画像は、所定のタイミングで左目用画像として上側LCD22へ供給されることになる。なお、当該左目用の仮想空間画像においては、仮想空間の背景は透明であり、そのため、実世界画像に仮想空間画像を合成することで、実世界画像上に仮想オブジェクト62が存在するような画像が生成される。ステップS27において、CPU311は、立体視ゼロ距離73に応じて右実世界画像の描画範囲を決定する。なお、描画範囲を決定するための処理の詳細は左実世界画像の描画範囲の決定の処理と同じであるため省略する。ステップS28において、CPU311は、表示用右実世界画像72Rにおける、ステップS27で決定した描画範囲を、上側LCD22へ供給すべき右目用画像を一時的に記憶するためのVRAM313内の所定の記憶領域以下、右フレームバッファと称すに描画する。ステップS29において、CPU311は、ARActiveの値がtrueかどうかを判断する。ARActiveの値がtrueである場合には、処理はステップS30に進み、そうでない場合すなわちARActiveの値がfalseである場合には、処理はステップS31に進む。ステップS30において、CPU311は、右仮想カメラ63Rから見た仮想空間以下、右目用の仮想空間画像と称すを右フレームバッファに上書きする実際には、典型的には、CPU311からの指示にしたがってGPU312によって描画される。これにより、ステップS28で右フレームバッファに描画された右実世界画像に右目用の仮想空間画像が合成される。右フレームバッファに描画された画像は、所定のタイミングで右目用画像として上側LCD22へ供給されることになる。ステップS31において、CPU311は、上側LCD22からの割り込み信号垂直同期割り込みを待機し、当該割り込み信号が発生した場合には、処理はステップS21に戻る。これにより、ステップS21~S31の処理が一定の周期例えば、60分の1秒の周期で繰り返される。更新処理次に、メイン処理におけるステップS21の更新処理の詳細について、図15のフローチャートを参照して説明する。図15のステップS40において、CPU311は、前述のマーカー処理におけるマーカー認識結果すなわち、左変換行列75L及び右変換行列75Rが更新されたかどうかを判断し、更新されている場合には処理はステップS41に進み、まだ更新されていない場合には処理はステップS44に進む。ステップS41において、CPU311は、左実世界画像及び右実世界画像の両方の実世界画像のマーカー認識に成功しているかどうかを判断する。そして、両方の実世界画像のマーカー認識に成功している場合には、処理はステップS42に進み、いずれか一方もしくは両方の実世界画像のマーカー認識に失敗している場合には、処理はステップS44に進む。ステップS42において、CPU311は、EyeWidth図12参照の値が0であるか、または、EyeMeasure図12参照の値がtrueであるかどうかを判断する。EyeWidthとは、左変換行列75Lと右変換行列75Rとを用いて算出される、外側撮像部左23aと外側撮像部右23bとの位置関係における、両撮像部間の距離を示す。なお、ここで両撮像部間の距離とは、実世界のスケールとして求める必要はなく、仮想空間での距離として求めてもよい。具体的には、左変換行列75Lが示す、マーカー61の位置と外側撮像部左23aの位置との関係と、右変換行列75Rが示すマーカー61の位置と外側撮像部右23bの位置との関係とから、マーカー61の位置を基準として、外側撮像部左23aの位置と外側撮像部右23bの位置との関係を求めた場合の距離を求めている。なお、当該距離が未確定の場合には、その値が0初期値に設定される。なお、本実施形態では、EyeWidthはスカラー値であるが、EyeWidthを、左変換行列75Lが示す外側撮像部左23aの位置と右変換行列75Rが示す外側撮像部右23bの位置との間を結ぶベクトルにしてもよい。また、EyeWidthを、左変換行列75Lが示す外側撮像部左23aの位置と右変換行列75Rが示す外側撮像部右23bの位置との間を結ぶベクトルの、撮影方向に直交する成分の長さにしてもよい。なお、後述の通り、EyeWidthは、仮想空間における左仮想カメラ63Lと右仮想カメラ63Rの距離間隔の設定に用いる。EyeMeasureとは、EyeWidthを再計算すべきか否かを示す変数フラグであって、EyeWidthを再計算すべき状況では、その値がtrueに設定され、そうでない状況では、その値がfalse初期値に設定される。EyeWidthの値が0であるか、または、EyeMeasureの値がtrueである場合には、処理はステップS43に進み、そうでない場合すなわちEyeWidthの値が0以外の値であり、なおかつ、EyeMeasureの値がfalseである場合には、処理はステップS44に進む。ステップS43において、CPU311は、仮想カメラ間隔決定処理を実行する。仮想カメラ間隔決定処理では、左仮想カメラ63Lと右仮想カメラ63Rの間隔すなわちEyeWidthが適宜に決定および更新される。仮想カメラ間隔決定処理の詳細については後述する。ステップS44において、CPU311は、ビュー行列生成処理を実行する。ビュー行列生成処理では、すでに決定されている左仮想カメラ63Lと右仮想カメラ63Rの間隔すなわちEyeWidthに基づいて、左ビュー行列76Lと右ビュー行列76Rが計算される。ビュー行列生成処理の詳細については後述する。ステップS45において、CPU311は、メイン実世界画像設定処理を実行する。メイン実世界画像設定処理では、左実世界画像と右実世界画像の間で、メイン実世界画像が適宜に切り替えられるこれは、外側撮像部左23aと外側撮像部右との間で、メイン撮像部を切り替えることと等価である。メイン実世界画像設定処理の詳細については後述する。ステップS46において、CPU311は、表示モード切替処理を実行し、そして更新処理を終了する。表示モード切替処理では、同期表示モードと非同期表示モードの間で、表示モードが適宜に切り替えられる。表示モード切替処理の詳細については後述する。仮想カメラ間隔決定処理次に、更新処理図15におけるステップS43の仮想カメラ間隔決定処理の詳細について、図16のフローチャートを参照して説明する。ここでは、前述の通り、左変換行列75Lが示すマーカー61の位置に対する外側撮像部左23aの位置と右変換行列75Rが示すマーカー61の位置に対する外側撮像部右23bの位置との距離を求める。この距離を計算する方法はいくつかあるが、本実施例では、計算方法の一例として、以下の方法を採用する。図16のステップS50において、CPU311は、左変換行列75Lおよび右変換行列75Rに基づいて、座標V0を計算する。以下、図27~図29を参照して、V0の計算方法を説明する。なお、図27~図29においては、左実世界画像に基づいて計算される、マーカー61に対する外側撮像部左23aの相対位置及び相対姿勢と、右実世界画像に基づいて計算される、マーカー61に対する外側撮像部右23bの相対位置及び相対姿勢とが、前述したように必ずしも理想的な関係とはならないことを強調するために、外側撮像部左23aの撮影方向と外側撮像部右23bの撮影方向が互いに大きくずれているように図示している。まず、図27に示すように、0,0,0に対して、左変換行列75Lを乗算すると、外側撮像部左座標系で表されたマーカー座標系の原点の座標V1が求まる。座標V1は、左実世界画像に基づいて計算された、外側撮像部左23aに対するマーカー61の相対位置を表している。この座標V1が外側撮像部右座標系で表された座標であると見なすと、座標V1が示す位置は、外側撮像部右座標系では図28に示す位置へと移動する。この座標V1に対して、さらに右変換行列75Rの逆行列を乗算する。右変換行列75Rの逆行列を乗算することは、外側撮像部右座標系で表された座標をマーカー座標系で表された座標に変換することに相当する。したがって、上記逆行列の乗算は、外側撮像部右座標系で表された座標V1図28を、図29に示すように、マーカー座標系で表された座標V0へと変換することになる。このようにして計算された座標V0は、左実世界画像に基づいて計算された、外側撮像部左23aに対するマーカー61の相対位置すなわち、外側撮像部左座標系で表されるマーカー座標系の原点の座標と、右実世界画像に基づいて計算された、外側撮像部右23bに対するマーカー61の相対位置すなわち、外側撮像部右座標系で表されるマーカー座標系の原点の座標との差を示している。本実施形態では、このマーカー61の相対位置の差を、外側撮像部左23aと外側撮像部右23bの取り付け位置の差によって生じるものであると考えて、外側撮像部左23aと外側撮像部右23bの取り付け位置を推定している。ステップS51において、CPU311は、左変換行列75Lに基づいて、外側撮像部左座標系で表されたマーカー座標系の原点の座標V1を計算する。具体的には、0,0,0に対して、左変換行列75Lを乗算することで、外側撮像部左座標系で表されたマーカー座標系の原点の座標V1が求まる。なお、ここでは、外側撮像部左座標系で表されたマーカー座標系の原点の座標をV1としたが、これに替えて、外側撮像部右座標系で表されたマーカー座標系の原点の座標をV1としてもよい。ステップS52において、CPU311は、ステップS50で求めたV0の大きさ原点からの距離図29参照を、ew図12参照に格納し、ステップS51で求めたV1のz軸値の絶対値図27参照を、ed図12参照に格納する。ただし、ewの値は、マーカー座標系における長さの単位で計算されており、実世界における長さの単位と一致するものではない。そして、前述の通り、外側撮像部左23aと外側撮像部右23bの間の実距離は既知例えば3.5cmであるので、この実距離とewの値を用いて、実世界における長さの単位と仮想空間における長さの単位とを一致させることができる。なお、マーカー61のサイズが既知であれば、マーカー画像の認識結果に基づいて求められるマーカー61のサイズと、実世界におけるマーカー61のサイズとの対応関係から、実世界における長さの単位と仮想空間における長さの単位とを一致させることもできる。なお、ゲーム装置10に対する外側撮像部左23aおよび外側撮像部右23bの取り付け精度の誤差により、外側撮像部左23aの撮影方向と外側撮像部右23bの撮影方向が平行になっていない場合には、このようにして計算される外側撮像部左23aと外側撮像部右23bの間の距離ewは、外側撮像部23とマーカー61との間の撮影方向についての距離に応じて変動する。それゆえ、後述するように、外側撮像部23とマーカー61との間の撮影方向についての距離が変化したときには、外側撮像部左23aと外側撮像部右23bの間の距離後述するEyeWidthは、そのときのマーカーカメラ変換行列を用いて再計算される。なお、本実施形態では、ewをV0の大きさとしたが、V0の左変換行列75Lにより示される外側撮像部左23aの位置と右変換行列75Rにより示される外側撮像部右23bの位置を結ぶ方向の成分としてもよい。このようにして計算されたewは外側撮像部左23aと外側撮像部右23bとの間のマーカー座標系における間隔であるが、これを左仮想カメラ63Rと右仮想カメラ63Rとの間の間隔として用いる後述のステップS65またはS68。なお、ewを求める方法は、上述した方法以外にもある。例えば、0,0,0に左変換行列75Lを乗算することによって、外側撮像部左座標系で表されたマーカー座標系の原点の座標Vlすなわち、外側撮像部左23aに対するマーカー61の相対位置を求めるとともに、0,0,0に右変換行列75Rを乗算することによって、外側撮像部右で表されたマーカー座標系の原点の座標Vrすなわち、外側撮像部右23bに対するマーカー61の相対位置を求め、こうして求めた座標Vlと座標Vrの間の距離を計算することによって、ewを求めても構わない。ステップS53において、CPU311は、LogIndex図12参照の値が1初期値より大きいかどうかを判断し、1より大きい場合には処理はステップS57に進み、そうでない場合すなわち1である場合には処理はステップS54に進む。LogIndexは、後述する配列LogWidth、LogDepthの各要素を識別するための変数である。ステップS54において、CPU311は、ステップS52で求めたewの値を配列LogWidth[LogIndex]に格納する。さらに、ステップS52で求めたedの値を配列LogDepth[LogIndex]に格納する。さらに、LogIndexの値をインクリメントする。LogWidthは、ewの値を複数保持しておくための配列変数である。LogDepthは、edの値を複数保持しておくための配列変数である。ステップS55において、CPU311は、LogIndexの値がLogMaxの値よりも大きいかどうかを判定し、大きい場合には処理はステップS56に進み、そうでない場合すなわちLogIndexの値がLogMaxの値以下の場合には、仮想カメラ間隔決定処理を終了する。ステップS56において、CPU311は、LogWidthの各要素の平均値を計算し、当該平均値をEyeWidthに格納する。さらに、LogDepthの各要素の平均値を計算し、当該平均値をEyeDepthに格納する。さらに、EyeMeasureの値をfalseに設定する。さらに、マーカー認識モード79を、片画像認識モードに設定する。EyeDepthとは、左変換行列75Lが示す外側撮像部左23aのマーカー座標系における位置を示す座標または右変換行列75Rが示す外側撮像部右23bのマーカー座標系における位置を示す座標から、マーカー座標系の原点までの奥行き距離深さ:撮影方向についての距離を示す変数であって、後述する図17のステップS72における判断の際の基準値として用いられる。EyeDepthの初期値は0である。ステップS56の処理が終了すると、仮想カメラ間隔決定処理は終了する。ステップS57において、CPU311は、ステップS52で求めたewの値とLogWidth[1]の値の差の絶対値が、LogWidth[1]の値の10よりも小さく、かつ、ステップS52で求めたedの値とLogDepth[1]の値の差の絶対値が、LogDepth[1]の値の10よりも小さいかどうかを判断する。そして、ステップS57の判断結果が肯定である場合には処理はステップS54に進み、ステップS57の判断結果が否定である場合には処理はステップS58に進む。ステップS58において、CPU311は、LogIndexの値を1初期値にリセットして、仮想カメラ間隔決定処理を終了する。以上のように、仮想カメラ間隔決定処理では、左実世界画像に含まれるマーカー61の位置及び姿勢に基づいて計算される外側撮像部左23aの位置と、右実世界画像に含まれるマーカー61の位置及び姿勢に基づいて計算される外側撮像部右23bの位置とに基づいて、ewとedが計算される。このようにして計算されたewの値とedの値が、LogWidthとLogDepthに順次格納される。このとき、新たに計算されたewの値が、LogWidthに最初に格納されたewの値すなわちLogWidth[1]の値を基準とした所定範囲±10から外れた場合や、新たに計算されたedの値が、LogDepthに最初に格納されたedの値すなわちLogDepth[1]の値を基準とした所定範囲±10から外れた場合には、LogWidthとLogDepthに再び最初からewの値とedの値を格納し直す。したがって、逐次計算されるewの値とedの値に大きな変動が見られない場合すなわち、ewの値とedの値が一定期間、ある程度安定している場合にのみ、それらのewの値の平均値とそれらのedの値の平均値が、EyeWidthおよびEyeDepthに格納される。ところで、ユーザがゲーム装置10を移動させたり回転させたりしているときには、外側撮像部23によって撮像される左実世界画像および右実世界画像がぼけやすく、マーカー61の認識精度が著しく低下し、逐次検出されるewの値やedの値が大きく変動しやすい。そこで、このような状況で検出される信頼性の低いewの値およびedの値に基づいてEyeWidthの値およびEyeDepthの値を決定することは避けるべきである。よって、本実施形態では、逐次計算されるewの値とedの値に大きな変動が見られない場合にのみ、それらの値に基づいてEyeWidthの値およびEyeDepthの値を決定している。また、複数回計算されたewの値およびedの値の平均値をEyeWidthの値およびEyeDepthの値として用いることにより、EyeWidthの値およびEyeDepthの値の精度を高めることができる。ビュー行列生成処理次に、更新処理図15におけるステップS44のビュー行列生成処理の詳細について、図17のフローチャートを参照して説明する。図17のステップS60において、CPU311は、EyeWidthが0より大きいかどうかを判断し、0より大きい場合には処理はステップS63に進み、そうでない場合すなわち、0である場合には処理はステップS61に進む。ステップS61において、CPU311は、表示モードが同期表示モードであるかどうかを判断する。そして、同期表示モードである場合には、ビュー行列生成処理を終了し、そうでない場合すなわち非同期表示モードである場合には、処理はステップS62に進む。ステップS62において、CPU311は、ARActiveの値をfalseに設定する。そして、ビュー行列生成処理を終了する。ステップS63において、CPU311は、左変換行列75Lを参照して、左実世界画像のマーカー認識に成功しているかどうかを判断し、左実世界画像のマーカー認識に成功している場合には処理はステップS64に進み、そうでない場合すなわち、左変換行列75Lの値がヌル値である場合には処理はステップS66に進む。ステップS64において、CPU311は、左変換行列75Lの値を、左ビュー行列76Lに格納する。これは、左実世界画像に含まれるマーカー61の位置及び姿勢に基づいて計算されたマーカー座標系における外側撮像部左23aの位置及び姿勢を、左目用の仮想空間画像を生成するための左仮想カメラ63Lの位置及び姿勢としてそのまま扱うことを意味する。ステップS65において、CPU311は、左ビュー行列76Lの値に対して平行移動行列-EyeWidth,0,0を乗算した結果の値を、右ビュー行列76Rに格納する。これは、図30に示すように、前述のステップS64において設定された仮想空間のワールド座標系における左仮想カメラ63Lの位置から、左仮想カメラ座標系のx軸の正方向にEyeWidthの値だけずらした位置を、右目用の仮想空間画像を生成するための右仮想カメラ63Rの位置として扱うことを意味する。また、右仮想カメラ63Rの姿勢は、左仮想カメラ63Lの姿勢と同じとなるすなわち、左仮想カメラ座標系のx軸,y軸,z軸が、右仮想カメラ座標系のx軸,y軸,z軸とそれぞれ平行となる。これにより、左仮想カメラ63Lの位置及び姿勢と、右仮想カメラ63Rの位置及び姿勢との整合性が保たれるので、上側LCD22において正常に立体視できるように仮想オブジェクト62を表示することができる。ステップS66において、CPU311は、右変換行列75Rを参照して、右実世界画像のマーカー認識に成功しているかどうかを判断し、右実世界画像のマーカー認識に成功している場合には処理はステップS67に進み、そうでない場合すなわち、右変換行列75Rの値がヌル値である場合にはビュー行列生成処理を終了する。ステップS67において、CPU311は、右変換行列75Rの値を、右ビュー行列76Rに格納する。これは、右実世界画像に含まれるマーカー61の位置及び姿勢に基づいて計算されたマーカー座標系における外側撮像部右23bの位置及び姿勢を、右目用の仮想空間画像を生成するための右仮想カメラ63Rの位置及び姿勢としてそのまま扱うことを意味する。ステップS68において、CPU311は、右ビュー行列76Rの値に対して平行移動行列EyeWidth,0,0を乗算した結果の値を、左ビュー行列76Lに格納する。これは、図31に示すように、前述のステップS67において設定された仮想空間のワールド座標系における右仮想カメラ63Rの位置から、右仮想カメラ座標系のx軸の負方向にEyeWidthの値だけずらした位置を、左目用の仮想空間画像を生成するための左仮想カメラ63Lの位置として扱うことを意味する。また、左仮想カメラ63Lの姿勢は、右仮想カメラ63Rの姿勢と同じとなるすなわち、左仮想カメラ座標系のx軸,y軸,z軸が、右仮想カメラ座標系のx軸,y軸,z軸とそれぞれ平行となる。これにより、左仮想カメラ63Lの位置及び姿勢と、右仮想カメラ63Rの位置及び姿勢との整合性が保たれるので、上側LCD22において正常に立体視できるように仮想オブジェクト62を表示することができる。このように、本実施例では、一方の仮想カメラ例えば、左仮想カメラ63Lの位置および姿勢については、一方の外側撮像部例えば、外側撮像部左23aの撮影画像から算出されたマーカーカメラ変換行列を用いて設定するがより具体的には、そのまま用いる、他方の仮想カメラ例えば、右仮想カメラ63Rの位置および姿勢については、他方の外側撮像部例えば、外側撮像部右23bの撮影画像から算出されたマーカーカメラ変換行列を用いずに設定する。ステレオカメラでARの立体視表示をおこなう場合においては、仮想カメラは右用と左用の2つを設定する必要があり、また、マーカーカメラ変換行列は外側撮像部左23aによる変換行列左変換行列25Lと外側撮像部右23bによる変換行列右変換行列25Rがある。本実施形態では、各仮想カメラ63L,63Rを設定するときに、各変換行列25L,25Rを用いるのではなくて、1つの変換行列を設定して変換行列25L,25Rの一方の変換行列をそのまま用いて、または、両方の変換行列25L,25Rから別の新たな1つの変換行列を生成して平均位置、平均姿勢とするなど、その1つの変換行列を用いて両方の仮想カメラ63L,63Rの位置および姿勢を設定する。これにより、AR認識における精度の問題を解消することができる。ステップS69において、CPU311は、ARActiveの値をtrueに設定する。これにより、実世界画像に対する仮想オブジェクト62の合成表示が開始または再開される。ステップS70において、CPU311は、EyeMeasureの値がtrueかどうかを判断し、trueである場合にはビュー行列生成処理を終了し、そうでない場合すなわちfalseである場合には処理はステップS71に進む。ステップS71において、CPU311は、ステップS64またはステップS68で決定された左ビュー行列76Lに基づいて、左仮想カメラ座標系で表された仮想空間の原点の座標Vを計算する。具体的には、図32に示すように、0,0,0に対して左ビュー行列76Lを乗算することで、左仮想カメラ座標系で表された仮想空間の原点の座標Vが求まる。なお、ここでは、左仮想カメラ座標系で表された仮想空間の原点の座標をVとしたが、これに替えて、ステップS65またはステップS67で決定された右ビュー行列76Rに基づいて計算された、右仮想カメラ座標系で表された仮想空間の原点の座標をVとしてもよい。このようにして求められたVは、外側撮像部左座標系におけるマーカー61の位置と実質的に同一であるただし、このVの値は、仮想空間またはマーカー座標系における長さの単位で計算されており、実世界における長さの単位と一致するものではない。。ステップS72において、CPU311は、Vのz座標値の絶対値|V.z|とEyeDepthの値との差の絶対値が、EyeDepthの値の20よりも大きいかどうかを判断し、大きい場合には処理はステップS73に進み、そうでない場合にはビュー行列生成処理を終了する。|V.z|は、外側撮像部23からマーカー61までの撮影方向についての距離深さと実質的に同一である。すなわち、ステップS72では、仮想カメラ間隔決定処理図16においてEyeWidthの値を計算したときを基準として、外側撮像部23からマーカー61までの奥行き距離深さが、±20の範囲を超えて変化したかどうかを判断している。ステップS73において、CPU311は、EyeMeasureの値をtrueに設定し、さらに、LogIndexの値を1にリセットし、さらに、マーカー認識モード79を両画像認識モードに設定して、ビュー行列生成処理を終了する。この結果、仮想カメラ間隔決定処理によるEyeWidthの計算処理が再び開始されることになる。上記のように、仮想カメラ間隔決定処理において、EyeWidthの値を前回計算したときを基準として、外側撮像部23からマーカー61までの奥行き距離深さが所定範囲を超えて変化したときに、EyeWidthを再計算する理由は、ゲーム装置10に対する外側撮像部左23aおよび外側撮像部右23bの取り付け精度の誤差により、外側撮像部23からマーカー61までの奥行き距離深さに応じて最適な仮想カメラ間隔EyeWidthが変化するからである。例えば、外側撮像部左23aの撮影方向と外側撮像部右23bの撮影方向が平行になっていない状況において、図33に示すように外側撮像部23からマーカー61までの奥行距離がD1であるときに仮想カメラ間隔決定処理において計算されるEyeWidthの値をEyeWidth1とすると、仮想空間において、左仮想カメラ63Lと右仮想カメラ63Rは、図34に示すようにEyeWidth1の間隔を開けて配置されるのが適切であるそうすることによって、例えば仮想空間の原点に配置した仮想オブジェクトが、実世界画像のマーカー61上に実在するかのように、適切に立体表示されるようになる。。そして、図35に示すように外側撮像部23からマーカー61までの奥行距離がD1よりも小さいD2に変化した場合には、仮想カメラ間隔決定処理において計算されるEyeWidthの値は、EyeWidth1よりも小さいEyeWidth2となり、仮想空間において、左仮想カメラ63Lと右仮想カメラ63Rは、図36に示すようにEyeWidth2の間隔を開けて配置されるのが適切である。メイン実世界画像設定処理次に、更新処理図15におけるステップS45のメイン実世界画像設定処理の詳細について、図18のフローチャートを参照して説明する。図18のステップS80において、CPU311は、ARActiveの値がtrueかどうかを判断し、trueである場合には、処理はステップS81に進み、そうでない場合すなわちARActiveの値がfalseである場合には、メイン実世界画像設定処理を終了する。ステップS81において、CPU311は、左射影行列77Lおよび右射影行列77Rを生成する。左射影行列77Lは、左仮想カメラ63Lから見た仮想空間の描画範囲を規定する行列であって、本実施形態では、図37に示すように、メイン処理のステップS23で決定した左実世界画像の描画範囲に対応するような左射影行列77Lが生成される。右射影行列77Rは、右仮想カメラ63Rから見た仮想空間の描画範囲を規定する行列であって、本実施形態では、図38に示すように、メイン処理のステップS27で決定した右実世界画像の描画範囲に対応するような右射影行列77Rが生成される。具体的には、左仮想カメラ63Lの射影行列は、外側撮像部左23aの水平方向の画角と、当該左仮想カメラの水平方向の画角との比が、左実世界画像の横方向の長さにおける描画範囲の横方向の位置および大きさを表す比と、同じになるような画角を持つ視体積を定義する射影行列として設定される。ステップS82において、CPU311は、メイン実世界画像が左実世界画像かどうかを判断し、メイン実世界画像が左実世界画像である場合には処理はステップS83に進み、そうでない場合すなわち、メイン実世界画像が右実世界画像である場合には処理はステップS86に進む。ステップS83において、CPU311は、0,0,0,1に左ビュー行列76Lおよび左射影行列77Lを乗算することによって、ベクトルVを求める。ステップS84において、CPU311は、ベクトルVの第1成分xを第4成分wで乗算した結果の値V.x/V.wが0.5より大きいかどうかを判断し、0.5より大きい場合には処理はステップS85に進み、そうでない場合にはメイン実世界画像設定処理を終了する。上記のV.x/V.wの値は、左目用の仮想空間画像上で、仮想空間のワールド座標系の原点が、画像の左右方向のどの位置に存在するかを示しているなお、左目用の仮想空間画像上で、仮想空間のワールド座標系の原点が、画像の左右方向のどの位置に存在するかは、外側撮像部左23aの撮影画像上で、マーカー座標系の原点が、画像の左右方向のどの位置に存在するかと等価である。仮想空間のワールド座標系の原点が左目用の仮想空間画像の中央に位置するときは、V.x/V.wの値が0となり、仮想空間のワールド座標系の原点が左目用の仮想空間画像の左端に近づくほど、V.x/V.wの値が-1.0に近づき、仮想空間のワールド座標系の原点が左目用の仮想空間画像の右端に近づくほど、V.x/V.wの値が1.0に近づく。V.x/V.wの値が0.5より大きいということは、仮想空間のワールド座標系の原点が左目用の仮想空間画像の右端領域図39の斜線領域に位置することを意味する。言い換えれば、外側撮像部左23aによって撮像された左実世界画像の右端領域にマーカー61が位置していることを意味する。ステップS85において、CPU311は、メイン実世界画像を左実世界画像から右実世界画像へと変更する。すなわち、左仮想カメラ63Lによる仮想空間画像上で、仮想空間の原点が、画像の中心よりも所定距離だけまたは画像の左右幅の所定割合だけ右の位置よりも右側に存在するときに、メイン実世界画像を右実世界画像に変更する。または、外側撮像部左23aによる撮影画像上で、マーカー座標系の原点が、画像の中心よりも所定距離だけまたは画像の左右幅の所定割合だけ右の位置よりも右側に存在するときに、メイン実世界画像を右実世界画像に変更する。これにより、例えば左実世界画像においてマーカー61の位置が徐々に右方向へ移動して、最終的に左実世界画像からマーカー61が消えてしまったとしても、左実世界画像からマーカー61が消えてしまう前にメイン実世界画像が右実世界画像へと変更されるので、片画像認識モードにおいて継続的にマーカー61を認識することが可能となる。ステップS85の処理が終わると、メイン実世界画像設定処理を終了する。ステップS86において、CPU311は、0,0,0,1に右ビュー行列76Rおよび右射影行列77Rを乗算することによって、ベクトルVを求める。ステップS87において、CPU311は、ベクトルVの第1成分xを第4成分wで乗算した結果の値V.x/V.wが-0.5より小さいかどうかを判断し、-0.5より小さい場合には処理はステップS87に進み、そうでない場合にはメイン実世界画像設定処理を終了する。上記のV.x/V.wの値は、右目用の仮想空間画像上で、仮想空間のワールド座標系の原点が、画像の左右方向のどの位置に存在するかを示している。仮想空間のワールド座標系の原点が右目用の仮想空間画像の中央に位置するときは、V.x/V.wの値が0となり、仮想空間のワールド座標系の原点が右目用の仮想空間画像の左端に近づくほど、V.x/V.wの値が-1.0に近づき、仮想空間のワールド座標系の原点が右目用の仮想空間画像の右端に近づくほど、V.x/V.wの値が1.0に近づく。V.x/V.wの値が-0.5より小さいということは、仮想空間のワールド座標系の原点が右目用の仮想空間画像の左端領域図40の斜線領域に位置することを意味する。言い換えれば、外側撮像部右23bによって撮像された右実世界画像の左端領域にマーカー61が位置していることを意味する。ステップS88において、CPU311は、メイン実世界画像を右実世界画像から左実世界画像へと変更する。これにより、例えば右実世界画像においてマーカー61の位置が徐々に左方向へ移動して、最終的に右実世界画像からマーカー61が消えてしまったとしても、右実世界画像からマーカー61が消えてしまう前にメイン実世界画像が左実世界画像へと変更されるので、片画像認識モードにおいて継続的にマーカー61を認識することが可能となる。ステップS88の処理が終わると、メイン実世界画像設定処理を終了する。表示モード切替処理次に、更新処理図15におけるステップS46の表示モード切替処理の詳細について、図19のフローチャートを参照して説明する。図19のステップS90において、CPU311は、表示モードが同期表示モードかどうかを判断し、同期表示モードである場合には処理はステップS91に進み、そうでない場合すなわち、非同期表示モードである場合には処理はステップS96に進む。ステップS91において、CPU311は、EyeWidthが0より大きく、かつ、左実世界画像および右実世界画像のいずれかの実世界画像のマーカー認識に成功しているかどうかを判断する。そして、判断結果が肯定である場合には、処理はステップS92に進み、判断結果が否定である場合すなわち、EyeWidthが0であるか、もしくは、左実世界画像および右実世界画像の両方の実世界画像のマーカー認識に失敗している場合には、処理はステップS93に進む。ステップS92において、CPU311は、SyncCount図12参照の値を20に設定する。SyncCountは、表示モードを同期表示モードから非同期表示モードへと切り替えるタイミングを決定するための変数である。ステップS92の処理が終わると、表示モード切替処理を終了する。ステップS93において、CPU311は、SyncCountの値をデクリメントする。ステップS94において、CPU311は、SyncCountの値が0より大きいかどうかを判断し、0より大きい場合には表示モード切替処理を終了、そうでない場合すなわち、0である場合には処理はステップS95に進む。ステップS95において、CPU311は、LogIndexの値を1に設定し、さらにEyeWidthおよびEyeDepthの値を0に設定し、さらに表示モード78を同期表示モードから非同期表示モードへと変更し、さらにマーカー認識モード79を両画像認識モードに設定する。ステップS95の処理が終わると、表示モード切替処理を終了する。ステップS96において、CPU311は、EyeWidthが0より大きく、かつ、左実世界画像および右実世界画像のいずれかの実世界画像のマーカー認識に成功しているかどうかを判断する。そして、判断結果が肯定である場合には、処理はステップS97に進み、判断結果が否定である場合すなわち、EyeWidthが0であるか、もしくは、左実世界画像および右実世界画像の両方の実世界画像のマーカー認識に失敗している場合には、表示モード切替処理を終了する。ステップS97において、CPU311は、SyncCountの値を20に設定し、さらに表示モードを非同期表示モードから同期表示モードへと変更する。ステップS97の処理が終わると、表示モード切替処理を終了する。上記のように、表示モード切替処理によって、同期表示モードと非同期表示モードとの間で表示モードが適宜に切り替えられる。より具体的には、画像表示プログラムの実行が開始された直後は表示モードは非同期表示モードとなり、上側LCD22には常に最新の実世界画像が表示される。その後、マーカー61が認識されて、上側LCD22に表示される実世界画像に仮想オブジェクト62を合成表示できる状態になった時点で、表示モードは非同期表示モードから同期表示モードへと変化する。同期表示モードでは、仮想オブジェクト62を実世界画像内の正しい位置に合成表示するために、最後にマーカー61を認識することができた実世界画像必ずしも最新の実世界画像とは限らないに仮想オブジェクト62を合成した合成画像が、上側LCD22に表示される。これにより、実世界画像に合成表示される仮想オブジェクト62の位置ズレを防止することができる。その後、マーカー61を認識することができない状態が一定時間継続した時点で、表示モードは同期表示モードから非同期表示モードへと変化し、上側LCD22には常に最新の実世界画像が表示されるようになる。これにより、マーカー61を認識することができない状態が続いたときに、上側LCD22に古い画像が表示され続けてしまうことを防止することができる。本実施形態の効果以上のように、本実施形態によれば、左実世界画像および右実世界画像のいずれか一方のマーカー認識結果から計算される一方の外側撮像部外側撮像部左23aまたは外側撮像部右23bのマーカー座標系における位置及び姿勢に基づいて、一方の仮想カメラの位置および姿勢が決定され、さらに、左仮想カメラ63Lの位置及び姿勢と右仮想カメラ63Rの位置及び姿勢が理想的な関係となるように、他方の仮想カメラの位置及び姿勢が決定される。したがって、立体視可能な表示装置において、正常に立体視できるように仮想オブジェクト62を表示することができる。また、左実世界画像に対するマーカー認識結果に基づいて計算された外側撮像部左23aの位置と、右実世界画像に対するマーカー認識結果に基づいて計算された外側撮像部右23bの位置とに基づいて、両外側撮像部の間隔を算出し、その結果に基づいて仮想カメラ間隔EyeWidthを決定し、一方の仮想カメラの位置を当該仮想カメラの座標系の撮影方向に直交する方向に当該間隔だけ移動させることにより他方の仮想カメラの位置を決定する。これにより、両仮想カメラが撮影方向に直行する方向に並ぶように設定することができる。また、仮に、外側撮像部左23aと外側撮像部右23bの間隔が既知でない場合や、ゲーム装置10に対する外側撮像部左23aおよび外側撮像部右23bの取り付け精度が悪い場合であっても、左仮想カメラ63Lと右仮想カメラ63Rを理想的な間隔で配置することができる。また、仮想カメラ間隔決定処理によって仮想カメラ間隔EyeWidthが決定された後は、メイン実世界画像に対してのみマーカー認識処理を行えばよいため、常に左実世界画像と右実世界画像の両方に対してマーカー認識処理を行う場合と比較して、処理負担を軽減することができる。なお、外側撮像部左23aと外側撮像部右23bの間隔が既知である場合には、仮想カメラ間隔決定処理の結果に基づいて、実世界における外側撮像部左23aと外側撮像部右23bの間隔例えば3.5cmに対応する、マーカー座標系における外側撮像部左23aと外側撮像部右23bの間隔EyeWidthが判明する。したがって、例えば、身長が30cmのキャラクタ仮想オブジェクトを実世界画像に合成表示したり、実世界画像に合成表示されるキャラクタ仮想オブジェクトを秒速10cmで移動させたりというように、仮想空間において、実世界のスケールに基づいた処理を行うことが可能となる。変形例なお、上記実施形態では、実世界画像に含まれるマーカー61の位置及び姿勢を認識して、その認識結果に応じて実世界画像に仮想オブジェクト62を合成しているが、他の実施形態では、マーカー61に限らず、任意の認識対象の位置及び/又は姿勢を認識して、その認識結果に応じて実世界画像に仮想オブジェクト62を合成してもよい。認識対象の一例として、人物の顔が挙げられる。また、上記実施形態では、外側撮像部23によってリアルタイムに撮像される実世界画像に基づいて上側LCD22に立体画像を表示しているが、他の実施形態では、外側撮像部23や外部のステレオカメラ等によって過去に撮像された動画像データに基づいて上側LCD22に立体画像を表示するようにしてもよい。また、上記実施形態では、外側撮像部23がゲーム装置10に予め搭載されているが、他の実施形態では、ゲーム装置10に着脱可能な外付け型のカメラを利用してもよい。また、上記実施形態では、上側LCD22がゲーム装置10に予め搭載されているが、他の実施形態では、ゲーム装置10に着脱可能な外付け型の立体視ディスプレイを利用してもよい。また、上記実施形態では、マーカー座標系の原点の位置に仮想オブジェクト62を配置しているが、他の実施形態では、マーカー座標系の原点から離れた位置に仮想オブジェクト62を配置してもよい。また、上記実施形態では、仮想空間に仮想オブジェクトを1つだけ配置しているが、他の実施形態では、仮想空間に複数の仮想オブジェクトを配置してもよい。また、上記実施形態では、仮想カメラ間隔決定処理において、マーカー座標系における外側撮像部左23aと外側撮像部右23bの間隔EyeWidthを計算した後、当該間隔に基づいて、マーカー認識結果に基づいて計算された左仮想カメラ63Lおよび右仮想カメラ63Rのいずれか一方の仮想カメラの位置及び姿勢から、他方の仮想カメラの位置及び姿勢を決定しているが、他の実施形態では、左実世界画像に対するマーカー認識結果に基づいて計算された外側撮像部左23aの位置及び姿勢と、右実世界画像に対するマーカー認識結果に基づいて計算された外側撮像部右23bの位置及び姿勢とに基づいて、外側撮像部23の位置および姿勢例えば、外側撮像部右23aの位置と外側撮像部左23bの位置の平均位置、外側撮像部右23aの姿勢と外側撮像部左23bの姿勢の平均姿勢を算出し、それに基づいて、左仮想カメラ63Lおよび右仮想カメラ63Rの位置及び/又は姿勢を決定するようにしてもよい。例えば、左仮想カメラ63Lおよび右仮想カメラ63Rの姿勢が、いずれも、左実世界画像に対するマーカー認識結果に基づいて計算された外側撮像部左23aの姿勢と、右実世界画像に対するマーカー認識結果に基づいて計算された外側撮像部右23bの姿勢のちょうど中間の姿勢となるように、左仮想カメラ63Lおよび右仮想カメラ63Rの姿勢を決定するようにしてもよい。また例えば、仮想カメラ間隔決定処理において外側撮像部左23aと外側撮像部右23bの間隔EyeWidthを計算した後に、左実世界画像に対するマーカー認識結果に基づいて計算された外側撮像部左23aの位置と、右実世界画像に対するマーカー認識結果に基づいて計算された外側撮像部右23bの位置の平均位置に対応する仮想空間内の位置から互いに反対方向にEyeWidth/2だけ仮想カメラの撮影方向と直交する方向にずらすことによって、左仮想カメラ63Lおよび右仮想カメラ63Rの位置を決定するようにしてもよい。また、上記実施形態では、仮想カメラ間隔決定処理によって仮想カメラ間隔EyeWidthが決定された後は、メイン実世界画像に対してのみマーカー認識処理を行っているが、他の実施形態では、常に左実世界画像と右実世界画像の両方に対してマーカー認識処理を行うようにしてもよい。また、上記実施形態では、上側LCD22がパララックスバリア方式の立体表示装置であるが、他の実施形態では、上側LCD22がレンチキュラー方式等の他の任意の方式の立体表示装置であってもよい。例えば、レンチキュラー方式の立体表示装置を利用する場合には、左目用画像と右目用画像をCPU311または他のプロセッサで合成してから、当該合成画像をレンチキュラー方式の立体表示装置に供給するようにしてもよい。また、上記実施形態では、ゲーム装置10を用いて実世界画像に仮想オブジェクトを合成表示しているが、他の実施形態では、任意の情報処理装置または情報処理システム例えば、PDAPersonalDigitalAssistant、携帯電話、パーソナルコンピュータ、カメラ等を用いて実世界画像に仮想オブジェクトを合成表示してもよい。また、上記実施形態では、一台の情報処理装置ゲーム装置10のみによって画像表示処理を実行しているが、他の実施形態では、互いに通信可能な複数の情報処理装置を有する画像表示システムにおいて、当該複数の情報処理装置が画像表示処理を分担して実行するようにしてもよい。"