(57)【特許請求の範囲】
【請求項１】
立体視可能に画像を出力し得る画像処理装置のコンピュータで実行される画像処理プログラムであって、前記コンピュータを、
仮想空間を撮影することで第１右眼用画像および第１左眼用画像を立体視可能な形式で提供するための仮想ステレオカメラの設定情報を取得する仮想ステレオカメラ設定取得手段、
前記仮想ステレオカメラの撮影方向である奥行き方向の位置を含む、前記仮想空間における第１オブジェクトの位置を指定する位置指定手段、
前記仮想ステレオカメラの設定情報および前記第１オブジェクトの奥行き方向の位置を利用して、前記第１オブジェクトの像を立体視するためのずれ量を算出する算出手段、および
前記位置指定手段によって指定された位置にあるとした場合の前記第１オブジェクトの像を、前記ずれ量に基づき所定の位置から前記奥行き方向と垂直な面と平行に移動させた像をそれぞれ含む、第２右眼用画像および第２左眼用画像を生成する画像生成手段として機能させ、
前記仮想ステレオカメラの設定情報は、前記仮想ステレオカメラを構成する右仮想カメラおよび左仮想カメラとの間の距離、ならびに、奥行き方向に垂直な立体視における基準面と前記仮想カメラとの間の距離を含み、
前記算出手段は、前記右仮想カメラと前記左仮想カメラとの間の距離を利用して、前記ずれ量を算出する、画像処理プログラム。
【請求項２】
前記画像生成手段は、前記第１オブジェクトの像を平行投影によって取得し、当該取得された像を、当該平行投影の投影面上の位置を基点として当該投影面に平行に移動する、請求項１に記載の画像処理プログラム。
【請求項３】
前記第１右眼用画像および前記第１左眼用画像は、前記仮想ステレオカメラを構成する、右仮想カメラおよび左仮想カメラの位置に基づいて、前記仮想空間を透視投影することで得られる、請求項１または２に記載される画像処理プログラム。
【請求項４】
前記画像生成手段は
前記第１オブジェクトを、前記仮想ステレオカメラを構成する右仮想カメラと左仮想カメラの基準となる基準仮想カメラによって平行投影した像を、当該平行投影の投影面上の
位置を基点とし、
前記ずれ量のうち、前記右仮想カメラと、前記基準仮想カメラとの位置関係に応じた距離だけ、前記第１オブジェクトの像を前記基点から第１方向に平行移動して、第２右眼用画像を生成し、
前記ずれ量のうち、前記左仮想カメラと、前記基準仮想カメラとの位置関係に応じた距離だけ、前記第１オブジェクトの像を前記基点から第２方向に平行移動して、第２左眼用画像を生成する、請求項１から３までのいずれか１項に記載の画像処理プログラム。
【請求項５】
前記画像生成手段は
前記第１オブジェクトを、前記仮想ステレオカメラの中間に位置する前記基準仮想カメラによって平行投影した像を、当該平行投影の投影面上の位置を基点とし、
前記ずれ量を２等分して得た距離だけ、前記第１オブジェクトの像を前記基点から第１方向に平行移動して、第２右眼用画像を生成し、
前記ずれ量を２等分して得た距離だけ、前記第１オブジェクトの像を前記基点から前記第１方向と逆の方向に平行移動して、第２左眼用画像を生成する、請求項４に記載の画像処理プログラム。
【請求項６】
前記コンピュータを、前記右仮想カメラと前記左仮想カメラとの間の距離を変更するための仮想カメラ間隔変更手段としてさらに機能させ、
前記仮想カメラ設定取得手段は、前記仮想カメラ間隔変更手段によって変更された前記距離を含む前記仮想カメラの設定情報を取得する、請求項５に記載の画像処理プログラム。
【請求項７】
前記仮想カメラ間隔変更手段は、前記画像処理装置のユーザによる操作に応じた入力信号を取得することで、前記距離を変更する、請求項６に記載の画像処理プログラム。
【請求項８】
前記ユーザによる操作は、スライド可能な部材を有する入力装置を介して達成され、当該スライド可能な部材の移動量が、前記右仮想カメラと前記左仮想カメラとの間の距離に対応づけられている、請求項７に記載の画像処理プログラム。
【請求項９】
前記コンピュータが有するグラフィックスプロセッシングユニットが、前記算出手段としての機能を担う、請求項１から８までのいずれか１項に記載の画像処理プログラム。
【請求項１０】
前記第１オブジェクトは、前記基準面と平行な２次元画像として規定される、請求項１から９までのいずれか１項に記載の画像処理プログラム。
【請求項１１】
前記画像生成手段は、前記第１のオブジェクトの像を平行に移動させた像を、前記第１右眼用画像および前記第１左眼用画像のそれぞれと合成することで前記第２右眼用画像および前記第２左眼用画像を得る、請求項１から請求項１０のいずれか１項に記載の画像処理プログラム。
【請求項１２】
請求項１から１１までのいずれか１項に記載の画像処理プログラムが有する機能を付与するコード集合体として提供されるプログラム。
【請求項１３】
立体視可能に画像を出力し得る画像処理装置であって、
仮想空間を撮影することで第１右眼用画像および第１左眼用画像を立体視可能な形式で提供するための仮想ステレオカメラの設定情報を取得する仮想ステレオカメラ設定取得手段、
前記仮想ステレオカメラの撮影方向である奥行き方向の位置を含む、前記仮想空間における第１オブジェクトの位置を指定する位置指定手段、
前記仮想ステレオカメラの設定情報および前記第１オブジェクトの奥行き方向の位置を利用して、前記第１オブジェクトの像を立体視するためのずれ量を算出する算出手段、および
前記位置指定手段によって指定された位置にあるとした場合の前記第１オブジェクトの像を、前記ずれ量に基づき所定の位置から前記奥行き方向と垂直な面と平行に移動させた像をそれぞれ含む、第２右眼用画像および第２左眼用画像を生成する画像生成手段を備え、
前記仮想ステレオカメラの設定情報は、前記仮想ステレオカメラを構成する右仮想カメラおよび左仮想カメラとの間の距離、ならびに、奥行き方向に垂直な立体視における基準面と前記仮想カメラとの間の距離を含み、
前記算出手段は、前記右仮想カメラと前記左仮想カメラとの間の距離を利用して、前記ずれ量を算出する、画像処理装置。
【請求項１４】
立体視可能に画像を出力するための画像処理方法であって、
仮想空間を撮影することで第１右眼用画像および第１左眼用画像を立体視可能な形式で提供するための仮想ステレオカメラの設定情報を取得する仮想ステレオカメラ設定取得ステップ、
前記仮想ステレオカメラの撮影方向である奥行き方向の位置を含む、前記仮想空間における第１オブジェクトの位置を指定する位置指定ステップ、
前記仮想ステレオカメラの設定情報および前記第１オブジェクトの奥行き方向の位置を利用して、前記第１オブジェクトの像を立体視するためのずれ量を算出する算出ステップ、および
前記位置指定ステップによって指定された位置にあるとした場合の前記第１オブジェクトの像を、前記ずれ量に基づき所定の位置から前記奥行き方向と垂直な面と平行に移動させた像をそれぞれ含む、第２右眼用画像および第２左眼用画像を生成する画像生成ステップとして機能させ、
前記仮想ステレオカメラの設定情報は、前記仮想ステレオカメラを構成する右仮想カメラおよび左仮想カメラとの間の距離、ならびに、奥行き方向に垂直な立体視における基準面と前記仮想カメラとの間の距離を含み、
前記算出ステップにおいて、前記右仮想カメラと前記左仮想カメラとの間の距離を利用して、前記ずれ量を算出する、画像処理方法。
【請求項１５】
立体視可能に画像を出力し得る画像処理システムであって、
仮想空間を撮影することで第１右眼用画像および第１左眼用画像を立体視可能な形式で提供するための仮想ステレオカメラの設定情報を取得する仮想ステレオカメラ設定取得手段、
前記仮想ステレオカメラの撮影方向である奥行き方向の位置を含む、前記仮想空間における第１オブジェクトの位置を指定する位置指定手段、
前記仮想ステレオカメラの設定情報および前記第１オブジェクトの奥行き方向の位置を利用して、前記第１オブジェクトの像を立体視するためのずれ量を算出する算出手段、および
前記位置指定手段によって指定された位置にあるとした場合の前記第１オブジェクトの像を、前記ずれ量に基づき所定の位置から前記奥行き方向と垂直な面と平行に移動させた像をそれぞれ含む、第２右眼用画像および第２左眼用画像を生成する画像生成手段を備え、
前記仮想ステレオカメラの設定情報は、前記仮想ステレオカメラを構成する右仮想カメラおよび左仮想カメラとの間の距離、ならびに、奥行き方向に垂直な立体視における基準面と前記仮想カメラとの間の距離を含み、
前記算出手段は、前記右仮想カメラと前記左仮想カメラとの間の距離を利用して、前記ずれ量を算出する、画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラム、画像処理装置、画像処理方法および画像処理システムに関する。より具体的には、本発明は、立体視可能な態様で画像の表示を行なう画像処理プログラム、画像処理装置、画像処理方法および画像処理システムに関する。
【背景技術】
【０００２】
立体視関連技術が広まっており、映画、ゲーム等へ適用されつつある。映画やゲーム等において３次元（３Ｄ）仮想空間を立体視表示する場合には、通常、３Ｄ仮想空間を複数の視点（仮想カメラ）に基づいて透視投影した立体視用の右眼用画像と左眼用画像を生成する（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−００７３９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、例えば、３Ｄ仮想空間内にグラフィカルユーザインターフェース（ＧＵＩ）機能を担う仮想オブジェクト（例えば、操作用ボタンを表すための２次元画像）を立体視表示しようとするとき、そのようなオブジェクトの立体視表示は、従来の技術において種々の問題を伴う。例えば、次のような問題が生じる。
【０００５】
ＧＵＩ用オブジェクトが、３Ｄ仮想空間（ワールド座標系）に配置されて、複数の視点に基づいた透視投影処理を受けて、立体視用の画像が生成される場合がある。このとき、視点（仮想カメラ）から遠位に位置づけられたＧＵＩ用オブジェクトは、近位に位置づけられた同じオブジェクトと比べて、表示装置の表示面においてより小さく表示される。したがって、視点とＧＵＩ用オブジェクトとの位置関係によっては、その空間に配置されるオブジェクトが結果的に非常に小さなサイズで表示される場合がある。
【０００６】
他方、ＧＵＩ用オブジェクトは、表示されるオブジェクトを介してユーザが所定の操作を行ない得る態様（大きさ、位置）で表示されなければならない。上述のように視点からＧＵＩ用オブジェクトが遠位に位置する場合に、画面上で表示サイズが小さなサイズとならないようにするためには、ＧＵＩ用オブジェクトそのものの大きさを大きくする必要がある。しかし、この方法ではＧＵＩ用オブジェクトの実際の大きさと画面上で表示される大きさが異なることになるため、所望のＧＵＩ用オブジェクトの表示を得ることが難しかった。
【０００７】
また、ＧＵＩ用オブジェクトに最終的には奥行き感を持たせてユーザに立体視表示したい場合であっても、アプリケーションプログラムの作成時では、その画面デザイン（表示面上のＧＵＩ用画像であるアイコンなどの配置）は、２次元画像に表示面上の２次元的に配置を与えることで行なわれる場合がある。しかし、ＧＵＩ用オブジェクトに対して上述のような投影処理が行なわれる場合、表示面上では想定した位置からずれた位置（例えば、画面の中央に偏った位置）にそのようなオブジェクトが表示される現象が生じる。
【０００８】
このような現象の存在のために、製作者は、表示面上の特定の位置を指定して表示したい場合に、立体視でどのように見えるかということと、表示面上のどこに表示されるかということを考慮して、ＧＵＩ用オブジェクトを配置する必要があった。
【０００９】
このように、上述のような所定のオブジェクトの立体視表示を行なう場合、奥行き情報に応じて表示画上でのオブジェクトの位置・大きさは変動するため、表示画上でのオブジェクトの位置・大きさを指定しつつ、立体視の際の奥行きの位置を決定することには、困難が伴った。
【００１０】
それゆえに、この発明の目的は、このような状況を解決し得る、新規な画像処理装置、画像処理プログラム、画像処理方法および画像処理システムを提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明は、その一例として、以下のような態様で提供され得る。以下で示した具体的な記載のいずれもが、本発明の外延を理解するために示した例示的な記載であって、本発明がこの例に限定されることを意図するものではない。すなわち、当業者は、その具体的な記載から、本発明に関する記載および技術常識に基づいて均等な範囲を実施することができることを理解し得る。
【００１２】
一態様において、本発明は、立体視可能に画像を出力し得る画像処理装置のコンピュータで実行される画像処理プログラムを提供する。この画像処理プログラムは、上記コンピュータを、仮想ステレオカメラ設定取得手段、位置指定手段、算出手段および画像生成手段として機能させる。
【００１３】
この仮想ステレオカメラ設定取得手段は、仮想空間を撮影することで第１右眼用画像および第１左眼用画像を立体視可能な形式で提供するための仮想ステレオカメラの設定情報を取得する。
【００１４】
位置指定手段は、上記仮想ステレオカメラの撮影方向である奥行き方向の位置を含む、上記仮想空間における第１オブジェクトの位置を指定する。
【００１５】
算出手段は、上記仮想ステレオカメラの設定情報および上記第１オブジェクトの奥行き方向の位置を利用して、上記第１オブジェクトの像を立体視するためのずれ量を算出する。
【００１６】
画像生成手段は、上記位置指定手段によって指定された位置にあるとした場合の上記第
１オブジェクトの像を、上記ずれ量に基づき所定の位置から前記奥行き方向と垂直な面と
平行に移動させた像をそれぞれ含む、第２右眼用画像および第２左眼用画像を生成する。また、仮想ステレオカメラの設定情報は、仮想ステレオカメラを構成する右仮想カメラおよび左仮想カメラとの間の距離、ならびに、奥行き方向に垂直な立体視における基準面と仮想カメラとの間の距離を含み、算出手段は、右仮想カメラと左仮想カメラとの間の距離を利用して、ずれ量を算出する。
【００１７】
なお、上述の投影面は、投影処理を行なう際に想定される概念的な面であり、その投影処理を規定すべき条件を示すための例示的な表現である。よって、この投影面との表現は、意図する投影処理またはそれに関連する処理を規定するのための絶対的な表現ではなく、その投影処理に係る演算と数学的に同値な別の演算方法またはその処理と情報処理的に等価もしくは近似的に同一とみなされる処理を規定する別の表現によって置き換えられてもよい。したがって、投影面との表現は、そのような同値、等価なものも包摂すると解釈されるべきである。
【００１８】
また、本明細書において使用される場合、「基準面」は、仮想カメラからどれだけの距離のところを立体視時にディスプレイ面上のにあるように視認させるかという設定を規定する平面である。
【００１９】
一実施形態において、上記画像生成手段は、上記第１オブジェクトの像を平行投影によって取得し、当該取得された像を、当該平行投影の投影面上の位置を基点として当該投影面に平行に移動してもよい。
【００２０】
一実施形態において、上記第１右眼用画像および第１左眼用画像は、上記仮想ステレオカメラを構成する、右仮想カメラおよび左仮想カメラの位置に基づいて、上記仮想空間を透視投影することで取得してもよい。
【００２１】
種々の実施形態において、上記画像生成手段は、上記第１オブジェクトを、上記仮想ステレオカメラを構成する右仮想カメラと左仮想カメラの基準となる基準仮想カメラによって平行投影した像を、当該平行投影の投影面上の位置を基点としてよい。そして、このとき、上記画像生成手段は、上記ずれ量のうち、上記右仮想カメラと、上記基準仮想カメラとの位置関係に応じた距離だけ、上記第１オブジェクトの像を上記基点から第１方向に平行移動して、第２右眼用画像を生成する。他方で、このときに、上記画像生成手段は、上記ずれ量のうち、上記左仮想カメラと、上記基準仮想カメラとの位置関係に応じた距離だけ、上記第１オブジェクトの像を上記基点から第２方向に平行移動して、第２左眼用画像を生成する。
【００２２】
一実施形態において、上記画像生成手段は、上記第１オブジェクトを、前記仮想ステレオカメラの中間に位置する前記基準仮想カメラによって平行投影した像を、当該平行投影の投影面上の位置を基点とし、上記ずれ量を２等分して得た距離だけ、上記第１オブジェクトの像を上記基点から第１方向に平行移動して、第２右眼用画像を生成し、上記ずれ量を２等分して得た距離だけ、上記第１オブジェクトの像を上記基点から上記第１方向と逆の方向に平行移動して、第２左眼用画像を生成してもよい。
【００２４】
一実施形態において、上記画像処理プログラムは、上記コンピュータを、上記右仮想カメラと上記左仮想カメラとの間の距離を変更するための仮想カメラ間隔変更手段としてさらに機能させる。そして、上記仮想カメラ設定取得手段は、上記仮想カメラ間隔変更手段によって変更された上記距離を含む上記仮想カメラの設定情報を取得する。
【００２５】
一実施形態において、上記仮想カメラ間隔変更手段は、上記画像処理装置のユーザによる操作に応じた入力信号を取得することで、上記距離を変更してもよい。
【００２６】
上記実施形態において、上記ユーザによる操作は、スライド可能な部材を有する入力装置を介して達成され、当該スライド可能な部材の移動量が、上記右仮想カメラと上記左仮想カメラとの間の距離に対応づけられてもよい。
【００２７】
上記実施形態において、上記コンピュータが有するグラフィックスプロセッシングユニットが、上記算出手段としての機能を担ってもよい。
【００２８】
上記実施形態において、上記第１オブジェクトは、基準面と平行な２次元画像として規定されてもよい。
【００２９】
種々の実施形態において、上記画像生成手段は、上記第１のオブジェクトの像を平行に移動させた像を、上記第１右眼用画像および上記第１左眼用画像のそれぞれと合成することで上記第２右眼用画像および上記第２左眼用画像を得てもよい。
【００３０】
様々な実施形態において、本発明は、上述の画像処理プログラムが有する機能を付与するコード集合体として提供されるプログラムとして提供されてもよい。
【００３１】
本明細書において使用される場合、「コード集合体」とは、計算機（コンピュータ）による処理に適した命令、データ表現の集合体である。また、「機能を付与するコード集合体」とは、他のプログラムに何らかの機能を提供するコード集合体である。このコード集合体は、実行形式で提供されてもよいが、ソースコード形式、オブジェクトコード形式、またはその他の専用の形式で提供されてもよい。
【００３２】
また、別の態様において、本発明は、画像処理プログラムが提供する機能を、装置、システム、方法として実装し得る。
【００３３】
本明細書において使用される場合、「オブジェクト」または「仮想オブジェクト」との用語は、情報処理装置における操作・処理の対象であって、場合によってはその動作を含めたものをいう。したがって、仮想オブジェクトは、個別座標で規定された３次元モデルのみではなく、２次元画像（必要に応じて、奥行き情報を付加されたもの）を含む。
【００３４】
なお、本明細書で使用される場合、「コンピュータ読み取り可能な記憶媒体」との用語は、プログラム、コードおよび／またはデータをコンピュータシステムによって使用するために記憶することが可能な、任意の装置または媒体をいう。コンピュータ読み取り可能な記憶媒体は、コンピュータシステムによって読み取りが可能である限りにおいて、揮発性であっても、不揮発性であってもよい。コンピュータ読み取り可能な記憶媒体としては、例えば、磁気テープ、ハードディスクドライブ（ＨＤＤ）、コンパクトディスク（ＣＤ）、デジタルバーサタイルディスク（ＤＶＤ）、ブルーレイ（登録商標）ディスク（ＢＤ）、半導体メモリなどが挙げられるが、これらに限られない。
【００３５】
また、本明細書において使用される場合、「システム」（例えば、ゲームシステム、画像処理システム、情報処理システム）との用語は、１つの装置で構成されてもよく、また、複数の装置であって、その各々の装置が他の装置のいずれかと通信可能であるものであってもよい。
【００３６】
本明細書において使用される場合、装置またはシステムが、別の装置またはシステムに「接続する」状態は、有線で接続される状態に限らず、無線で接続される状態も包含し得る。
【発明の効果】
【００３７】
より利便性の高い、新規な立体視表示を提供する画像処理プログラム、画像処理装置、画像処理方法および画像処理システムが提供される。
【図面の簡単な説明】
【００３８】
【図１】開状態におけるゲーム装置１０の正面図
【図２】閉状態におけるゲーム装置１０の左側面図、正面図、右側面図および背面図
【図３】ゲーム装置１０の内部構成を示すブロック図
【図４Ａ】２次元画像として提供されたＧＵＩ用の仮想オブジェクトの一例を示す模式図
【図４Ｂ】視差バリアが無効となっている際に、上側ＬＣＤ２２にオブジェクトＯＢＪ１が表示されている例示的な位置を示す模式図
【図４Ｃ】仮想オブジェクトが透視投影に基づいて描かれた画像が、上側ＬＣＤ２２に表示された様子の一例を示す模式図
【図４Ｄ】図４Ｃに示された画像を得る場合に想定されるビューボリュームの一例を示す模式図
【図４Ｅ】右仮想カメラＲＣおよび左仮想カメラＬＣのそれぞれのビューボリュームと、それぞれの仮想カメラの位置を求めるための基準となった仮想カメラＢＣのビューボリュームとを示す模式図
【図４Ｆ】投影面に平行投影して得られた仮想オブジェクトＯＢＪ１の像を投影面上で平行移動をする処理の一例を説明する模式図
【図４Ｇ】平行投影された仮想オブジェクトＯＢＪ１が、透視投影に基づき表示された仮想オブジェクトＯＢＪ２と重ね合わされて表示面（上側ＬＣＤ２２）に表示されている様子を示す模式図
【図５】ゲーム装置１０のメインメモリ３２のメモリマップを示す模式図
【図６Ａ】、本発明の例示的実施形態であるゲーム装置１０において、その画像処理プログラム７０に基づいて行われるメイン処理の一例を示すフローチャート
【図６Ｂ】特別描画処理の一例を示すフローチャート
【発明を実施するための形態】
【００３９】
（ゲーム装置の構成）
以下、本発明の一実施形態に係るゲーム装置について説明する。図１および図２は、ゲーム装置１０の外観を示す平面図である。ゲーム装置１０は携帯型のゲーム装置であり、図１および図２に示すように折り畳み可能に構成されている。図１は、開いた状態（開状態）におけるゲーム装置１０を示し、図２は、閉じた状態（閉状態）におけるゲーム装置１０を示している。図１は、開状態におけるゲーム装置１０の正面図である。ゲーム装置１０は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置１０は、交換可能なメモリカード内に記憶され、または、サーバーや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【００４０】
まず、図１および図２を参照して、ゲーム装置１０の外観構成について説明する。図１および図２に示されるように、ゲーム装置１０は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に接続されている。
【００４１】
（下側ハウジングの説明）
まず、下側ハウジング１１の構成について説明する。図１および図２に示すように、下側ハウジング１１には、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２、タッチパネル１３、各操作ボタン１４Ａ〜１４Ｌ、アナログスティック１５、ＬＥＤ１６Ａ〜１６Ｂ、挿入口１７、および、マイクロフォン用孔１８が設けられる。以下、これらの詳細について説明する。
【００４２】
図１に示すように、下側ＬＣＤ１２は下側ハウジング１１に収納される。下側ＬＣＤ１２の画素数は、例えば、３２０ｄｏｔ×２４０ｄｏｔ（横×縦）であってもよい。下側ＬＣＤ１２は、後述する上側ＬＣＤ２２とは異なり、画像を（立体視可能ではなく）平面的に表示する表示装置である。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側ＬＣＤ１２として、任意の解像度の表示装置を利用することができる。
【００４３】
図１に示されるように、ゲーム装置１０は、入力装置として、タッチパネル１３を備えている。タッチパネル１３は、下側ＬＣＤ１２の画面上に装着されている。なお、本実施形態では、タッチパネル１３は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル１３として、下側ＬＣＤ１２の解像度と同解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１３の解像度と下側ＬＣＤ１２の解像度が一致している必要はない。また、下側ハウジング１１の上側面には挿入口１７（図１および図２（ｄ）に示す点線）が設けられている。挿入口１７は、タッチパネル１３に対する操作を行うために用いられるタッチペン２８を収納することができる。なお、タッチパネル１３に対する入力は通常タッチペン２８を用いて行われるが、タッチペン２８に限らずユーザの指でタッチパネル１３に対する入力をすることも可能である。
【００４４】
各操作ボタン１４Ａ〜１４Ｌは、所定の入力を行うための入力装置である。図１に示されるように、下側ハウジング１１の内側面（主面）には、各操作ボタン１４Ａ〜１４Ｌのうち、十字ボタン１４Ａ（方向入力ボタン１４Ａ）、ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅ、電源ボタン１４Ｆ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌが、設けられる。十字ボタン１４Ａは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン１４Ａ〜１４Ｅ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌには、ゲーム装置１０が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン１４Ａは選択操作等に用いられ、各操作ボタン１４Ｂ〜１４Ｅは、例えば、決定操作やキャンセル操作等に用いられる。また、電源ボタン１４Ｆは、ゲーム装置１０の電源をオン／オフするために用いられる。
【００４５】
アナログスティック１５は、方向を指示するデバイスである。アナログスティック１５は、そのキートップが、下側ハウジング１１の内側面に平行にスライドするように構成されている。アナログスティック１５は、ゲーム装置１０が実行するプログラムに応じて機能する。例えば、３次元仮想空間に所定の仮想オブジェクトが登場するゲームがゲーム装置１０によって実行される場合、アナログスティック１５は、当該所定の仮想オブジェクトを３次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定の仮想オブジェクトはアナログスティック１５のキートップがスライドした方向に移動される。なお、アナログスティック１５として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【００４６】
また、下側ハウジング１１の内側面には、マイクロフォン用孔１８が設けられる。マイクロフォン用孔１８の下部には後述する音声入力装置としてのマイク４２（図３参照）が設けられ、当該マイク４２がゲーム装置１０の外部の音を検出する。
【００４７】
図２（ａ）は閉状態におけるゲーム装置１０の左側面図であり、図２（ｂ）は閉状態におけるゲーム装置１０の正面図であり、図２（ｃ）は閉状態におけるゲーム装置１０の右側面図であり、図２（ｄ）は閉状態におけるゲーム装置１０の背面図である。図２（ｂ）および（ｄ）に示されるように、下側ハウジング１１の上側面には、Ｌボタン１４ＧおよびＲボタン１４Ｈが設けられている。Ｌボタン１４ＧおよびＲボタン１４Ｈは、例えば、撮像部のシャッターボタン（撮影指示ボタン）として機能することができる。また、図２（ａ）に示されるように、下側ハウジング１１の左側面には、音量ボタン１４Ｉが設けられる。音量ボタン１４Ｉは、ゲーム装置１０が備えるスピーカの音量を調整するために用いられる。
【００４８】
図２（ａ）に示されるように、下側ハウジング１１の左側面には開閉可能なカバー部１１Ｃが設けられる。このカバー部１１Ｃの内側には、ゲーム装置１０とデータ保存用外部メモリ４５とを電気的に接続するためのコネクタ（図示せず）が設けられる。データ保存用外部メモリ４５は、コネクタに着脱自在に装着される。データ保存用外部メモリ４５は、例えば、ゲーム装置１０によって撮像された画像のデータを記憶（保存）するために用いられる。
【００４９】
また、図２（ｄ）に示されるように、下側ハウジング１１の上側面には、ゲーム装置１０とゲームプログラムを記録した外部メモリ４４を挿入するための挿入口１１Ｄが設けられ、その挿入口１１Ｄの内部には、外部メモリ４４と電気的に着脱自在に接続するためのコネクタ（図示せず）が設けられる。当該外部メモリ４４がゲーム装置１０に接続されることにより、所定のゲームプログラムが実行される。
【００５０】
また、図１および図２（ｃ）に示されるように、下側ハウジング１１の下側面にはゲーム装置１０の電源のＯＮ／ＯＦＦ状況をユーザに通知する第１ＬＥＤ１６Ａ、下側ハウジング１１の右側面にはゲーム装置１０の無線通信の確立状況をユーザに通知する第２ＬＥＤ１６Ｂが設けられる。ゲーム装置１０は他の機器との間で無線通信を行うことが可能であり、第２ＬＥＤ１６Ｂは、無線通信が確立している場合に点灯する。ゲーム装置１０は、例えば、ＩＥＥＥ８０２．１１ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。下側ハウジング１１の右側面には、この無線通信の機能を有効／無効にする無線スイッチ１９が設けられる（図２（ｃ）参照）。
【００５１】
なお、図示は省略するが、下側ハウジング１１には、ゲーム装置１０の電源となる充電式電池が収納され、下側ハウジング１１の側面（例えば、上側面）に設けられた端子を介して当該電池を充電することができる。
【００５２】
（上側ハウジングの説明）
次に、上側ハウジング２１の構成について説明する。図１および図２に示すように、上側ハウジング２１には、上側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）２２、外側撮像部２３（外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂ）、内側撮像部２４、３Ｄ調整スイッチ２５、および、３Ｄインジケータ２６が設けられる。以下、これらの詳細について説明する。
【００５３】
図１に示すように、上側ＬＣＤ２２は上側ハウジング２１に収納される。上側ＬＣＤ２２の画素数は、例えば、８００ｄｏｔ×２４０ｄｏｔ（横×縦）であってもよい。なお、本実施形態では上側ＬＣＤ２２は液晶表示装置であるとしたが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置などが利用されてもよい。また、上側ＬＣＤ２２として、任意の解像度の表示装置を利用することができる。
【００５４】
上側ＬＣＤ２２は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左眼用画像と右眼用画像が表示される。具体的には、左眼用画像と右眼用画像が所定単位で（例えば、１列ずつ）横方向に交互に表示される方式の表示装置である。または、左眼用画像と右眼用画像とが交互に表示される方式の表示装置であってもよい。また、本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左眼用画像と右眼用画像とを左眼および右眼のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式（視差バリア方式）のものが用いられる。
【００５５】
本実施形態では、上側ＬＣＤ２２はパララックスバリア方式のものとする。上側ＬＣＤ２２は、右眼用画像と左眼用画像とを用いて、裸眼で立体視可能な画像（立体画像）を表示する。すなわち、上側ＬＣＤ２２は、視差バリアを用いてユーザの左眼に左眼用画像をユーザの右眼に右眼用画像を視認させることにより、ユーザにとって立体感のある立体画像（立体視可能な画像）を表示することができる。また、上側ＬＣＤ２２は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる（上述した立体視とは反対の意味で平面視の画像を表示することができる。表示された同一の画像が右眼にも左眼にも見えるような表示モードである）。このように、上側ＬＣＤ２２は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する（平面視画像を表示する）平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切替えは、後述する３Ｄ調整スイッチ２５によって行われる。
【００５６】
外側撮像部２３は、上側ハウジング２１の外側面（上側ＬＣＤ２２が設けられた主面と反対側の背面）２１Ｄに設けられた２つの撮像部（２３ａおよび２３ｂ）の総称である。外側撮像部（左）２３ａと外側撮像部（右）２３ｂの撮像方向は、いずれも当該外側面２１Ｄの外向きの法線方向である。外側撮像部（左）２３ａと外側撮像部（右）２３ｂとは、ゲーム装置１０が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、それぞれ所定の共通の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００５７】
内側撮像部２４は、上側ハウジング２１の内側面（主面）２１Ｂに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部２４は、所定の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００５８】
３Ｄ調整スイッチ２５は、スライドスイッチであり、上述のように上側ＬＣＤ２２の表示モードを切り替えるために用いられるスイッチである。また、３Ｄ調整スイッチ２５は、上側ＬＣＤ２２に表示された立体視可能な画像（立体画像）の立体感を調整するために用いられる。３Ｄ調整スイッチ２５のスライダ２５ａは、所定方向（上下方向）の任意の位置にスライド可能であり、当該スライダ２５ａの位置に応じて上側ＬＣＤ２２の表示モードが設定される。また、スライダ２５ａの位置に応じて、立体画像の見え方が調整される。
【００５９】
３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードか否かを示す。３Ｄインジケータ２６は、ＬＥＤであり、上側ＬＣＤ２２の立体表示モードが有効の場合に点灯する。なお、３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードになっており、かつ、立体視用画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。
【００６０】
また、上側ハウジング２１の内側面には、スピーカ孔２１Ｅが設けられる。後述するスピーカ４３からの音声がこのスピーカ孔２１Ｅから出力される。
【００６１】
（ゲーム装置１０の内部構成）
次に、図３を参照して、ゲーム装置１０の内部の電気的構成について説明する。図３は、ゲーム装置１０の内部構成を示すブロック図である。図３に示すように、ゲーム装置１０は、上述した各部に加えて、情報処理部３１、メインメモリ３２、外部メモリインターフェイス（外部メモリＩ／Ｆ）３３、データ保存用外部メモリＩ／Ｆ３４、データ保存用内部メモリ３５、無線通信モジュール３６、ローカル通信モジュール３７、リアルタイムクロック（ＲＴＣ）３８、加速度センサ３９、電源回路４０、およびインターフェイス回路（Ｉ／Ｆ回路）４１等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【００６２】
情報処理部３１は、所定のプログラムを実行するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１、画像処理を行うＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１２等を含む情報処理手段である。情報処理部３１のＣＰＵ３１１は、ゲーム装置１０内のメモリ（例えば外部メモリＩ／Ｆ３３に接続された外部メモリ４４やデータ保存用内部メモリ３５）に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、情報処理部３１のＣＰＵ３１１によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部３１は、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３１３を含む。情報処理部３１のＧＰＵ３１２は、情報処理部３１のＣＰＵ３１１からの命令に応じて画像を生成し、ＶＲＡＭ３１３に描画する。そして、情報処理部３１のＧＰＵ３１２は、ＶＲＡＭ３１３に描画された画像を上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に出力し、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に当該画像が表示される。
【００６３】
情報処理部３１には、メインメモリ３２、外部メモリＩ／Ｆ３３、データ保存用外部メモリＩ／Ｆ３４、および、データ保存用内部メモリ３５が接続される。外部メモリＩ／Ｆ３３は、外部メモリ４４を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリＩ／Ｆ３４は、データ保存用外部メモリ４５を着脱自在に接続するためのインターフェイスである。
【００６４】
メインメモリ３２は、情報処理部３１（のＣＰＵ３１１）のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ３２は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部（外部メモリ４４や他の機器等）から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ３２として例えばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。
【００６５】
外部メモリ４４は、情報処理部３１によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ４４は、例えば読み取り専用の半導体メモリで構成される。外部メモリ４４が外部メモリＩ／Ｆ３３に接続されると、情報処理部３１は外部メモリ４４に記憶されたプログラムを読み込むことができる。情報処理部３１が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ４５は、不揮発性の読み書き可能なメモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ４５には、外側撮像部２３で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ４５がデータ保存用外部メモリＩ／Ｆ３４に接続されると、情報処理部３１はデータ保存用外部メモリ４５に記憶された画像を読み込み、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に当該画像を表示することができる。
【００６６】
データ保存用内部メモリ３５は、読み書き可能な不揮発性メモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ３５には、無線通信モジュール３６を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【００６７】
無線通信モジュール３６は、例えばＩＥＥＥ８０２．１１ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール３７は、所定の通信方式（例えば、独自プロトコルによる通信や、赤外線通信）により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール３６およびローカル通信モジュール３７は情報処理部３１に接続される。情報処理部３１は、無線通信モジュール３６を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール３７を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【００６８】
また、情報処理部３１には、加速度センサ３９が接続される。加速度センサ３９は、直交する３軸方向に沿った直線方向の加速度（直線加速度）の大きさを検出する。なお、加速度センサ３９は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ３９は１軸又は２軸方向を検出する加速度センサであってもよい。情報処理部３１は、加速度センサ３９が検出した加速度を示すデータ（加速度データ）を受信して、ゲーム装置１０の姿勢や動きを検出することができる。
【００６９】
また、情報処理部３１には、ＲＴＣ３８および電源回路４０が接続される。ＲＴＣ３８は、時間をカウントして情報処理部３１に出力する。情報処理部３１は、ＲＴＣ３８によって計時された時間に基づき現在時刻（日付）を計算する。電源回路４０は、ゲーム装置１０が有する電源（下側ハウジング１１に収納される上記充電式電池）からの電力を制御し、ゲーム装置１０の各部品に電力を供給する。
【００７０】
また、情報処理部３１には、Ｉ／Ｆ回路４１が接続される。Ｉ／Ｆ回路４１には、マイク４２およびスピーカ４３が接続される。具体的には、Ｉ／Ｆ回路４１には、図示しないアンプを介してスピーカ４３が接続される。マイク４２は、ユーザの音声を検知して音声信号をＩ／Ｆ回路４１に出力する。アンプは、Ｉ／Ｆ回路４１からの音声信号を増幅し、音声をスピーカ４３から出力させる。また、タッチパネル１３はＩ／Ｆ回路４１に接続される。Ｉ／Ｆ回路４１は、マイク４２およびスピーカ４３（アンプ）の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部３１に出力する。タッチ位置データは、タッチパネル１３の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル１３からの信号の読み込み、および、タッチ位置データの生成を所定時間に１回の割合で行う。情報処理部３１は、タッチ位置データを取得することにより、タッチパネル１３に対して入力が行われた位置を知ることができる。
【００７１】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｌからなり、情報処理部３１に接続される。操作ボタン１４から情報処理部３１へは、各操作ボタン１４Ａ〜１４Ｉに対する入力状況（押下されたか否か）を示す操作データが出力される。情報処理部３１は、操作ボタン１４から操作データを取得することによって、操作ボタン１４に対する入力に従った処理を実行する。
【００７２】
下側ＬＣＤ１２および上側ＬＣＤ２２は情報処理部３１に接続される。下側ＬＣＤ１２および上側ＬＣＤ２２は、情報処理部３１（のＧＰＵ３１２）の指示に従って画像を表示する。本実施形態では、情報処理部３１は、上側ＬＣＤ２２に立体画像（立体視可能な画像）を表示させる。
【００７３】
具体的には、情報処理部３１は、上側ＬＣＤ２２のＬＣＤコントローラ（図示せず）と接続され、当該ＬＣＤコントローラに対して視差バリアのＯＮ／ＯＦＦを制御する。上側ＬＣＤ２２の視差バリアがＯＮになっている場合、情報処理部３１のＶＲＡＭ３１３に格納された右眼用画像と左眼用画像とが、上側ＬＣＤ２２に出力される。
【００７４】
より具体的には、ＬＣＤコントローラは、右眼用画像について縦方向に１ライン分の画素データを読み出す処理と、左眼用画像について縦方向に１ライン分の画素データを読み出す処理とを交互に繰り返すことによって、ＶＲＡＭ３１３から右眼用画像と左眼用画像とを読み出す。これにより、右眼用画像および左眼用画像が、画素を縦に１ライン毎に並んだ短冊状画像に分割され、分割された右眼用画像の短冊状画像と左眼用画像の短冊状画像とが交互に配置された画像が、上側ＬＣＤ２２の画面に表示される。そして、上側ＬＣＤ２２の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右眼に右眼用画像が、ユーザの左眼に左眼用画像が視認される。以上により、上側ＬＣＤ２２の画面には立体視可能な画像が表示される。
【００７５】
外側撮像部２３および内側撮像部２４は、情報処理部３１に接続される。外側撮像部２３および内側撮像部２４は、情報処理部３１の指示に従って画像を撮像し、撮像した画像データを情報処理部３１に出力する。
【００７６】
３Ｄ調整スイッチ２５は、情報処理部３１に接続される。３Ｄ調整スイッチ２５は、スライダ２５ａの位置に応じた電気信号を情報処理部３１に送信する。
【００７７】
また、３Ｄインジケータ２６は、情報処理部３１に接続される。情報処理部３１は、３Ｄインジケータ２６の点灯を制御する。例えば、情報処理部３１は、上側ＬＣＤ２２が立体表示モードである場合、３Ｄインジケータ２６を点灯させる。以上がゲーム装置１０の内部構成の説明である。
【００７８】
（画像処理装置の例示的な実施形態）
（立体視を提供するための処理の概略）
次に、本発明の例示的な実施形態の画像処理装置であるゲーム装置１０において、画像処理プログラム７０に従う処理の概略を説明する。また、この例示的な本実施形態では、以下で説明する処理（特に、後述する図６Ａ以降のフローチャートにおけるすべてのステップの処理）を情報処理部３１が実行するものとして説明するが、このような処理のいずれも、情報処理部３１以外のプロセッサや専用回路が実行するようにしてもよい。
【００７９】
本実施形態において、本発明は、立体視可能に仮想空間を出力し得る画像処理装置の一例としてゲーム装置１０を提供する。ゲーム装置１０は、画像処理プログラム７０（後述の「メモリマップ」についての記載および図５を参照）を実行することで本発明に係る例示的な画像処理を達成する。画像処理プログラム７０は、アプリケーションプログラムとしてのゲームプログラム７１が担うゲーム処理の過程で呼び出されるか、または、そのゲームプログラム７１の機能の一部を担うプログラムとして実行されることで、本発明の例示的な実施形態の画像処理を達成するためのプログラムである。画像処理プログラム７０とゲームプログラム７１との間で行われる機能の分担は、任意に変更し得る。
【００８０】
ゲーム装置１０は、そのゲーム処理の過程において、一連の仮想空間を描画した結果としての画像を立体視可能な状態でその表示面（例えば、上側ＬＣＤ２２）に提供する。ここで、ゲーム装置１０が、図４Ａ以降の図を参照しつつ、仮想空間の画像を描画し、表示する過程の一例を説明する。
【００８１】
アプリケーションプログラムは、ワールド座標（すなわち、図形の入出力を行うために使われる、装置に依存しない直交座標）で規定される３次元シーンを、表示装置の表示面上に２次元のシーンとして表現する処理を規定している。すなわち、ワールド座標に配置されたオブジェクトは、必要に応じて、いくつかの空間すなわち座標系へと変換を受ける。また、ゲームプログラム７１は、ゲーム装置１０が有する表示面（例えば、上側ＬＣＤ２２）に、ＧＵＩ用のアイコンなどの画像（例えば、後述するような、図４Ａに例示されるオブジェクトＯＢＪ１の２次元画像）を表示する場合がある。このようなアイコンは、ユーザが視認しそれに対して所定の操作を行なうために表示面上での所望の位置・大きさを維持しながら表示される必要があり、かつ、そのようなアイコンを立体視可能な形式で提供することが所望される場合もある。
【００８２】
この例示的な実施形態に係るゲーム装置１０は、アプリケーションプログラムの進行に応じて、仮想空間を、仮想ステレオカメラによって所望の視点から撮影することによって、立体視可能な形式で表示面に提供する。そして、ゲーム装置１０は、仮想ステレオカメラで撮影された画像を表示面に立体視可能な形式で表示しつつ、ＧＵＩとして求められる種々の要求を充足する態様で、必要なＧＵＩ用画像も立体視可能な形式で表示する。
【００８３】
まず、ワールド座標で規定される３次元シーンを、表示面（例えば、上側ＬＣＤ２２）上に２次元シーンとして表示するアプリケーションプログラムによって規定される処理、および当該２次元シーンを立体視可能な形式で提供する一般的な処理を説明する。その後、ＧＵＩ用オブジェクトに関する特徴的な処理について、説明する。
【００８４】
ゲーム装置１０で行なわれる情報処理過程において、そのアプリケーションプログラム（例えば、ゲームプログラム７１）の要求に応じ、所定のオブジェクトが、ワールド座標に配置される。この所定のオブジェクトが、例えば、３次元仮想オブジェクトであれば、その３次元オブジェクトは、ローカル座標系で規定されるモデルで表現されており、そのモデルに基づき、ワールド座標系に配置される。
【００８５】
観察者の視点（仮想カメラ）から捉えられた仮想空間の部分空間のみが、最終的に、ゲーム装置１０が有する表示装置の表示面（例えば、上側ＬＤＣ２２）に表示される。この仮想カメラは、ワールド座標系における位置および方向を有しており、その位置および方向は、その仮想カメラを位置づけ、方向づけるために使用される。この仮想カメラおよび全てのモデルは、ビュー座標変換を受ける。ビュー座標変換は、ワールド座標から、仮想カメラを原点に位置づけた所定の座標系へと変換する処理である。この変換後の空間は、カメラ空間（カメラ座標系）と呼ばれる。
【００８６】
このビュー座標変換は、例えば、仮想カメラを、ｚ軸の正方向に向かせて、その際にｙ軸が上方向とし、ｘ軸がその左方向となるように、方向づける。その３軸の実際の方向づけは、アプリケーションプログラムの具体的な仕様に依存して、若干の相違を有する場合がある。例えば、その仮想カメラを原点に位置づけ、その仮想カメラを、ｚ軸の負方向を向かせ、その際にｙ軸が上方向とし、ｘ軸がその右方向となるように、方向づけてもよい。
【００８７】
次いで、必要に応じて、いわゆる頂点シェーディング処理が行なわれてもよい。その後、ゲーム装置１０の情報処理部３１は、投影処理（プロジェクション）を行なう（ビューボリュームを単位立方体（カノニカルビューボリューム）に変換する）。実空間の物体の視覚的なとらえ方（遠近）を再現するために、この投影処理には、通常、透視投影が利用される。
【００８８】
透視投影では、視点（仮想カメラ）から離れたオブジェクトほど、そのオブジェクトは、投影後に、より小さく見える態様で処理が行なわれる。幾何学的には、その透視投影におけるビューボリュームは、錐台である。
【００８９】
そのような態様の投影を利用して得られた画像の一例が、図４Ｃに示される。図４Ｃは、仮想オブジェクトが透視投影に基づいて描かれた画像が、上側ＬＣＤ２２に表示された様子の一例を示す模式図である。具体的には、ビルを模した仮想オブジェクトＯＢＪ２が仮想空間に配置された３次元シーンが、図４Ｃに示されている。
【００９０】
また、図４Ｄは、図４Ｃに示された画像を得る場合に想定されるビューボリュームの一例を示す模式図である。この模式図は、視点Ｏ（仮想カメラＢＣの位置）、ファークリップ面ＦＣと、ニアクリップ面ＮＣと、投影面ＡＢであるときに、所定の画角で規定されたビューボリュームを例示する。
【００９１】
立体視可能な形式で右眼用画像および左眼用画像を生成するためには、その画像を生成するための仮想ステレオカメラ（右仮想カメラＲＣおよび左仮想カメラＬＣ）が、必要である。この図４Ｄは、この仮想ステレオカメラの設定を規定するための基準となる仮想カメラＢＣのビューボリュームを例示している。すなわち、これは、仮想カメラＢＣの位置を、原点にとるビューボリュームである。このようなビューボリュームを、単位立方体に変換することで、オブジェクトが視点から近位に配置される場合と比べ、遠位に位置づけられた同一オブジェクトが小さく表示される画像が得られる。
【００９２】
本例において、右仮想カメラＲＣおよび左仮想カメラＬＣの位置の中点が、仮想カメラＢＣの位置と対応づけられる。また、本例の場合、右仮想カメラＲＣの位置と左仮想カメラＬＣの位置を結んだ直線は、投影面ＡＢと平行である。
【００９３】
右仮想カメラＲＣおよび左仮想カメラＬＣは、仮想カメラＢＣのビューボリュームと類似のビューボリュームをそれぞれ構成する。これらのビューボリュームは、投影面ＡＢを、仮想カメラＢＣのビューボリュームと共有する。このビューボリュームについて詳細は、後述する。いずれにしろ、これらの２種類のビューボリュームを利用することにより、すなわち、複数の視点（仮想カメラ）に基づいて、同一対象（被写体）を捉えて投影面に透視投影することにより、両眼視差を生じる立体視用画像が生成される。複数の視点に基づいた画像のそれぞれは、以下のような手順によって、行なわれる。
【００９４】
投影処理後、仮想空間に配置されたモデルは、正規化装置座標に位置づけられる。本明細書で使用される場合、「正規化装置座標」とは、中間座標系で指定され、所定の範囲（代表的には、０から１まで）に正規化される装置座標をいう。正規化装置座標で表された表示画像は、どの装置空間でも同じ相対位置に表示される。また、ここで、「装置座標」とは、装置に依存した座標系で指定される座標をいう。この正規化装置座標で定義付けられたオブジェクトを含む仮想空間は、表示装置に非依存的にその表示面の所定の位置にその仮想空間に対応する像を表示することができる。
【００９５】
正規化装置座標で規定された仮想オブジェクトは、必要に応じてクリッピング処理を受けた後、装置座標（スクリーン座標）にマッピングされる。具体的には、それらのオブジェクトは、表示装置（例えば、上側ＬＣＤ２２）の規格・設定に合致するように、並進操作・拡大縮小操作を経て、表示面を規定する２次元座標として装置座標で規定される（なお、奥行き方向の情報を付加する場合は、ゲーム装置１０の任意の記憶領域にその値を保持し得る）。装置座標としては、例えば、上側ＬＣＤ２２の表示域の中心を原点としてその表示面に平行なｘｙ平面で表示面として規定され得る。
【００９６】
ゲーム装置１０は、仮想カメラ間隔を反映する右眼用画像および左眼用画像を上側ＬＣＤ２２に表示する。右眼用画像および左眼用画像は、視差バリアの作用により、ユーザの右眼および左眼のそれぞれに認識され、両眼の各々に知覚された画像は、両眼視差の作用によって立体感を引き起こす。ゲーム装置１０が、立体視可能な態様で、仮想空間を描画する概略は、以上のとおりである。
【００９７】
（仮想オブジェクトについて立体視可能な表示を提供する際の新規な特徴）
上述したように、透視投影を利用して３次元空間を表現する場合、同一のオブジェクトであっても、近位で配置された場合よりも遠景で配置されたときに、小さく表示される効果がともなう。そして、このように描画された画像に基づいて立体視用画像を生成した場合には、そのサイズが小さくなる効果を引き継ぐ態様で立体視を提供する。例示的実施形態では、ゲーム装置１０は、この透視投影に従って描かれた３次元空間に配置される仮想オブジェクトが立体視可能な態様でその表示面に表示されていても、その透視投影の設定に影響を与えることなく、所定のオブジェクトを表示面上で所定の大きさ・位置を維持しつつ立体視可能な形式で同一の表示面に表示することできる。
【００９８】
次に、その効果を与え得る技術的な特徴についてより詳細に説明する。
【００９９】
図４Ａは、２次元画像として提供されたＧＵＩ用の仮想オブジェクトの一例を示す模式図である。ここで示される仮想オブジェクトＯＢＪ１は、視覚的に捉えられる形状およびその色の濃淡を表現するための画像データとして規定される。
【０１００】
具体的には、仮想オブジェクトＯＢＪ１のデータは、矩形の外形を有している構造体であって、手前側に迫り出した部分を有するような陰影が付けられて表現された図形を示すデータである。仮想オブジェクトＯＢＪ１は、表示装置の表示面（例えば、上側ＬＣＤ２２）の所定の位置に表示され、ゲーム装置１０で行なわれる処理を、視覚情報を利用しながら制御するためのアイコン（本例では、ボタンを模した画像）として機能する。このアイコンに対して、ユーザは、ゲーム装置１０の所定の入力手段（例えば、タッチパネル１３を介して操作可能な、表示面上で表されるカーソル）を用いて操作し得る。
【０１０１】
なお、ここで、ＧＵＩ用の画像としては、押しボタン機能を担うためのＧＵＩ用画像を例示したが、その例に限られない。例えば、そのようなＧＵＩ用の画像は、ユーザに所定の情報を表示する表示域、所定のパラメータを操作する可動スライダを模した画像であり得るが、他の機能が付与された画像であってもよい。
【０１０２】
ゲームプログラム７１の動作の過程で生じる要求に応じて、上記ＧＵＩ用の仮想オブジェクトＯＢＪ１は、上側ＬＣＤ２２に表示される。視差バリアを無効にした場合は、画像は平面的に表示される。図４Ｂは、視差バリアが無効となっている際に、上側ＬＣＤ２２にオブジェクトＯＢＪ１が表示されている例示的な位置を示す模式図である。そして、アプリケーションプログラムの要求に含まれる設定を前提に、３Ｄ調整スイッチ２５のスライダ２５ａの位置に応じて、仮想オブジェクトＯＢＪ１は、立体視可能な形式で、上側ＬＣＤ２２に表示される。
【０１０３】
この仮想オブジェクトＯＢＪ１に対応する像が、立体視可能な態様で上側ＬＣＤ２２に表示される場合、３Ｄ調整スイッチ２５のスライダ２５ａの位置に応じてその立体視用画像が生成される。仮想オブジェクトＯＢＪ１に割当てられたＧＵＩとしての機能を提供するため、仮想オブジェクトＯＢＪ１は、表示面としての上側ＬＣＤ２２における位置、およびそこでの表示時の大きさを、所定の範囲に収める必要がある。ここで、所定の大きさとは、その仮想オブジェクトＯＢＪ１の画像がＧＵＩ用のアイコンとしての機能を果たす上で十分に視認でき、必要に応じて操作することが可能な大きさである。
【０１０４】
ゲーム装置１０は、この仮想オブジェクトＯＢＪ１を立体視可能な態様で上側ＬＣＤ２２に表示する場合、概ね次の手順に従う。
【０１０５】
アプリケーションプログラム（ゲームプログラム７１）が有する設定に基づき、仮想オブジェクトＯＢＪ１は、仮想空間における位置情報が指定される。そして、その位置情報に従って、平行投影を利用した投影処理を行う。具体的には、ゲーム装置１０は、例えば、ビュー座標変換後に、投影面（代表的には、基準面ＡＢに対応する位置に存在し、事実上、上側ＬＣＤ２２に対応する面としてみなし得る面として取り扱われ得るがこの例に限られない）に対して、仮想オブジェクトＯＢＪ１を直投影（平行投影）する。この直投影の主要な特徴は、平行線が変換後も平行に保たれることである。この変換は、一般にプロジェクション座標変換と呼ばれるものである。
【０１０６】
次に、立体視可能な形式の画像を提供するために、ゲーム装置１０の情報処理部３１は、投影面に平行投影された仮想オブジェクトＯＢＪ１の像の位置を基点にして、その投影面上を所定の方向、移動量で平行移動させる。ゲーム装置１０は、仮想オブジェクトＯＢＪ１について、立体視可能な画像を提供するための移動量および方向を決定するのに、立体視可能な態様な画像群を提供するための仮想ステレオカメラの設定を利用する。
【０１０７】
具体的には、その方向および移動量は、次のような方法により算出する。その算出方法を説明するために、任意点の仮想オブジェクトに設けられるべき、右眼用画像と左眼用画像との間における当該オブジェクトの像（対応点）のずれ量の求め方について説明する。図４Ｅを参照しつつ、この説明を行なう。
【０１０８】
図４Ｅは、右仮想カメラＲＣおよび左仮想カメラＬＣのそれぞれのビューボリュームと、それぞれの仮想カメラの位置を求めるための基準となった仮想カメラＢＣのビューボリュームとを示す模式図である。いずれのビューボリュームも、ファークリップ面ＦＣと、それに平行なニアクリップ面ＮＣと挟まれている。その両クリップ面と平行な基準面ＡＢの位置に投影面（上側ＬＣＤ２２の表示面に対応する）が位置づけられている。
【０１０９】
まず、各仮想カメラからみて基準面より近位にある仮想オブジェクトの代表点Ｍ１において、立体視可能な形式であるために、右眼用画像および左眼用画像に投影された像の間に生じさせるべき水平方向（ｘ軸方向）のずれ量について説明する。
【０１１０】
代表点Ｍ１を、投影面（ゲーム装置１０の表示面に対応する位置にある面）よりも手前に位置する感覚（奥行感の一種）を与えるように、ゲーム装置１０の表示面に表示する条件を算出するために、次のモデルを想定する。
【０１１１】
仮想カメラからｄ1だけ離れた代表点Ｍ１の像を、投影面より手前に表示するには、右眼用画像および左眼用画像において、その仮想カメラ（右仮想カメラ、左仮想カメラ）と代表点Ｍ１とを結ぶ直線と基準面との交点（右仮想カメラについては、点Ｒ1であり、左仮想カメラについては、点Ｌ1である）の位置に、代表点Ｍ１の像を描画する。すなわち、右眼用画像および左眼用画像に投影された像が、仮想カメラＢＣに基づいて投影された像の位置を基点とすると、右眼用画像においては左方向、左眼用画像においては右方向に移動した位置に描画される。そして、右眼用画像および左眼用画像に投影された像の間に生じている水平方向のずれ量が、長さＲ1Ｌ1が必要であることが理解される。
【０１１２】
この長さＲ1Ｌ1は、仮想カメラ間隔Ｉと仮想カメラまでの距離Ｄを用いると、次のように表現される：
Ｒ1Ｌ1＝Ｉ・（Ｄ−ｄ1）／ｄ1                  式（１）
ただし、Ｄ≧ｄ1
【０１１３】
同様に、基準面（上側ＬＣＤ２２）より奥（視点からみて遠位）に（距離ｄ2だけ離れて）位置する仮想オブジェクトの代表点Ｍ２についても、そのずれ量Ｒ2Ｌ2は、次式で表現される：
Ｒ2Ｌ2＝Ｉ・（ｄ２−Ｄ）／ｄ2                  式（２）
ただし、Ｄ＜ｄ2
以下、距離Ｒ1Ｌ1およびＲ2Ｌ2を算出するように求められたずれ量を総称してΔＸ’として表記する。なお、この場合においては、右眼用画像および左眼用画像に投影された像が、仮想カメラＢＣにより投影された像の位置を基点とすると、右眼用画像においては右方向、左眼用画像においては左方向に移動した位置に描画される。
【０１１４】
したがって、立体視可能な画像を得るためには、投影面に平行投影して得られた像を、右眼用画像と左眼用画像との間で、上述したような方向に、総計ΔＸ’のずれ量が生じるように、それらの画像を生成する。
【０１１５】
本実施形態におけるゲーム装置１０は、上述のようなΔＸ’の計算方法と類似の計算方法を利用して、ＧＵＩ用の仮想オブジェクトＯＢＪ１について立体視可能な形式な画像を生成する。この点を、図４Ｆを参照しながらさらに説明する。
【０１１６】
図４Ｆは、仮想オブジェクトＯＢＪ１が、表示面から手前に迫り出すように立体視可能な態様で提示されるためのずれ量ΔＸを説明するための模式図である。
【０１１７】
仮想オブジェクトＯＢＪ１は、アプリケーションプログラムで規定される初期値として、またはそれにより動的に決定されて得られた値として、その位置情報を有している。この位置情報は、代表的には、ワールド座標系の位置情報、またはそのワールド座標系の座標と対応づけられ得る、ゲーム装置１０の表示装置の表示面（上側ＬＣＤ２２）の座標および奥行き情報（例えば、Ｚ値）として規定され得る。
【０１１８】
この例示的実施形態において、仮想オブジェクトＯＢＪ１は、ＧＵＩ用のアイコンとして表示面（例えば、上側ＬＣＤ２２）に表示される。ここで、この仮想オブジェクトＯＢＪ１は、上述の代表点Ｍ１またはＭ２の位置に対応する奥行き値が与えられている。表示面から手前に迫り出すように立体視可能な態様で提示される場合は、代表点Ｍ１に対応する奥行き値が与えられている。
【０１１９】
具体的には、仮想オブジェクトＯＢＪ１は、上述のように２次元画像の形式で与えられており、例えば、メインメモリ上にその画像と対応付けて、代表点Ｍ１およびＭ２の位置に対応する奥行き値を有している。そして、仮想オブジェクトＯＢＪ１は、この奥行き値（例えば、図４Ｅで示された系と同様の系を考えた場合、ｄ1およびｄ2）を有するとき、その奥行き値と対応付けられるずれ量ΔＸを、ΔＸ’を求めるのと同様に、仮想カメラ間隔ＩおよびよりＤ、得られた奥行き値（ｄ1またはｄ2）に基づいて計算する。すなわち、情報処理部３１は、仮想ステレオカメラの設定と奥行き情報から、そのずれ量ΔＸを算出する。そして、ずれ量ΔＸに基づいて、仮想オブジェクトＯＢＪ１の投影面（例えば、表示面である上側ＬＣＤ２２に対応する）上を平行移動する。
【０１２０】
本実施形態においては、投影面に平行投影して得られた像を、右眼用画像および左眼用画像のそれぞれにおいて、ΔＸ／２ずつ、平行移動する。そして、移動する方向は、基準面より手前に迫り出すように立体感を得る場合は、右眼用画像および左眼用画像に投影された像が、仮想仮想オブジェクトＯＢＪ１を投影面に平行射影した位置を基点とすると、右眼用画像においては（像に対して）左方向、左眼用画像においては右方向に移動した位置に描画される。
【０１２１】
具体的には、図４Ｆに示された例により、説明される。この模式図において、本図は、３段構成の模式図であるが、それぞれが、上側ＬＣＤ２２を示している。
【０１２２】
本図の中段は、上側ＬＣＤ２２を投影面としたときに、その投影面上に平行射影された仮想オブジェクトＯＢＪ１の位置Ｐを模式的に示している。右眼用画像および左眼用画像では、この位置Ｐを基準として、その像が平行移動される。本図の上段は、立体視を提供するために、上側ＬＣＤ２２に右眼用画像が表示されたときの仮想オブジェクトＯＢＪ１の位置を示している。仮想オブジェクトＯＢＪ１は、中段で示された位置から、紙面に向かって左側にΔＸ／２だけ平行移動した位置に表示されている。また、本図の下段は、立体視を提供するために、上側ＬＣＤ２２に左眼用画像が表示されたときの仮想オブジェクトＯＢＪ１の位置を示している。仮想オブジェクトＯＢＪ１は、中段で示された位置から、紙面に向かって右側にΔＸ／２だけ平行移動した位置に表示されている。このように、総計ΔＸのずれ量（本図の中段を参照）が、右眼用画像と左眼用画像との間に生じる。このような構成によって、基準面より手前に迫り出すように立体感が、仮想オブジェクトＯＢＪ１に与えられる。
【０１２３】
他方、基準面より奥に仮想オブジェクトを配置した立体感を得たい場合は、右眼用画像および左眼用画像に投影された像が、仮想オブジェクトＯＢＪ１を投影面に平行射影した位置を基点とすると、右眼用画像においては（平行投影された像に対して）右方向、左眼用画像においては左方向に移動した位置に描画される。
【０１２４】
図４Ｇは、平行投影された仮想オブジェクトＯＢＪ１が、透視投影に基づき表示された仮想オブジェクトＯＢＪ２と重ね合わされて表示面（上側ＬＣＤ２２）に表示されている様子を示す模式図である。図４Ｃに示されるように、透視投影を利用して描かれた仮想オブジェクトＯＢＪ２が透視投影に基づいた変換を介して立体視画像が提供される場合であっても、仮想オブジェクトＯＢＪ１は、立体視可能な形式で表示面に表示されながらも、その表示面での大きさや、相対位置は、所定の範囲に保たれることが可能である。
【０１２５】
（メモリマップ）
ここで、ゲームプログラムの実行中にメインメモリ３２に記憶される主なデータについて説明する。図５は、ゲーム装置１０のメインメモリ３２のメモリマップを示す模式図である。図５に示されるように、メインメモリ３２には、ゲームプログラム７１、画像処理プログラム７１、仮想オブジェクト情報７２、各種変数７３等が記憶される。
【０１２６】
画像処理プログラム７０は、ゲームプログラム７１のゲーム処理の過程で呼び出されるか、または、そのゲームプログラム７１の一部として機能することで、本発明の例示的な実施形態の処理を担うプログラムである。
【０１２７】
ゲームプログラム７１は、情報処理部３１にゲーム表示処理を実行させるためのプログラムである。
【０１２８】
仮想オブジェクト情報７２は、仮想オブジェクトに関連する情報であって、仮想オブジェクトの種別（ユーザーインターフェース用２次元画像、３次元モデルで表現される３次元オブジェクトなど）、３次元仮想オブジェクトである場合のその形状や模様を表すモデル情報（例えば、ポリゴンに関する情報）、仮想空間における仮想オブジェクトの位置情報などを含む。
【０１２９】
なお、位置情報は、いずれの座標系において規定されたものであってもよい。すなわち、位置情報を表すための位置座標は、その仮想オブジェクトの用途に応じて、ワールド座標系、カメラ座標系、正規化装置座標系、装置座標系などいずれの座標系によって規定されてもよい。画像処理プログラム７０および／またはゲームプログラム７１が、必要に応じて、いずれの座標系の入力であっても、相互に変換することが可能であり、その処理の流れの中で必要な形式で必要なデータが提供されれば足りる。また、仮想オブジェクトが、２次元画像データとして表現される場合、その２次元画像データは、視覚的に表現される図形の形状だけでなく、その色の情報なども含み、必要に応じて、奥行き情報（例えば、Ｚ値）を保持することが可能である。
【０１３０】
各種変数７３は、ゲームプログラム７１および画像処理プログラム７０の実行の際に用いられる各種変数である。
（例示的な処理についての具体例）
以下、図６Ａ以降のフローチャートを参照して、本発明の例示的実施形態の画像処理プログラムに基づいて実行される処理の流れを説明する。本図および後続の図では、「ステップ」を、「Ｓ」と略記する。なお、図６Ａ以降のフローチャートは、処理過程の単なる一例にすぎない。したがって、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。
【０１３１】
図６Ａは、本発明の例示的実施形態であるゲーム装置１０において、その画像処理プログラム７０に基づいて行われるメイン処理の一例を示すフローチャートである。
【０１３２】
ステップ１０１において、情報処理部３１は、アプリケーションプログラムの動作、入力操作に応じて、仮想空間内にオブジェクトを位置・姿勢を更新する処理を行なう。具体的には、例えば、ゲームプログラム７１に規定される所定の処理に応じて、仮想空間内における仮想オブジェクトがワールド座標での位置・姿勢を変更する。
【０１３３】
ステップ１０２において、情報処理部３１は、そのアプリケーションプログラムに規定される内容に従い、仮想カメラ間隔Ｉおよびその位置、方向も設定する。具体的には、情報処理部３１は、左仮想カメラＬＣおよび右仮想カメラＲＣの位置、方向等を決定し、更新する。情報処理部３１は、左仮想カメラＬＣおよび右仮想カメラＲＣの位置の決定を、例えば、仮想カメラＢＣの位置を最初に設定し、その位置を基準に相対的な位置関係から設定する方法で行なってもよい。また、情報処理部３１は、左仮想カメラＬＣおよび右仮想カメラＲＣの位置の決定を、例えば、いずれか一方の位置を設定し、その設定された位置に対する相対位置によって他方の位置を決定する方法でおこなってもよい。情報処理部３１は、この右仮想カメラと左仮想カメラとの間の距離を、仮想カメラ間隔Ｉとして、ゲーム装置１０の記憶領域（例えば、図５のメモリマップにおける各種変数７３）に記憶する。
【０１３４】
ステップ１０３において、情報処理部３１は、３Ｄ調整スイッチ２５のスライダ２５ａの位置に応じて、仮想カメラ間隔Ｉを更新する。当該仮想カメラ間隔Ｉの更新によって立体視した際に視認される立体感が変化する。すなわち、基準面から前に飛び出して見えるオブジェクトについては、その飛び出し量が、奥行き方向に見えるオブジェクトはその奥行き位置までの距離が変化することになる。仮想カメラ間隔が小さいほど立体感は小さくなり、大きいほど立体感は大きくなる。
【０１３５】
ステップ１０４において、情報処理部３１は、更新された仮想カメラ間隔Ｉと、基準面から仮想カメラまでの距離Ｄとを取得する。距離Ｄは、図４Ｅで示される例では、上側ＬＣＤ２２の位置と対応づけられる基準面ＡＢと、仮想カメラＢＣ（または、仮想カメラＬＣ、仮想カメラＲＣ）との距離を計算すればよい。
【０１３６】
ステップ１０５において、情報処理部３１は、特別描画処理の対象となるオブジェクト（標的オブジェクト）が存在するか否かを判定する。具体的には、例えば、ＧＵＩ用の仮想オブジェクトＯＢＪ１（図４Ａ、図４Ｂ参照）が、この標的オブジェクトに該当し得る。アプリケーションプログラムの設定において、仮想オブジェクトＯＢＪ１が、表示面（上側ＬＣＤ２２）に表示される対象となっている場合（ステップ１０５，ＹＥＳ）に、当該標的オブジェクトが存在するとして、情報処理部３１は判定し、その処理をステップ１０６に進める。他方で、そのような標的オブジェクトが表示面に表示される対象として規定されていない場合（ステップ１０５，ＮＯ）は、情報処理部３１は、その処理をステップ１０９に進める。なお、標的オブジェクトは、１つのオブジェクトに限られず、複数のオブジェクトを含むオブジェクト群であってもよい。
【０１３７】
ステップ１０６において、情報処理部３１は、特別描画処理を実行する。具体的には、情報処理部３１は、図６Ｂに例示されている一連の処理を実行する。以下、図６Ｂを参照しつつ、その特別描画処理についてより具体的に説明する。図６Ｂは、特別描画処理のフローチャートの一例である。
【０１３８】
ステップ２００において、情報処理部３１は、立体視用画像における対応点の水平方向のずれ量（ΔＸ）の算出を行なう。具体的には、情報処理部３１は、ステップ１０４において取得された更新された仮想カメラ間隔Ｉと、基準面から仮想カメラまでの距離Ｄに基づいて、対応点の水平方向のずれ量（ΔＸ）の算出する。このずれ量は、図４Ｅから図４Ｆまでを参照しつつ説明したように、標的オブジェクトが、立体視可能な態様で表示面に提示されるために規定される量である。なお、このようなずれ量の計算を、情報処理部３１のうち、ＧＰＵ３１２が担うことで、ＣＰＵ３１１への負担を軽減できる効果が得られる。
【０１３９】
ステップ２０１において、情報処理部３１は、標的オブジェクトと同時に上側ＬＣＤ２２に表示される仮想オブジェクト等が存在する否かを判定する。
【０１４０】
具体的には、情報処理部３１は、アプリケーションプログラムの設定およびその動作で得られた所定のパラメータを参照して、仮想オブジェクトが配置され得る仮想空間の部分空間が標的オブジェクトと同時に描画される対象として規定されているか否かを判定する。情報処理部３１は、そのような部分空間の存在が認められる場合（ステップ２０１、ＮＯ）は、情報処理部３１は、その処理をステップ２０２に進める。逆の場合（ステップ２０１、ＹＥＳ）は、情報処理部３１は、その処理をステップ２０３’に進める。
【０１４１】
ステップ２０２において、情報処理部３１は、右仮想カメラＲＣの位置に基づき、仮想空間を撮影して、右眼用の立体視用画像の取得を行なう。具体的には、情報処理部３１は、所定のオブジェクト（例えば、仮想オブジェクトＯＢＪ２）を含む仮想空間に、右仮想カメラＲＣの位置を視点として透視投影を施すことを利用して右眼用画像を得る。
【０１４２】
ステップ２０３において、情報処理部３１は、平行投影で得た標的オブジェクトの像をΔＸ/２だけ基準面上で平行移動して、投影面に像の書込みを行なう。
【０１４３】
ステップ２０４において、情報処理部３１は、左仮想カメラＬＣの位置に基づき、仮想空間を投影して、左眼用の立体視用画像を取得を行なう。具体的には、情報処理部３１は、所定のオブジェクト（上述の例では、仮想オブジェクトＯＢＪ２）を含む仮想空間に、左仮想カメラＬＣの位置を視点として透視投影を施すことを利用して左眼用画像を得る。
【０１４４】
ステップ２０５において、情報処理部３１は、標的オブジェクトの平行投影で得た像をΔＸ/２だけ基準面上で平行移動して、投影面に像の書込みを行なう。そして、情報処理部３１は、その後の処理として、ステップ１０７（図６Ａ）を行なう。
【０１４５】
他方、ステップ２０１において、情報処理部３１が、標的オブジェクトと同時に上側ＬＣＤ２２に表示される仮想オブジェクト等が存在しないとした場合、情報処理部３１は、ステップ２０３’およびその後のステップ２０５’を行なう。このステップ２０３’およびその後のステップ２０５’は、それぞれ、ステップ２０３およびステップ２０５と類似の処理である。ステップ２０３およびステップ２０５において、右眼用画像および左眼用画像を得る際に、情報処理部３１は、標的オブジェクト以外の描画対象をそれらの画像に含めるべき対象として有していた。このステップ２０３’およびステップ２０５’が、ステップ２０３およびステップ２０５と相違する点は、そのような描画対象を有しない点である。したがって、ステップ２０３’およびステップ２０５’において、情報処理部３１は、標的オブジェクトのみの像を含む立体視用画像を生成する。
【０１４６】
ステップ１０７において、情報処理部３１は、立体視用画像を表示画面上に表示を行なう。具体的には、情報処理部３１は、上述のように生成した右眼用画像および左眼用画像を、その画素を縦に１ライン毎に並んだ短冊状画像として分割し、分割された右眼用画像の短冊状画像と左眼用画像の短冊状画像とが交互に配置された画像を、上側ＬＣＤ２２の画面に表示する。
【０１４７】
ステップ１０８において、情報処理部３１は、ゲーム処理を終了するか否かを判定する。具体的には、例えば、情報処理部３１は、ゲーム処理を終了する旨のゲーム装置１０に対するプレイヤの入力操作があった場合、またはゲーム進行が所定の条件（例えば、ステージをクリア）を満たした場合（ステップ１０８，Ｙｅｓ）、ゲーム処理を終了する。他方、情報処理部３１は、ゲーム処理を終了しない旨のゲーム装置１０に対するプレイヤの入力操作があった場合、またはゲーム進行が上記所定の条件を満たしていない場合（ステップ１０８，Ｎｏ）、情報処理部３１は、ステップ１０１に戻って、ステップ１０１〜１０７の処理を繰り返し行う。
【０１４８】
なお、ステップ１０９における処理は、情報処理部３１は、標的オブジェクトがない状態で、ステップ２０２とステップ２０４とに相当する処理を行なうことで、仮想空間を表した立体視用画像を生成する。
【０１４９】
（本発明の例示的な実施形態によって奏される効果の一例）
この例示的な実施形態に係るゲーム装置１０は、アプリケーションプログラムの進行に応じて、仮想空間のうち所望の部分空間の画像を、立体視可能な形式で表示面に提供する。そして、ゲーム装置１０は、その部分空間に対応する画像を表示面に立体視可能な形式で表示しつつ、ＧＵＩとして求められる種々の要求を充足する態様で、必要なＧＵＩ用画像も立体視可能な形式で表示することができる。
【０１５０】
上述した特徴を有する実施形態では、アプリケーションプログラムの製作者が、表示面上の特定の位置を指定して表示したい場合に、立体視でどのように見えるかということと、表示面上のどこに表示されるかということを個別に考慮しなくとも、意図した位置にＧＵＩ用オブジェクトを配置することが行い得る。
【０１５１】
上述した実施形態において、情報処理部３１は、上記ずれ量ΔＸを２等分して得た距離だけ、仮想オブジェクトの像を投影面に平行投影した位置である基点から第１方向に平行移動して、右眼用画像を生成し、そのずれ量ΔＸを２等分して得た距離だけ、仮想オブジェクトの像を上記基点から上記第１方向と逆の方向に平行移動して、左眼用画像を生成する。このような構成によって、ユーザは、違和感なく立体視を享受し得る。
【０１５２】
上述した実施形態において、ユーザは、ハードウェアとしての３Ｄ調節スイッチを操作することで、アプリケーションの動作を意識することなく、好適な立体視の効果を享受し得る。仮想ステレオカメラの設定を変更することなく、ＧＵＩ画像の立体視の程度を調整し得る。
【０１５３】
上述した実施形態において、ずれ量ΔＸなどの計算を、情報処理部３１のうち、ＧＰＵ３１２が担うことで、ＣＰＵ３１１への負担を軽減し得る。
【０１５４】
上述した実施形態において、２次元画像に与えられた奥行き情報を与えれば、仮想ステレオカメラの設定に基づき、その２次元画像を立体視可能な形式で容易に表示し得る。
【０１５５】
上述の画像処理プログラムが有する機能を付与するコード集合体として提供されるプログラムが提供される場合、アプリケーションプログラムの製作者が、立体視でどのように見えるかということと、表示面上のどこに表示されるかということを個別に考慮することなく、表示面上の位置と奥行き情報との組合わせを与えるだけで、そのアプリケーションプログラムに対して簡便に所望のオブジェクトを含む立体視用画像を生成する機能を付与することが可能である。
【０１５６】
（変形例その他の事項）
上述の例示的な実施形態は、ＧＵＩ用画像を平行投影することを利用した態様を例示したが、ＧＵＩ用画像に限られず、任意の画像やオブジェクトに適用可能であり、その画像の表示面上の大きさや位置を自由に決めて立体視可能に表示面に表示したい場合には、本例を利用することで、利便性の向上した新規の画像処理装置等が提供され得る。
【０１５７】
上述の例示的な実施形態では、裸眼で立体視を提供する表示装置（上側ＬＣＤ２２）を用いたが、別の実施形態では、裸眼で立体視を提供する方式として本実施例ではパララックスバリア方式を用いたが、その他の方式（例えば、レンチキュラー方式）を用いてもよい。あるいは、本発明の画像処理プログラム等を、他の方式で表示装置における表示に適用してもよい。例えば、両眼視差を利用して立体視を提供するために、特殊な眼鏡が使用される形式（アナグリフ方式、偏光方式、時間分割シャッター方式など）で立体視が提供されてもよい。例えば、アナグリフ方式は、左眼用画像を、青色で描画し、他方、右眼用画像を、赤色で描画する。そして、観察者は、これらの画像をアナグリフ用眼鏡（左眼に赤色・右眼に青色のフィルタを施している眼鏡）を用いて観察することで、両眼視差による立体感が得られる。
【０１５８】
上記実施形態では、ゲーム装置１０を用いて画像処理プログラム７０について説明しているが、他の実施形態では、任意の情報処理装置または情報処理システム（例えば、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、携帯電話、パーソナルコンピュータ、カメラ等）において、本発明の画像処理プログラムを使用してもよい。
【０１５９】
また、上記実施形態では、一台の装置（ゲーム装置１０）のみによってゲーム処理に伴う画像処理プログラムを実行しているが、他の実施形態では、互いに通信可能な複数の情報処理装置を有する画像表示システムにおいて、当該複数の情報処理装置が画像表示処理を分担して実行するようにしてもよい。
【０１６０】
なお、汎用的なプラットフォームにおいて本発明の画像制御プログラム等が使用される場合には、当該表示制御プログラムが、当該プラットフォームにおいて標準的に提供されるプログラムモジュールを用いることを前提として提供されてもよい。上述のようなモジュールによって機能が補完されることを前提に、上記画像処理プログラムから上述のようなモジュールに対応する機能を除いたものは、実質的にこの画像処理プログラムに相当すると理解されるべきである。
【０１６１】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。ここで、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて均等な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用されるすべての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【符号の説明】
【０１６２】
１０  ゲーム装置
１１  下側ハウジング
１２  下側ＬＣＤ
１３  タッチパネル
１４  操作ボタン
１５  アナログスティック
１６  ＬＥＤ
２１  上側ハウジング
２２  上側ＬＣＤ
２３  外側撮像部
２３ａ  外側撮像部（左）
２３ｂ  外側撮像部（右）
２４  内側撮像部
２５  ３Ｄ調整スイッチ
２６  ３Ｄインジケータ
２８  タッチペン
３１  情報処理部
３１１  ＣＰＵ
３１２  ＧＰＵ
３２  メインメモリ
【図１】
0005725902.tif 000002
【図２】
0005725902.tif 000003
【図３】
0005725902.tif 000004
【図４Ａ】
0005725902.tif 000005
【図４Ｂ】
0005725902.tif 000006
【図４Ｃ】
0005725902.tif 000007
【図４Ｄ】
0005725902.tif 000008
【図４Ｅ】
0005725902.tif 000009
【図４Ｆ】
0005725902.tif 000010
【図４Ｇ】
0005725902.tif 000011
【図５】
0005725902.tif 000012
【図６Ａ】
0005725902.tif 000013
【図６Ｂ】
0005725902.tif 000014