(57)【特許請求の範囲】
【請求項１】
立体表示が可能な表示装置を制御するための表示制御プログラムであって、前記表示制御プログラムは、前記表示装置のコンピュータを、
第１の仮想空間内のオブジェクトを第１の右仮想カメラおよび第１の左仮想カメラでそれぞれ仮想的に撮影することで、前記オブジェクトを前記表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成手段、
前記表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成手段、ならびに
前記右オブジェクト画像と前記左オブジェクト画像、および、前記右背景画像と前記左背景画像を用いて、前記表示装置での画像表示に使用されるデータを生成する表示データ生成手段として機能させ、
前記オブジェクト画像生成手段は、前記第１の仮想空間内に設定される第１の基準仮想カメラに応じて、当該第１の基準仮想カメラを通り、かつ、当該第１の基準仮想カメラのカメラ方向に垂直な直線上に、前記第１の右仮想カメラおよび前記第１の左仮想カメラを設定し、
前記背景画像生成手段は、仮想空間における前記第１の右仮想カメラと前記第１の左仮想カメラとの間の距離に基づいて、両背景画像が、前記第１の右仮想カメラと前記第１の左仮想カメラとの間の位置関係に応じた相対関係を有するように、前記右背景画像および前記左背景画像を表示制御する、表示制御プログラム。
【請求項２】
立体表示が可能な表示装置を制御するための表示制御プログラムであって、前記表示制御プログラムは、前記表示装置のコンピュータを、
第１の仮想空間内のオブジェクトを第１の右仮想カメラおよび第１の左仮想カメラでそれぞれ仮想的に撮影することで、前記オブジェクトを前記表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成手段、
前記表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成手段、ならびに
前記右オブジェクト画像と前記左オブジェクト画像、および、前記右背景画像と前記左背景画像を用いて、前記表示装置での画像表示に使用されるデータを生成する表示データ生成手段として機能させ、
前記オブジェクト画像生成手段は、前記第１の仮想空間内に設定される第１の基準仮想カメラに応じて、当該第１の基準仮想カメラを通り、かつ、当該第１の基準仮想カメラのカメラ方向に垂直な直線上に、前記第１の右仮想カメラおよび前記第１の左仮想カメラを設定し、
前記背景画像生成手段は、両背景画像が、前記第１の右仮想カメラと前記第１の左仮想カメラとの間の位置関係の変更に応じて、前記右背景画像と前記左背景画像との相対関係が変更されるように、前記右背景画像および前記左背景画像を表示制御する、表示制御プログラム。
【請求項３】
前記背景画像生成手段は、仮想空間における前記第１の右仮想カメラと前記第１の左仮想カメラとの間の距離に基づいて、前記右背景画像および前記左背景画像を表示制御する、請求項２に記載の表示制御プログラム。
【請求項４】
前記右背景画像および前記左背景画像は、共通の画像を用いて生成される画像であり、
前記右背景画像および前記左背景画像は、両画像間の対応箇所が一対の仮想カメラの距離に応じた視差で表示されるように表示制御される、請求項１または３に記載の表示制御プログラム。
【請求項５】
前記背景画像生成手段は、前記第１の基準仮想カメラの視体積に含まれ、当該第１の基準仮想カメラのカメラ方向に垂直な仮想平面である、基準仮想平面領域の幅を基準とした、前記第１の右仮想カメラと前記第１の左仮想カメラとの間の距離の比に応じて、前記右背景画像および前記左背景画像を生成する、請求項１、３、４のいずれか１項に記載の表示制御プログラム。
【請求項６】
前記背景画像生成手段は、前記表示装置に表示されるサイズより大きなサイズを有する原背景画像に対して、前記右背景画像として出力すべき右描画範囲を設定するとともに、当該右描画範囲を、当該右描画範囲の幅に前記第１の右仮想カメラと前記第１の左仮想カメラとの間の距離の比を乗じて得られる距離だけずらした位置に、前記左背景画像として出力すべき左描画範囲を設定する、請求項５に記載の表示制御プログラム。
【請求項７】
前記背景画像生成手段は、前記第１の右仮想カメラと前記第１の左仮想カメラとの間の距離に基づいて、背景オブジェクトを含む第２の仮想空間内に設定される第２の基準仮想カメラを基準として、前記背景オブジェクトを仮想的に撮影することで右背景画像を生成するための第２の右仮想カメラおよび第２の左仮想カメラを設定する、請求項１、３、４、５のいずれか１項に記載の表示制御プログラム。
【請求項８】
前記第２の基準仮想カメラ、前記第２の右仮想カメラ、および前記第２の左仮想カメラの各々は、プロジェクション行列およびビュー行列として定義される、請求項７に記載の表示制御プログラム。
【請求項９】
前記第１の基準仮想カメラ、前記第１の右仮想カメラ、および前記第１の左仮想カメラの各々は、プロジェクション行列およびビュー行列として定義される、請求項１〜８のいずれか１項に記載の表示制御プログラム。
【請求項１０】
前記オブジェクト画像生成手段は、前記表示装置において提供される立体感の程度を示す指示に応じて、前記第１の右仮想カメラと前記第１の左仮想カメラとの間の位置関係を決定する、請求項１〜９のいずれか１項に記載の表示制御プログラム。
【請求項１１】
前記表示制御プログラムは、前記表示装置のコンピュータを、前記表示装置において提供される立体感の程度を示す要求を受付ける入力手段としてさらに機能させ、
前記オブジェクト画像生成手段は、前記入力手段を介して立体感の程度の変更が指示されると、当該指示に応じて、前記第１の右仮想カメラと前記第１の左仮想カメラとの間の位置関係を変更する、請求項１０に記載の表示制御プログラム。
【請求項１２】
立体表示が可能な表示装置のコンピュータ上で、アプリケーションプログラムと協働するライブラリプログラムであって、前記ライブラリプログラムは、前記コンピュータを、
第１の仮想空間内における第１の基準仮想カメラの設定値の入力に応答して、前記第１の仮想空間内のオブジェクトをそれぞれ仮想的に撮影することで、前記オブジェクトを前記表示装置で立体表示するために用いられる、右オブジェクト画像を生成するための第１の右仮想カメラの設定値、および、左オブジェクト画像を生成するための第１の左仮想カメラの設定値を出力する設定値出力手段、および
前記第１の右仮想カメラと前記第１の左仮想カメラとの間の位置関係を示す値、を出力する位置関係出力手段として機能させ、
前記設定値出力手段は、当該第１の基準仮想カメラを通り、かつ、当該第１の基準仮想カメラのカメラ方向に垂直な直線上に、前記第１の右仮想カメラおよび前記第１の左仮想カメラを設定し、
前記第１の右仮想カメラと前記第１の左仮想カメラとの間の距離に基づいて、前記表示装置において背景表示に用いられる右背景画像および左背景画像が生成される、ライブラリプログラム。
【請求項１３】
立体表示が可能な表示装置と、
第１の仮想空間内のオブジェクトを第１の右仮想カメラおよび第１の左仮想カメラでそれぞれ仮想的に撮影することで、前記オブジェクトを前記表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成手段と、
前記表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成手段と、
前記右オブジェクト画像と前記左オブジェクト画像、および、前記右背景画像と前記左背景画像を用いて、前記表示装置での画像表示に使用されるデータを生成する表示データ生成手段とを備え、
前記オブジェクト画像生成手段は、前記第１の仮想空間内に設定される第１の基準仮想カメラに応じて、当該第１の基準仮想カメラを通り、かつ、当該第１の基準仮想カメラのカメラ方向に垂直な直線上に、前記第１の右仮想カメラおよび前記第１の左仮想カメラを設定し、
前記背景画像生成手段は、仮想空間における前記第１の右仮想カメラと前記第１の左仮想カメラとの間の距離に基づいて、両背景画像の間が、前記第１の右仮想カメラと前記第１の左仮想カメラとの間の位置関係に応じた相対関係を有するように、前記右背景画像および前記左背景画像を表示制御する、情報処理システム。
【請求項１４】
立体表示が可能な表示装置と、
第１の仮想空間内のオブジェクトを第１の右仮想カメラおよび第１の左仮想カメラでそれぞれ仮想的に撮影することで、前記オブジェクトを前記表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成手段と、
前記表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成手段と、
前記右オブジェクト画像と前記左オブジェクト画像、および、前記右背景画像と前記左背景画像を用いて、前記表示装置での画像表示に使用されるデータを生成する表示データ生成手段とを備え、
前記オブジェクト画像生成手段は、前記第１の仮想空間内に設定される第１の基準仮想カメラに応じて、当該第１の基準仮想カメラを通り、かつ、当該第１の基準仮想カメラのカメラ方向に垂直な直線上に、前記第１の右仮想カメラおよび前記第１の左仮想カメラを設定し、
前記背景画像生成手段は、両背景画像が、前記第１の右仮想カメラと前記第１の左仮想カメラとの間の位置関係の変更に応じて、前記右背景画像と前記左背景画像との相対関係が変更されるように、前記右背景画像および前記左背景画像を表示制御する、情報処理システム。
【請求項１５】
立体表示が可能な表示装置を制御する表示制御方法であって、
第１の仮想空間内のオブジェクトを第１の右仮想カメラおよび第１の左仮想カメラでそれぞれ仮想的に撮影することで、前記オブジェクトを前記表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成ステップと、
前記表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成ステップと、
前記右オブジェクト画像と前記左オブジェクト画像、および、前記右背景画像と前記左背景画像を用いて、前記表示装置での画像表示に使用されるデータを生成する表示データ生成ステップとを備え、
前記オブジェクト画像生成ステップは、前記第１の仮想空間内に設定される第１の基準仮想カメラに応じて、当該第１の基準仮想カメラを通り、かつ、当該第１の基準仮想カメラのカメラ方向に垂直な直線上に、前記第１の右仮想カメラおよび前記第１の左仮想カメラを設定するステップを含み、
前記背景画像生成ステップは、仮想空間における前記第１の右仮想カメラと前記第１の左仮想カメラとの間の距離に基づいて、両背景画像の間が、前記第１の右仮想カメラと前記第１の左仮想カメラとの間の位置関係に応じた相対関係を有するように、前記右背景画像および前記左背景画像を表示制御するステップを含む、表示制御方法。
【請求項１６】
立体表示が可能な表示装置を制御する表示制御方法であって、
第１の仮想空間内のオブジェクトを第１の右仮想カメラおよび第１の左仮想カメラでそれぞれ仮想的に撮影することで、前記オブジェクトを前記表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成ステップと、
前記表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成ステップと、
前記右オブジェクト画像と前記左オブジェクト画像、および、前記右背景画像と前記左背景画像を用いて、前記表示装置での画像表示に使用されるデータを生成する表示データ生成ステップとを備え、
前記オブジェクト画像生成ステップは、前記第１の仮想空間内に設定される第１の基準仮想カメラに応じて、当該第１の基準仮想カメラを通り、かつ、当該第１の基準仮想カメラのカメラ方向に垂直な直線上に、前記第１の右仮想カメラおよび前記第１の左仮想カメラを設定するステップを含み、
前記背景画像生成ステップは、両背景画像が、前記第１の右仮想カメラと前記第１の左仮想カメラとの間の位置関係の変更に応じて、前記右背景画像と前記左背景画像との相対関係が変更されるように、前記右背景画像および前記左背景画像を表示制御するステップを含む、表示制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、立体表示が可能な表示装置で２つの画像を用いて立体表示を行なう際に使用される表示制御プログラム、ライブラリプログラム、情報処理システム、および、表示制御方法に関する。
【背景技術】
【０００２】
従来から、所定の視差を有する２つの画像を用いて、立体表示を行なう方法が知られている。このような立体表示の適用先は、さまざまな分野へ広がりつつある。たとえば、ゲームやＣＧアニメーションといった、３次元仮想空間を表示するようなアプリケーションなどが開発されている。
【０００３】
このようなアプリケーションでは、３次元仮想空間内に２つの仮想カメラを設定し、それぞれの仮想カメラが仮想的に撮影することで得られる、オブジェクトなどの被写体を含む画像を用いて立体表示が行なわれる。ユーザにとって見やすい立体表示のためには、当該２つの仮想カメラを適切に設定する必要がある。たとえば、特開２００３−１０７６０３号公報（特許文献１）には、注目させたい部分にフォーカスを当てるように立体表示用の画像を生成する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１０７６０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の表示装置において、オブジェクトを含む３次元仮想空間を表現した画像を生成する場合において、各種オブジェクト（プレイヤキャラクタやノンプレイヤキャラクタや地形オブジェクト）などをレンダリングするとともに、当該オブジェクトの背景として表示される画像（たとえば、空や雲などの遠景を表現する画像）を当該レンダリングとは独立して生成処理するという手法が採用される場合があった。このような手法を採用することで、プログラムの開発に要する工数を短縮できるとともに、３次元画像空間を表現した画像の生成処理をより高速化できるといった利点がある。
【０００６】
しかしながら、上述のような表示装置で立体表示を行なう場合に、上記のような手法を採用しようとすると、以下のような課題が生じ得る。すなわち、第１の課題としては、各種オブジェクトを立体表示するために、３次元仮想空間内の適切な位置に２つの仮想カメラを設定するとともに、背景として表示される画像について、右目用画像と左目用画像の２つをそれぞれ生成する必要があり、アプリケーションソフトウェアの開発者は、立体表示用の画像生成処理を設計するときには、平面表示の場合に比較して、多くの観点を鑑みて設計する必要がある。また、第２の課題としては、背景として表示される画像は、ユーザから見て最も奥側に位置する絵として視認される必要があるため、当該オブジェクトの立体表示の立体度合が変更されるたびに、背景として表示される画像を適切に生成する必要がある。
【０００７】
上述のように、従来の平面表示において用いられていた上述のような手法をそのまま立体表示に適用した場合には、表示に要する処理量が大きくなり過ぎるとい課題があった。
【０００８】
本発明は、このような課題を解決するためになされたものであって、その目的は、アプリケーションソフトウェア開発者による、立体表示用の画像生成処理の設計の負荷を減らすことができる、表示制御プログラム、ライブラリプログラム、情報処理システム、および、表示制御方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明の第１の局面に従えば、立体表示が可能な表示装置を制御するための表示制御プログラムを提供する。本表示制御プログラムは、表示装置のコンピュータを、第１の仮想空間内のオブジェクトを第１の右仮想カメラおよび第１の左仮想カメラでそれぞれ仮想的に撮影することで、オブジェクトを表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成手段、表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成手段、ならびに、右オブジェクト画像と左オブジェクト画像、および、右背景画像と左背景画像を用いて、表示装置での画像表示に使用されるデータを生成する表示データ生成手段として機能させる。オブジェクト画像生成手段は、第１の仮想空間内に設定される第１の基準仮想カメラに応じて、当該第１の基準仮想カメラを通り、かつ、当該第１の基準仮想カメラのカメラ方向に垂直な直線上に、第１の右仮想カメラおよび第１の左仮想カメラを設定する。背景画像生成手段は、両背景画像が、第１の右仮想カメラと第１の左仮想カメラとの間の位置関係に応じた相対関係を有するように、右背景画像および左背景画像を表示制御する。
【００１０】
第１の局面によれば、第１の仮想空間内にある所定のオブジェクトをレンダリングするための第１の基準仮想カメラを指定することで、当該オブジェクトを表示装置において立体表示するために必要な一対のオブジェクト画像（右オブジェクト画像および左オブジェクト画像）を生成するための一対の仮想カメラ（第１の右仮想カメラおよび第１の左仮想カメラ）を設定することができる。そのため、アプリケーションなどの各シーンにおいて、第１の仮想空間内のオブジェクトを立体表示させる場合であっても、従来の平面表示のみを含むアプリケーションと同様に、１つの基準仮想カメラを指定することで済む。そのため、立体表示を含むアプリケーションを制作する場合であっても、その作業量を平面表示のみを含むアプリケーションと同様のレベルに抑制することができる。
【００１１】
さらに、上述のように一対の仮想カメラ（第１の右仮想カメラおよび第１の左仮想カメラ）が設定されると、これらの仮想カメラの間の位置関係に応じて、右背景画像および左背景画像が生成される。そのため、表示装置において表現される立体感の程度に応じて、適切な背景画像が生成される。そのため、典型的な実施の形態においては、表示装置における立体感の程度が変化した場合であっても、背景画像をオブジェクトより常に奥側に表示させることができる。
【００１２】
すなわち、従来の平面表示のアプリケーションと同様に、１つの基準仮想カメラを指定することによって、オブジェクトを立体表示するための一対の仮想カメラ（第１の右仮想カメラおよび第１の左仮想カメラ）が自動的に設定され、さらに、一対の背景画像の相対関係が自動的に設定される。
【００１３】
好ましい第２の局面に従えば、背景画像生成手段は、仮想空間における第１の右仮想カメラと第１の左仮想カメラとの間の距離に基づいて、右背景画像および左背景画像を表示制御する。第２の局面によれば、仮想空間における第１の右仮想カメラと第１の左仮想カメラとの間の距離は、右オブジェクト画像と左オブジェクト画像との間に生じる視差の大きさに直接的に関係する。すなわち、両仮想カメラ間の距離は、表示装置において表現される立体感の程度に関連付けられるので、この両仮想カメラ間の距離を用いることで、右背景画像および左背景画像の間の相対関係を適切に調整できる。
【００１４】
好ましい第３の局面に従えば、右背景画像および左背景画像は、共通の画像を用いて生成される画像であり、右背景画像および左背景画像は、両画像間の対応箇所が一対の仮想カメラの距離に応じた視差で表示されるように表示制御される。典型的な実施の形態によれば、右背景画像および左背景画像は、全く同一の画像であってもよい。
【００１５】
さらに好ましい第４の局面に従えば、背景画像生成手段は、第１の基準仮想カメラの視体積に含まれ、当該第１の基準仮想カメラのカメラ方向に垂直な仮想平面である、基準仮想平面領域の幅を基準とした、第１の右仮想カメラと第１の左仮想カメラとの間の距離の比（第１の比）に応じて、右背景画像および左背景画像を生成する。
【００１６】
ここで、基準仮想平面領域は、「３次元仮想空間の中で、立体表示を見るユーザが表示装置１０の表示面の位置に存在すると感じる面」において、表示装置１０の表示面にレンダリングされる領域である。
【００１７】
典型的な実施の形態によれば、「背景画像についての表示装置１０の表示面に表示される左右方向のサイズ」と、「右背景画像および左背景画像の表示時のずれ量」の比が、上述の第１の比となるように、右背景画像および左背景画像を生成する。
【００１８】
第３および４の局面によれば、第１の右仮想カメラと第１の左仮想カメラとの間の仮想空間における距離は、表示装置の現実の表示面の幅などとは異なる次元の値であるため、そのままでは汎用性が低い。これに対して、基準仮想平面領域の幅を基準として、第１の右仮想カメラと第１の左仮想カメラとの間の仮想空間における距離を規格化することで、より汎用性の高い値として利用範囲を拡大させることができる。
【００１９】
さらに好ましい第５の局面に従えば、背景画像生成手段は、表示装置に表示されるサイズより大きなサイズを有する原背景画像に対して、右背景画像として出力すべき右描画範囲を設定するとともに、当該右描画範囲を、当該右描画範囲の幅に第１の右仮想カメラと第１の左仮想カメラとの間の距離の比を乗じて得られる距離だけずらした位置に、左背景画像として出力すべき左描画範囲を設定する。
【００２０】
第５の局面によれば、基準仮想平面領域の幅を基準とした、第１の右仮想カメラと第１の左仮想カメラとの間の距離の比（規格化された値）を用いることで、表現されるすべてのオブジェクトに対して最も奥側に位置する像としてユーザに視認させるための右背景画像と左背景画像を、表示装置の表示面の大きさや表示面に表示される画像サイズなどに応じて、適切に生成することができる。
【００２１】
好ましい第６の局面に従えば、背景画像生成手段は、第１の右仮想カメラと第１の左仮想カメラとの間の距離に基づいて、背景オブジェクトを含む第２の仮想空間内に設定される第２の基準仮想カメラを基準として、背景オブジェクトを仮想的に撮影することで右背景画像および左背景画像を生成するための第２の右仮想カメラおよび第２の左仮想カメラを設定する。
【００２２】
第６の局面によれば、ユーザがアプリケーションなどの各シーンにおいて、背景オブジェクトの一部を背景として表示させる場合であっても、従来の平面表示のみを含むアプリケーションと同様に、背景をレンダリングするための、１つの基準仮想カメラを指定することで済む。そのため、立体表示を含むアプリケーションを制作する場合であっても、その作業量を平面表示のみを含むアプリケーションと同様のレベルに抑制することができる。
【００２３】
さらに好ましい第７の局面に従えば、第２の基準仮想カメラ、第２の右仮想カメラ、および第２の左仮想カメラの各々は、プロジェクション行列およびビュー行列として定義される。
【００２４】
好ましい第８の局面に従えば、第１の基準仮想カメラ、第１の右仮想カメラ、および第１の左仮想カメラの各々は、プロジェクション行列およびビュー行列として定義される。
【００２５】
この第７および第８の局面によれば、３次元仮想空間についてのレンダリング技術において一般的に利用されているカメラ行列（プロジェクション行列およびビュー行列）を用いることで、これらのレンダリング技術に係る処理との一貫性を維持することができる。
【００２６】
好ましい第９の局面に従えば、オブジェクト画像生成手段は、表示装置において提供される立体感の程度を示す指示に応じて、第１の右仮想カメラと第１の左仮想カメラとの間の位置関係を決定する。
【００２７】
この第９の局面によれば、予め定められた条件下において算出される立体感をそのまま表現したくない場合もあるが、このような場合においては、典型的には、アプリケーションの制作者の意図やユーザ操作などに応じて、表示装置に表示される立体表示に係る立体感を調整することができる。
【００２８】
さらに好ましい第１０の局面に従えば、本表示制御プログラムは、表示装置のコンピュータを、表示装置において提供される立体感の程度を示す要求を受付ける入力手段としてさらに機能させ、オブジェクト画像生成手段は、入力手段を介して立体感の程度の変更が指示されると、当該指示に応じて、第１の右仮想カメラと第１の左仮想カメラとの間の位置関係を変更する。
【００２９】
この第１０の局面によれば、ユーザが入力手段を操作することで、表示装置上で表示される立体感を必要に応じて調整することができる。
【００３０】
この発明の第１１の局面に従えば、立体表示が可能な表示装置のコンピュータ上で、アプリケーションプログラムと協働するライブラリプログラムを提供する。本ライブラリプログラムは、コンピュータを、第１の仮想空間内における第１の基準仮想カメラの設定値の入力に応答して、第１の仮想空間内のオブジェクトをそれぞれ仮想的に撮影することで、オブジェクトを表示装置で立体表示するために用いられる、「右オブジェクト画像を生成するための第１の右仮想カメラの設定値」および「左オブジェクト画像を生成するための第１の左仮想カメラの設定値」を出力する設定値出力手段、および、「第１の右仮想カメラと第１の左仮想カメラとの間の位置関係を示す値」を出力する位置関係出力手段として機能させる。設定出力手段は、当該第１の基準仮想カメラを通り、かつ、当該第１の基準仮想カメラのカメラ方向に垂直な直線上に、第１の右仮想カメラおよび第１の左仮想カメラを設定し、第１の右仮想カメラと第１の左仮想カメラとの間の位置関係に基づいて、表示装置において背景表示に用いられる右背景画像および左背景画像が生成される。
【００３１】
この発明の第１２の局面に従う情報処理システムは、立体表示が可能な表示装置と、第１の仮想空間内のオブジェクトを第１の右仮想カメラおよび第１の左仮想カメラでそれぞれ仮想的に撮影することで、オブジェクトを表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成手段と、表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成手段と、右オブジェクト画像と左オブジェクト画像、および、右背景画像と左背景画像を用いて、表示装置での画像表示に使用されるデータを生成する表示データ生成手段とを含む。オブジェクト画像生成手段は、第１の仮想空間内に設定される第１の基準仮想カメラに応じて、当該第１の基準仮想カメラを通り、かつ、当該第１の基準仮想カメラのカメラ方向に垂直な直線上に、第１の右仮想カメラおよび第１の左仮想カメラを設定し、背景画像生成手段は、両背景画像の間が、第１の右仮想カメラと第１の左仮想カメラとの間の位置関係に応じた相対関係を有するように、右背景画像および左背景画像を表示制御する。
【００３２】
この発明の第１３の局面に従えば、立体表示が可能な表示装置を制御する表示制御方法を提供する。本表示制御方法は、第１の仮想空間内のオブジェクトを第１の右仮想カメラおよび第１の左仮想カメラでそれぞれ仮想的に撮影することで、オブジェクトを表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成ステップと、表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成ステップと、右オブジェクト画像と左オブジェクト画像、および、右背景画像と左背景画像を用いて、表示装置での画像表示に使用されるデータを生成する表示データ生成ステップとを含む。オブジェクト画像生成ステップは、第１の仮想空間内に設定される第１の基準仮想カメラに応じて、当該第１の基準仮想カメラを通り、かつ、当該第１の基準仮想カメラのカメラ方向に垂直な直線上に、第１の右仮想カメラおよび第１の左仮想カメラを設定するステップを含み、背景画像生成ステップは、両背景画像が、第１の右仮想カメラと第１の左仮想カメラとの間の位置関係に応じた相対関係を有するように、右背景画像および左背景画像を表示制御するステップを含む。
【００３３】
第１１〜１３の局面によれば、上述の第１の局面と同様の作用効果を奏することができる。
【００３４】
上述の記載においては、本発明の理解を助けるために後述の実施形態との対応関係を示す補足説明等を付したが、これらは本発明を何ら限定するものではない。
【発明の効果】
【００３５】
本発明のある局面によれば、アプリケーションソフトウェア開発者による、立体表示用の画像生成処理の設計の負荷を減らすことができる。
【図面の簡単な説明】
【００３６】
【図１】従来から存在する平面表示処理を説明するための図である。
【図２】本発明の実施の形態に従う立体表示処理を図１に示す平面表示処理と対比して説明するための図である。
【図３】本発明の実施の形態に従う仮想カメラの視野範囲を説明するための図である。
【図４】本発明の実施の形態に従う立体表示処理に係る機能を示す模式図である。
【図５】本発明の実施の形態に従う表示装置の構造の一例を示す図である。
【図６】本発明の実施の形態に従う情報処理システムの内部構成を示すブロック図である。
【図７】本発明の実施の形態に従う情報処理システムにおいて実装されるプログラム構成の一例を示す図である。
【図８】図７に示す立体表示用ライブラリについて入出力されるデータ項目を説明するための図である。
【図９】本発明の実施の形態に従うオブジェクト画像生成処理の対象となる３次元仮想空間の一例を示す模式図である。
【図１０】図９に示す状態において生成されるオブジェクト画像（右オブジェクト画像および左オブジェクト画像）の生成処理を示す模式図である。
【図１１】図１０に示す右仮想カメラおよび左仮想カメラによってそれぞれ生成されるオブジェクト画像の一例を示す図である。
【図１２】本発明の実施の形態に従うカメラ行列を説明するための図である。
【図１３】本発明の実施の形態に従う右仮想カメラおよび左仮想カメラの設定処理を２次元的に説明するための図である。
【図１４】図１３に示す右仮想カメラおよび左仮想カメラの設定処理の処理結果に応じて設定される視体積を示す図である。
【図１５】この発明の実施の形態に従うリアルモードにおける処理内容を説明するための図である。
【図１６】本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の一例を示す図である。
【図１７】本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の一例を示す図である。
【図１８】本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の一例を示す図である。
【図１９】本発明の実施の形態の変形例に従う右仮想カメラおよび左仮想カメラの設定処理を２次元的に説明するための図である。
【図２０】本発明の実施の形態に従う立体表示用ライブラリの戻り値の算出処理を説明するための図である。
【図２１】本発明の実施の形態に従う背景画像の生成処理を説明するための模式図である。
【図２２】本発明の実施の形態の変形例に従う背景画像の生成処理を説明するための模式図である。
【図２３】本発明の実施の形態の変形例に従う背景画像の生成処理を説明するための模式図である。
【図２４】図２３に対応する立体表示用ライブラリについて入出力されるデータ項目を説明するための図である。
【図２５】本発明の実施の形態に従う表示データ生成処理を説明するための模式図である。
【図２６】本発明の実施の形態に従うプログラムのメインルーチンを示すフローチャートである。
【図２７】本発明の実施の形態に従う立体表示用ライブラリの処理内容を示すフローチャートである。
【発明を実施するための形態】
【００３７】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００３８】
＜Ａ．概要および概念＞
本発明のある局面によれば、典型的には、立体表示を含むアプリケーションなどを制作する場合であっても、平面表示のみを含むアプリケーションと同様の作業量で済むような環境を提供することを目的とする。そこで、まず、本発明に係る概要および概念について、図１〜図４を参照して説明する。
【００３９】
［ａ１．従来から存在する平面表示］
図１は、従来から存在する平面表示処理（立体表示でないという意味で、「平面表示」と称す。）を説明するための図である。図１を参照して、オブジェクトＯＢＪ１およびＯＢＪ２を含む３次元仮想空間を表示装置１０に表示する場合を考える。この場合には、オブジェクトＯＢＪ１およびＯＢＪ２が配置された３次元仮想空間内のいずれかの位置に仮想カメラ３００が設定される。そして、３次元仮想空間内のオブジェクトＯＢＪ１およびＯＢＪ２などを、仮想カメラ３００で仮想的に撮影することで、画像を生成する。なお、以下の説明では、３次元仮想空間内に含まれる各種オブジェクトを（平面または立体）表示するために生成される画像を、後述する背景を表示するために生成される画像と対比する観点から、「オブジェクト画像」とも称す。
【００４０】
同時に、背景表示に用いられる画像が生成される。以下の説明では、この背景を（平面または立体）表示するために生成される画像を、上述の「オブジェクト画像」に対比させて「背景画像」とも称す。図１に示す例では、背景画像として「雲が描かれた空」が例示されている。この背景画像は、典型的には、表示装置１０に表示されるサイズより大きなサイズを有する平面２次元画像である原背景画像ＢＧのうち任意の領域から抽出される。なお、原背景画像ＢＧから背景画像として抽出される領域は、仮想カメラ３００の配置位置（あるいは、ユーザに注目してもらいたいオブジェクト）に関連付けられた範囲としてもよいし、仮想カメラ３００の配置位置とは独立した範囲としてもよいし、または、アプリケーションの進行などに応じた範囲などに適宜設定してもよい。
【００４１】
上述のような原背景画像ＢＧのうち背景画像とすべき範囲を平面２次元画像から直接的に設定する方法に代えて、３次元仮想空間に原背景画像ＢＧを配置し（テクスチャとして貼り付け）、この原背景画像ＢＧを配置した３次元仮想空間に対して背景撮影用の基準仮想カメラ４００を設定してもよい。なお、典型的には、原背景画像ＢＧは、オブジェクトＯＢＪ１およびＯＢＪ２が配置されている３次元仮想空間と別の３次元仮想空間に配置される。この場合には、仮想カメラ４００が原背景画像ＢＧを仮想的に撮影することで背景画像が生成される。
【００４２】
そして、このオブジェクト画像と背景画像とに基づいて表示データが生成され、この表示データに基づいて、表示装置１０において平面表示がなされる。
【００４３】
［ａ２．立体表示］
本発明に係る実施の形態に従う立体表示処理では、上述の図１に示すオブジェクト画像および背景画像の表示制御に要するパラメータと同様のパラメータを指定することで、表示装置１０における立体表示に必要な、一対のオブジェクト画像（右オブジェクト画像および左オブジェクト画像）と、一対の背景画像（右背景画像および左背景画像）とが生成される。
【００４４】
図２は、本発明の実施の形態に従う立体表示処理を図１に示す平面表示処理と対比して説明するための図である。図２を参照して、一例として、上述の平面表示においてレンダリングされた範囲と同様の範囲を立体表示する処理について説明する。
【００４５】
この場合には、まず、オブジェクトＯＢＪ１およびＯＢＪ２を含む３次元仮想空間内において、上述の図１に示す平面表示をするときと同じように、仮想カメラ３００を指定する（なお、この「平面表示をするときと同じように設定される仮想カメラ」を、以下「基準仮想カメラ」と称す。）。この基準仮想カメラ３００の配置位置を基準として、右オブジェクト画像を生成するための右仮想カメラ３０２および左オブジェクト画像を生成するための左仮想カメラ３０４が設定される。より具体的には、基準仮想カメラ３００のカメラ位置を基準として、基準仮想カメラ３００のカメラ方向における左方向に距離Ａだけ離れるように、左仮想カメラ３０４を設定し、基準仮想カメラ３００のカメラ方向における右方向に距離Ａだけ離れるように、右仮想カメラ３０４を設定する。なお、左仮想カメラと右仮想カメラのカメラ方向および画角は、基準仮想カメラ３００のカメラ方向、画角と同じ値に設定される。このように、配置された右仮想カメラ３０２および左仮想カメラ３０４で、３次元仮想空間内のオブジェクトＯＢＪ１およびＯＢＪ２などを仮想的に撮影することで、右オブジェクト画像および左オブジェクト画像がそれぞれ生成される。
【００４６】
同時に、３次元仮想空間内に設定される右仮想カメラ３０２と左仮想カメラ３０４との間の位置関係に連係して、右背景画像および左背景画像が生成される。すなわち、両背景画像の相対関係が、右仮想カメラ３０２と左仮想カメラ３０４との間の位置関係に応じた相対関係となるように、右背景画像および左背景画像が生成される。
【００４７】
そして、右オブジェクト画像と右背景画像とに基づいて右眼用の表示データが生成されるとともに、左オブジェクト画像と左背景画像とに基づいて左眼用の表示データが生成される。これらの表示データに基づいて、表示装置１０において立体表示がなされる。
【００４８】
右背景画像と左背景画像とは、当該右背景画像および左背景画像を表示装置１０上に表示した場合に、ユーザがそれらの背景画像を表示装置１０の奥側の無限遠方または所定位置に位置する絵として視認できるように生成され表示される。後述するように、背景画像は、その目的からすると、表現されるすべてのオブジェクトに比較して最も奥側に位置する像としてユーザに視認させる必要がある。ユーザが表示画面に立体表示されたオブジェクトを見た際に奥行き方向のどの位置にあるように視認されるかは、表示画面上での視差によって変化する。本発明においては、右背景画像および左背景画像が右仮想カメラ３０２と左仮想カメラ３０４との間の位置関係に応じた視差を持つように両背景画像を表示制御することによって、背景画像が背景以外の他の表示対象と比較して最も奥側に位置するようにユーザに視認させる。本実施形態においては、右仮想カメラ３０２と左仮想カメラ３０４との間の位置関係に応じた視差を持つように両背景画像を生成する。
【００４９】
本明細書において、「右背景画像と左背景画像との相対関係」とは、立体表示装置における、右背景画像の表示位置と、左背景画像の表示位置との関係のことを言う。より具体的には、ある像についての、右背景画像における表示位置と、左背景画像における表示位置との位置関係のことを言う。この相対関係の設定により、視認者が背景があると感じる奥行きが決まる。本発明では、右背景画像と左背景画像との間の相対関係を、両背景画像を表示装置１０において表示した場合に、ユーザが表示される背景を最も奥側の絵として視認できるような視差を発生できる関係に設定する。より具体的には、後述するように、表示装置１０に表示されるサイズより大きなサイズを有する原背景画像ＢＧのうち、右背景画像および左背景画像として抽出すべき２つの描画範囲を、上記のような視差が生じる位置関係をもって設定することで、「右背景画像における像」と「左背景画像における像」の立体表示位置における表示位置関係が設定され、「相対関係」が形成される。
【００５０】
表示装置１０における立体感の程度が変化する場合に、図２に示すように、右仮想カメラ３０２と左仮想カメラ３０４との間の位置関係が変化するが、この場合であっても、当該位置関係の変化に応じて、右背景画像および左背景画像の相対関係が変化するので、背景画像をオブジェクトより常に奥側に表示させることができる。すなわち、各種オブジェクトより手前側に背景画像が見えるような事態を避けることができる。この連係の詳細については、後述する。
【００５１】
［ａ３．用語］
（ｉ）  本明細書において、「立体表示」とは、画像に含まれる少なくとも一部の対象物をユーザに立体的に視認させることができるように、当該画像を表現することを意味する。典型的には、視差を有する一対の平面２次元画像（ステレオ画像）をユーザに視認させて、眼や脳の生理的な働きを利用することで、当該ユーザに立体感を感じさせる。
【００５２】
本明細書において、「視差」とは、ユーザの右眼で視認される像と、ユーザの左眼で視認される像との間における、対象点の見え方の違いを意味する。典型的には、ある対象物を異なる複数の観測点から観測した場合に、それぞれの観測点で観測される内容に基づいて画像をそれぞれ生成した場合に、これらの画像は視差を有する画像となる。また、右眼用の表示を生成するための観測点と左眼用の表示を生成するための観測点との差に依存して、ある対象物についての、右眼用の表示画像中の像と左眼用の表示画像中の像とは現れる位置が異なる。このような、２つの画像内における同一対象物についての像の位置の差の大きさを「視差量」と称す。
（ｉｉ）  本明細書において、「右」および「左」とは、ユーザがいずれの眼で視認するかを区別するために使用される。すなわち、上述した「右オブジェクト画像」および「右背景画像」は、ユーザが右眼で視認されることが予定されている画像であることを示し、上述した「左オブジェクト画像」および「左背景画像」は、ユーザが左眼で視認されることが予定されている画像であることを示す。また、表示装置１０に表示される画像のうち、ユーザが右眼で視認されることが予定されている画像を「右表示画像」と称し、ユーザが左眼で視認されることが予定されている画像を「左表示画像」と称する。
【００５３】
また、「右オブジェクト画像」を生成する仮想カメラを「右仮想カメラ」とも称し、「左オブジェクト画像」を生成する仮想カメラを「左仮想カメラ」とも称する。
（ｉｉｉ）  本明細書において、「視体積」とは、以下のような範囲を意味する。図３は、本発明の実施の形態に従う仮想カメラの視野範囲を説明するための図である。図３を参照して、本実施の形態に従う仮想カメラは、３次元仮想空間のうちカメラ方向の所定範囲（図３においてハッチング表示されている範囲）にあるオブジェクトのみをレンダリングする。言い換えれば、仮想カメラの視野角（図３において破線で囲む範囲）の外になる範囲はレンダリングされない。また、仮想カメラに対して、近傍側に「ニアクリップ面」が設定され、遠方側に「ファークリップ面」が設定される。これらのニアクリップ面およびファークリップ面は、仮想カメラのカメラ方向の線に対して垂直となるように設定される。このニアクリップ面とファークリップ面との間に存在するオブジェクトであり、かつ、仮想カメラの視野角の内に含まれるオブジェクトがレンダリング対象となる。
【００５４】
このように仮想カメラによる撮影によって画像を生成する際の、ユーザが現実に見える範囲（すなわち、レンダリングされる範囲）を「視体積」とも称す。より具体的には、仮想カメラ位置を頂点とし当該仮想カメラのファークリップ面を底面とする四角錐の全体のうち、ニアクリップ面を一方面としファークリップ面を他方面とする四角錐体を「視体積」と称す。この「視体積」は、「ビューフラスタム」または「視錐体」と称されることもある。したがって、３次元仮想空間をある視体積（視野範囲）を有する仮想カメラで撮影したときには、当該視体積の内に含まれる空間が、当該仮想カメラによってレンダリングされることになる。
【００５５】
上述の例について見れば、図１に示す仮想カメラ３００に対応して視体積３８０が設定され、図２に示す右仮想カメラ３０２に対応して視体積３８２が設定され、図２に示す左仮想カメラ３０４に対応して視体積３８４が設定される。
（ｉｖ）  表示装置１０において立体表示を行なう場合には、表示装置１０の表示面の位置に対応する平面（３次元仮想空間の中で、立体表示を見るユーザが表示装置１０の表示面の位置に存在すると感じる面）である「基準仮想面」が３次元仮想空間内に設定される（図３参照）。なお、基準仮想面は、「３次元仮想空間の中で、立体表示を見るユーザが表示装置１０の表示面から所定のオフセットを持った位置に存在すると感じる面」としてもよい。
【００５６】
この「基準仮想面」についても、カメラ方向に対して垂直となるように設定される。さらに、表示装置１０の表示面の実サイズは有限であるから、当該基準仮想面のうち、表示装置１０の表示面にレンダリングされる範囲に対応する「基準仮想平面領域」を定義することができる。すなわち、無限面である基準仮想面のうち、レンダリングされる範囲（視体積に含まれる範囲）が、「基準仮想平面領域」である。
【００５７】
「基準仮想平面領域」は、表示装置１０において立体表示を行なう際に、ユーザが表示装置１０の表示面付近（前述の通り、典型的にはちょうど表示面の位置であるが、例えば表示面から所定のオフセットを持った位置として設定してもよい）にあるように感じる３次元仮想空間内の位置および領域を定義する。すなわち、立体表示は、表示装置１０の表示面の手前側に飛び出して見える部分や、表示面の奥に引っ込んで見える部分を含むが、ユーザにとってみれば、基準仮想平面領域付近の空間がちょうど表示装置１０の表示面付近にあるように見えることになる。右仮想カメラ３０２および左仮想カメラ３０４が、図２に示すような位置に設定された場合には、両仮想カメラによって生成される右オブジェクト画像および左オブジェクト画像の間では、基準仮想平面領域付近の空間に位置するオブジェクトについての表示のされ方が互いに一致する（すなわち、視差が実質的に無くなる）。
【００５８】
したがって、表示装置１０の表示面を見るユーザにとってみれば、基準仮想平面領域に対応する部分（にあるオブジェクト）については、右眼で視認する画像（右オブジェクト画像）と左眼で視認する画像（左オブジェクト画像）との間で実質的に同じ位置に見え、その結果、両オブジェクト画像を現実に表示している面である表示装置１０の表示面上に当該部分が存在するように見える。
【００５９】
一方、基準仮想平面領域とは異なる位置に設定された面に対応する部分（にあるオブジェクト）については、右仮想カメラ３０２と左仮想カメラ３０４との位置関係に応じて、右オブジェクト画像と左オブジェクト画像の表示位置が異なったものとなり（すなわち、何らかの視差を有する表示となり）、ユーザにとってみれば、表示装置１０の表示面から飛び出した位置や引っ込んだ位置に存在するように見える。
（ｖ）  上述したように、本実施の形態においては、視差を有する一対の平面２次元画像を表示装置１０に表示させることで、ユーザに立体感を感じさせる。この一対の平面２次元画像内のあるオブジェクトについての視差量が大きくなればなるほど、当該オブジェクトはユーザにとってより大きな立体感をもって視認されることになるが、視差量が一定値を超えて大きくなると、逆にユーザは立体感を感じにくくなる。そのため、表示装置１０で立体表示を行なう際には、視差量を適切な範囲に維持する必要がある。以下では、ユーザが表示装置１０において立体表示を気持ちよく受け入れることができる、表示面上における右オブジェクト画像と左オブジェクト画像との間の最大視差量を「限界視差量」と称す。この立体感を気持ちよく感じられるしきい値、すなわち限界視差量は、表示装置１０の表示面についての実画面幅、ユーザの眼の実間隔、およびユーザから表示装置１０の表示面までの実距離などによって決まる。
【００６０】
したがって、本実施の形態においては、ユーザに視認させたいオブジェクトについての視差量がこの限界視差量以下の視差量となるように、当該オブジェクトが表示装置１０の表示面に表示される。
【００６１】
このような表示装置１０に表示されるオブジェクトについての立体感を制御するために、本実施の形態においては、発生する視差量を評価するための平面が３次元仮想空間内に設定される。以下では、このような視差量を評価するための平面を「視差判定面」と称する（後述の図９および図１３参照）。この視差判定面についても、仮想カメラのカメラ方向に対して垂直となるように設定される。すなわち、視差判定面は、基準仮想面よりも奥側（仮想カメラと反対側）の位置に、基準仮想平面と平行に設定される。
【００６２】
より具体的には、３次元仮想空間内に設定される視差判定面に位置する表示対象を右仮想カメラおよび左仮想カメラでそれぞれ仮想的に撮影して得られる右オブジェクト画像および左オブジェクト画像の間では、右仮想カメラと左仮想カメラとの間の位置関係に応じた視差が生じる。そして、この視差判定面に位置するオブジェクトについての位置ずれ量が所定のしきい値を超えないように、右仮想カメラおよび左仮想カメラが設定される。これにより、視差判定面より手前（仮想カメラ側）に存在する各オブジェクトについての視差量が限界視差量以下とすることができる。なお、基準仮想面より手前側の位置に、別途の視差判定面(第２の視差判定面)を設けて、当該視差判定面に位置する表示対象についての位置ずれ量が所定のしきい値を超えないように、仮想カメラを設定してもよいが、本実施形態では、基準仮想面を所望の位置に設定できるように、第２の視差判定面は設けない。
【００６３】
［ａ４．機能および処理］
図４は、本発明の実施の形態に従う立体表示処理に係る機能を示す模式図である。図４を参照して、本発明の実施の形態に従う立体表示処理は、基準仮想カメラ設定機能４０と、オブジェクト画像生成機能５０と、背景画像生成機能６０と、表示データ生成機能７０とを含む。
【００６４】
基準仮想カメラ設定機能４０は、プレイヤキャラクタから所定距離だけ後方から当該プレイヤキャラクタを撮影したり、プレイヤキャラクタの位置からプレイヤキャラクタの向いている方向を撮影したりするなど、アプリケーションの内容に応じて任意の方法によって設定される基準カメラ設定（カメラ位置、カメラ方向、画角など）に基づいて、基準仮想カメラ（図２に示す符号３００）のカメラ情報を設定する。
【００６５】
オブジェクト画像生成機能５０は、３次元仮想空間内の各オブジェクトを右仮想カメラ（図２に示す符号３０２）および左仮想カメラ（図２に示す符号３０４）でそれぞれ仮想的に撮影することで、当該オブジェクトを表示装置１０で立体表示するために用いられる、右オブジェクト画像７１および左オブジェクト画像７３を生成する。
【００６６】
背景画像生成機能６０は、表示装置１０での立体表示においてオブジェクトの背景の絵として用いられる右背景画像７２および左背景画像７４を生成する。
【００６７】
表示データ生成機能７０は、右オブジェクト画像７１と左オブジェクト画像７３、および、右背景画像７２と左背景画像７４を用いて、表示装置１０での画像表示に使用されるデータ（右表示画像および左表示画像）を生成する。
【００６８】
オブジェクト画像生成機能５０は、基準仮想カメラ設定機能４０によって設定された、基準仮想カメラのカメラ情報に応じて、当該基準仮想カメラを通り、かつ、当該基準仮想カメラのカメラ方向に垂直な直線（図２に示す基準線３５０）上に、右仮想カメラおよび左仮想カメラ（図２に示す右仮想カメラ３０２および左仮想カメラ３０４）を設定する。すると、背景画像生成機能６０は、両背景画像の間で、オブジェクト画像生成機能５０によって設定された右仮想カメラと左仮想カメラとの間の位置関係に応じた相対関係を有するように、右背景画像７２および左背景画像７４を生成する。
【００６９】
このように、基準仮想カメラを通り、かつ、基準仮想カメラのカメラ方向に垂直な直線上に、右仮想カメラおよび左仮想カメラを設定することで、基準仮想カメラに対応する視点から見た３次元仮想空間内のオブジェクトを容易に立体表示させることができる。また、右背景画像７２および左背景画像７４の生成を、右オブジェクト画像７１および左オブジェクト画像７３を生成するための右仮想カメラおよび左仮想カメラの設定値の決定に連係させることで、表示装置１０において、背景画像をユーザから見て最も奥側に位置する絵として常に表現することができる。
【００７０】
より具体的には、オブジェクト画像生成機能５０は、左右仮想カメラ設定機能５１と、オブジェクト画像レンダリング機能５２と、オブジェクト定義５３とを含む。左右仮想カメラ設定機能５１は、上述の基準カメラ設定の情報に加えて、立体感調整の情報に基づいて、右仮想カメラおよび左仮想カメラを設定する。この立体感調整の情報は、表示装置１０において提供される立体感の程度を示す指示である。
【００７１】
左右仮想カメラ設定機能５１は、この立体感調整の情報にも応じて、右仮想カメラと左仮想カメラとの間の位置関係を決定する。さらに、左右仮想カメラ設定機能５１は、何らかの手段によって立体感の程度の変更が指示されると、当該指示に応じて、右仮想カメラと左仮想カメラとの間の位置関係を変更する。なお、このような、右仮想カメラおよび左仮想カメラの設定、ならびに、右仮想カメラと左仮想カメラとの間の位置関係の調整に係る具体例については、図１３〜図１５および図１９などを参照して、後ほど詳細に説明する。
【００７２】
また、表示装置１０において提供される立体感の程度を示す要求を受付ける入力手段の一例については、図１６〜図１８を参照して、後ほど詳細に説明する。なお、立体感調整の情報としては、ユーザが入力する形態に加えて、アプリケーションの制作者が予め意図した範囲に立体感を制限する形態なども存在する。
【００７３】
オブジェクト画像レンダリング機能５２は、左右仮想カメラ設定機能５１によって決定される右仮想カメラおよび左仮想カメラの設定値に基づいて、オブジェクト定義５３を参照して、右オブジェクト画像７１および左オブジェクト画像７３を生成する。このオブジェクト定義５３は、３次元仮想空間および当該３次元仮想空間内のオブジェクトなどの情報を含む。
【００７４】
また、オブジェクト画像生成機能５０から背景画像生成機能６０へ出力される「位置関係」は、右オブジェクト画像７１と左オブジェクト画像７３との間に生じ得る視差量と関連付けられる。より具体的には、右仮想カメラと左仮想カメラとの間の３次元仮想空間における距離が大きくなるほど（言い換えれば、２つの仮想カメラの間が離れるほど）、右オブジェクト画像７１と左オブジェクト画像７３との間には、より大きな視差量が生じ得る。そのため、背景画像生成機能６０は、典型的には、右仮想カメラと左仮想カメラとの間の仮想空間距離（発生する視差量に比例）に応じて、右背景画像７２および左背景画像７４を生成する。なお、右仮想カメラと左仮想カメラとの間の位置関係としては、両仮想カメラ間の直線距離である仮想空間距離に限られず、特定の基準点についての角度差などを用いてもよい。
【００７５】
このオブジェクト画像生成機能５０から背景画像生成機能６０へ出力される位置関係として、右仮想カメラと左仮想カメラとの間の仮想空間距離が採用される場合には、表示装置１０に表示されるレンダリング範囲を基準として規格化した値を用いることが好ましい。すなわち、ある好ましい形態として、オブジェクト画像生成機能５０は、基準仮想カメラの視体積（図１の符号３８０）に含まれ、基準仮想カメラのカメラ方向に垂直な仮想平面である、「基準仮想平面領域（図３参照）の左右方向の幅」に対する、「右仮想カメラと左仮想カメラとの間の距離」の比を「位置関係」として出力する。そして、背景画像生成機能６０は、この距離の比に応じて、右背景画像７２および左背景画像７４を生成する。
【００７６】
より具体的には、背景画像生成機能６０は、背景画像範囲設定機能６１と、背景画像レンダリング機能６２と、背景画像定義６３とを含む。背景画像定義６３は、典型的には、表示装置１０に表示されるサイズより大きなサイズを有する原背景画像ＢＧ（図１および図２参照）の情報を含む。背景画像範囲設定機能６１は、背景画像定義６３に含まれる原背景画像ＢＧに対して、右背景画像７２として出力すべき右描画範囲（後述する、図２１（Ｂ）に示す右描画範囲４１２）を設定するとともに、当該右描画範囲を、当該右描画範囲の幅に、「基準仮想平面領域の左右方向の幅」に対する「右仮想カメラ３０２と左仮想カメラ３０４との間の距離」の比を乗じて得られる距離だけずらした位置に、左背景画像７４として出力すべき左描画範囲（後述する、図２１（Ｂ）に示す左描画範囲４１４）を設定する。
【００７７】
代替の構成として、背景画像定義６３は、背景画像を生成するための別の３次元仮想空間（後述する、図２２に示す３次元仮想空間ＶＳ）および当該３次元仮想空間内の背景オブジェクト（図２２に示す原背景画像ＢＧ）などの情報を含んでいてもよい。この場合には、背景画像範囲設定機能６１は、当該背景画像を生成するための３次元仮想空間内に設定される基準仮想カメラ（後述する、図２３に示す基準仮想カメラ４００）を基準として、背景オブジェクトを仮想的に撮影することで右背景画像７２を生成するための右仮想カメラ（図２３に示す右仮想カメラ（背景）４０２）、および、背景オブジェクトを仮想的に撮影することで左背景画像を生成するための左仮想カメラ（図２３に示すおよび左仮想カメラ（背景）４０４）を設定する。そして、設定されたそれぞれの仮想カメラが背景オブジェクトを仮想的に撮影することで、右背景画像および左背景画像が生成される。なお、この場合の右仮想カメラ４０２および左仮想カメラ４０４の設定方法については、後述の［ｄ３．変形例１］において詳述する。
【００７８】
また、表示データ生成機能７０は、典型的には、右眼用および左眼用のそれぞれの画像を重ね合わせることで、表示装置１０において表示される右眼用および左眼用の表示データを生成する。より具体的には、表示データ生成機能７０は、右背景画像７２の上に右オブジェクト画像７１を重ねることで、右眼用の表示データを生成する。同様に、表示データ生成機能７０は、左背景画像７４の上に左オブジェクト画像７３を重ねることで、左眼用の表示データを生成する。
【００７９】
なお、上述した、各仮想カメラの３次元仮想空間内の位置および視体積などは、任意の方法で指定することが可能であるが、関連する３次元仮想空間についてのレンダリング技術などとの一貫性を維持する観点からは、カメラ行列（プロジェクション行列およびビュー行列）として定義することが好ましい。このカメラ行列の詳細については、後述する。
【００８０】
［ａ５．典型的なアプリケーション］
上述のように、ユーザに注目してもらいたいオブジェクトのレンダリング（オブジェクト画像の生成）と、当該オブジェクトの背景として表示される画像のレンダリング（背景画像の生成）とを独立に行なう処理は、たとえば、シューティングゲームやアクションゲームのような、ユーザが特定のキャラクタオブジェクトを操作して楽しむようなアプリケーションに適切である。たとえば、ゲーム進行に伴って、表示装置１０の表示面の奥側に向かってスクロール表示がなされるようなシューティングゲームを考えると、自キャラクタ（たとえば、戦闘機など）や敵キャラクタなどは、ユーザ操作に応じて、表示装置１０の表示面での表示位置や表示態様を変化させてレンダリングする必要があるが、背景（たとえば、空、水平線、太陽、宇宙空間など）はほぼ固定した内容でレンダリングすることが好ましい。これは、現実空間においても、たとえば、空、水平線、太陽、宇宙空間などは、実質的に無限遠の位置にあるので、視点が変化した場合であっても、その見え方がそれほど大きく変化しないためである。このような現実空間での実際の見え方を表示装置１０において表現できるように、ユーザに注目してもらいたいオブジェクトの移動とは独立して、背景画像は、ほぼ固定した状態（あるいは、よりスクロール速度の遅い状態）でレンダリングされる。
【００８１】
もちろん、本発明に係る立体表示処理は、アプリケーションの進行に伴って、背景画像として表示される内容を順次更新するような処理にも適用可能である。たとえば、ユーザ操作に応じて、キャラクタオブジェクトをレンダリングする視点を順次変更するような処理を考えると、キャラクタオブジェクトまでの距離と背景までの距離とは異なるので、同一の視点から見た場合であっても、それぞれの見え方（変化速度）は異なったものとなる。そのため、このような場合には、キャラクタオブジェクトの移動速度とは異なった速度で、背景をスクロール表示できるように、背景画像がオブジェクト画像とは独立して生成される。
【００８２】
＜Ｂ．典型的な実装＞
［ｂ１．表示装置］
表示装置１０としては、ユーザに向けて立体表示が可能なデバイスであれば、任意の型式の表示デバイスを採用することができる。すなわち、表示装置１０としては、視差を有する２つの画像をユーザがそれぞれの眼で視認できるようなデバイスであればよい。典型的には、例えば、前面視差バリアタイプの液晶表示デバイスやレンチキュラータイプの表示デバイスなどを用いることができる。あるいは、表示装置１０として、それに含まれる主波長成分の異なる２つの画像をそれぞれ独立に表示するとともに、透過波長範囲の異なる２つのカラーフィルタがそれぞれ組込まれたメガネをユーザに装着させることで、立体表示を行なう構成を採用してもよい。これに類似の構成として、偏光方向を異ならせて２つの画像をそれぞれ表示するとともに、当該２つの偏光方向に対応する偏光フィルタがそれぞれ組込まれたメガネをユーザに装着させることで、立体表示を行なう構成であってもよい。
【００８３】
以下、図５を参照して、視差光学系として視差バリアを有する前面視差バリアタイプの構成を採用した場合の表示装置１０の構成について説明する。この表示装置１０では、その表示面に、一定の視差を有する一対の右表示画像と左表示画像とを表示することで、左右両表示画像の間の視差量に応じた立体感をユーザに視認させることができる。
【００８４】
図５は、本発明の実施の形態に従う表示装置１０の構造の一例を示す図である。図５には、前面視差バリアタイプの液晶表示デバイスの断面構造が示されている。図５に示す表示装置１０は、ユーザが表示装置１０に対峙した場合に、視差バリアによって、その右眼および左眼の視野範囲にそれぞれ異なる画素からの光が入射するように構成される。
【００８５】
より具体的には、表示装置１０は、ガラス基板１６とガラス基板１８との間に設けられた、第１ＬＣＤ１１６および第２ＬＣＤ１２６を含む。第１ＬＣＤ１１６および第２ＬＣＤ１２６は、複数の画素を含み、かつバックライトからの光を画素単位で調節するための空間光変調器である。典型的には、第１ＬＣＤ１１６の画素と第２ＬＣＤ１２６の画素とは交互に配置される。ガラス基板１８のガラス基板１６の側とは反対側に、図示しないバックライトが設けられており、このバックライトからの光は第１ＬＣＤ１１６および第２ＬＣＤ１２６に向けて照射される。
【００８６】
ガラス基板１６の第１ＬＣＤ１１６および第２ＬＣＤ１２６に接する側とは反対の側には、視差光学系である視差バリア１２が設けられる。この視差バリア１２には、複数のスリット１４が所定間隔で行列状に設けられている。各スリット１４の中心位置を通り、かつガラス基板１６の面に対して垂直方向の軸を基準として、第１ＬＣＤ１１６の画素と第２ＬＣＤ１２６の対応する画素とが対称的に配置される。このようなスリット１４に対応する画素との位置関係、ならびに第１ＬＣＤ１１６および第２ＬＣＤ１２６を、表示すべき画像に応じて適切に制御することで、ユーザの両眼の間に所定の視差を生じさせることができる。
【００８７】
すなわち、視差バリア１２の各スリット１４においては、ユーザの右眼および左眼による視界をそれぞれ対応する角度に制限するので、典型的には、ユーザの右眼からは、光軸Ａｘ１上にある第１ＬＣＤ１１６の画素のみが視認でき、一方、ユーザの左眼からは、光軸Ａｘ２上にある第２ＬＣＤ１２６の画素のみが視認できることになる。ここで、第１ＬＣＤ１１６の画素および第２ＬＣＤ１２６の画素に、所定の視差を有する２つの画像の対応するピクセルを表示させることで、ユーザに所定の視差を与えることができる。
【００８８】
なお、図５に示す例においては、視差バリア１２のユーザ側の表面が表示装置１０の「表示面」に相当する。
【００８９】
［ｂ２．システム構成］
図６は、本発明の実施の形態に従う情報処理システム１の内部構成を示すブロック図である。図６を参照して、本実施の形態に従う情報処理システム１は、プロセッサによる処理が可能なコンピュータの典型例である。なお、情報処理システム１としては、パーソナルコンピュータ、ワークステーション、携帯端末、ＰＤＡ（Personal Digital Assistance）、携帯電話、携帯型ゲーム装置などとして実現してもよい。
【００９０】
情報処理システム１は、表示装置１０に加えて、ＣＰＵ（Central Processing Unit）１００と、ＲＯＭ（Read Only Memory）１０２と、ＲＡＭ（Random Access Memory）１０４と、入力部１０６と、第１ＶＲＡＭ（Video RAM）１１２と、第２ＶＲＡＭ１２２とを含む。なお、各部は、内部バスを介して、互いにデータ通信可能に接続されている。
【００９１】
ＣＰＵ１００は、ＲＯＭ１０２などに格納されているプログラムをＲＡＭ１０４に展開した上で、当該プログラムを実行する。このプログラムの実行により、ＣＰＵ１００は、後述するような表示制御処理や付随する各種処理を提供する。なお、ＣＰＵ１００が実行するプログラムは、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）、ＣＤ−ＲＯＭ（Compact Disk ROM）、フレキシブルディスク、フラッシュメモリ、各種のメモリカセットなどの記憶媒体によって流通する場合もある。そのため、情報処理システム１がこのような記憶媒体から格納されているプログラムコードなどを読出すようにしてもよい。この場合には、情報処理システム１が記憶媒体に対応する読出装置を利用できるようにしておく必要がある。あるいは、上述のようなプログラムがネットワークを通じて頒布されるような場合には、図示しない通信インターフェイスなどを介して、当該頒布されるプログラムを情報処理システム１へインストールしてもよい。
【００９２】
後述するように、本実施の形態に従うプログラムは、アプリケーションと、複数のアプリケーションに共通して利用されるライブラリ（あるいは、サブルーチンまたはモジュール）とに区別されている場合もある。この場合には、たとえば、ライブラリを含むファームウェアがＲＯＭ１０２などに予め格納されており、情報処理システム１に装着可能な記憶媒体に格納されたアプリケーションをＣＰＵ１００が読出して実行するような形態も可能である。
【００９３】
ＲＯＭ１０２は、上述したようなＣＰＵ１００で実行されるプログラムや各種の設定パラメータなどを不揮発的に記憶するデバイスである。ＲＯＭ１０２としては、典型的には、マスクＲＯＭや半導体フラッシュメモリなどからなる。
【００９４】
ＲＡＭ１０４は、上述したようなＣＰＵ１００で実行されるプログラムを展開したり、プログラムの実行に必要なデータを一時的に記憶したりするワークメモリとして機能する。また、ＲＡＭ１０４には、情報処理システム１で立体表示を行なうために使用される画像のデータが格納される場合もある。
【００９５】
入力部１０６は、ユーザ操作を受付けるデバイスであり、典型的には、キーボード、マウス、タッチペン、トラックボール、ペンタブレット、各種ボタン（スイッチ）などからなる。入力部１０６は、それに対して何らかのユーザ操作がなされると、対応する操作内容を示す信号をＣＰＵ１００へ伝送する。
【００９６】
第１ＶＲＡＭ１１２および第２ＶＲＡＭ１２２は、それぞれ第１ＬＣＤ１１６において表示される右表示画像および第２ＬＣＤ１２６において表示される左表示画像に対応するデータを格納するための記憶デバイスである。すなわち、第１ＶＲＡＭ１１２および第２ＶＲＡＭ１２２には、ＣＰＵ１００が後述するような表示制御処理などを行なうことで得られる表示データが順次書込まれる。そして、第１ＶＲＡＭ１１２および第２ＶＲＡＭ１２２に書込まれた表示データに基づいて、表示装置１０におけるレンダリング処理が制御される。
【００９７】
表示装置１０は、上述の第１ＬＣＤ１１６および第２ＬＣＤ１２６に加えて、ＬＣＤドライバ１１４を含む。ＬＣＤドライバ１１４は、第１ＶＲＡＭ１１２および第２ＶＲＡＭ１２２と関連付けられている。そして、ＬＣＤドライバ１１４は、第１ＶＲＡＭ１１２に書込まれる表示データに基づいて、第１ＬＣＤ１１６を構成するそれぞれの画素の点灯／消灯（ＯＮ／ＯＦＦ）を制御するとともに、第２ＶＲＡＭ１２２に書込まれる表示データに基づいて、第２ＬＣＤ１２６を構成するそれぞれの画素の点灯／消灯（ＯＮ／ＯＦＦ）を制御する。
【００９８】
［ｂ３．プログラム構成］
図７は、本発明の実施の形態に従う情報処理システム１において実装されるプログラム構成の一例を示す図である。
【００９９】
図７（Ａ）は、本実施の形態に従う情報処理システム１において実装されるプログラム構成の一例を示す図である。図７（Ａ）に示す情報処理システム１では、アプリケーション２００Ａおよびファームウェア２５０Ａが実装されている。典型的には、アプリケーション２００Ａは記憶媒体に格納されて流通し、ファームウェア２５０ＡはＲＯＭ１０２（図６）などに予め格納されている。情報処理システム１のＣＰＵ１００は、必要に応じて、アプリケーション２００Ａおよびファームウェア２５０Ａに含まれる命令を読出して実行する。
【０１００】
アプリケーション２００Ａは、入力モジュール２０２と、進行モジュール２０４と、オブジェクト画像レンダリングモジュール２０６と、背景画像範囲設定モジュール２０８と、背景画像レンダリングモジュール２１０と、オブジェクト定義データ２１２と、背景画像データ２１４と、表示データ生成モジュール２１６と、立体表示用ライブラリ２１８とを含む。入力モジュール２０２は、ユーザから入力部１０６（図６）などを介して与えられる指令に応じた内部コマンドを生成する。進行モジュール２０４は、入力モジュール２０２によって生成される内部コマンドに従って、アプリケーションを進行する。すなわち、進行モジュール２０４は、アプリケーションの進行に伴って、表示データや各種のパラメータを順次更新する。
【０１０１】
オブジェクト画像レンダリングモジュール２０６は、進行モジュール２０４によって順次更新されるパラメータなどの値に従って、オブジェクト定義データ２１２を参照して、右オブジェクト画像および左オブジェクト画像を生成する。すなわち、オブジェクト画像レンダリングモジュール２０６は、図４に示すオブジェクト画像レンダリング機能５２を提供する。より具体的には、オブジェクト画像レンダリングモジュール２０６は、進行モジュール２０４によって、図２に示す基準仮想カメラ３００の情報のみが指定された場合には、立体表示用ライブラリ２１８をコールして、右仮想カメラ３０２および左仮想カメラ３０４の情報を取得し、これらの取得した情報に基づいて、右オブジェクト画像および左オブジェクト画像を生成する（詳細については後述する）。
【０１０２】
背景画像範囲設定モジュール２０８は、進行モジュール２０４によって順次更新されるパラメータおよび／またはオブジェクト画像レンダリングモジュール２０６によるレンダリング範囲などに応じて、右背景画像および左背景画像として生成すべき範囲を決定する。すなわち、背景画像範囲設定モジュール２０８は、図４に示す背景画像範囲設定機能６１を提供する。より具体的には、オブジェクト画像レンダリングモジュール２０６が立体表示用ライブラリ２１８をコールすると、その戻り値として、図２に示す基準仮想カメラ３００についての基準仮想平面領域（図３参照）の幅を基準とした、右仮想カメラ３０２と左仮想カメラ３０４との間の距離の比が出力される。オブジェクト画像レンダリングモジュール２０６は、右背景画像と左背景画像との間で、表示されるべき背景画像の幅と上記距離の比とを乗じて得られる距離だけずらして、それぞれレンダリング範囲を設定する（詳細については後述する）。
【０１０３】
背景画像レンダリングモジュール２１０は、背景画像範囲設定モジュール２０８によって設定されるレンダリング範囲に従って、背景画像データ２１４を参照して、右背景画像および左背景画像を生成する。
【０１０４】
オブジェクト定義データ２１２は、オブジェクト画像を生成するための３次元仮想空間および当該３次元仮想空間に含まれるオブジェクトの定義を含む。背景画像データ２１４は、背景画像を生成するための画像データを含む。
【０１０５】
表示データ生成モジュール２１６は、オブジェクト画像レンダリングモジュール２０６によって生成される右オブジェクト画像および左オブジェクト画像と、背景画像レンダリングモジュール２１０によって生成される右背景画像および左背景画像とに基づいて、右表示画像および左表示画像を生成する。すなわち、表示データ生成モジュール２１６は、図４に示す表示データ生成機能７０を提供する。
【０１０６】
立体表示用ライブラリ２１８は、図２に示す基準仮想カメラ３００の情報などの指定に応答して、立体表示を行なうための右仮想カメラ３０２および左仮想カメラ３０４の設定値を算出する。また、立体表示用ライブラリ２１８は、算出した右仮想カメラ３０２と左仮想カメラ３０４との間の位置関係を示す値を戻り値として出力する。立体表示用ライブラリ２１８のインターフェイスの詳細については後述する。
【０１０７】
ファームウェア２５０Ａは、図６に示す情報処理システム１を構成する各ハードウェアを制御するための機能や、メニュー画面などを表示したりする機能を提供する。なお、ファームウェア２５０Ａとしては、ＯＳ（Operating System）の一部または全部を含むようにしてもよい。
【０１０８】
図７（Ａ）に示すプログラム構成においては、アプリケーション２００Ａに立体表示用ライブラリ２１８が含まれている例を示すが、この立体表示用ライブラリ２１８は、図７（Ｂ）に示すように、立体表示を含む複数のアプリケーションに共有される形態で実装してもよい。
【０１０９】
図７（Ｂ）は、本実施の形態に従う情報処理システム１において実装されるプログラム構成の別の一例（変形例）を示す図である。図７（Ｂ）に示すプログラム構成においては、立体表示用ライブラリ２１８は、ファームウェア２５０Ｂの一部として組込まれている。一方、アプリケーション２００Ｂは、立体表示用ライブラリ２１８を含んでおらず、必要に応じて、ファームウェア２５０Ｂの立体表示用ライブラリ２１８をコールすることになる。
【０１１０】
［ｂ４．立体表示用ライブラリ］
図８は、図７に示す立体表示用ライブラリ２１８について入出力されるデータ項目を説明するための図である。本実施の形態に従う立体表示用ライブラリ２１８は、表示装置１０における立体表示に係るモードとして、２つのモード（「アプリケーション優先モード」および「リアルモード」）が選択的可能になっている。これらの２つのモードについての詳細は後述するが、立体表示用ライブラリ２１８を利用するときには、上記２つのモードの一方を示すモード情報が指定される。その上で、以下に示すような、パラメータが立体表示用ライブラリ２１８に入力される。
【０１１１】
具体的には、「アプリケーション優先モード」が指定されると、立体表示用ライブラリ２１８は、（１）基準仮想カメラ情報、（２）基準仮想面情報、（３）視差判定面情報、（４）モード情報の入力を受付けて、（５）右仮想カメラ情報、（６）左仮想カメラ情報、（７）仮想カメラ間距離を出力する。
【０１１２】
（１）基準仮想カメラ情報は、図２に示す基準仮想カメラ３００の配置位置および視体積（視野角、ニアクリップ面、ファークリップ面などの設定値）などを定義する情報であり、典型的には、カメラ行列が用いられる。詳細については後述するが、このカメラ行列は、プロジェクション行列およびビュー行列を含む。
【０１１３】
（２）基準仮想面情報は、図２に示す基準仮想カメラ３００に対する基準仮想面（基準仮想平面領域を含む平面）（図３参照）の位置を定義するための情報であり、典型的には、基準仮想カメラ３００の配置位置から基準仮想面（基準仮想平面領域）（図３参照）までの仮想空間距離を含む。
【０１１４】
（３）視差判定面情報は、視差判定面を定義するための情報であり、典型的には、図２に示す基準仮想カメラ３００の配置位置から視差判定面までの仮想空間距離、または、基準仮想面と視差判定面との間の距離を含む。
【０１１５】
（４）モード情報は、上述の「アプリケーション優先モード」および「リアルモード」のうち、いずれかを含む。
【０１１６】
（５）右仮想カメラ情報は、図２に示す基準仮想カメラ３００の設定に応じて算出される、右仮想カメラ３０２の配置位置および視体積（視野角、ニアクリップ面、ファークリップ面などの設定値）などを定義する情報である。同様に、（６）左仮想カメラ情報は、図２に示す基準仮想カメラ３００の設定に応じて算出される、左仮想カメラ３０４の配置位置および視体積（視野角、ニアクリップ面、ファークリップ面などの設定値）などを定義する情報である。典型的には、右仮想カメラ情報および左仮想カメラ情報のいずれについても、プロジェクション行列およびビュー行列を含む、カメラ行列が用いられる。
【０１１７】
（７）仮想カメラ間距離は、基準仮想カメラ３００の設定に応じて算出される、右仮想カメラ３０２と左仮想カメラ３０４との間の位置関係を示す情報であり、３次元仮想空間上における右仮想カメラ３０２と左仮想カメラ３０４との間の距離の情報を含む。好ましくは、仮想カメラ間距離としては、右仮想カメラ３０２と左仮想カメラ３０４との間の距離を規格化した値、具体的には、基準仮想平面領域（図３参照）の幅を基準とした、右仮想カメラ３０２と左仮想カメラ３０４との間の距離の比が用いられる。
【０１１８】
一方、「リアルモード」が指定されると、立体表示用ライブラリ２１８は、（１）基準仮想カメラ情報、（２）基準仮想面情報、（３’）基準立体度合、の入力を受付けて、（５）右仮想カメラ情報、（６）左仮想カメラ情報、（７）仮想カメラ間距離を出力する。すなわち、「リアルモード」が指定されると、立体表示用ライブラリ２１８は、（３）視差判定面情報に代えて、（３’）基準立体度合を受付ける。
【０１１９】
（３’）基準立体度合は、表示装置１０における立体表示の立体感を調整するためのパラメータである。本実施の形態に従う「リアルモード」では、現実に近い立体表示を行なうための右仮想カメラ３０２および左仮想カメラ３０４の設定を決定することになる。しかしながら、アプリケーションの種類や進行状況によっては必ずしも現実に近い立体表示をしたくない場合も考えられ、このような場合に、（３’）基準立体度合を適宜設定することで、立体表示における立体感の調整が行なわれる。
【０１２０】
なお、これらの入出力値（行列値を含む）は、立体表示用ライブラリ２１８およびアプリケーション２００Ａ，２００Ｂに含まれるいずれのモジュールによってアクセス可能な変数格納領域に保持される場合もある。
【０１２１】
上述のように、立体表示用ライブラリ２１８は、右仮想カメラ３０２および左仮想カメラ３０４に設定された視体積を示す情報を出力する。すなわち、本実施の形態に従うプログラムでは、基準仮想カメラの設定情報を立体表示用ライブラリ２１８に与えることで、右仮想カメラ３０２と左仮想カメラ３０４の２つの仮想カメラの設定情報を取得することができる。
【０１２２】
＜Ｃ．オブジェクト画像生成処理＞
以下、立体表示用ライブラリ２１８での処理内容を含めた、右オブジェクト画像および左オブジェクト画像の生成処理の詳細について説明する。
【０１２３】
［ｃ１．概要］
図９は、本発明の実施の形態に従うオブジェクト画像生成処理の対象となる３次元仮想空間の一例を示す模式図である。図１０は、図９に示す状態において生成されるオブジェクト画像（右オブジェクト画像および左オブジェクト画像）の生成処理を示す模式図である。図１１は、図１０に示す右仮想カメラ３０２および左仮想カメラ３０４によってそれぞれ生成されるオブジェクト画像の一例を示す図である。
【０１２４】
図９および図１０に示すように、本実施の形態においては、基本的には、共通の表示対象（被写体）を含み、かつ所定の視差を有する一対のオブジェクト画像（ステレオ画像）を用いて、立体表示を行なう。このような一対のオブジェクト画像は、３次元仮想空間内に一対の仮想カメラ（右仮想カメラ３０２および左仮想カメラ３０４）を配置し、この一対の仮想カメラがそれぞれ３次元仮想空間内のオブジェクトを仮想的に撮影することで、動的に生成される。すなわち、ポリゴン生成といったコンピュータグラフィックスの技術を用いて、共通のオブジェクトに対して、視点を異ならせた２つの仮想カメラを用いて、一対のオブジェクト画像がレンダリングされる。
【０１２５】
図９および図１０に示す３次元仮想空間においては、右仮想カメラ３０２および左仮想カメラ３０４が仮想空間距離Ｄｆだけ離されて配置されているものとする。このような配置によって、右仮想カメラ３０２および左仮想カメラ３０４によってそれぞれ生成される右オブジェクト画像と左オブジェクト画像との間には、この仮想空間距離Ｄｆに応じた視差が生じる。なお、右仮想カメラ３０２が３次元仮想空間を撮影する方向である右カメラ方向３０３と、左仮想カメラ３０４が３次元仮想空間を撮影する方向である左カメラ方向３０５とは、同じ向きである。すなわち、右カメラ方向３０３と左カメラ方向３０５とは平行である。
【０１２６】
なお、右仮想カメラ３０２および左仮想カメラ３０４の遠方側から、オブジェクトＯＢＪ１およびオブジェクトＯＢＪ２が順に配置されているものとする。一例として、オブジェクトＯＢＪ１は四角錐であり、オブジェクトＯＢＪ２は球体であるとする。
【０１２７】
右仮想カメラ３０２および左仮想カメラ３０４の各々は、３次元仮想空間のうち、各カメラ方向の所定範囲にあるオブジェクトのみをレンダリングする。すなわち、右仮想カメラ３０２は、対応する視野角、ニアクリップ面、ファークリップ面によって定義される視体積に含まれる範囲をレンダリングし、左仮想カメラ３０４は、対応する視野角、ニアクリップ面、ファークリップ面によって定義される視体積に含まれる範囲をレンダリングする。
【０１２８】
また、３次元仮想空間内には、基準仮想面、および当該基準仮想面上の一部の領域である基準仮想平面領域が設定される。この基準仮想面（または、基準仮想平面領域）は、上述したように、表示装置１０の表示面の位置に対応する平面（または、領域）であり、右カメラ方向３０３および左カメラ方向３０５のいずれに対して垂直となるように設定される。この基準仮想平面領域は、表示装置１０で立体表示を行なった際に、ユーザが表示装置１０の表示面付近にあるように感じる３次元仮想空間内の位置および領域を定義する。
【０１２９】
このようにレンダリング範囲（視体積）が設定されると、右仮想カメラ３０２および左仮想カメラ３０４からは、図１１に示すようなオブジェクト画像がそれぞれ生成される。図１１には、図９および図１０に示すような３次元仮想空間において、右仮想カメラ３０２が仮想的に撮影を行なうことで生成される右オブジェクト画像ＩＭＧ１と、左仮想カメラ３０４が仮想的に撮影を行なうことで左オブジェクト画像ＩＭＧ２とが例示される。
【０１３０】
右オブジェクト画像ＩＭＧ１と左オブジェクト画像ＩＭＧ２とを比較すると、右オブジェクト画像ＩＭＧ１内におけるオブジェクトＯＢＪ１の存在位置は、左オブジェクト画像ＩＭＧ２内におけるオブジェクトＯＢＪ１の位置と実質的に一致する。これに対して、右オブジェクト画像ＩＭＧ１内におけるオブジェクトＯＢＪ２の位置は、左オブジェクト画像ＩＭＧ２内におけるオブジェクトＯＢＪ２の存在位置とは異なっている。すなわち、表示装置１０に対峙するユーザにとってみれば、オブジェクトＯＢＪ１については視差がない状態で視認され、一方、オブジェクトＯＢＪ２についてはある視差量を有する状態で視認される。
【０１３１】
言い換えれば、図９に示すように、３次元仮想空間内において、オブジェクトＯＢＪ１を通る位置に基準仮想面（基準仮想平面領域）が設定されているため、オブジェクトＯＢＪ１については、右オブジェクト画像と左オブジェクト画像との間で、その表示のされ方が一致する。その結果、表示装置１０の表示面において、オブジェクトＯＢＪ１についての視差が実質的に無くなり、ユーザにとってみれば、オブジェクトＯＢＪ１の存在する付近の空間がちょうど表示装置１０の表示面付近にあるように見える。
【０１３２】
上述したように、ユーザに注目してもらいたいオブジェクト（上述の例では、オブジェクトＯＢＪ１）が表示装置１０の表示面付近にあるように立体表示させることが一般的であると考えられる。このようにユーザに注目してもらいたいオブジェクトを立体表示させるためには、３次元仮想空間内に右仮想カメラ３０２および左仮想カメラ３０４を設定し、続いて、表示装置１０の表示面付近に表示させたいオブジェクトの位置に応じた位置に、右カメラ方向３０３および左仮想カメラ３０４に垂直になるように、基準仮想面を設定する必要がある。
【０１３３】
本実施の形態においては、オブジェクトに係るレンダリングの処理負荷を低減する観点から、右仮想カメラ３０２および左仮想カメラ３０４のレンダリング範囲（視体積）は、いずれも基準仮想平面領域を基準に設定される。図１０に示すように、右仮想カメラ３０２および左仮想カメラ３０４が、両仮想カメラを通る基準線３５０上に、仮想空間距離Ｄｆだけ離れて設定されている場合においては、右仮想カメラ３０２および左仮想カメラ３０４の各々は、その配置位置を基準とする視体積についてレンダリングすることが可能であるが、本実施の形態においては、基準仮想平面領域を基準とするレンダリング範囲が設定される。すなわち、右仮想カメラ３０２については、その配置位置から基準仮想平面領域の外周によって規定される視体積がレンダリング範囲に設定される。左仮想カメラ３０４についても、その配置位置から基準仮想平面領域の外周によって規定される視体積がレンダリング範囲に設定される。
【０１３４】
このように、右仮想カメラ３０２および左仮想カメラ３０４に対して、基準仮想平面領域の外周によって規定される視体積をそれぞれ設定することで、右仮想カメラ３０２および左仮想カメラ３０４がそれぞれ生成する右オブジェクト画像および左オブジェクト画像を、そのまま表示装置１０での立体表示に用いることができる。より具体的には、右仮想カメラ３０２から出力された右オブジェクト画像は、そのまま第１ＶＲＡＭ１１２（図６）へ書込まれ、左仮想カメラ３０４から出力された左オブジェクト画像は、そのまま第２ＶＲＡＭ１２２（図６）へ書込まれる。このように、本実施の形態においては、表示装置１０での表示に使用されない範囲の（余分な）画像を生成することがない。したがって、不要なレンダリング処理を回避できる。
【０１３５】
一方で、３次元仮想空間内に配置された、ユーザに注目してもらいたいオブジェクトを表示装置１０において立体表示する場合には、右仮想カメラ３０２および左仮想カメラ３０４に対して、それぞれ異なる視野範囲（視体積）を設定する必要がある。そのため、立体表示を含むアプリケーションの制作者は、当該アプリケーションの進行に関連付けられた各シーンにおいて、ユーザに注目してもらいたいオブジェクトに応じて、右仮想カメラおよび左仮想カメラの設定値（配置位置および視体積など）を適切に指定する必要がある。このような作業は制作者の負担が大きく、立体表示を利用したアプリケーションを制作する際の障壁となり得る。
【０１３６】
そこで、本実施の形態に従うプログラム（典型的には、上述の立体表示用ライブラリ２１８として実装）は、図１に示すような、平面表示のみを利用する（立体表示を利用しない）アプリケーションと同様のパラメータを指定するだけで、立体表示を行なうために必要な各種パラメータを自動的に設定できる機能を提供する。
【０１３７】
より具体的には、平面表示のみを利用するアプリケーションと同様に、制作者は、表示装置１０に表示させたいオブジェクトに応じた位置に１つの基準仮想カメラ３００（図２および図３参照）を設定する。なお、この基準仮想カメラの設定値としては、基準仮想カメラ３００の配置位置および対応する視体積の値を含む。このような設定項目に加えて、制作者は、表示装置１０の表示面付近に表示させたいオブジェクトが存在する位置を基準仮想面として設定する。そして、この基準仮想面のうち、基準仮想カメラの視体積の内部に含まれる領域が、基準仮想平面領域として決まる。
【０１３８】
すると、本実施の形態に従うプログラムは、上述のような設定に基づいて、右仮想カメラ３０２および左仮想カメラ３０４の配置位置および視体積などをそれぞれ算出する。このような処理によって、立体表示を利用したアプリケーションの制作者は、従来の平面表示のみを利用するアプリケーションの開発と同様の作業量で、３次元仮想空間内の意図した範囲を表示装置１０上で立体表示させることができる。また、基準仮想平面領域付近に存在するオブジェクトは、視差が無いか、もしくは、視差が少ない状態で表示装置１０の表示面に表示されるので、当該アプリケーションをプレイするユーザにとってみれば、そのオブジェクトを最も視認し易くなる。さらに、基準仮想平面領域に設定した領域は、表示装置１０で確実に表示されることが保証されるため、アプリケーションの制作者にとってみれば、右仮想カメラ３０２および左仮想カメラ３０４の設定値などを考慮することなく、基準仮想カメラおよび基準仮想平面領域のみを考慮するだけでよい。そのため、アプリケーションの開発が容易になる。
【０１３９】
また、アプリケーションの内容によっては、３次元仮想空間の状態をリアルにユーザに表示したい場合もある。すなわち、ユーザに対して、３次元仮想空間に存在しているかのような感覚を与えることも有効な場合がある。この場合には、ユーザは、表示装置１０の立体表示によって、本当にその場に現物の表示対象が存在しているかのような感覚を得ることになる。
【０１４０】
上述のように、アプリケーションの内容やその進行に応じて、ユーザに対してどのような立体表示を行なうかというニーズは異なったものとなる。そこで、本実施の形態に従うプログラムでは、少なくとも２つのモード（上述した、「アプリケーション優先モード」および「リアルモード」）が用意される。そして、アプリケーションの制作者が任意に使用するモードを指定することで、当該モードに応じた、右仮想カメラ３０２および左仮想カメラ３０４の設定値が自動的に決定される。
【０１４１】
より具体的には、「アプリケーション優先モード」では、アプリケーションの制作者が意図した範囲の内容を立体表示できるように、右仮想カメラ３０２および左仮想カメラ３０４の設定値が決定される。一方、「リアルモード」では、ユーザに対して、３次元仮想空間に存在しているかのような感覚を与えることができるように、右仮想カメラ３０２および左仮想カメラ３０４の設定値が決定される。
【０１４２】
以下、各モードにおける、右仮想カメラ３０２および左仮想カメラ３０４の設定値を決定する処理の詳細について説明する。
【０１４３】
［ｃ２．アプリケーション優先モード］
「アプリケーション優先モード」においては、アプリケーションの制作者は、平面表示のみを利用する（立体表示を利用しない）アプリケーションを制作する場合と同様に、１つの基準仮想カメラ（図２および図３に示す基準仮想カメラ３００）の配置位置および視体積（描画範囲）を指定する（図８に示す（１）基準仮想カメラ情報）。同時に、制作者は、指定した視体積に含まれる空間内のいずれの平面位置が、表示装置１０において立体表示をした際にその表示面付近に位置するように表示したいかを指定する（図８に示す（２）基準仮想面情報）。さらに、制作者は、右オブジェクト画像と左オブジェクト画像との間に生じる視差量を評価して、ユーザが表示装置１０での立体表示を気持ちよく受け入れることができることを保証するための視差判定面を指定する（図８に示す（３）視差判定面情報）。
【０１４４】
この指定に応答して、立体表示用ライブラリ２１８は、以下詳細に説明するように、右仮想カメラ３０２によって生成される右オブジェクト画像と左仮想カメラ３０４によって生成される左オブジェクト画像との間に生じる視差が予め定められた値を超えないように、右仮想カメラ３０２および左仮想カメラ３０４を設定する。そして、立体表示用ライブラリ２１８は、設定された右仮想カメラ３０２を定義するための（５）右仮想カメラ情報と、設定された左仮想カメラ３０４を定義するための（６）左仮想カメラ情報とを出力するとともに、右仮想カメラ３０２と左仮想カメラ３０４との間の位置関係を示す（７）仮想カメラ間距離を出力する。
【０１４５】
（ｃ２−ｉ．プロジェクション行列およびビュー行列）
以下の説明においては、（１）基準仮想カメラ情報、（５）右仮想カメラ情報、および、（６）左仮想カメラ情報は、いずれもカメラ行列として定義される例を示す。先に、このカメラ行列について説明する。
【０１４６】
このカメラ行列は、仮想カメラの視野範囲（視体積）を定義する方法の一例であり、典型的には、３次元仮想空間を仮想カメラから見た方向に変換するためのビュー行列（３行×４列）と、２次元画面（投影面）に投影するためのプロジェクション行列（４行×４列）とを含む。
【０１４７】
図１２は、本発明の実施の形態に従うカメラ行列を説明するための図である。図１２に示すように、ある３次元仮想空間をＸ，Ｙ，Ｚの３軸で定義する。仮想カメラの座標を（ｃｘ，ｃｙ，ｃｚ）とし、注視点（仮想カメラの方向と基準仮想面との交点）の座標を（ｂｘ，ｂｙ，ｂｚ）とする。また、仮想カメラからニアクリップ面までの距離をｎとし、仮想カメラからファークリップ面までの距離をｆとする。さらに、仮想カメラの向きを示すベクトルを、正面方向ベクトル（Ｚｘ，Ｚｙ，Ｚｚ）、上方向ベクトル（Ｙｘ，Ｙｙ，Ｙｚ）および左方向ベクトル（Ｘｘ，Ｘｙ，Ｘｚ）として定義する。なお、これらのベクトルは、いずれもその大きさが「１」の単位ベクトルとする。
【０１４８】
図１２に示す場合のプロジェクション行列を（１）式として示し、ビュー行列を（２）式として示す。
【０１４９】
【数１】
0005405264.tif 000002
【０１５０】
このようなカメラ行列（プロジェクション行列およびビュー行列）を用いることで、アプリケーション毎にそれぞれ設定される３次元仮想空間に対応することができる。すなわち、カメラ行列は、汎用的な次元で定義される行列であり、アプリケーションに依存することなく、上述のような仮想カメラの設定処理を実行することができる。
【０１５１】
なお、図１２では、仮想カメラの座標と注視点の座標とを用いて、プロジェクション行列を生成する方法について例示したが、照明方向と仮想カメラの向きベクトルとを用いて、プロジェクション行列を生成することができる。
【０１５２】
また、図１２では、ニアクリップ面を規定する４辺の位置（大きさ）を用いて、ビュー行列を生成する方法について例示したが、仮想カメラの視野角に基づいてビュー行列を生成することもできる。
【０１５３】
なお、プロジェクション行列およびビュー行列は、いずれも双方向に変換が可能である。たとえば、プロジェクション行列についてみれば、仮想カメラの座標および注視点の座標に基づいてプロジェクション行列を生成することも可能である一方、プロジェクション行列から仮想カメラの座標および注視点の座標を算出することも可能である。
【０１５４】
したがって、設定された基準仮想カメラ３００に応じた、右仮想カメラ３０２および左仮想カメラ３０４のそれぞれの配置位置、ならびにそれらの視体積が後述する図１３および図１４に示すような方法に従って設定されると、これらの情報に基づいて、右仮想カメラ３０２および左仮想カメラ３０４の各々のカメラ行列（プロジェクション行列およびビュー行列）が出力される。
【０１５５】
（ｃ２−ｉｉ．基準仮想面）
基準仮想面は、図９に示すように、基準仮想カメラ３００を基準として設定される。以下の説明においては、（２）基準仮想面情報として、基準仮想カメラ３００から設定される基準仮想面までの基準仮想カメラ３００のカメラ方向３０１（基準カメラ方向）に沿った仮想空間距離Ｄとして定義される例を示す。
【０１５６】
（ｃ２−ｉｉｉ．視差判定面）
図１３は、本発明の実施の形態に従う右仮想カメラ３０２および左仮想カメラ３０４の設定処理を２次元的に説明するための図である。図１４は、図１３に示す右仮想カメラおよび左仮想カメラの設定処理の処理結果に応じて設定される視体積を示す図である。
【０１５７】
図１３および図１４には、表示装置１０を見るユーザが心地よく立体表示を受け入れることのできる深さ（奥行き）に対応する位置に視差判定面３６１を設定する例を示す。すなわち、表示装置１０の表示面付近には、３次元仮想空間の基準仮想平面領域３６０に位置する表示対象が表示されるため、視差判定面３６１に位置する表示対象は、表示装置１０の表示面からより奥側に見えることになる。右オブジェクト画像と左オブジェクト画像との間の視差判定面３６１に対応する部分については、右仮想カメラ３０２と左仮想カメラ３０４との位置関係に応じた視差量が生じる。この視差量が相対的に大きくなると、表示装置１０を見るユーザへの負担が大きくなる。そのため、視差判定面３６１における視差が所定のしきい値を超えないように、右仮想カメラ３０２および左仮想カメラ３０４を設定する必要がある。
【０１５８】
なお、図１３および図１４においては、視差判定面３６１を、基準仮想平面領域３６０について基準仮想カメラ３００とは反対側に設定した場合を例示するが、基準仮想カメラ３００の側に設定してもよい。この場合には、視差判定面３６１は、表示装置１０を見るユーザが心地よく立体表示を受け入れることのできる画像の飛び出し量に対応する位置に設定される。
【０１５９】
さらに、基準仮想平面領域３６０より遠方側に第１の視差判定面を設定するとともに、基準仮想平面領域３６０より近傍側に第２の視差判定面を設定し、それぞれの視差判定面において条件を満足するか否かを評価してもよい。
【０１６０】
いずれの場合にも、視差判定面は、基準仮想平面領域３６０と平行に配置され、右仮想カメラ３０２によって生成される右オブジェクト画像と左仮想カメラ３０４によって生成される左オブジェクト画像との間に生じる視差を評価するために用いられる。すなわち、視差判定面３６１に存在する表示対象についての視差を所定のしきい値以下に維持することで、少なくとも、基準仮想平面領域３６０から視差判定面３６１の間に存在するオブジェクトについては、その立体表示をユーザが気持ちよく受け入れることが保証される。
【０１６１】
この視差判定面３６１における視差の限界値は、情報処理システム１（表示装置１０）の物理的な大きさおよび特性、ならびに、ユーザに依存する身体的な特性などに応じて定まる。より具体的には、この視差の限界値は、表示装置１０の表示サイズ（縦長さと横長さ）、各画素のサイズ、視差バリアの間隔、ユーザの眼の間隔（図５に示す実距離Ｌ１）、ユーザから表示装置１０の表示面までの距離（図５に示す実距離Ｌ２）などに依存した値となる。
【０１６２】
以下の説明においては、（３）視差判定面情報については、図１３（Ａ）に示すように、基準仮想平面領域３６０から視差判定面３６１までの仮想空間距離Ａとして定義される例を示す。
【０１６３】
なお、（２）基準仮想面情報、および（３）視差判定面情報としては、上述したものに限られず、基準仮想カメラ３００から視差判定面３６１までの仮想空間距離を定義した上で、基準仮想カメラ３００から基準仮想平面領域３６０までの仮想空間距離を、基準仮想カメラ３００から視差判定面３６１までの仮想空間距離を基準とした比率として与えてもよい。
【０１６４】
（ｃ２−ｉｖ．右仮想カメラおよび左仮想カメラの設定処理）
次に、図１３および図１４を参照して、基準仮想カメラ３００の設定に応答して、右仮想カメラ３０２および左仮想カメラ３０４がどのように設定されるかについて説明する。
【０１６５】
図１３（Ａ）を参照して、まず、３次元仮想空間のある位置に基準仮想カメラ３００の設定が指定されたものとする。同時に、基準仮想カメラ３００から仮想空間距離Ｄだけ離れた位置に基準仮想平面領域３６０が指定され、基準仮想平面領域３６０から仮想空間距離Ａだけ離れた位置に視差判定面３６１が指定されたものとする。
【０１６６】
基準仮想カメラ３００と基準仮想平面領域３６０との間の仮想空間距離が与えられると、図１３（Ａ）に示すように、この基準仮想カメラ３００の視体積３８０に含まれる、基準仮想カメラ３００のカメラ方向に直交する平面領域として、基準仮想平面領域３６０が定まる。この視体積３８０は、３次元仮想空間のうち、基準仮想カメラ３００によって有効にレンダリングされる範囲に相当する。
【０１６７】
より具体的には、視体積３８０は、基準仮想カメラ３００の視野角を頂点とする四角錐をニアクリップ面３６４およびファークリップ面３６６で区切った錐体に相当する。すなわち、視体積３８０は、基準仮想カメラ３００の視野角、基準仮想カメラ３００から最も近傍側の面に対応するニアクリップ面３６４、および、基準仮想カメラ３００から最も遠方側の面に対応するファークリップ面３６６によって定義される。言い換えれば、視体積３８０は、基準仮想平面領域３６０を定義する各頂点３６０ａ，３６０ｂ，３６０ｃ，３６０ｄと内接することになる。
【０１６８】
図１３（Ａ）に示す状態から、視差判定面３６１を含む平面上において、右最大視差面３６２および左最大視差面３６３の位置が決定される。この右最大視差面３６２は、視差判定面３６１における視差を限界値とした場合における、左仮想カメラ３０４によってレンダリングされる範囲である。同様に、この左最大視差面３６３は、視差判定面３６１における視差を限界値とした場合における、右仮想カメラ３０２によってレンダリングされる範囲である。
【０１６９】
より具体的には、右最大視差面３６２と左最大視差面３６３との間のずれ量が視差判定面３６１において許容される視差（限界視差量に対応する最大値）と一致するように、右最大視差面３６２および左最大視差面３６３の位置がそれぞれ決定される。言い換えれば、図１３（Ｂ）に示すように、視差判定面３６１をそれぞれ紙面左側および紙面右側にスライドさせることで、右最大視差面３６２および左最大視差面３６３が得られる。ここで、右最大視差面３６２と左最大視差面３６３との間の距離である仮想空間距離Ｓが、表示装置１０の表示面における限界視差量に相当する。
【０１７０】
基準仮想平面領域３６０と、上述のような手順によって位置が定まった右最大視差面３６２および左最大視差面３６３とに基づいて、右仮想カメラ３０２および左仮想カメラ３０４の配置位置がそれぞれ決定される。本実施の形態においては、図１３（Ｃ）に示すように、基準仮想カメラ３００を通り、かつ、基準仮想平面領域３６０に平行な、基準線３５０が定義され、この基準線３５０上に、右仮想カメラ３０２および左仮想カメラ３０４が設定される。より具体的には、基準仮想平面領域３６０と右最大視差面３６２とを含む視体積が定義できる位置に右仮想カメラ３０２が設定される。同様に、基準仮想平面領域３６０と左最大視差面３６３とを含む視体積が定義できる位置に左仮想カメラ３０４が設定される。すなわち、基準仮想カメラ３００の配置位置を基準線３５０に沿って右側に移動させた位置に右仮想カメラ３０２が設定され、基準仮想カメラ３００の配置位置を基準線３５０に沿って左側に移動させた位置に左仮想カメラ３０４が設定される。
【０１７１】
なお、図１３に示す例では、基準仮想カメラ３００の配置位置から基準線３５０に沿ってＤｆ／２だけ右側に移動させた位置に右仮想カメラ３０２が設定され、基準線３５０の配置位置から基準線３５０に沿ってＤｆ／２だけ左側に移動させた位置に左仮想カメラ３０４が設定される。
【０１７２】
上述のように設定された右仮想カメラ３０２および左仮想カメラ３０４の視体積について見ると、図１４（Ｂ）〜図１４（Ｄ）に示すように、右仮想カメラ３０２および左仮想カメラ３０４の視体積は、いずれも、基準仮想カメラ３００の視体積３８０に含まれる基準仮想平面領域３６０の範囲（断面領域）が維持されるように設定される。すなわち、右仮想カメラ３０２の視体積３８２における基準仮想平面領域３６０に対応する位置の断面、および、左仮想カメラ３０４の視体積３８４における基準仮想平面領域３６０に対応する位置の断面が、いずれも基準仮想カメラ３００の視体積３８０における基準仮想平面領域３６０に対応する位置の断面と一致するように、右仮想カメラ３０２の視体積３８２および左仮想カメラ３０４の視体積３８４が設定される。
【０１７３】
言い換えれば、先に、基準仮想カメラ３００の視体積３８０に含まれる基準仮想平面領域３６０の４つの頂点３６０ａ，３６０ｂ，３６０ｃ，３６０ｄの位置がそれぞれ取得される。そして、右仮想カメラ３０２の配置位置から基準仮想平面領域３６０の頂点３６０ａ，３６０ｂ，３６０ｃ，３６０ｄをそれぞれ通る直線３７２ａ，３７２ｂ，３７２ｃ，３７２ｄによって、右仮想カメラ３０２の視体積３８２が定義される。このとき、直線３７２ａ，３７２ｂ，３７２ｃ，３７２ｄは、それぞれ右最大視差面３６２の頂点３６２ａ，３６２ｂ，３６２ｃ，３６２ｄと交差するように設定される。また、左仮想カメラ３０４の配置位置から基準仮想平面領域３６０の頂点３６０ａ，３６０ｂ，３６０ｃ，３６０ｄをそれぞれ通る直線３７４ａ，３７４ｂ，３７４ｃ，３７４ｄによって、左仮想カメラ３０４の視体積３８４が定義される。このとき、直線３７４ａ，３７４ｂ，３７４ｃ，３７４ｄは、それぞれ左最大視差面３６３の頂点３６３ａ，３６３ｂ，３６３ｃ，３６３ｄと交差するように設定される。
【０１７４】
このように設定される右仮想カメラ３０２および左仮想カメラ３０４のカメラ方向は、いずれも基準仮想カメラ３００の基準カメラ方向３０１と平行に維持される。その結果、右仮想カメラ３０２および左仮想カメラ３０４のカメラ方向は、いずれも基準線３５０と直交する方向となる。
【０１７５】
［ｃ３．リアルモード］
「リアルモード」においては、アプリケーションの制作者は、平面表示のみを利用する（立体表示を利用しない）アプリケーションを制作する場合と同様に、１つの基準仮想カメラ（図２および図３に示す基準仮想カメラ３００）の配置位置および視体積（描画範囲）を指定する（図８に示す（１）基準仮想カメラ情報）。同時に、制作者は、指定した視体積に含まれる空間内のいずれの平面位置が、表示装置１０において立体表示をした際にその表示面付近に位置するように表示したいかを指定する（図８に示す（２）基準仮想面情報）。
【０１７６】
さらに、制作者は、立体表示における立体感の調整を行なうための基準立体度合を指定する（図８に示す（３’）基準立体度合）。すなわち、リアルモードでは、上述のアプリケーション優先モードのような（３）視差判定面情報は必要なく、それに代えて、（３’）基準立体度合が入力される。上述したように、（３’）基準立体度合は、アプリケーションの種類や進行状況によっては必ずしも現実に近い立体表示をしたくない場合に、立体表示の立体感の調整についての指示に使用される。典型的には、基準立体度合は、「０」から「１」までの間の値をとる係数として与えられ、「１」に設定された場合には、現実に近い立体表示をそのまま行なえるように右仮想カメラ３０２および左仮想カメラ３０４が設定され、「０」に近づくほど立体感を弱めて立体表示されるように、右仮想カメラ３０２および左仮想カメラ３０４が設定される。
【０１７７】
これらの指定に応答して、立体表示用ライブラリ２１８は、以下詳細に説明するように、両仮想カメラ間の仮想空間距離が許容される最大値を越えないように、右仮想カメラ３０２および左仮想カメラ３０４が設定される。この許容される仮想空間距離の最大値は、現実に近い立体表示を行なうための両仮想カメラ間の仮想空間距離と、基準立体度合とを乗じた値となる。
【０１７８】
（ｃ３−ｉ．右仮想カメラおよび左仮想カメラの設定処理）
図１５は、この発明の実施の形態に従うリアルモードにおける処理内容を説明するための図である。このリアルモードでは、図１５（Ａ）に示すように、ユーザが表示装置１０に対峙して表示面を見る場合の光学的な関係と等価なレンダリング処理がなされる。すなわち、ユーザの右眼と左眼との間の実距離Ｌ１、ユーザの両眼から表示装置１０の表示面までの実距離Ｌ２、および表示装置１０の表示面の実画面幅Ｌ３で規定される位置関係に対応して、右仮想カメラおよび左仮想カメラの設定位置および視体積が決定される。
【０１７９】
なお、リアルモードにおいて入力される、（１）基準仮想カメラ情報、および（２）基準仮想面情報は、基本的には、レンダリング対象の基準仮想平面領域３６０を指定するために用いられる。すなわち、基準仮想カメラ３００、ならびにそれに関連して設定される右仮想カメラ３０２および左仮想カメラ３０４の位置は、アプリケーション側で設定される位置から変更され得る。
【０１８０】
たとえば、図１５（Ｂ）に示すように、基準仮想カメラ３００から仮想空間距離Ｄだけ離れた位置に基準仮想平面領域３６０が設定された場合を考える。この場合には、基準仮想カメラ３００に設定されている視体積と仮想空間距離Ｄとに基づいて、基準仮想平面領域３６０の範囲が決定される。このとき、基準仮想平面領域３６０の表示面の横方向に対応する幅は、仮想空間距離Ｗであるとする。
【０１８１】
そして、この基準仮想平面領域３６０の（３次元仮想空間内の）範囲と表示装置１０の表示面の（現実の）大きさとが対応するように、基準仮想カメラ３００の位置および視体積が調整される。より具体的には、「実距離Ｌ２：仮想空間距離Ｄ’＝表示面の実画面幅Ｌ３：仮想空間距離Ｗ」の関係が成立するように、基準仮想平面領域３６０から基準仮想カメラ３００までの仮想空間距離Ｄ’が決定される。このとき、図１５（Ｃ）に示すように、基準仮想平面領域３６０の大きさは一定に維持されるので、基準仮想カメラ３００の視野範囲（視体積）は、基準仮想平面領域３６０からの距離の変更に伴って、再設定される。
【０１８２】
このように、ユーザと表示装置１０の表示面との間の実距離に応じて、右仮想カメラ３０２と左仮想カメラ３０４との間で許容される仮想空間距離の最大値が決定される。
【０１８３】
基準仮想カメラ３００が再設定された後、右仮想カメラ３０２および左仮想カメラ３０４が、その両仮想カメラの間の仮想空間距離がユーザの眼の実間隔に対応するように、設定される。より具体的には、「実距離Ｌ２：仮想空間距離Ｄ’＝実距離Ｌ１：仮想空間距離Ｄｆ」の関係が成立するように、仮想空間距離Ｄｆが決定される。この仮想空間距離Ｄｆは、表示装置１０で現実に近い立体表示を行なうための、ユーザが表示装置１０に対峙して表示面を見る場合に許容される理論的な最大値に相当する。そして、この仮想空間距離Ｄｆに基準立体度合を乗じた値が、右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離として決定される。より具体的には、基準仮想カメラ３００を中心にして、両仮想カメラの間がこの決定された仮想空間距離だけ離れるように、右仮想カメラ３０２および左仮想カメラ３０４の位置が決定される。
【０１８４】
このような処理によって、アプリケーションの制作者がユーザに表示することを意図した３次元仮想空間の表示において、表示装置１０において本当に現物が存在しているかのように表現することができる。すなわち、上述のように右仮想カメラ３０２および左仮想カメラ３０４を設定することで、３次元仮想空間における基準仮想カメラ３００と基準仮想平面領域３６０付近のオブジェクトとの位置関係は、現実空間におけるユーザの両眼と表示装置１０の表示面との位置関係に一致するため、あたかも、表示装置１０の画面の大きさの枠を持った窓から、仮想空間が見えているような表示が可能となる。
【０１８５】
［ｃ４．立体感調整］
上述した、アプリケーション優先モードおよびリアルモードにおいて決定される、右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆは、必ずしもそのまま用いるのではなく、その後に所定の条件（アプリケーションによって許容される値やユーザ操作など）によって、さらに調整された後に用いられてもよい。その場合には、仮想空間距離Ｄｆは、アプリケーションなどから与えられた条件下における、右仮想カメラ３０２と左仮想カメラ３０４との間の最大値を示す。すなわち、右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆは、表示装置１０に表示される右オブジェクト画像と左オブジェクト画像との間に生じ得る最大視差を定めるパラメータであり、アプリケーションなどによって設定される条件下における限界視差量に応じて、その最大値が制限されることになる。
【０１８６】
右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆは、表示装置１０を見るユーザが感じることのできる立体感の程度に比例することになる。言い換えれば、この仮想空間距離Ｄｆが「０」、すなわち、右仮想カメラ３０２と左仮想カメラ３０４とが同じ位置に設定される場合には、表示装置１０においては、被写体は立体表示ではなく平面表示される。
【０１８７】
ユーザフレンドリの観点からは、上述のような処理によって定められる立体感の程度をユーザ操作に応じて、調整できることが好ましい。すなわち、上述のような処理によって定められる右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆ（最大値）までの範囲で、ユーザ操作に応じて、右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離を増減できることが好ましい。
【０１８８】
このようなユーザ操作を受付ける機構としては、立体感の程度に関連付けられた１次元のパラメータ値に対するユーザ操作を受付けるものが好ましい。この立体感の程度に関連付けられた１次元のパラメータ値を受付ける入力手段（ユーザインターフェイス）の一例としては、図１６〜図１８に示すような形態が挙げられる。
【０１８９】
図１６〜図１８は、本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の一例を示す図である。
【０１９０】
図１６には、本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の一例として、所定の一軸方向にスライド操作可能な機構（スライダー１０６２）が示されている。このスライダー１０６２は、表示装置１０の表示面の側面などに設けられる。図１６に示すように、紙面上方向には立体表示を示す「３Ｄ」の文字が付されており、紙面下方向には平面表示を示す「２Ｄ」の文字が付されている。
【０１９１】
すなわち、ユーザがスライダー１０６２を調整することで、右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離は、最大値である「Ｄｆ」から最小値である「０」まで変化する。言い換えれば、スライダー１０６２による調整幅の最大値（紙面の最上部）には、立体表示用ライブラリ２１８により最初に設定される右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆが対応するように設定され、スライダー１０６２による調整幅の最小値（紙面の最下部）には「０」が対応するように設定される。すなわち、スライダー１０６２によって与えられる調整値をγとすると、立体感調整後の仮想空間距離Ｄｆ’は、以下のような式で表わすことができる。
【０１９２】
仮想空間距離Ｄｆ’＝仮想空間距離Ｄｆ（最大値）×調整値γ  （０≦γ≦１）
なお、スライダー１０６２による調整幅の最大値に、右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆ（最大値）が全く一致しなくともよい。たとえば、仮想空間距離Ｄｆ（最大値）に所定の定数α（０＜α＜１）を乗じた値をスライダー１０６２による調整幅の最大値に対応付けてもよい。この場合には、スライダー１０６２によって与えられる調整値をγとすると、立体感調整後の仮想空間距離Ｄｆ’は、以下のような式で表わすことができる。
【０１９３】
仮想空間距離Ｄｆ’＝定数α×仮想空間距離Ｄｆ（最大値）×調整値γ  （０≦γ≦１）
このようなユーザによるスライダー１０６２の操作に応答して、上述のような処理によって設定された右仮想カメラ３０２および左仮想カメラ３０４の配置位置の少なくとも一方が変更される。そして、右仮想カメラ３０２および／または左仮想カメラ３０４の位置が変更されると、右仮想カメラ３０２および／または左仮想カメラ３０４の視野範囲（視体積）も再設定される。
【０１９４】
図１７には、本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の別の一例として、表示装置１０をタッチパネルとした場合のユーザインターフェイスが示されている。このユーザインターフェイスにおいても、上述の図１６に示すスライダーと類似した、所定の一軸方向に沿った画像オブジェクト３１０と、この画像オブジェクト３１０に対して相対移動するように表示される画像オブジェクト３１２とが表示される。この画像オブジェクト３１２は、ユーザがタッチペン（スタイラスペン）７０などを用いて表示装置１０上をタッチすることで、そのタッチ操作に応じて移動する。そして、この画像オブジェクト３１２の位置に応じた指令が生成される。
【０１９５】
図１８には、本発明の実施の形態に従うユーザによる立体感調整を受付ける構成のさらに別の一例として、表示装置１０と操作ボタンとを用いたユーザインターフェイスが示されている。このユーザインターフェイスにおいても、上述の図１６に示すスライダーと類似した、所定の一軸方向に沿った画像オブジェクト３２０と、この画像オブジェクト３２０に対して相対移動するように表示される画像オブジェクト３２２とが表示される。そして、ユーザが情報処理システム１上に設けられた操作ボタン（＋ボタン１０６３および−ボタン１０６４）を押下することで、この画像オブジェクト３２２は移動する。さらに、この画像オブジェクト３２２の位置に応じた指令が生成される。
【０１９６】
［ｃ５．変形例］
上述の実施の形態においては、右仮想カメラおよび左仮想カメラを設定する際に、基準仮想カメラ３００の配置位置を基準線３５０に沿って右側および左側にそれぞれ等距離だけ移動させる処理について例示した。しかしながら、いずれか一方の仮想カメラを基準仮想カメラ３００の配置位置に固定しておき、他方の仮想カメラのみを移動させるようにしてもよい。以下、このような場合の処理について例示する。
【０１９７】
図１９は、本発明の実施の形態の変形例に従う右仮想カメラおよび左仮想カメラの設定処理を２次元的に説明するための図である。
【０１９８】
図１９（Ａ）を参照して、３次元仮想空間のある位置に基準仮想カメラ３００が指定されているものとする。この状態において、視差判定面３６１における視差を限界値とした場合における、右最大視差面および左最大視差面が決定される。この場合には、上述の図１３（Ｂ）とは異なり、基準仮想カメラ３００に対応する視差判定面３６１は固定されたまま、一方の仮想カメラ（図１９（Ｂ）に示す例では、右仮想カメラ３００Ａ）の位置を設定するための右最大視差面３６１Ａの位置が算出される。すなわち、図１９（Ｂ）に示すように、視差判定面３６１を紙面左側にスライドさせることで、右最大視差面３６１Ａが得られる。ここで、視差判定面３６１と右最大視差面３６１Ａとの間の仮想空間距離Ｓが限界視差量に相当する。
【０１９９】
最終的に、図１９（Ｃ）に示すように、基準仮想カメラ３００を通り、かつ、基準仮想面に平行な、基準線３５０が定義され、この基準線３５０上に、右仮想カメラ３００Ａが設定される。より具体的には、基準仮想平面領域３６０と右最大視差面３６１Ａとを含む視体積が定義できる位置に右仮想カメラ３００Ａが設定される。そして、右仮想カメラ３００Ａおよび基準仮想カメラ３００を用いて、右オブジェクト画像および左オブジェクト画像がそれぞれ生成される。
【０２００】
図１９に示すような方法によれば、表示装置１０の表示面に立体表示される視点は、基準仮想カメラ３００から右仮想カメラ３００Ａと基準仮想カメラ３００との中点に移動する。たとえば、「利き眼」が分かっているユーザの場合（図１９に示す例では左眼）には、図１９に示すような方法で一対の仮想カメラの位置を設定することで、平面表示から立体表示への切換をより違和感なく受け入れることができる。
【０２０１】
なお、図１９に示す例では、基準仮想カメラ３００を右側に移動することで右仮想カメラ３００Ａを設定する構成について説明したが、右仮想カメラ３００Ａを基準仮想カメラ３００の位置に設定し、基準仮想カメラ３００を左側に移動することで左仮想カメラを設定するようにしてもよい。
【０２０２】
［ｃ６．戻り値］
再度図８を参照して、立体表示用ライブラリ２１８は、右仮想カメラ３０２および左仮想カメラ３０４の設定値を算出するだけでなく、所定処理の結果値を戻り値としてアプリケーションなどに返す。本実施の形態においては、立体表示用ライブラリ２１８は、右仮想カメラ３０２と左仮想カメラ３０４との間の位置関係を示す情報を戻り値として返す。以下の説明では、この位置関係の典型例として、３次元仮想空間内における右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆを用いる場合の処理例について説明する。
【０２０３】
この仮想空間距離Ｄｆは、右仮想カメラ３０２および左仮想カメラ３０４がそれぞれ３次元仮想空間内の無限遠に位置するオブジェクトをそれぞれ仮想的に撮影した場合に生成される、右オブジェクト画像および左オブジェクト画像内における当該オブジェクトに対応する像についての視差量に相当する。これは、以下のように説明できる。右仮想カメラ３０２および左仮想カメラ３０４から見ると、無限遠に位置するオブジェクトは、それぞれの仮想カメラ位置から仮想カメラ方向にのばした直線上にあるように見えるため、ある無限遠に位置するオブジェクトを右仮想カメラによって見た場合と、同じオブジェクトを左仮想カメラによって見た場合とでは、当該無限遠に位置するオブジェクトはそれぞれの仮想カメラの真正面にあるように見えることとなる。したがって、それぞれの仮想カメラの真正面にあるように見えるようにオブジェクトをレンダリングすれば、無限遠にあるオブジェクトとして表現することができる。それぞれの仮想カメラの真正面にあるように見せるには、それぞれの仮想カメラ間の距離分の視差量を持った画像を生成して表示すればよいこととなる。なお、右仮想カメラ３０２および左仮想カメラ３０４から無限遠までのいずれかの位置にあるオブジェクトについて生じる視差は、この無限遠に位置するオブジェクトについて生じる視差（仮想空間距離Ｄｆ）より小さくなる。
【０２０４】
したがって、その中に表れる同一対象物についての像の現れる位置の差が仮想空間距離Ｄｆに相当する大きさとなっている一対の画像を表示装置１０に表示することで、ユーザから見て当該像が最も奥側に位置するとして視認できる。言い換えれば、右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆに連係して、適切な視差を有する右背景画像および左背景画像を生成することで、たとえ表示装置１０における立体感の程度が変化した場合であっても、背景画像をいずれのオブジェクトよりも常に奥側に表示させることができる。そこで、詳細については後述するが、本実施の形態においては、立体表示用ライブラリ２１８の戻り値（図８に示す（７）仮想カメラ間距離）に応じて、右背景画像および左背景画像が生成される。
【０２０５】
ところで、上述の仮想空間距離Ｄｆは、対象の３次元空間における仮想空間距離であり、表示装置１０の表示面の実サイズとは異なる単位系となっている。そのため、表示装置１０の表示面上において、その間にどの程度の視差量を有する右背景画像および左背景画像を生成すべきかを容易に決定できるように、戻り値としては、規格化された無次元の値を用いることが好ましい。
【０２０６】
本実施の形態においては、このような無次元の値として、表示装置１０に表示されるレンダリング範囲を基準として規格化した比率を用いる。より具体的には、立体表示用ライブラリ２１８は、基準仮想カメラ３００の視体積に含まれ、基準仮想カメラ３００のカメラ方向３０１に垂直な仮想平面である基準仮想平面領域（図３参照）の幅を基準とした、右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆの比率を戻り値として出力する。
【０２０７】
すなわち、基準仮想平面領域は、表示装置１０の表示面にレンダリングされる範囲に相当するので、基準仮想平面領域の幅に対する仮想空間距離Ｄｆの比率は、表示装置１０の実画面幅に対する右背景画像と左背景画像との間に生じさせるべき現実の視差量の比率に一致する。したがって、基準仮想平面領域の幅に対する仮想空間距離Ｄｆの比率を戻り値として採用することで、ユーザから見て最も奥側に位置する絵である、右背景画像と左背景画像との間に生じさせるべき視差量を表示装置１０の実画面幅に応じて容易に決定できる。
【０２０８】
図２０は、本発明の実施の形態に従う立体表示用ライブラリ２１８の戻り値の算出処理を説明するための図である。
【０２０９】
上述したように、立体表示用ライブラリ２１８の戻り値は、基準仮想平面領域の３次元仮想空間内での幅を基準とした、右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆの比に相当する。
【０２１０】
図２０を参照して、戻り値ＲＶ＝（右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆ／基準仮想平面領域３６０の幅に相当する仮想空間距離Ｗ）として算出される。ここで、仮想空間距離Ｗは、基準仮想カメラ３００からファークリップ面３６６までの仮想空間距離ＬＮと、基準仮想カメラ３００から基準仮想面までの仮想空間距離Ｄと、ニアクリップ面３６４の幅に相当する仮想空間距離ＮＷとを用いて、以下のようにとして表わすことができる。
【０２１１】
仮想空間距離Ｗ＝仮想空間距離ＮＷ×仮想空間距離Ｄ／仮想空間距離ＬＮ
したがって、戻り値ＲＶは、以下のように算出することができる。
【０２１２】
戻り値ＲＶ＝｛仮想空間距離Ｄｆ／（仮想空間距離ＮＷ×仮想空間距離Ｄ／仮想空間距離ＬＮ）｝
これらのパラメータのうち、仮想空間距離ＮＷおよび仮想空間距離ＬＮについては、立体表示用ライブラリ２１８に入力される（１）基準仮想カメラ情報（図８参照）に基づいて算出され、仮想空間距離Ｄについては、立体表示用ライブラリ２１８に入力される（２）基準仮想面情報に基づいて算出される。また、仮想空間距離Ｄｆについては、上述したように、右仮想カメラ３０２および左仮想カメラ３０４の設定処理の結果として決定される。
【０２１３】
＜Ｄ．背景画像生成処理＞
［ｄ１．概要］
次に、上述した立体表示用ライブラリ２１８からの戻り値に基づいて、右背景画像および左背景画像を生成する処理（背景画像生成処理）について説明する。
【０２１４】
上述したように、表示装置１０において、背景画像をユーザから見て最も奥側に位置する絵として表現するためには、表示装置１０の表示面上における右背景画像と左背景画像との間の視差量を、先に決定される右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆに応じた値に設定する必要がある。
【０２１５】
基本的に、背景画像として表示されるオブジェクトは、ユーザに注目してもらいたいオブジェクトなどとは異なり、奥行方向の情報をもたない平面状の画像として与えられる。そのため、表示装置１０に表示されるサイズより大きなサイズを有する原背景画像ＢＧ（図１および図２参照）を予め用意しておき、この原背景画像ＢＧに対して、それぞれ右背景画像および左背景画像として出力すべき２つの描画範囲を、両者の間を仮想空間距離Ｄｆに応じた距離だけずらした位置にそれぞれ設定することで、背景画像として表示することに適した視差量を有する、右背景画像および左背景画像を生成することができる。
【０２１６】
あるいは、その内面に背景画像が描かれた仮想空間を仮想カメラで仮想的に撮影することで、平面２次元画像である背景画像を生成する処理などにおいては、先に設定された背景画像を生成するための仮想カメラの視体積（描画範囲）を基準として、それぞれが右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆに応じた視体積（描画範囲）を有する一対の仮想カメラ（背景画像の生成用）を設定するようにしてもよい。
【０２１７】
［ｄ２．原背景画像からの背景画像の生成］
以下、表示装置１０に表示されるサイズより大きなサイズを有する原背景画像ＢＧ（図１および図２参照）を用いて、右背景画像および左背景画像を生成する処理例について説明する。図２１は、本発明の実施の形態に従う背景画像の生成処理を説明するための模式図である。
【０２１８】
たとえば、図１に示すような平面表示を行なう際の背景画像として、図２１（Ａ）に示すような描画範囲４１０が指定されたとする。このとき、図２に示すような立体表示を行なう場合において、描画範囲４１０内の内容とほぼ同様の内容を背景として表示する場合を考える。
【０２１９】
この場合、図２１（Ｂ）に示すように、右背景画像として生成される画像の領域として右描画範囲４１２が設定され、左背景画像として生成される画像の領域として左描画範囲４１４が設定される。この右描画範囲４１２と左描画範囲４１４との間は、上述の右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆに応じた距離ＷＤだけずらして設定される。なお、平面表示と立体表示との間で表示装置１０に表示される情報量（画像サイズ）が同一である限り、右描画範囲４１２および左描画範囲４１４のサイズは、描画範囲４１０のサイズと一致する。
【０２２０】
この結果、図２１（Ｃ）に示すように、右描画範囲４１２によって定義される右背景画像と、左描画範囲４１４によって定義される左背景画像との間では、同一対象物（図２１（Ｃ）に示す例では、背景オブジェクトＢＧ＿ＯＢＪ１）の像がそれぞれ現れる位置の間では、距離ＷＤだけずれが生じることになる。したがって、表示装置１０の表示面上においては、距離ＷＤの視差量が発生することになる。
【０２２１】
この距離ＷＤは、表示装置１０にレンダリングされる範囲、すなわち描画範囲４１０（右描画範囲４１２および左描画範囲４１４）の幅ＷＰに、戻り値ＲＶ（基準仮想平面領域の３次元仮想空間内での幅に対する右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆの比）を乗じることで算出される。この関係は、次のように表わすことができる。
【０２２２】
距離ＷＤ＝描画範囲の幅ＷＰ×戻り値ＲＶ
なお、描画範囲の幅ＷＰおよび幅ＷＰから算出される距離ＷＤとしては、表示装置１０の表示面の実表示幅（物理的な長さ）を示す単位（たとえば、［ｍｍ］）を用いてもよいが、処理の容易性から、レンダリングされる背景画像の画素数を単位として用いることが好ましい。また、戻り値ＲＶは規格化されているので、無次元の値である。
【０２２３】
すなわち、上述の式から明らかなように、原背景画像ＢＧに対して右背景画像として出力すべき右描画範囲４１２が設定されるとともに、右描画範囲４１２を右描画範囲４１２の幅に戻り値ＲＶ（基準仮想平面領域の３次元仮想空間内での幅に対する右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆの比）を乗じて得られる距離ＷＤだけずらした位置に、左背景画像として出力すべき左描画範囲４１４が設定される。
【０２２４】
なお、図２１（Ｂ）に示すように、アプリケーションの制作者が描画範囲４１０を予め指定しているような場合には、描画範囲４１０を基準として、右描画範囲４１２および左描画範囲４１４をそれぞれ設定することが好ましい。より具体的には、描画範囲４１０を距離ＷＤの１／２だけ紙面右側にずらした位置に右描画範囲４１２を設定し、描画範囲４１０を距離ＷＤの１／２だけ紙面左側にずらした位置に左描画範囲４１４を設定する。このように、描画範囲４１０を基準にして、右描画範囲４１２および左描画範囲４１４を設定することで、アプリケーションの制作者が図１に示すような平面表示において背景として表示したいと意図した範囲の絵を、図２に示すような立体表示においてもほぼ同様に表示させることができる。
【０２２５】
なお、図７に示す各モジュールとの対応について説明すれば、背景画像範囲設定モジュール２０８が、立体表示用ライブラリ２１８から出力される戻り値ＲＶに応じて、図２１に示す、右描画範囲４１２および左描画範囲４１４をそれぞれ設定する。また、背景画像レンダリングモジュール２１０が、背景画像範囲設定モジュール２０８によって設定される右描画範囲４１２および左描画範囲４１４に応じて、右背景画像および左背景画像をそれぞれ生成する。また、背景画像データ２１４には、原背景画像ＢＧを定義するデータを含む。
【０２２６】
［ｄ３．変形例１］
上述の説明では、原背景画像ＢＧに対して、右背景画像として出力すべき右描画範囲４１２および左背景画像として出力すべき左描画範囲４１４を指定する構成について例示したが、背景として表示される背景オブジェクトを含む３次元仮想空間に対して、背景画像を生成するための仮想カメラを設定し、当該設定した仮想カメラを用いて背景画像を生成するようにしてもよい。以下、このような処理例について、説明する。
【０２２７】
図２２および図２３は、本発明の実施の形態の変形例に従う背景画像の生成処理を説明するための模式図である。図２４は、図２３に対応する立体表示用ライブラリ２１８について入出力されるデータ項目を説明するための図である。
【０２２８】
一般的に、３次元仮想空間は、その定義内容によって任意の形状を設定することができるが、理解を容易にするために、以下の説明では、図２２に示すような円筒形状の３次元仮想空間ＶＳを一例として考える。この３次元仮想空間ＶＳの円周側の内面には、原背景画像ＢＧが貼り付けられているとする。
【０２２９】
このような３次元仮想空間ＶＳにおいて、背景画像を生成するための基準仮想カメラ（背景）４００が配置されているものとする。このとき、基準仮想カメラ（背景）４００の視野範囲（視体積）は、基本的には、周囲に配置された原背景画像ＢＧのみを含むように設定される。すなわち、基準仮想カメラ４００は、原背景画像ＢＧに対して設定される平面である描画範囲４５０をレンダリング範囲とする。
【０２３０】
そして、描画範囲４５０を基準として、右背景画像として生成される画像の領域として右描画範囲４５２、および、左背景画像として生成される画像の領域として左描画範囲４５４が設定される。この右描画範囲４５２と左描画範囲４５４との間は、上述の右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆに応じた距離ＷＤだけずらした位置に設定される。
【０２３１】
この右描画範囲４５２および左描画範囲４５４の設定に際して、その範囲を直接的に決定する処理に代えて、右描画範囲４５２および左描画範囲４５４にそれぞれ対応する右仮想カメラ（背景）４０２および左仮想カメラ（背景）４０４の配置位置および視野範囲（視体積）を算出するようにしてもよい。この場合には、上述の背景画像生成処理と同様に、右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離が算出された上で、元の描画範囲４５０を基準として、右描画範囲４５２および左描画範囲４５４の配置位置がそれぞれ決定され、これに応じて、右仮想カメラ（背景）４０２および左仮想カメラ（背景）４０４の配置位置および視野範囲（視体積）がそれぞれ算出される。
【０２３２】
図２１および図２２に示すように、背景画像を生成するための基準仮想カメラ４００が３次元仮想空間に配置されている場合には、図２４に示すような立体表示用ライブラリ２１８Ａを採用することもできる。
【０２３３】
すなわち、図２４に示す立体表示用ライブラリ２１８Ａは、（１）基準仮想カメラ情報、（２）基準仮想面情報、（３）視差判定面情報、および（４）モード情報の入力に加えて、（１’）基準仮想カメラ（背景）情報を入力として受付ける。そして、立体表示用ライブラリ２１８Ａは、（５）右仮想カメラ情報、（６）左仮想カメラ情報、（８）右仮想カメラ（背景）情報、（９）左仮想カメラ（背景）情報を出力する。すなわち、図２４に示す立体表示用ライブラリ２１８Ａでは、（７）仮想カメラ間距離が出力されず、その代わりに、内部的に算出される（７）仮想カメラ間距離に基づいて、入力される（１’）基準仮想カメラ（背景）情報に応じた、（８）右仮想カメラ（背景）情報、および、（９）左仮想カメラ（背景）情報が出力される。
【０２３４】
このような立体表示用ライブラリ２１８Ａを用いることで、アプリケーションの制作者は、オブジェクト画像を生成するための基準仮想カメラ３００、および、背景画像を生成するための基準仮想カメラ４００を設定するだけで、右仮想カメラ３０２および左仮想カメラ３０４についての設定値、ならびに、右仮想カメラ（背景）４０２および左仮想カメラ（背景）４０４についての設定値を取得することができる。
【０２３５】
さらに、図２２および図２３に示す３次元仮想空間ＶＳにおいて、上述したオブジェクトＯＢＪ１およびＯＢＪ２などの立体表示の対象となるオブジェクトをさらに仮想的に配置してもよい。この場合には、上述した右仮想カメラ（背景）４０２および左仮想カメラ（背景）４０４とは独立して、オブジェクト画像を生成するための右仮想カメラ３０２および左仮想カメラ３０４が３次元仮想空間ＶＳ内に配置される。そして、設定された右仮想カメラ３０２および左仮想カメラ３０４により、ユーザに注目してもらいたいオブジェクトなどを撮影することで、右オブジェクト画像および左オブジェクト画像がそれぞれ生成される。
【０２３６】
なお、同一の３次元仮想空間内にオブジェクト画像として表現されるオブジェクトと、背景画像として表現されるオブジェクトとを配置した場合であっても、アプリケーションの進行に応じて、それぞれの仮想カメラの視点を独立に設定することが好ましい場合もある。たとえば、ユーザに注目してもらいたいオブジェクト（典型的には、キャラクタオブジェクト）が移動する様子を表現する場合などを考えると、オブジェクト画像を生成するための仮想カメラについては、当該オブジェクトの移動に伴って視点を移動させることが好ましい一方、背景画像を生成するための仮想カメラについては、当該オブジェクトの移動に影響されず、特定の描画範囲を背景画像としてレンダリングすることが好ましい。これによって、表示装置１０において最も奥側に表現される背景はほぼ一定としつつ、ユーザが操作するキャラクタオブジェクトのみが移動するといった状況を表現できる。
【０２３７】
［ｄ３．変形例２］
上述の説明では、基本的には予め定義された原背景画像ＢＧのうち、アプリケーションの進行などに応じた範囲が背景画像として出力される処理について説明したが、原背景画像ＢＧ自体の内容をアプリケーションの進行やユーザ操作などに応じて、逐次更新してもよい。但し、このような場合であっても、アプリケーションの制作者は、平面表示のみを利用するアプリケーションを開発する場合と同様に、背景として表示させたい描画範囲を指定するだけで、立体表示の背景として表示させるための右背景画像および左背景画像をそれぞれ容易に生成することができる。
【０２３８】
＜Ｅ．表示データ生成処理＞
次に、上述した処理によって生成される、右オブジェクト画像と左オブジェクト画像、および、右背景画像と左背景画像を用いて、表示装置１０での画像表示に使用されるデータ（右表示画像および左表示画像）を生成するための処理について説明する。
【０２３９】
本実施の形態においては、右オブジェクト画像と右背景画像とを重ねることで、表示装置１０に表示される右表示画像が生成され、左オブジェクト画像と左背景画像とを重ねることで、表示装置１０に表示される左表示画像が生成される。
【０２４０】
図２５は、本発明の実施の形態に従う表示データ生成処理を説明するための模式図である。図２５を参照して、典型的な実装としては、ユーザの右眼によって視認される第１ＬＣＤ１１６に対応付けられる第１ＶＲＡＭ１１２（図６）に、少なくとも２段のレイヤ７５および７６が設けられる。同様に、ユーザの左眼によって視認される第２ＬＣＤ１２６に対応付けられる第２ＶＲＡＭ１２２（図６）にも、少なくとも２段のレイヤ７７および７８が設けられる。
【０２４１】
第１ＬＣＤ１１６に設けられる上側のレイヤ７５には、右オブジェクト画像が書込まれ、下側のレイヤ７６には、右背景画像が書込まれる。そして、レイヤ７５とレイヤ７６とに書込まれた画像が合成されて、右表示画像として出力される。
【０２４２】
同様に、第２ＬＣＤ１２６に設けられる上側のレイヤ７７には、左オブジェクト画像が書込まれ、下側のレイヤ７８には、左背景画像が書込まれる。そして、レイヤ７７とレイヤ７８とに書込まれた画像が合成されて、左表示画像として出力される。
【０２４３】
＜Ｆ．処理手順＞
次に、図２６および図２７を参照して、本実施の形態に従うプログラムの処理内容について説明する。なお、図２６および図２７に示す各ステップは、典型的には、情報処理システム１のＣＰＵ１００がプログラムを実行することで提供される。
【０２４４】
（ｆ１．メインルーチン）
図２６は、本発明の実施の形態に従うプログラムのメインルーチンを示すフローチャートである。図２６に示すフローチャートにおいては、アプリケーションの進行に伴って、図１に示すような、３次元仮想空間内のオブジェクトを表示装置１０で平面表示する場合と同様のパラメータを指定することで、表示装置１０において立体表示を行なう場合の処理について説明する。
【０２４５】
図２６を参照して、ＣＰＵ１００は、プログラムに記述されたアプリケーション命令を順次実行する（ステップＳ２）。すなわち、図７に示す進行モジュール２０４が、入力モジュール２０２などによって生成される内部コマンドなどに従って、アプリケーションを進行する。
【０２４６】
そして、ＣＰＵ１００は、表示装置１０に対するレンダリング処理の命令が実行対象になると（ステップＳ４においてＹＥＳ）、ステップＳ８以下の処理を実行する。これに対して、対象の命令が表示装置１０に対するレンダリング処理以外であれば（ステップＳ４においてＮＯ）、ＣＰＵ１００は、対象の命令に従う処理を実行する（ステップＳ６）。その後、処理はステップＳ２へ戻る。
【０２４７】
ステップＳ８において、ＣＰＵ１００は、アプリケーションの進行に伴って指定される基準仮想カメラ（図１に示す基準仮想カメラ３００）の設定値（配置位置および視体積）および背景画像の描画範囲の設定値を所定のレジスタへ格納する。なお、基準仮想カメラの設定値としては、カメラ行列（プロジェクション行列およびビュー行列）が用いられる。すなわち、ステップＳ８においては、図８に示す（１）基準仮想カメラ情報が指定される。
【０２４８】
また、背景画像の描画範囲の設定値としては、原背景画像ＢＧのうち背景画像とすべき範囲を特定するための複数の座標が用いられる。代替的に、図１に示すような背景画像を生成するための基準仮想カメラ４００の設定値（配置位置および視体積）が指定される場合もある。
【０２４９】
続くステップＳ１０において、ＣＰＵ１００は、「アプリケーション優先モード」および「リアルモード」のいずれが指定されているかを判断する。このモードは、アプリケーションの制作者の意図やユーザ操作などに応じて指定される。
【０２５０】
「アプリケーション優先モード」が指定されている場合（ステップＳ１０において「アプリケーション優先」の場合）には、ＣＰＵ１００は、内部フラグを「アプリケーション優先モード」にセットする（ステップＳ１２）。すなわち、図８に示す（４）モード情報がセットされる。続いて、ＣＰＵ１００は、アプリケーションの進行に伴って表示される３次元仮想空間における、基準仮想面（図１３および図１４に示す基準仮想平面領域３６０に相当）および視差判定面（図１３および図１４に示す視差判定面３６１）の位置を特定するための情報を所定のレジスタへ格納する（ステップＳ１４）。すなわち、図８に示す（２）基準仮想面情報、および（３）視差判定面情報が指定される。
【０２５１】
さらに、ＣＰＵ１００は、ステップＳ８およびＳ１２において設定したレジスタの値を指定して、右仮想カメラおよび左仮想カメラを設定するために、立体表示用ライブラリ２１８をコールする（ステップＳ１６）。
【０２５２】
これに対して、「リアルモード」が指定されている場合（ステップＳ１０において「リアルモード」の場合）には、ＣＰＵ１００は、内部フラグを「リアルモード」にセットする（ステップＳ１８）。すなわち、図８に示す（４）モード情報がセットされる。続いて、ＣＰＵ１００は、３次元仮想空間における注目させたい表示対象が存在する基準仮想面（図１３および図１４に示す基準仮想平面領域３６０に相当）を特定するための情報、および基準立体度合の値を所定のレジスタへ格納する（ステップＳ２０）。すなわち、図８に示す（２）基準仮想面情報、および（３’）基準立体度合が指定される。さらに、ＣＰＵ１００は、ステップＳ８およびＳ１８において設定したレジスタの値を指定して、右仮想カメラおよび左仮想カメラを設定するために、立体表示用ライブラリ２１８をコールする（ステップＳ１６）。
【０２５３】
ステップＳ１６における立体表示用ライブラリ２１８での処理については、図２７を用いて詳述するが、立体表示用ライブラリ２１８をコールによって、ＣＰＵ１００は、右仮想カメラのカメラ行列（プロジェクション行列およびビュー行列）、および、左仮想カメラのカメラ行列（プロジェクション行列およびビュー行列）、ならびに、戻り値（基準仮想カメラ３００についての基準仮想平面領域（図３参照）の幅を基準とした、右仮想カメラ３０２と左仮想カメラ３０４との間の距離の比）を算出する。
【０２５４】
続くステップＳ３０において、ＣＰＵ１００は、立体表示用ライブラリ２１８によって算出されたカメラ行列に従って、３次元仮想空間に右仮想カメラ（図２に示す右仮想カメラ３０２）を設定し、右仮想カメラによる仮想撮影に基づく右オブジェクト画像を生成する。さらに、ステップＳ３２において、ＣＰＵ１００は、算出されたカメラ行列に基づいて、３次元仮想空間に左仮想カメラ（図２に示す左仮想カメラ３０４）を設定し、左仮想カメラによる仮想撮影に基づく左オブジェクト画像を生成する。
【０２５５】
すなわち、上述のステップＳ３０およびＳ３２においては、図７に示すオブジェクト画像レンダリングモジュール２０６が、立体表示用ライブラリ２１８による算出結果に従って、オブジェクト定義データ２１２を参照して、右オブジェクト画像および左オブジェクト画像を生成（レンダリング）する。
【０２５６】
ステップＳ３４において、ＣＰＵ１００は、立体表示用ライブラリ２１８による戻り値に基づいて、ステップＳ８において指定されている背景画像の描画範囲を所定方向にずらすことで、右描画範囲（図２１に示す右描画範囲４１２）および左描画範囲（図２１に示す左描画範囲４１４）を設定する。すなわち、図７に示す背景画像範囲設定モジュール２０８が、原背景画像ＢＧのうち右背景画像および左背景画像としてレンダリングすべき範囲を設定する。
【０２５７】
続くステップＳ３６において、ＣＰＵ１００は、設定された右描画範囲および左描画範囲に従って、右背景画像および左背景画像をそれぞれ生成（レンダリング）する。すなわち、図７に示す背景画像レンダリングモジュール２１０が、ステップＳ３４において設定された右描画範囲および左描画範囲に従って、背景画像データ２１４を参照して、右背景画像および左背景画像を生成する。
【０２５８】
その後、ステップＳ３８において、ＣＰＵ１００は、ステップＳ３０において生成された右オブジェクト画像と、ステップＳ３６において生成された右背景画像とを合成して、右表示画像を生成するとともに、ステップＳ３２において生成された左オブジェクト画像と、ステップＳ３６において生成された左背景画像とを合成して、左表示画像を生成する。すなわち、図７に示す表示データ生成モジュール２１６が、右オブジェクト画像および左オブジェクト画像、ならびに、右背景画像および左背景画像とに基づいて、右表示画像および左表示画像を生成する。
【０２５９】
最終的に、ステップＳ４０において、ＣＰＵ１００は、ステップＳ３８において生成した右表示画像および左表示画像を表示装置１０の対応する画素へ出力する。
【０２６０】
その後、ＣＰＵ１００は、ユーザが図１６〜図１８に示すようなスライダーなどを操作して、立体感の程度を変更したか否かを判断する（ステップＳ４２）。立体感の程度を変更された場合（ステップＳ４２においてＹＥＳの場合）には、ステップＳ１６の処理が再度実行される。
【０２６１】
立体感の程度を変更されていない場合（ステップＳ４２においてＮＯの場合）には、ＣＰＵ１００は、アプリケーションの終了が指示されたか否かを判断する（ステップＳ４４）。アプリケーションの終了が指示されていなければ（ステップＳ４４においてＮＯ）、ステップＳ２以下の処理が繰返される。これに対して、アプリケーションの終了が指示されれば（ステップＳ４４においてＹＥＳ）、処理は終了する。
【０２６２】
（ｆ２．立体表示用ライブラリ）
図２７は、本発明の実施の形態に従う立体表示用ライブラリ２１８の処理内容を示すフローチャートである。図２７を参照して、ＣＰＵ１００は、まず、初期化処理を実行する（ステップＳ１００）。この初期化処理には、表示装置１０の表示面の実サイズ、ユーザの眼の実間隔、ユーザから表示装置１０の表示面までの実距離、ユーザが立体表示を気持ちよく受け入れることができる限界の深さなどの初期値が所定の設定値にセットされる。これらの設定値を設定する方法としては、表示装置１０のハードウェア（あるいは、ファームウェア）に予め登録されている想定値を指定する態様、アプリケーションによって指定する態様、および、ユーザが設定する態様などを利用してもよい。
【０２６３】
続くステップＳ１０２において、ＣＰＵ１００は、基準仮想カメラのプロジェクション行列に基づいて、３次元仮想空間内のニアクリップ面およびファークリップ面の範囲（３次元仮想空間の値）を算出することで、基準仮想カメラの視体積を取得する。さらに続くステップＳ１０４において、ＣＰＵ１００は、基準仮想カメラのプロジェクション行列および基準仮想面の位置情報に基づいて、レンダリング対象の基準仮想平面領域の範囲（３次元仮想空間における値）を取得する。さらに続くステップＳ１０６において、ＣＰＵ１００は、３次元仮想空間における基準仮想平面領域の横方向の長さ（または、縦方向の長さ）と、表示装置１０の表示面の実画面幅（または、実画面高さ）との比率に基づいて、現実空間と３次元仮想空間との間の変換係数を算出する。
【０２６４】
続くステップＳ１０８において、ＣＰＵ１００は、「アプリケーション優先モード」および「リアルモード」のいずれが指定されているかを判断する。「アプリケーション優先モード」が指定された場合（ステップＳ１０８において「アプリケーション優先モード」の場合）には、ステップＳ１１０以下の処理が実行される。また、「リアルモード」が指定された場合（ステップＳ１０８において「リアルモード」の場合）には、ステップＳ１２０以下の処理が実行される。
【０２６５】
ステップＳ１１０において、ＣＰＵ１００は、ユーザが表示装置１０において立体表示を気持ちよく受け入れることができる表示面上での右オブジェクト画像と左オブジェクト画像との間の最大視差量（限界視差量）を取得する。ユーザに注目してもらいたいオブジェクトについての視差量は、この限界視差量以下の視差量となるようにして表示することが好ましい。この限界視差量は、表示装置１０の表示面についての実画面幅、ユーザの眼の実間隔、およびユーザから表示装置１０の表示面までの実距離などに応じて定まる。
【０２６６】
ステップＳ１１０における限界視差量の取得方法の一例としては、想定される表示装置１０の表示面についての実画面幅、ユーザの眼の実間隔、およびユーザから表示装置１０の表示面までの実距離などから予め算出しておいて、その値を利用するようにしてもよい。あるいは、例えば、表示装置１０に撮像装置などを搭載しておき、当該撮像装置を利用してユーザの眼の実間隔を測定する方法といった、他の手段によって求められた値から限界視差量を算出するようにしてもよい。
【０２６７】
続くステップＳ１１２において、ＣＰＵ１００は、ステップＳ１０６において算出した変換係数を用いて、限界視差量に対応する、３次元仮想空間における仮想空間距離Ｓ（図１３に示す、右最大視差面３６２と左最大視差面３６３とのずれ量に相当）を算出する。すなわち、ステップＳ１１０において取得される限界視差量は、現実空間における値であり、ステップＳ１１２においては、以下に示す視差判定面上での判定処理を行なうために、現実空間における値を対象の３次元仮想空間における値に変換する。
【０２６８】
続くステップＳ１１４およびＳ１１６において、ＣＰＵ１００は、右仮想カメラおよび左仮想カメラの配置位置を決定する。すなわち、ステップＳ１１４において、ＣＰＵ１００は、３次元仮想空間における視差判定面において仮想空間距離Ｓの視差が生じるように、右仮想カメラによってレンダリングされる範囲である右最大視差面（図１３に示す右最大視差面３６２）と、左仮想カメラによってレンダリングされる範囲である左最大視差面（図１３に示す左最大視差面３６３）とを設定する。続くステップＳ１１６において、ＣＰＵ１００は、ステップＳ１０４において取得される基準仮想平面領域と、ステップＳ１１４において設定される右最大視差面および左最大視差面とに基づいて、右仮想カメラおよび左仮想カメラの配置位置をそれぞれ決定する。より具体的には、ＣＰＵ１００は、基準仮想平面領域と右最大視差面とを含む視体積が定義できる位置に右仮想カメラを設定するとともに、基準仮想平面領域と左最大視差面とを含む視体積が定義できる位置に左仮想カメラを設定する。なお、右仮想カメラおよび左仮想カメラは、基準仮想カメラを通り、かつ、基準仮想面に平行な、基準線上に配置される。すなわち、ＣＰＵ１００は、基準仮想カメラを基準線に沿って所定距離だけそれぞれ移動させることで、右仮想カメラおよび左仮想カメラの位置を決定する。
【０２６９】
続くステップＳ１１８において、ＣＰＵ１００は、ステップＳ１１６において決定した右仮想カメラおよび左仮想カメラとの間の仮想空間距離Ｄｆを算出する。そして、処理はステップＳ１４０へ進む。
【０２７０】
ステップＳ１２０において、ＣＰＵ１００は、現実の表示装置１０とユーザとの位置関係に対応するように、３次元仮想空間における基準仮想面に対する基準仮想カメラの仮想空間距離Ｄ’を算出する（図１５（Ａ）および図１５（Ｃ）参照）。より具体的には、ＣＰＵ１００は、ユーザから表示装置１０の表示面までの実距離として想定される距離（図１５（Ａ）に示す実距離Ｌ１）に、ステップＳ１０６において算出した変換係数を乗じて、基準仮想カメラから基準仮想面までの新たな仮想空間距離Ｄ’（図１５（Ｃ）参照）を算出する。リアルモードにおいては、基準仮想平面領域と仮想カメラとの間の位置関係が、表示装置１０の表示面とユーザの目との間の位置関係と一致するように、仮想カメラの位置が設定される。すなわち、ＣＰＵ１００は、仮想空間距離Ｄ’と、ユーザから表示装置１０の表示面までの距離との比が、基準仮想平面領域の幅Ｗ（図１５（Ｂ）参照）と表示装置１０の実画面幅Ｌ３（図１５（Ａ）参照）との比に一致するように、仮想空間距離Ｄ’を設定する。
【０２７１】
続くステップＳ１２２において、ＣＰＵ１００は、ステップＳ１２０において算出した新たな仮想空間距離Ｄ’に基づいて、３次元仮想空間における基準仮想カメラの位置を変更する（図１５（Ｃ）参照）。ＣＰＵ１００は、この基準仮想カメラの位置変更に伴って、基準仮想カメラとニアクリップ面およびファークリップ面との間の相対的な位置関係を変更する。
【０２７２】
ステップＳ１２４において、ＣＰＵ１００は、変更後の基準仮想カメラの位置とニアクリップ面との位置関係が適切であるか否かを判断する。これは、基準仮想カメラをニアクリップ面に近付ける方向に移動させることで、基準仮想カメラのカメラ方向とは反対側にニアクリップ面が位置することになる場合もあるからである。
【０２７３】
変更後の基準仮想カメラの位置とニアクリップ面との位置関係が適切ではない場合（ステップＳ１２４においてＮＯの場合）には、ＣＰＵ１００は、ニアクリップ面の位置を変更する（ステップＳ１２６）。さらに続くステップＳ１２８において、ＣＰＵ１００は、変更後のニアクリップ面の位置とファークリップ面との位置関係が適切であるか否かを判断する（ステップＳ１２８）。これは、ニアクリップ面の位置を変更することで、ニアクリップ面がファークリップ面より遠方に位置することになる場合もあるからである。
【０２７４】
変更後のニアクリップ面の位置とファークリップ面との位置関係が適切ではない場合（ステップＳ１２８においてＮＯの場合）には、ＣＰＵ１００は、ファークリップ面の位置を変更する（ステップＳ１３０）。
【０２７５】
その後、ステップＳ１３２において、ＣＰＵ１００は、新たなニアクリップ面の範囲（３次元仮想空間の値）を取得する。
【０２７６】
続くステップＳ１３４において、ＣＰＵ１００は、現実に近い立体表示を行なう場合における、右仮想カメラおよび左仮想カメラとの間の最大の仮想空間距離を算出する。より具体的には、ユーザの眼の実間隔に、ステップＳ１０６において算出した変換係数を乗じて、３次元仮想空間における最大の仮想空間距離を算出する。さらに続くステップＳ１３６において、ＣＰＵ１００は、算出した最大の仮想空間距離に対して、立体表示用ライブラリ２１８がコールされた際に指定された（３’）基準立体度合を乗じて、右仮想カメラ３０２と左仮想カメラ３０４との間の仮想空間距離Ｄｆを算出する。これにより、右仮想カメラおよび左仮想カメラの位置が決定される。そして、処理はステップＳ１４０へ進む。
【０２７７】
ステップＳ１４０において、ＣＰＵ１００は、図１６〜図１８に示すようなスライダーでの設定値（典型的には、０〜１００％の範囲の値）を取得する。さらに続くステップＳ１４２において、ＣＰＵ１００は、仮想空間距離ＤｆにステップＳ１４０において取得した設定値を乗じて得られる新たな仮想空間距離に従って、先の処理で設定されている右仮想カメラおよび／または左仮想カメラの位置を変更する。
【０２７８】
続くステップＳ１４４において、ＣＰＵ１００は、基準仮想カメラの視体積に含まれる基準仮想平面領域の範囲が維持されるように、右仮想カメラの視体積および左仮想カメラの視体積をそれぞれ設定する。さらに続くステップＳ１４６において、ＣＰＵ１００は、設定したそれぞれの仮想カメラの視体積を表わす、右仮想カメラのプロジェクション行列および左仮想カメラのプロジェクション行列をそれぞれ算出する。
【０２７９】
続くステップＳ１４８において、ＣＰＵ１００は、基準仮想カメラのビュー行列に基づいて、基準仮想カメラの位置および向きを取得する。さらに続くステップＳ１５０において、ＣＰＵ１００は、先の処理で算出されている仮想空間距離Ｄｆに基づいて、右仮想カメラおよび左仮想カメラの座標位置、ならびに、右仮想カメラおよび左仮想カメラの注視点を算出する。さらに続くステップＳ１５２において、ＣＰＵ１００は、ステップＳ１５０において算出したパラメータに基づいて、右仮想カメラおよび左仮想カメラのビュー行列をそれぞれ算出する。
【０２８０】
続くステップＳ１５４において、ＣＰＵ１００は、戻り値ＲＶを算出する。すなわち、ＣＰＵ１００は、基準仮想平面領域の幅に相当する仮想空間距離を基準とした、右仮想カメラと左仮想カメラとの間の仮想空間距離の比率を算出する。
【０２８１】
その後、処理はリターンする。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２８２】
１  情報処理システム、１０  表示装置、１２  視差バリア、１４  スリット、１６，１８  ガラス基板、５０  オブジェクト画像生成機能、５１  左右仮想カメラ設定機能、５２  オブジェクト画像レンダリング機能、５３  オブジェクト定義、６０  背景画像生成機能、６１  背景画像範囲設定機能、６２  背景画像レンダリング機能、６３  背景画像定義、７０  表示データ生成機能、７１  右オブジェクト画像、７２  右背景画像、７３  左オブジェクト画像、７４  左背景画像、７５，７６，７７，７８  レイヤ、１０６  入力部、１１２  第１ＶＲＡＭ、１１４  ＬＣＤドライバ、１１６  第１ＬＣＤ、１２２  第２ＶＲＡＭ、１２６  第２ＬＣＤ、２００Ａ，２００Ｂ  アプリケーション、２０２  入力モジュール、２０４  進行モジュール、２０６  オブジェクト画像レンダリングモジュール、２０８  背景画像範囲設定モジュール、２１０  背景画像レンダリングモジュール、２１２  オブジェクト定義データ、２１４  背景画像データ、２１６  表示データ生成モジュール、２１８，２１８Ａ  立体表示用ライブラリ、２５０Ａ，２５０Ｂ  ファームウェア。
【図１】
0005405264.tif 000003
【図２】
0005405264.tif 000004
【図３】
0005405264.tif 000005
【図４】
0005405264.tif 000006
【図５】
0005405264.tif 000007
【図６】
0005405264.tif 000008
【図７】
0005405264.tif 000009
【図８】
0005405264.tif 000010
【図９】
0005405264.tif 000011
【図１０】
0005405264.tif 000012
【図１１】
0005405264.tif 000013
【図１２】
0005405264.tif 000014
【図１３】
0005405264.tif 000015
【図１４】
0005405264.tif 000016
【図１５】
0005405264.tif 000017
【図１６】
0005405264.tif 000018
【図１７】
0005405264.tif 000019
【図１８】
0005405264.tif 000020
【図１９】
0005405264.tif 000021
【図２０】
0005405264.tif 000022
【図２１】
0005405264.tif 000023
【図２２】
0005405264.tif 000024
【図２３】
0005405264.tif 000025
【図２４】
0005405264.tif 000026
【図２５】
0005405264.tif 000027
【図２６】
0005405264.tif 000028
【図２７】
0005405264.tif 000029