[go: up one dir, main page]

JP5405264B2 - 表示制御プログラム、ライブラリプログラム、情報処理システム、および、表示制御方法 - Google Patents

表示制御プログラム、ライブラリプログラム、情報処理システム、および、表示制御方法 Download PDF

Info

Publication number
JP5405264B2
JP5405264B2 JP2009241314A JP2009241314A JP5405264B2 JP 5405264 B2 JP5405264 B2 JP 5405264B2 JP 2009241314 A JP2009241314 A JP 2009241314A JP 2009241314 A JP2009241314 A JP 2009241314A JP 5405264 B2 JP5405264 B2 JP 5405264B2
Authority
JP
Japan
Prior art keywords
virtual camera
background image
display
image
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009241314A
Other languages
English (en)
Other versions
JP2011091486A (ja
Inventor
敬三 太田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2009241314A priority Critical patent/JP5405264B2/ja
Priority to EP12160332.8A priority patent/EP2480000B1/en
Priority to EP10188033A priority patent/EP2323414A3/en
Priority to US12/907,248 priority patent/US9019261B2/en
Publication of JP2011091486A publication Critical patent/JP2011091486A/ja
Application granted granted Critical
Publication of JP5405264B2 publication Critical patent/JP5405264B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/128Adjusting depth or disparity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Processing Or Creating Images (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Stereoscopic And Panoramic Photography (AREA)

Description

本発明は、立体表示が可能な表示装置で2つの画像を用いて立体表示を行なう際に使用される表示制御プログラム、ライブラリプログラム、情報処理システム、および、表示制御方法に関する。
従来から、所定の視差を有する2つの画像を用いて、立体表示を行なう方法が知られている。このような立体表示の適用先は、さまざまな分野へ広がりつつある。たとえば、ゲームやCGアニメーションといった、3次元仮想空間を表示するようなアプリケーションなどが開発されている。
このようなアプリケーションでは、3次元仮想空間内に2つの仮想カメラを設定し、それぞれの仮想カメラが仮想的に撮影することで得られる、オブジェクトなどの被写体を含む画像を用いて立体表示が行なわれる。ユーザにとって見やすい立体表示のためには、当該2つの仮想カメラを適切に設定する必要がある。たとえば、特開2003−107603号公報(特許文献1)には、注目させたい部分にフォーカスを当てるように立体表示用の画像を生成する方法が開示されている。
特開2003−107603号公報
従来の表示装置において、オブジェクトを含む3次元仮想空間を表現した画像を生成する場合において、各種オブジェクト(プレイヤキャラクタやノンプレイヤキャラクタや地形オブジェクト)などをレンダリングするとともに、当該オブジェクトの背景として表示される画像(たとえば、空や雲などの遠景を表現する画像)を当該レンダリングとは独立して生成処理するという手法が採用される場合があった。このような手法を採用することで、プログラムの開発に要する工数を短縮できるとともに、3次元画像空間を表現した画像の生成処理をより高速化できるといった利点がある。
しかしながら、上述のような表示装置で立体表示を行なう場合に、上記のような手法を採用しようとすると、以下のような課題が生じ得る。すなわち、第1の課題としては、各種オブジェクトを立体表示するために、3次元仮想空間内の適切な位置に2つの仮想カメラを設定するとともに、背景として表示される画像について、右目用画像と左目用画像の2つをそれぞれ生成する必要があり、アプリケーションソフトウェアの開発者は、立体表示用の画像生成処理を設計するときには、平面表示の場合に比較して、多くの観点を鑑みて設計する必要がある。また、第2の課題としては、背景として表示される画像は、ユーザから見て最も奥側に位置する絵として視認される必要があるため、当該オブジェクトの立体表示の立体度合が変更されるたびに、背景として表示される画像を適切に生成する必要がある。
上述のように、従来の平面表示において用いられていた上述のような手法をそのまま立体表示に適用した場合には、表示に要する処理量が大きくなり過ぎるとい課題があった。
本発明は、このような課題を解決するためになされたものであって、その目的は、アプリケーションソフトウェア開発者による、立体表示用の画像生成処理の設計の負荷を減らすことができる、表示制御プログラム、ライブラリプログラム、情報処理システム、および、表示制御方法を提供することである。
本発明の第1の局面に従えば、立体表示が可能な表示装置を制御するための表示制御プログラムを提供する。本表示制御プログラムは、表示装置のコンピュータを、第1の仮想空間内のオブジェクトを第1の右仮想カメラおよび第1の左仮想カメラでそれぞれ仮想的に撮影することで、オブジェクトを表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成手段、表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成手段、ならびに、右オブジェクト画像と左オブジェクト画像、および、右背景画像と左背景画像を用いて、表示装置での画像表示に使用されるデータを生成する表示データ生成手段として機能させる。オブジェクト画像生成手段は、第1の仮想空間内に設定される第1の基準仮想カメラに応じて、当該第1の基準仮想カメラを通り、かつ、当該第1の基準仮想カメラのカメラ方向に垂直な直線上に、第1の右仮想カメラおよび第1の左仮想カメラを設定する。背景画像生成手段は、両背景画像が、第1の右仮想カメラと第1の左仮想カメラとの間の位置関係に応じた相対関係を有するように、右背景画像および左背景画像を表示制御する。
第1の局面によれば、第1の仮想空間内にある所定のオブジェクトをレンダリングするための第1の基準仮想カメラを指定することで、当該オブジェクトを表示装置において立体表示するために必要な一対のオブジェクト画像(右オブジェクト画像および左オブジェクト画像)を生成するための一対の仮想カメラ(第1の右仮想カメラおよび第1の左仮想カメラ)を設定することができる。そのため、アプリケーションなどの各シーンにおいて、第1の仮想空間内のオブジェクトを立体表示させる場合であっても、従来の平面表示のみを含むアプリケーションと同様に、1つの基準仮想カメラを指定することで済む。そのため、立体表示を含むアプリケーションを制作する場合であっても、その作業量を平面表示のみを含むアプリケーションと同様のレベルに抑制することができる。
さらに、上述のように一対の仮想カメラ(第1の右仮想カメラおよび第1の左仮想カメラ)が設定されると、これらの仮想カメラの間の位置関係に応じて、右背景画像および左背景画像が生成される。そのため、表示装置において表現される立体感の程度に応じて、適切な背景画像が生成される。そのため、典型的な実施の形態においては、表示装置における立体感の程度が変化した場合であっても、背景画像をオブジェクトより常に奥側に表示させることができる。
すなわち、従来の平面表示のアプリケーションと同様に、1つの基準仮想カメラを指定することによって、オブジェクトを立体表示するための一対の仮想カメラ(第1の右仮想カメラおよび第1の左仮想カメラ)が自動的に設定され、さらに、一対の背景画像の相対関係が自動的に設定される。
好ましい第2の局面に従えば、背景画像生成手段は、仮想空間における第1の右仮想カメラと第1の左仮想カメラとの間の距離に基づいて、右背景画像および左背景画像を表示制御する。第2の局面によれば、仮想空間における第1の右仮想カメラと第1の左仮想カメラとの間の距離は、右オブジェクト画像と左オブジェクト画像との間に生じる視差の大きさに直接的に関係する。すなわち、両仮想カメラ間の距離は、表示装置において表現される立体感の程度に関連付けられるので、この両仮想カメラ間の距離を用いることで、右背景画像および左背景画像の間の相対関係を適切に調整できる。
好ましい第3の局面に従えば、右背景画像および左背景画像は、共通の画像を用いて生成される画像であり、右背景画像および左背景画像は、両画像間の対応箇所が一対の仮想カメラの距離に応じた視差で表示されるように表示制御される。典型的な実施の形態によれば、右背景画像および左背景画像は、全く同一の画像であってもよい。
さらに好ましい第4の局面に従えば、背景画像生成手段は、第1の基準仮想カメラの視体積に含まれ、当該第1の基準仮想カメラのカメラ方向に垂直な仮想平面である、基準仮想平面領域の幅を基準とした、第1の右仮想カメラと第1の左仮想カメラとの間の距離の比(第1の比)に応じて、右背景画像および左背景画像を生成する。
ここで、基準仮想平面領域は、「3次元仮想空間の中で、立体表示を見るユーザが表示装置10の表示面の位置に存在すると感じる面」において、表示装置10の表示面にレンダリングされる領域である。
典型的な実施の形態によれば、「背景画像についての表示装置10の表示面に表示される左右方向のサイズ」と、「右背景画像および左背景画像の表示時のずれ量」の比が、上述の第1の比となるように、右背景画像および左背景画像を生成する。
第3および4の局面によれば、第1の右仮想カメラと第1の左仮想カメラとの間の仮想空間における距離は、表示装置の現実の表示面の幅などとは異なる次元の値であるため、そのままでは汎用性が低い。これに対して、基準仮想平面領域の幅を基準として、第1の右仮想カメラと第1の左仮想カメラとの間の仮想空間における距離を規格化することで、より汎用性の高い値として利用範囲を拡大させることができる。
さらに好ましい第5の局面に従えば、背景画像生成手段は、表示装置に表示されるサイズより大きなサイズを有する原背景画像に対して、右背景画像として出力すべき右描画範囲を設定するとともに、当該右描画範囲を、当該右描画範囲の幅に第1の右仮想カメラと第1の左仮想カメラとの間の距離の比を乗じて得られる距離だけずらした位置に、左背景画像として出力すべき左描画範囲を設定する。
第5の局面によれば、基準仮想平面領域の幅を基準とした、第1の右仮想カメラと第1の左仮想カメラとの間の距離の比(規格化された値)を用いることで、表現されるすべてのオブジェクトに対して最も奥側に位置する像としてユーザに視認させるための右背景画像と左背景画像を、表示装置の表示面の大きさや表示面に表示される画像サイズなどに応じて、適切に生成することができる。
好ましい第6の局面に従えば、背景画像生成手段は、第1の右仮想カメラと第1の左仮想カメラとの間の距離に基づいて、背景オブジェクトを含む第2の仮想空間内に設定される第2の基準仮想カメラを基準として、背景オブジェクトを仮想的に撮影することで右背景画像および左背景画像を生成するための第2の右仮想カメラおよび第2の左仮想カメラを設定する。
第6の局面によれば、ユーザがアプリケーションなどの各シーンにおいて、背景オブジェクトの一部を背景として表示させる場合であっても、従来の平面表示のみを含むアプリケーションと同様に、背景をレンダリングするための、1つの基準仮想カメラを指定することで済む。そのため、立体表示を含むアプリケーションを制作する場合であっても、その作業量を平面表示のみを含むアプリケーションと同様のレベルに抑制することができる。
さらに好ましい第7の局面に従えば、第2の基準仮想カメラ、第2の右仮想カメラ、および第2の左仮想カメラの各々は、プロジェクション行列およびビュー行列として定義される。
好ましい第8の局面に従えば、第1の基準仮想カメラ、第1の右仮想カメラ、および第1の左仮想カメラの各々は、プロジェクション行列およびビュー行列として定義される。
この第7および第8の局面によれば、3次元仮想空間についてのレンダリング技術において一般的に利用されているカメラ行列(プロジェクション行列およびビュー行列)を用いることで、これらのレンダリング技術に係る処理との一貫性を維持することができる。
好ましい第9の局面に従えば、オブジェクト画像生成手段は、表示装置において提供される立体感の程度を示す指示に応じて、第1の右仮想カメラと第1の左仮想カメラとの間の位置関係を決定する。
この第9の局面によれば、予め定められた条件下において算出される立体感をそのまま表現したくない場合もあるが、このような場合においては、典型的には、アプリケーションの制作者の意図やユーザ操作などに応じて、表示装置に表示される立体表示に係る立体感を調整することができる。
さらに好ましい第10の局面に従えば、本表示制御プログラムは、表示装置のコンピュータを、表示装置において提供される立体感の程度を示す要求を受付ける入力手段としてさらに機能させ、オブジェクト画像生成手段は、入力手段を介して立体感の程度の変更が指示されると、当該指示に応じて、第1の右仮想カメラと第1の左仮想カメラとの間の位置関係を変更する。
この第10の局面によれば、ユーザが入力手段を操作することで、表示装置上で表示される立体感を必要に応じて調整することができる。
この発明の第11の局面に従えば、立体表示が可能な表示装置のコンピュータ上で、アプリケーションプログラムと協働するライブラリプログラムを提供する。本ライブラリプログラムは、コンピュータを、第1の仮想空間内における第1の基準仮想カメラの設定値の入力に応答して、第1の仮想空間内のオブジェクトをそれぞれ仮想的に撮影することで、オブジェクトを表示装置で立体表示するために用いられる、「右オブジェクト画像を生成するための第1の右仮想カメラの設定値」および「左オブジェクト画像を生成するための第1の左仮想カメラの設定値」を出力する設定値出力手段、および、「第1の右仮想カメラと第1の左仮想カメラとの間の位置関係を示す値」を出力する位置関係出力手段として機能させる。設定出力手段は、当該第1の基準仮想カメラを通り、かつ、当該第1の基準仮想カメラのカメラ方向に垂直な直線上に、第1の右仮想カメラおよび第1の左仮想カメラを設定し、第1の右仮想カメラと第1の左仮想カメラとの間の位置関係に基づいて、表示装置において背景表示に用いられる右背景画像および左背景画像が生成される。
この発明の第12の局面に従う情報処理システムは、立体表示が可能な表示装置と、第1の仮想空間内のオブジェクトを第1の右仮想カメラおよび第1の左仮想カメラでそれぞれ仮想的に撮影することで、オブジェクトを表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成手段と、表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成手段と、右オブジェクト画像と左オブジェクト画像、および、右背景画像と左背景画像を用いて、表示装置での画像表示に使用されるデータを生成する表示データ生成手段とを含む。オブジェクト画像生成手段は、第1の仮想空間内に設定される第1の基準仮想カメラに応じて、当該第1の基準仮想カメラを通り、かつ、当該第1の基準仮想カメラのカメラ方向に垂直な直線上に、第1の右仮想カメラおよび第1の左仮想カメラを設定し、背景画像生成手段は、両背景画像の間が、第1の右仮想カメラと第1の左仮想カメラとの間の位置関係に応じた相対関係を有するように、右背景画像および左背景画像を表示制御する。
この発明の第13の局面に従えば、立体表示が可能な表示装置を制御する表示制御方法を提供する。本表示制御方法は、第1の仮想空間内のオブジェクトを第1の右仮想カメラおよび第1の左仮想カメラでそれぞれ仮想的に撮影することで、オブジェクトを表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成ステップと、表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成ステップと、右オブジェクト画像と左オブジェクト画像、および、右背景画像と左背景画像を用いて、表示装置での画像表示に使用されるデータを生成する表示データ生成ステップとを含む。オブジェクト画像生成ステップは、第1の仮想空間内に設定される第1の基準仮想カメラに応じて、当該第1の基準仮想カメラを通り、かつ、当該第1の基準仮想カメラのカメラ方向に垂直な直線上に、第1の右仮想カメラおよび第1の左仮想カメラを設定するステップを含み、背景画像生成ステップは、両背景画像が、第1の右仮想カメラと第1の左仮想カメラとの間の位置関係に応じた相対関係を有するように、右背景画像および左背景画像を表示制御するステップを含む。
第11〜13の局面によれば、上述の第1の局面と同様の作用効果を奏することができる。
上述の記載においては、本発明の理解を助けるために後述の実施形態との対応関係を示す補足説明等を付したが、これらは本発明を何ら限定するものではない。
本発明のある局面によれば、アプリケーションソフトウェア開発者による、立体表示用の画像生成処理の設計の負荷を減らすことができる。
従来から存在する平面表示処理を説明するための図である。 本発明の実施の形態に従う立体表示処理を図1に示す平面表示処理と対比して説明するための図である。 本発明の実施の形態に従う仮想カメラの視野範囲を説明するための図である。 本発明の実施の形態に従う立体表示処理に係る機能を示す模式図である。 本発明の実施の形態に従う表示装置の構造の一例を示す図である。 本発明の実施の形態に従う情報処理システムの内部構成を示すブロック図である。 本発明の実施の形態に従う情報処理システムにおいて実装されるプログラム構成の一例を示す図である。 図7に示す立体表示用ライブラリについて入出力されるデータ項目を説明するための図である。 本発明の実施の形態に従うオブジェクト画像生成処理の対象となる3次元仮想空間の一例を示す模式図である。 図9に示す状態において生成されるオブジェクト画像(右オブジェクト画像および左オブジェクト画像)の生成処理を示す模式図である。 図10に示す右仮想カメラおよび左仮想カメラによってそれぞれ生成されるオブジェクト画像の一例を示す図である。 本発明の実施の形態に従うカメラ行列を説明するための図である。 本発明の実施の形態に従う右仮想カメラおよび左仮想カメラの設定処理を2次元的に説明するための図である。 図13に示す右仮想カメラおよび左仮想カメラの設定処理の処理結果に応じて設定される視体積を示す図である。 この発明の実施の形態に従うリアルモードにおける処理内容を説明するための図である。 本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の一例を示す図である。 本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の一例を示す図である。 本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の一例を示す図である。 本発明の実施の形態の変形例に従う右仮想カメラおよび左仮想カメラの設定処理を2次元的に説明するための図である。 本発明の実施の形態に従う立体表示用ライブラリの戻り値の算出処理を説明するための図である。 本発明の実施の形態に従う背景画像の生成処理を説明するための模式図である。 本発明の実施の形態の変形例に従う背景画像の生成処理を説明するための模式図である。 本発明の実施の形態の変形例に従う背景画像の生成処理を説明するための模式図である。 図23に対応する立体表示用ライブラリについて入出力されるデータ項目を説明するための図である。 本発明の実施の形態に従う表示データ生成処理を説明するための模式図である。 本発明の実施の形態に従うプログラムのメインルーチンを示すフローチャートである。 本発明の実施の形態に従う立体表示用ライブラリの処理内容を示すフローチャートである。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.概要および概念>
本発明のある局面によれば、典型的には、立体表示を含むアプリケーションなどを制作する場合であっても、平面表示のみを含むアプリケーションと同様の作業量で済むような環境を提供することを目的とする。そこで、まず、本発明に係る概要および概念について、図1〜図4を参照して説明する。
[a1.従来から存在する平面表示]
図1は、従来から存在する平面表示処理(立体表示でないという意味で、「平面表示」と称す。)を説明するための図である。図1を参照して、オブジェクトOBJ1およびOBJ2を含む3次元仮想空間を表示装置10に表示する場合を考える。この場合には、オブジェクトOBJ1およびOBJ2が配置された3次元仮想空間内のいずれかの位置に仮想カメラ300が設定される。そして、3次元仮想空間内のオブジェクトOBJ1およびOBJ2などを、仮想カメラ300で仮想的に撮影することで、画像を生成する。なお、以下の説明では、3次元仮想空間内に含まれる各種オブジェクトを(平面または立体)表示するために生成される画像を、後述する背景を表示するために生成される画像と対比する観点から、「オブジェクト画像」とも称す。
同時に、背景表示に用いられる画像が生成される。以下の説明では、この背景を(平面または立体)表示するために生成される画像を、上述の「オブジェクト画像」に対比させて「背景画像」とも称す。図1に示す例では、背景画像として「雲が描かれた空」が例示されている。この背景画像は、典型的には、表示装置10に表示されるサイズより大きなサイズを有する平面2次元画像である原背景画像BGのうち任意の領域から抽出される。なお、原背景画像BGから背景画像として抽出される領域は、仮想カメラ300の配置位置(あるいは、ユーザに注目してもらいたいオブジェクト)に関連付けられた範囲としてもよいし、仮想カメラ300の配置位置とは独立した範囲としてもよいし、または、アプリケーションの進行などに応じた範囲などに適宜設定してもよい。
上述のような原背景画像BGのうち背景画像とすべき範囲を平面2次元画像から直接的に設定する方法に代えて、3次元仮想空間に原背景画像BGを配置し(テクスチャとして貼り付け)、この原背景画像BGを配置した3次元仮想空間に対して背景撮影用の基準仮想カメラ400を設定してもよい。なお、典型的には、原背景画像BGは、オブジェクトOBJ1およびOBJ2が配置されている3次元仮想空間と別の3次元仮想空間に配置される。この場合には、仮想カメラ400が原背景画像BGを仮想的に撮影することで背景画像が生成される。
そして、このオブジェクト画像と背景画像とに基づいて表示データが生成され、この表示データに基づいて、表示装置10において平面表示がなされる。
[a2.立体表示]
本発明に係る実施の形態に従う立体表示処理では、上述の図1に示すオブジェクト画像および背景画像の表示制御に要するパラメータと同様のパラメータを指定することで、表示装置10における立体表示に必要な、一対のオブジェクト画像(右オブジェクト画像および左オブジェクト画像)と、一対の背景画像(右背景画像および左背景画像)とが生成される。
図2は、本発明の実施の形態に従う立体表示処理を図1に示す平面表示処理と対比して説明するための図である。図2を参照して、一例として、上述の平面表示においてレンダリングされた範囲と同様の範囲を立体表示する処理について説明する。
この場合には、まず、オブジェクトOBJ1およびOBJ2を含む3次元仮想空間内において、上述の図1に示す平面表示をするときと同じように、仮想カメラ300を指定する(なお、この「平面表示をするときと同じように設定される仮想カメラ」を、以下「基準仮想カメラ」と称す。)。この基準仮想カメラ300の配置位置を基準として、右オブジェクト画像を生成するための右仮想カメラ302および左オブジェクト画像を生成するための左仮想カメラ304が設定される。より具体的には、基準仮想カメラ300のカメラ位置を基準として、基準仮想カメラ300のカメラ方向における左方向に距離Aだけ離れるように、左仮想カメラ304を設定し、基準仮想カメラ300のカメラ方向における右方向に距離Aだけ離れるように、右仮想カメラ304を設定する。なお、左仮想カメラと右仮想カメラのカメラ方向および画角は、基準仮想カメラ300のカメラ方向、画角と同じ値に設定される。このように、配置された右仮想カメラ302および左仮想カメラ304で、3次元仮想空間内のオブジェクトOBJ1およびOBJ2などを仮想的に撮影することで、右オブジェクト画像および左オブジェクト画像がそれぞれ生成される。
同時に、3次元仮想空間内に設定される右仮想カメラ302と左仮想カメラ304との間の位置関係に連係して、右背景画像および左背景画像が生成される。すなわち、両背景画像の相対関係が、右仮想カメラ302と左仮想カメラ304との間の位置関係に応じた相対関係となるように、右背景画像および左背景画像が生成される。
そして、右オブジェクト画像と右背景画像とに基づいて右眼用の表示データが生成されるとともに、左オブジェクト画像と左背景画像とに基づいて左眼用の表示データが生成される。これらの表示データに基づいて、表示装置10において立体表示がなされる。
右背景画像と左背景画像とは、当該右背景画像および左背景画像を表示装置10上に表示した場合に、ユーザがそれらの背景画像を表示装置10の奥側の無限遠方または所定位置に位置する絵として視認できるように生成され表示される。後述するように、背景画像は、その目的からすると、表現されるすべてのオブジェクトに比較して最も奥側に位置する像としてユーザに視認させる必要がある。ユーザが表示画面に立体表示されたオブジェクトを見た際に奥行き方向のどの位置にあるように視認されるかは、表示画面上での視差によって変化する。本発明においては、右背景画像および左背景画像が右仮想カメラ302と左仮想カメラ304との間の位置関係に応じた視差を持つように両背景画像を表示制御することによって、背景画像が背景以外の他の表示対象と比較して最も奥側に位置するようにユーザに視認させる。本実施形態においては、右仮想カメラ302と左仮想カメラ304との間の位置関係に応じた視差を持つように両背景画像を生成する。
本明細書において、「右背景画像と左背景画像との相対関係」とは、立体表示装置における、右背景画像の表示位置と、左背景画像の表示位置との関係のことを言う。より具体的には、ある像についての、右背景画像における表示位置と、左背景画像における表示位置との位置関係のことを言う。この相対関係の設定により、視認者が背景があると感じる奥行きが決まる。本発明では、右背景画像と左背景画像との間の相対関係を、両背景画像を表示装置10において表示した場合に、ユーザが表示される背景を最も奥側の絵として視認できるような視差を発生できる関係に設定する。より具体的には、後述するように、表示装置10に表示されるサイズより大きなサイズを有する原背景画像BGのうち、右背景画像および左背景画像として抽出すべき2つの描画範囲を、上記のような視差が生じる位置関係をもって設定することで、「右背景画像における像」と「左背景画像における像」の立体表示位置における表示位置関係が設定され、「相対関係」が形成される。
表示装置10における立体感の程度が変化する場合に、図2に示すように、右仮想カメラ302と左仮想カメラ304との間の位置関係が変化するが、この場合であっても、当該位置関係の変化に応じて、右背景画像および左背景画像の相対関係が変化するので、背景画像をオブジェクトより常に奥側に表示させることができる。すなわち、各種オブジェクトより手前側に背景画像が見えるような事態を避けることができる。この連係の詳細については、後述する。
[a3.用語]
(i) 本明細書において、「立体表示」とは、画像に含まれる少なくとも一部の対象物をユーザに立体的に視認させることができるように、当該画像を表現することを意味する。典型的には、視差を有する一対の平面2次元画像(ステレオ画像)をユーザに視認させて、眼や脳の生理的な働きを利用することで、当該ユーザに立体感を感じさせる。
本明細書において、「視差」とは、ユーザの右眼で視認される像と、ユーザの左眼で視認される像との間における、対象点の見え方の違いを意味する。典型的には、ある対象物を異なる複数の観測点から観測した場合に、それぞれの観測点で観測される内容に基づいて画像をそれぞれ生成した場合に、これらの画像は視差を有する画像となる。また、右眼用の表示を生成するための観測点と左眼用の表示を生成するための観測点との差に依存して、ある対象物についての、右眼用の表示画像中の像と左眼用の表示画像中の像とは現れる位置が異なる。このような、2つの画像内における同一対象物についての像の位置の差の大きさを「視差量」と称す。
(ii) 本明細書において、「右」および「左」とは、ユーザがいずれの眼で視認するかを区別するために使用される。すなわち、上述した「右オブジェクト画像」および「右背景画像」は、ユーザが右眼で視認されることが予定されている画像であることを示し、上述した「左オブジェクト画像」および「左背景画像」は、ユーザが左眼で視認されることが予定されている画像であることを示す。また、表示装置10に表示される画像のうち、ユーザが右眼で視認されることが予定されている画像を「右表示画像」と称し、ユーザが左眼で視認されることが予定されている画像を「左表示画像」と称する。
また、「右オブジェクト画像」を生成する仮想カメラを「右仮想カメラ」とも称し、「左オブジェクト画像」を生成する仮想カメラを「左仮想カメラ」とも称する。
(iii) 本明細書において、「視体積」とは、以下のような範囲を意味する。図3は、本発明の実施の形態に従う仮想カメラの視野範囲を説明するための図である。図3を参照して、本実施の形態に従う仮想カメラは、3次元仮想空間のうちカメラ方向の所定範囲(図3においてハッチング表示されている範囲)にあるオブジェクトのみをレンダリングする。言い換えれば、仮想カメラの視野角(図3において破線で囲む範囲)の外になる範囲はレンダリングされない。また、仮想カメラに対して、近傍側に「ニアクリップ面」が設定され、遠方側に「ファークリップ面」が設定される。これらのニアクリップ面およびファークリップ面は、仮想カメラのカメラ方向の線に対して垂直となるように設定される。このニアクリップ面とファークリップ面との間に存在するオブジェクトであり、かつ、仮想カメラの視野角の内に含まれるオブジェクトがレンダリング対象となる。
このように仮想カメラによる撮影によって画像を生成する際の、ユーザが現実に見える範囲(すなわち、レンダリングされる範囲)を「視体積」とも称す。より具体的には、仮想カメラ位置を頂点とし当該仮想カメラのファークリップ面を底面とする四角錐の全体のうち、ニアクリップ面を一方面としファークリップ面を他方面とする四角錐体を「視体積」と称す。この「視体積」は、「ビューフラスタム」または「視錐体」と称されることもある。したがって、3次元仮想空間をある視体積(視野範囲)を有する仮想カメラで撮影したときには、当該視体積の内に含まれる空間が、当該仮想カメラによってレンダリングされることになる。
上述の例について見れば、図1に示す仮想カメラ300に対応して視体積380が設定され、図2に示す右仮想カメラ302に対応して視体積382が設定され、図2に示す左仮想カメラ304に対応して視体積384が設定される。
(iv) 表示装置10において立体表示を行なう場合には、表示装置10の表示面の位置に対応する平面(3次元仮想空間の中で、立体表示を見るユーザが表示装置10の表示面の位置に存在すると感じる面)である「基準仮想面」が3次元仮想空間内に設定される(図3参照)。なお、基準仮想面は、「3次元仮想空間の中で、立体表示を見るユーザが表示装置10の表示面から所定のオフセットを持った位置に存在すると感じる面」としてもよい。
この「基準仮想面」についても、カメラ方向に対して垂直となるように設定される。さらに、表示装置10の表示面の実サイズは有限であるから、当該基準仮想面のうち、表示装置10の表示面にレンダリングされる範囲に対応する「基準仮想平面領域」を定義することができる。すなわち、無限面である基準仮想面のうち、レンダリングされる範囲(視体積に含まれる範囲)が、「基準仮想平面領域」である。
「基準仮想平面領域」は、表示装置10において立体表示を行なう際に、ユーザが表示装置10の表示面付近(前述の通り、典型的にはちょうど表示面の位置であるが、例えば表示面から所定のオフセットを持った位置として設定してもよい)にあるように感じる3次元仮想空間内の位置および領域を定義する。すなわち、立体表示は、表示装置10の表示面の手前側に飛び出して見える部分や、表示面の奥に引っ込んで見える部分を含むが、ユーザにとってみれば、基準仮想平面領域付近の空間がちょうど表示装置10の表示面付近にあるように見えることになる。右仮想カメラ302および左仮想カメラ304が、図2に示すような位置に設定された場合には、両仮想カメラによって生成される右オブジェクト画像および左オブジェクト画像の間では、基準仮想平面領域付近の空間に位置するオブジェクトについての表示のされ方が互いに一致する(すなわち、視差が実質的に無くなる)。
したがって、表示装置10の表示面を見るユーザにとってみれば、基準仮想平面領域に対応する部分(にあるオブジェクト)については、右眼で視認する画像(右オブジェクト画像)と左眼で視認する画像(左オブジェクト画像)との間で実質的に同じ位置に見え、その結果、両オブジェクト画像を現実に表示している面である表示装置10の表示面上に当該部分が存在するように見える。
一方、基準仮想平面領域とは異なる位置に設定された面に対応する部分(にあるオブジェクト)については、右仮想カメラ302と左仮想カメラ304との位置関係に応じて、右オブジェクト画像と左オブジェクト画像の表示位置が異なったものとなり(すなわち、何らかの視差を有する表示となり)、ユーザにとってみれば、表示装置10の表示面から飛び出した位置や引っ込んだ位置に存在するように見える。
(v) 上述したように、本実施の形態においては、視差を有する一対の平面2次元画像を表示装置10に表示させることで、ユーザに立体感を感じさせる。この一対の平面2次元画像内のあるオブジェクトについての視差量が大きくなればなるほど、当該オブジェクトはユーザにとってより大きな立体感をもって視認されることになるが、視差量が一定値を超えて大きくなると、逆にユーザは立体感を感じにくくなる。そのため、表示装置10で立体表示を行なう際には、視差量を適切な範囲に維持する必要がある。以下では、ユーザが表示装置10において立体表示を気持ちよく受け入れることができる、表示面上における右オブジェクト画像と左オブジェクト画像との間の最大視差量を「限界視差量」と称す。この立体感を気持ちよく感じられるしきい値、すなわち限界視差量は、表示装置10の表示面についての実画面幅、ユーザの眼の実間隔、およびユーザから表示装置10の表示面までの実距離などによって決まる。
したがって、本実施の形態においては、ユーザに視認させたいオブジェクトについての視差量がこの限界視差量以下の視差量となるように、当該オブジェクトが表示装置10の表示面に表示される。
このような表示装置10に表示されるオブジェクトについての立体感を制御するために、本実施の形態においては、発生する視差量を評価するための平面が3次元仮想空間内に設定される。以下では、このような視差量を評価するための平面を「視差判定面」と称する(後述の図9および図13参照)。この視差判定面についても、仮想カメラのカメラ方向に対して垂直となるように設定される。すなわち、視差判定面は、基準仮想面よりも奥側(仮想カメラと反対側)の位置に、基準仮想平面と平行に設定される。
より具体的には、3次元仮想空間内に設定される視差判定面に位置する表示対象を右仮想カメラおよび左仮想カメラでそれぞれ仮想的に撮影して得られる右オブジェクト画像および左オブジェクト画像の間では、右仮想カメラと左仮想カメラとの間の位置関係に応じた視差が生じる。そして、この視差判定面に位置するオブジェクトについての位置ずれ量が所定のしきい値を超えないように、右仮想カメラおよび左仮想カメラが設定される。これにより、視差判定面より手前(仮想カメラ側)に存在する各オブジェクトについての視差量が限界視差量以下とすることができる。なお、基準仮想面より手前側の位置に、別途の視差判定面(第2の視差判定面)を設けて、当該視差判定面に位置する表示対象についての位置ずれ量が所定のしきい値を超えないように、仮想カメラを設定してもよいが、本実施形態では、基準仮想面を所望の位置に設定できるように、第2の視差判定面は設けない。
[a4.機能および処理]
図4は、本発明の実施の形態に従う立体表示処理に係る機能を示す模式図である。図4を参照して、本発明の実施の形態に従う立体表示処理は、基準仮想カメラ設定機能40と、オブジェクト画像生成機能50と、背景画像生成機能60と、表示データ生成機能70とを含む。
基準仮想カメラ設定機能40は、プレイヤキャラクタから所定距離だけ後方から当該プレイヤキャラクタを撮影したり、プレイヤキャラクタの位置からプレイヤキャラクタの向いている方向を撮影したりするなど、アプリケーションの内容に応じて任意の方法によって設定される基準カメラ設定(カメラ位置、カメラ方向、画角など)に基づいて、基準仮想カメラ(図2に示す符号300)のカメラ情報を設定する。
オブジェクト画像生成機能50は、3次元仮想空間内の各オブジェクトを右仮想カメラ(図2に示す符号302)および左仮想カメラ(図2に示す符号304)でそれぞれ仮想的に撮影することで、当該オブジェクトを表示装置10で立体表示するために用いられる、右オブジェクト画像71および左オブジェクト画像73を生成する。
背景画像生成機能60は、表示装置10での立体表示においてオブジェクトの背景の絵として用いられる右背景画像72および左背景画像74を生成する。
表示データ生成機能70は、右オブジェクト画像71と左オブジェクト画像73、および、右背景画像72と左背景画像74を用いて、表示装置10での画像表示に使用されるデータ(右表示画像および左表示画像)を生成する。
オブジェクト画像生成機能50は、基準仮想カメラ設定機能40によって設定された、基準仮想カメラのカメラ情報に応じて、当該基準仮想カメラを通り、かつ、当該基準仮想カメラのカメラ方向に垂直な直線(図2に示す基準線350)上に、右仮想カメラおよび左仮想カメラ(図2に示す右仮想カメラ302および左仮想カメラ304)を設定する。すると、背景画像生成機能60は、両背景画像の間で、オブジェクト画像生成機能50によって設定された右仮想カメラと左仮想カメラとの間の位置関係に応じた相対関係を有するように、右背景画像72および左背景画像74を生成する。
このように、基準仮想カメラを通り、かつ、基準仮想カメラのカメラ方向に垂直な直線上に、右仮想カメラおよび左仮想カメラを設定することで、基準仮想カメラに対応する視点から見た3次元仮想空間内のオブジェクトを容易に立体表示させることができる。また、右背景画像72および左背景画像74の生成を、右オブジェクト画像71および左オブジェクト画像73を生成するための右仮想カメラおよび左仮想カメラの設定値の決定に連係させることで、表示装置10において、背景画像をユーザから見て最も奥側に位置する絵として常に表現することができる。
より具体的には、オブジェクト画像生成機能50は、左右仮想カメラ設定機能51と、オブジェクト画像レンダリング機能52と、オブジェクト定義53とを含む。左右仮想カメラ設定機能51は、上述の基準カメラ設定の情報に加えて、立体感調整の情報に基づいて、右仮想カメラおよび左仮想カメラを設定する。この立体感調整の情報は、表示装置10において提供される立体感の程度を示す指示である。
左右仮想カメラ設定機能51は、この立体感調整の情報にも応じて、右仮想カメラと左仮想カメラとの間の位置関係を決定する。さらに、左右仮想カメラ設定機能51は、何らかの手段によって立体感の程度の変更が指示されると、当該指示に応じて、右仮想カメラと左仮想カメラとの間の位置関係を変更する。なお、このような、右仮想カメラおよび左仮想カメラの設定、ならびに、右仮想カメラと左仮想カメラとの間の位置関係の調整に係る具体例については、図13〜図15および図19などを参照して、後ほど詳細に説明する。
また、表示装置10において提供される立体感の程度を示す要求を受付ける入力手段の一例については、図16〜図18を参照して、後ほど詳細に説明する。なお、立体感調整の情報としては、ユーザが入力する形態に加えて、アプリケーションの制作者が予め意図した範囲に立体感を制限する形態なども存在する。
オブジェクト画像レンダリング機能52は、左右仮想カメラ設定機能51によって決定される右仮想カメラおよび左仮想カメラの設定値に基づいて、オブジェクト定義53を参照して、右オブジェクト画像71および左オブジェクト画像73を生成する。このオブジェクト定義53は、3次元仮想空間および当該3次元仮想空間内のオブジェクトなどの情報を含む。
また、オブジェクト画像生成機能50から背景画像生成機能60へ出力される「位置関係」は、右オブジェクト画像71と左オブジェクト画像73との間に生じ得る視差量と関連付けられる。より具体的には、右仮想カメラと左仮想カメラとの間の3次元仮想空間における距離が大きくなるほど(言い換えれば、2つの仮想カメラの間が離れるほど)、右オブジェクト画像71と左オブジェクト画像73との間には、より大きな視差量が生じ得る。そのため、背景画像生成機能60は、典型的には、右仮想カメラと左仮想カメラとの間の仮想空間距離(発生する視差量に比例)に応じて、右背景画像72および左背景画像74を生成する。なお、右仮想カメラと左仮想カメラとの間の位置関係としては、両仮想カメラ間の直線距離である仮想空間距離に限られず、特定の基準点についての角度差などを用いてもよい。
このオブジェクト画像生成機能50から背景画像生成機能60へ出力される位置関係として、右仮想カメラと左仮想カメラとの間の仮想空間距離が採用される場合には、表示装置10に表示されるレンダリング範囲を基準として規格化した値を用いることが好ましい。すなわち、ある好ましい形態として、オブジェクト画像生成機能50は、基準仮想カメラの視体積(図1の符号380)に含まれ、基準仮想カメラのカメラ方向に垂直な仮想平面である、「基準仮想平面領域(図3参照)の左右方向の幅」に対する、「右仮想カメラと左仮想カメラとの間の距離」の比を「位置関係」として出力する。そして、背景画像生成機能60は、この距離の比に応じて、右背景画像72および左背景画像74を生成する。
より具体的には、背景画像生成機能60は、背景画像範囲設定機能61と、背景画像レンダリング機能62と、背景画像定義63とを含む。背景画像定義63は、典型的には、表示装置10に表示されるサイズより大きなサイズを有する原背景画像BG(図1および図2参照)の情報を含む。背景画像範囲設定機能61は、背景画像定義63に含まれる原背景画像BGに対して、右背景画像72として出力すべき右描画範囲(後述する、図21(B)に示す右描画範囲412)を設定するとともに、当該右描画範囲を、当該右描画範囲の幅に、「基準仮想平面領域の左右方向の幅」に対する「右仮想カメラ302と左仮想カメラ304との間の距離」の比を乗じて得られる距離だけずらした位置に、左背景画像74として出力すべき左描画範囲(後述する、図21(B)に示す左描画範囲414)を設定する。
代替の構成として、背景画像定義63は、背景画像を生成するための別の3次元仮想空間(後述する、図22に示す3次元仮想空間VS)および当該3次元仮想空間内の背景オブジェクト(図22に示す原背景画像BG)などの情報を含んでいてもよい。この場合には、背景画像範囲設定機能61は、当該背景画像を生成するための3次元仮想空間内に設定される基準仮想カメラ(後述する、図23に示す基準仮想カメラ400)を基準として、背景オブジェクトを仮想的に撮影することで右背景画像72を生成するための右仮想カメラ(図23に示す右仮想カメラ(背景)402)、および、背景オブジェクトを仮想的に撮影することで左背景画像を生成するための左仮想カメラ(図23に示すおよび左仮想カメラ(背景)404)を設定する。そして、設定されたそれぞれの仮想カメラが背景オブジェクトを仮想的に撮影することで、右背景画像および左背景画像が生成される。なお、この場合の右仮想カメラ402および左仮想カメラ404の設定方法については、後述の[d3.変形例1]において詳述する。
また、表示データ生成機能70は、典型的には、右眼用および左眼用のそれぞれの画像を重ね合わせることで、表示装置10において表示される右眼用および左眼用の表示データを生成する。より具体的には、表示データ生成機能70は、右背景画像72の上に右オブジェクト画像71を重ねることで、右眼用の表示データを生成する。同様に、表示データ生成機能70は、左背景画像74の上に左オブジェクト画像73を重ねることで、左眼用の表示データを生成する。
なお、上述した、各仮想カメラの3次元仮想空間内の位置および視体積などは、任意の方法で指定することが可能であるが、関連する3次元仮想空間についてのレンダリング技術などとの一貫性を維持する観点からは、カメラ行列(プロジェクション行列およびビュー行列)として定義することが好ましい。このカメラ行列の詳細については、後述する。
[a5.典型的なアプリケーション]
上述のように、ユーザに注目してもらいたいオブジェクトのレンダリング(オブジェクト画像の生成)と、当該オブジェクトの背景として表示される画像のレンダリング(背景画像の生成)とを独立に行なう処理は、たとえば、シューティングゲームやアクションゲームのような、ユーザが特定のキャラクタオブジェクトを操作して楽しむようなアプリケーションに適切である。たとえば、ゲーム進行に伴って、表示装置10の表示面の奥側に向かってスクロール表示がなされるようなシューティングゲームを考えると、自キャラクタ(たとえば、戦闘機など)や敵キャラクタなどは、ユーザ操作に応じて、表示装置10の表示面での表示位置や表示態様を変化させてレンダリングする必要があるが、背景(たとえば、空、水平線、太陽、宇宙空間など)はほぼ固定した内容でレンダリングすることが好ましい。これは、現実空間においても、たとえば、空、水平線、太陽、宇宙空間などは、実質的に無限遠の位置にあるので、視点が変化した場合であっても、その見え方がそれほど大きく変化しないためである。このような現実空間での実際の見え方を表示装置10において表現できるように、ユーザに注目してもらいたいオブジェクトの移動とは独立して、背景画像は、ほぼ固定した状態(あるいは、よりスクロール速度の遅い状態)でレンダリングされる。
もちろん、本発明に係る立体表示処理は、アプリケーションの進行に伴って、背景画像として表示される内容を順次更新するような処理にも適用可能である。たとえば、ユーザ操作に応じて、キャラクタオブジェクトをレンダリングする視点を順次変更するような処理を考えると、キャラクタオブジェクトまでの距離と背景までの距離とは異なるので、同一の視点から見た場合であっても、それぞれの見え方(変化速度)は異なったものとなる。そのため、このような場合には、キャラクタオブジェクトの移動速度とは異なった速度で、背景をスクロール表示できるように、背景画像がオブジェクト画像とは独立して生成される。
<B.典型的な実装>
[b1.表示装置]
表示装置10としては、ユーザに向けて立体表示が可能なデバイスであれば、任意の型式の表示デバイスを採用することができる。すなわち、表示装置10としては、視差を有する2つの画像をユーザがそれぞれの眼で視認できるようなデバイスであればよい。典型的には、例えば、前面視差バリアタイプの液晶表示デバイスやレンチキュラータイプの表示デバイスなどを用いることができる。あるいは、表示装置10として、それに含まれる主波長成分の異なる2つの画像をそれぞれ独立に表示するとともに、透過波長範囲の異なる2つのカラーフィルタがそれぞれ組込まれたメガネをユーザに装着させることで、立体表示を行なう構成を採用してもよい。これに類似の構成として、偏光方向を異ならせて2つの画像をそれぞれ表示するとともに、当該2つの偏光方向に対応する偏光フィルタがそれぞれ組込まれたメガネをユーザに装着させることで、立体表示を行なう構成であってもよい。
以下、図5を参照して、視差光学系として視差バリアを有する前面視差バリアタイプの構成を採用した場合の表示装置10の構成について説明する。この表示装置10では、その表示面に、一定の視差を有する一対の右表示画像と左表示画像とを表示することで、左右両表示画像の間の視差量に応じた立体感をユーザに視認させることができる。
図5は、本発明の実施の形態に従う表示装置10の構造の一例を示す図である。図5には、前面視差バリアタイプの液晶表示デバイスの断面構造が示されている。図5に示す表示装置10は、ユーザが表示装置10に対峙した場合に、視差バリアによって、その右眼および左眼の視野範囲にそれぞれ異なる画素からの光が入射するように構成される。
より具体的には、表示装置10は、ガラス基板16とガラス基板18との間に設けられた、第1LCD116および第2LCD126を含む。第1LCD116および第2LCD126は、複数の画素を含み、かつバックライトからの光を画素単位で調節するための空間光変調器である。典型的には、第1LCD116の画素と第2LCD126の画素とは交互に配置される。ガラス基板18のガラス基板16の側とは反対側に、図示しないバックライトが設けられており、このバックライトからの光は第1LCD116および第2LCD126に向けて照射される。
ガラス基板16の第1LCD116および第2LCD126に接する側とは反対の側には、視差光学系である視差バリア12が設けられる。この視差バリア12には、複数のスリット14が所定間隔で行列状に設けられている。各スリット14の中心位置を通り、かつガラス基板16の面に対して垂直方向の軸を基準として、第1LCD116の画素と第2LCD126の対応する画素とが対称的に配置される。このようなスリット14に対応する画素との位置関係、ならびに第1LCD116および第2LCD126を、表示すべき画像に応じて適切に制御することで、ユーザの両眼の間に所定の視差を生じさせることができる。
すなわち、視差バリア12の各スリット14においては、ユーザの右眼および左眼による視界をそれぞれ対応する角度に制限するので、典型的には、ユーザの右眼からは、光軸Ax1上にある第1LCD116の画素のみが視認でき、一方、ユーザの左眼からは、光軸Ax2上にある第2LCD126の画素のみが視認できることになる。ここで、第1LCD116の画素および第2LCD126の画素に、所定の視差を有する2つの画像の対応するピクセルを表示させることで、ユーザに所定の視差を与えることができる。
なお、図5に示す例においては、視差バリア12のユーザ側の表面が表示装置10の「表示面」に相当する。
[b2.システム構成]
図6は、本発明の実施の形態に従う情報処理システム1の内部構成を示すブロック図である。図6を参照して、本実施の形態に従う情報処理システム1は、プロセッサによる処理が可能なコンピュータの典型例である。なお、情報処理システム1としては、パーソナルコンピュータ、ワークステーション、携帯端末、PDA(Personal Digital Assistance)、携帯電話、携帯型ゲーム装置などとして実現してもよい。
情報処理システム1は、表示装置10に加えて、CPU(Central Processing Unit)100と、ROM(Read Only Memory)102と、RAM(Random Access Memory)104と、入力部106と、第1VRAM(Video RAM)112と、第2VRAM122とを含む。なお、各部は、内部バスを介して、互いにデータ通信可能に接続されている。
CPU100は、ROM102などに格納されているプログラムをRAM104に展開した上で、当該プログラムを実行する。このプログラムの実行により、CPU100は、後述するような表示制御処理や付随する各種処理を提供する。なお、CPU100が実行するプログラムは、DVD−ROM(Digital Versatile Disc ROM)、CD−ROM(Compact Disk ROM)、フレキシブルディスク、フラッシュメモリ、各種のメモリカセットなどの記憶媒体によって流通する場合もある。そのため、情報処理システム1がこのような記憶媒体から格納されているプログラムコードなどを読出すようにしてもよい。この場合には、情報処理システム1が記憶媒体に対応する読出装置を利用できるようにしておく必要がある。あるいは、上述のようなプログラムがネットワークを通じて頒布されるような場合には、図示しない通信インターフェイスなどを介して、当該頒布されるプログラムを情報処理システム1へインストールしてもよい。
後述するように、本実施の形態に従うプログラムは、アプリケーションと、複数のアプリケーションに共通して利用されるライブラリ(あるいは、サブルーチンまたはモジュール)とに区別されている場合もある。この場合には、たとえば、ライブラリを含むファームウェアがROM102などに予め格納されており、情報処理システム1に装着可能な記憶媒体に格納されたアプリケーションをCPU100が読出して実行するような形態も可能である。
ROM102は、上述したようなCPU100で実行されるプログラムや各種の設定パラメータなどを不揮発的に記憶するデバイスである。ROM102としては、典型的には、マスクROMや半導体フラッシュメモリなどからなる。
RAM104は、上述したようなCPU100で実行されるプログラムを展開したり、プログラムの実行に必要なデータを一時的に記憶したりするワークメモリとして機能する。また、RAM104には、情報処理システム1で立体表示を行なうために使用される画像のデータが格納される場合もある。
入力部106は、ユーザ操作を受付けるデバイスであり、典型的には、キーボード、マウス、タッチペン、トラックボール、ペンタブレット、各種ボタン(スイッチ)などからなる。入力部106は、それに対して何らかのユーザ操作がなされると、対応する操作内容を示す信号をCPU100へ伝送する。
第1VRAM112および第2VRAM122は、それぞれ第1LCD116において表示される右表示画像および第2LCD126において表示される左表示画像に対応するデータを格納するための記憶デバイスである。すなわち、第1VRAM112および第2VRAM122には、CPU100が後述するような表示制御処理などを行なうことで得られる表示データが順次書込まれる。そして、第1VRAM112および第2VRAM122に書込まれた表示データに基づいて、表示装置10におけるレンダリング処理が制御される。
表示装置10は、上述の第1LCD116および第2LCD126に加えて、LCDドライバ114を含む。LCDドライバ114は、第1VRAM112および第2VRAM122と関連付けられている。そして、LCDドライバ114は、第1VRAM112に書込まれる表示データに基づいて、第1LCD116を構成するそれぞれの画素の点灯/消灯(ON/OFF)を制御するとともに、第2VRAM122に書込まれる表示データに基づいて、第2LCD126を構成するそれぞれの画素の点灯/消灯(ON/OFF)を制御する。
[b3.プログラム構成]
図7は、本発明の実施の形態に従う情報処理システム1において実装されるプログラム構成の一例を示す図である。
図7(A)は、本実施の形態に従う情報処理システム1において実装されるプログラム構成の一例を示す図である。図7(A)に示す情報処理システム1では、アプリケーション200Aおよびファームウェア250Aが実装されている。典型的には、アプリケーション200Aは記憶媒体に格納されて流通し、ファームウェア250AはROM102(図6)などに予め格納されている。情報処理システム1のCPU100は、必要に応じて、アプリケーション200Aおよびファームウェア250Aに含まれる命令を読出して実行する。
アプリケーション200Aは、入力モジュール202と、進行モジュール204と、オブジェクト画像レンダリングモジュール206と、背景画像範囲設定モジュール208と、背景画像レンダリングモジュール210と、オブジェクト定義データ212と、背景画像データ214と、表示データ生成モジュール216と、立体表示用ライブラリ218とを含む。入力モジュール202は、ユーザから入力部106(図6)などを介して与えられる指令に応じた内部コマンドを生成する。進行モジュール204は、入力モジュール202によって生成される内部コマンドに従って、アプリケーションを進行する。すなわち、進行モジュール204は、アプリケーションの進行に伴って、表示データや各種のパラメータを順次更新する。
オブジェクト画像レンダリングモジュール206は、進行モジュール204によって順次更新されるパラメータなどの値に従って、オブジェクト定義データ212を参照して、右オブジェクト画像および左オブジェクト画像を生成する。すなわち、オブジェクト画像レンダリングモジュール206は、図4に示すオブジェクト画像レンダリング機能52を提供する。より具体的には、オブジェクト画像レンダリングモジュール206は、進行モジュール204によって、図2に示す基準仮想カメラ300の情報のみが指定された場合には、立体表示用ライブラリ218をコールして、右仮想カメラ302および左仮想カメラ304の情報を取得し、これらの取得した情報に基づいて、右オブジェクト画像および左オブジェクト画像を生成する(詳細については後述する)。
背景画像範囲設定モジュール208は、進行モジュール204によって順次更新されるパラメータおよび/またはオブジェクト画像レンダリングモジュール206によるレンダリング範囲などに応じて、右背景画像および左背景画像として生成すべき範囲を決定する。すなわち、背景画像範囲設定モジュール208は、図4に示す背景画像範囲設定機能61を提供する。より具体的には、オブジェクト画像レンダリングモジュール206が立体表示用ライブラリ218をコールすると、その戻り値として、図2に示す基準仮想カメラ300についての基準仮想平面領域(図3参照)の幅を基準とした、右仮想カメラ302と左仮想カメラ304との間の距離の比が出力される。オブジェクト画像レンダリングモジュール206は、右背景画像と左背景画像との間で、表示されるべき背景画像の幅と上記距離の比とを乗じて得られる距離だけずらして、それぞれレンダリング範囲を設定する(詳細については後述する)。
背景画像レンダリングモジュール210は、背景画像範囲設定モジュール208によって設定されるレンダリング範囲に従って、背景画像データ214を参照して、右背景画像および左背景画像を生成する。
オブジェクト定義データ212は、オブジェクト画像を生成するための3次元仮想空間および当該3次元仮想空間に含まれるオブジェクトの定義を含む。背景画像データ214は、背景画像を生成するための画像データを含む。
表示データ生成モジュール216は、オブジェクト画像レンダリングモジュール206によって生成される右オブジェクト画像および左オブジェクト画像と、背景画像レンダリングモジュール210によって生成される右背景画像および左背景画像とに基づいて、右表示画像および左表示画像を生成する。すなわち、表示データ生成モジュール216は、図4に示す表示データ生成機能70を提供する。
立体表示用ライブラリ218は、図2に示す基準仮想カメラ300の情報などの指定に応答して、立体表示を行なうための右仮想カメラ302および左仮想カメラ304の設定値を算出する。また、立体表示用ライブラリ218は、算出した右仮想カメラ302と左仮想カメラ304との間の位置関係を示す値を戻り値として出力する。立体表示用ライブラリ218のインターフェイスの詳細については後述する。
ファームウェア250Aは、図6に示す情報処理システム1を構成する各ハードウェアを制御するための機能や、メニュー画面などを表示したりする機能を提供する。なお、ファームウェア250Aとしては、OS(Operating System)の一部または全部を含むようにしてもよい。
図7(A)に示すプログラム構成においては、アプリケーション200Aに立体表示用ライブラリ218が含まれている例を示すが、この立体表示用ライブラリ218は、図7(B)に示すように、立体表示を含む複数のアプリケーションに共有される形態で実装してもよい。
図7(B)は、本実施の形態に従う情報処理システム1において実装されるプログラム構成の別の一例(変形例)を示す図である。図7(B)に示すプログラム構成においては、立体表示用ライブラリ218は、ファームウェア250Bの一部として組込まれている。一方、アプリケーション200Bは、立体表示用ライブラリ218を含んでおらず、必要に応じて、ファームウェア250Bの立体表示用ライブラリ218をコールすることになる。
[b4.立体表示用ライブラリ]
図8は、図7に示す立体表示用ライブラリ218について入出力されるデータ項目を説明するための図である。本実施の形態に従う立体表示用ライブラリ218は、表示装置10における立体表示に係るモードとして、2つのモード(「アプリケーション優先モード」および「リアルモード」)が選択的可能になっている。これらの2つのモードについての詳細は後述するが、立体表示用ライブラリ218を利用するときには、上記2つのモードの一方を示すモード情報が指定される。その上で、以下に示すような、パラメータが立体表示用ライブラリ218に入力される。
具体的には、「アプリケーション優先モード」が指定されると、立体表示用ライブラリ218は、(1)基準仮想カメラ情報、(2)基準仮想面情報、(3)視差判定面情報、(4)モード情報の入力を受付けて、(5)右仮想カメラ情報、(6)左仮想カメラ情報、(7)仮想カメラ間距離を出力する。
(1)基準仮想カメラ情報は、図2に示す基準仮想カメラ300の配置位置および視体積(視野角、ニアクリップ面、ファークリップ面などの設定値)などを定義する情報であり、典型的には、カメラ行列が用いられる。詳細については後述するが、このカメラ行列は、プロジェクション行列およびビュー行列を含む。
(2)基準仮想面情報は、図2に示す基準仮想カメラ300に対する基準仮想面(基準仮想平面領域を含む平面)(図3参照)の位置を定義するための情報であり、典型的には、基準仮想カメラ300の配置位置から基準仮想面(基準仮想平面領域)(図3参照)までの仮想空間距離を含む。
(3)視差判定面情報は、視差判定面を定義するための情報であり、典型的には、図2に示す基準仮想カメラ300の配置位置から視差判定面までの仮想空間距離、または、基準仮想面と視差判定面との間の距離を含む。
(4)モード情報は、上述の「アプリケーション優先モード」および「リアルモード」のうち、いずれかを含む。
(5)右仮想カメラ情報は、図2に示す基準仮想カメラ300の設定に応じて算出される、右仮想カメラ302の配置位置および視体積(視野角、ニアクリップ面、ファークリップ面などの設定値)などを定義する情報である。同様に、(6)左仮想カメラ情報は、図2に示す基準仮想カメラ300の設定に応じて算出される、左仮想カメラ304の配置位置および視体積(視野角、ニアクリップ面、ファークリップ面などの設定値)などを定義する情報である。典型的には、右仮想カメラ情報および左仮想カメラ情報のいずれについても、プロジェクション行列およびビュー行列を含む、カメラ行列が用いられる。
(7)仮想カメラ間距離は、基準仮想カメラ300の設定に応じて算出される、右仮想カメラ302と左仮想カメラ304との間の位置関係を示す情報であり、3次元仮想空間上における右仮想カメラ302と左仮想カメラ304との間の距離の情報を含む。好ましくは、仮想カメラ間距離としては、右仮想カメラ302と左仮想カメラ304との間の距離を規格化した値、具体的には、基準仮想平面領域(図3参照)の幅を基準とした、右仮想カメラ302と左仮想カメラ304との間の距離の比が用いられる。
一方、「リアルモード」が指定されると、立体表示用ライブラリ218は、(1)基準仮想カメラ情報、(2)基準仮想面情報、(3’)基準立体度合、の入力を受付けて、(5)右仮想カメラ情報、(6)左仮想カメラ情報、(7)仮想カメラ間距離を出力する。すなわち、「リアルモード」が指定されると、立体表示用ライブラリ218は、(3)視差判定面情報に代えて、(3’)基準立体度合を受付ける。
(3’)基準立体度合は、表示装置10における立体表示の立体感を調整するためのパラメータである。本実施の形態に従う「リアルモード」では、現実に近い立体表示を行なうための右仮想カメラ302および左仮想カメラ304の設定を決定することになる。しかしながら、アプリケーションの種類や進行状況によっては必ずしも現実に近い立体表示をしたくない場合も考えられ、このような場合に、(3’)基準立体度合を適宜設定することで、立体表示における立体感の調整が行なわれる。
なお、これらの入出力値(行列値を含む)は、立体表示用ライブラリ218およびアプリケーション200A,200Bに含まれるいずれのモジュールによってアクセス可能な変数格納領域に保持される場合もある。
上述のように、立体表示用ライブラリ218は、右仮想カメラ302および左仮想カメラ304に設定された視体積を示す情報を出力する。すなわち、本実施の形態に従うプログラムでは、基準仮想カメラの設定情報を立体表示用ライブラリ218に与えることで、右仮想カメラ302と左仮想カメラ304の2つの仮想カメラの設定情報を取得することができる。
<C.オブジェクト画像生成処理>
以下、立体表示用ライブラリ218での処理内容を含めた、右オブジェクト画像および左オブジェクト画像の生成処理の詳細について説明する。
[c1.概要]
図9は、本発明の実施の形態に従うオブジェクト画像生成処理の対象となる3次元仮想空間の一例を示す模式図である。図10は、図9に示す状態において生成されるオブジェクト画像(右オブジェクト画像および左オブジェクト画像)の生成処理を示す模式図である。図11は、図10に示す右仮想カメラ302および左仮想カメラ304によってそれぞれ生成されるオブジェクト画像の一例を示す図である。
図9および図10に示すように、本実施の形態においては、基本的には、共通の表示対象(被写体)を含み、かつ所定の視差を有する一対のオブジェクト画像(ステレオ画像)を用いて、立体表示を行なう。このような一対のオブジェクト画像は、3次元仮想空間内に一対の仮想カメラ(右仮想カメラ302および左仮想カメラ304)を配置し、この一対の仮想カメラがそれぞれ3次元仮想空間内のオブジェクトを仮想的に撮影することで、動的に生成される。すなわち、ポリゴン生成といったコンピュータグラフィックスの技術を用いて、共通のオブジェクトに対して、視点を異ならせた2つの仮想カメラを用いて、一対のオブジェクト画像がレンダリングされる。
図9および図10に示す3次元仮想空間においては、右仮想カメラ302および左仮想カメラ304が仮想空間距離Dfだけ離されて配置されているものとする。このような配置によって、右仮想カメラ302および左仮想カメラ304によってそれぞれ生成される右オブジェクト画像と左オブジェクト画像との間には、この仮想空間距離Dfに応じた視差が生じる。なお、右仮想カメラ302が3次元仮想空間を撮影する方向である右カメラ方向303と、左仮想カメラ304が3次元仮想空間を撮影する方向である左カメラ方向305とは、同じ向きである。すなわち、右カメラ方向303と左カメラ方向305とは平行である。
なお、右仮想カメラ302および左仮想カメラ304の遠方側から、オブジェクトOBJ1およびオブジェクトOBJ2が順に配置されているものとする。一例として、オブジェクトOBJ1は四角錐であり、オブジェクトOBJ2は球体であるとする。
右仮想カメラ302および左仮想カメラ304の各々は、3次元仮想空間のうち、各カメラ方向の所定範囲にあるオブジェクトのみをレンダリングする。すなわち、右仮想カメラ302は、対応する視野角、ニアクリップ面、ファークリップ面によって定義される視体積に含まれる範囲をレンダリングし、左仮想カメラ304は、対応する視野角、ニアクリップ面、ファークリップ面によって定義される視体積に含まれる範囲をレンダリングする。
また、3次元仮想空間内には、基準仮想面、および当該基準仮想面上の一部の領域である基準仮想平面領域が設定される。この基準仮想面(または、基準仮想平面領域)は、上述したように、表示装置10の表示面の位置に対応する平面(または、領域)であり、右カメラ方向303および左カメラ方向305のいずれに対して垂直となるように設定される。この基準仮想平面領域は、表示装置10で立体表示を行なった際に、ユーザが表示装置10の表示面付近にあるように感じる3次元仮想空間内の位置および領域を定義する。
このようにレンダリング範囲(視体積)が設定されると、右仮想カメラ302および左仮想カメラ304からは、図11に示すようなオブジェクト画像がそれぞれ生成される。図11には、図9および図10に示すような3次元仮想空間において、右仮想カメラ302が仮想的に撮影を行なうことで生成される右オブジェクト画像IMG1と、左仮想カメラ304が仮想的に撮影を行なうことで左オブジェクト画像IMG2とが例示される。
右オブジェクト画像IMG1と左オブジェクト画像IMG2とを比較すると、右オブジェクト画像IMG1内におけるオブジェクトOBJ1の存在位置は、左オブジェクト画像IMG2内におけるオブジェクトOBJ1の位置と実質的に一致する。これに対して、右オブジェクト画像IMG1内におけるオブジェクトOBJ2の位置は、左オブジェクト画像IMG2内におけるオブジェクトOBJ2の存在位置とは異なっている。すなわち、表示装置10に対峙するユーザにとってみれば、オブジェクトOBJ1については視差がない状態で視認され、一方、オブジェクトOBJ2についてはある視差量を有する状態で視認される。
言い換えれば、図9に示すように、3次元仮想空間内において、オブジェクトOBJ1を通る位置に基準仮想面(基準仮想平面領域)が設定されているため、オブジェクトOBJ1については、右オブジェクト画像と左オブジェクト画像との間で、その表示のされ方が一致する。その結果、表示装置10の表示面において、オブジェクトOBJ1についての視差が実質的に無くなり、ユーザにとってみれば、オブジェクトOBJ1の存在する付近の空間がちょうど表示装置10の表示面付近にあるように見える。
上述したように、ユーザに注目してもらいたいオブジェクト(上述の例では、オブジェクトOBJ1)が表示装置10の表示面付近にあるように立体表示させることが一般的であると考えられる。このようにユーザに注目してもらいたいオブジェクトを立体表示させるためには、3次元仮想空間内に右仮想カメラ302および左仮想カメラ304を設定し、続いて、表示装置10の表示面付近に表示させたいオブジェクトの位置に応じた位置に、右カメラ方向303および左仮想カメラ304に垂直になるように、基準仮想面を設定する必要がある。
本実施の形態においては、オブジェクトに係るレンダリングの処理負荷を低減する観点から、右仮想カメラ302および左仮想カメラ304のレンダリング範囲(視体積)は、いずれも基準仮想平面領域を基準に設定される。図10に示すように、右仮想カメラ302および左仮想カメラ304が、両仮想カメラを通る基準線350上に、仮想空間距離Dfだけ離れて設定されている場合においては、右仮想カメラ302および左仮想カメラ304の各々は、その配置位置を基準とする視体積についてレンダリングすることが可能であるが、本実施の形態においては、基準仮想平面領域を基準とするレンダリング範囲が設定される。すなわち、右仮想カメラ302については、その配置位置から基準仮想平面領域の外周によって規定される視体積がレンダリング範囲に設定される。左仮想カメラ304についても、その配置位置から基準仮想平面領域の外周によって規定される視体積がレンダリング範囲に設定される。
このように、右仮想カメラ302および左仮想カメラ304に対して、基準仮想平面領域の外周によって規定される視体積をそれぞれ設定することで、右仮想カメラ302および左仮想カメラ304がそれぞれ生成する右オブジェクト画像および左オブジェクト画像を、そのまま表示装置10での立体表示に用いることができる。より具体的には、右仮想カメラ302から出力された右オブジェクト画像は、そのまま第1VRAM112(図6)へ書込まれ、左仮想カメラ304から出力された左オブジェクト画像は、そのまま第2VRAM122(図6)へ書込まれる。このように、本実施の形態においては、表示装置10での表示に使用されない範囲の(余分な)画像を生成することがない。したがって、不要なレンダリング処理を回避できる。
一方で、3次元仮想空間内に配置された、ユーザに注目してもらいたいオブジェクトを表示装置10において立体表示する場合には、右仮想カメラ302および左仮想カメラ304に対して、それぞれ異なる視野範囲(視体積)を設定する必要がある。そのため、立体表示を含むアプリケーションの制作者は、当該アプリケーションの進行に関連付けられた各シーンにおいて、ユーザに注目してもらいたいオブジェクトに応じて、右仮想カメラおよび左仮想カメラの設定値(配置位置および視体積など)を適切に指定する必要がある。このような作業は制作者の負担が大きく、立体表示を利用したアプリケーションを制作する際の障壁となり得る。
そこで、本実施の形態に従うプログラム(典型的には、上述の立体表示用ライブラリ218として実装)は、図1に示すような、平面表示のみを利用する(立体表示を利用しない)アプリケーションと同様のパラメータを指定するだけで、立体表示を行なうために必要な各種パラメータを自動的に設定できる機能を提供する。
より具体的には、平面表示のみを利用するアプリケーションと同様に、制作者は、表示装置10に表示させたいオブジェクトに応じた位置に1つの基準仮想カメラ300(図2および図3参照)を設定する。なお、この基準仮想カメラの設定値としては、基準仮想カメラ300の配置位置および対応する視体積の値を含む。このような設定項目に加えて、制作者は、表示装置10の表示面付近に表示させたいオブジェクトが存在する位置を基準仮想面として設定する。そして、この基準仮想面のうち、基準仮想カメラの視体積の内部に含まれる領域が、基準仮想平面領域として決まる。
すると、本実施の形態に従うプログラムは、上述のような設定に基づいて、右仮想カメラ302および左仮想カメラ304の配置位置および視体積などをそれぞれ算出する。このような処理によって、立体表示を利用したアプリケーションの制作者は、従来の平面表示のみを利用するアプリケーションの開発と同様の作業量で、3次元仮想空間内の意図した範囲を表示装置10上で立体表示させることができる。また、基準仮想平面領域付近に存在するオブジェクトは、視差が無いか、もしくは、視差が少ない状態で表示装置10の表示面に表示されるので、当該アプリケーションをプレイするユーザにとってみれば、そのオブジェクトを最も視認し易くなる。さらに、基準仮想平面領域に設定した領域は、表示装置10で確実に表示されることが保証されるため、アプリケーションの制作者にとってみれば、右仮想カメラ302および左仮想カメラ304の設定値などを考慮することなく、基準仮想カメラおよび基準仮想平面領域のみを考慮するだけでよい。そのため、アプリケーションの開発が容易になる。
また、アプリケーションの内容によっては、3次元仮想空間の状態をリアルにユーザに表示したい場合もある。すなわち、ユーザに対して、3次元仮想空間に存在しているかのような感覚を与えることも有効な場合がある。この場合には、ユーザは、表示装置10の立体表示によって、本当にその場に現物の表示対象が存在しているかのような感覚を得ることになる。
上述のように、アプリケーションの内容やその進行に応じて、ユーザに対してどのような立体表示を行なうかというニーズは異なったものとなる。そこで、本実施の形態に従うプログラムでは、少なくとも2つのモード(上述した、「アプリケーション優先モード」および「リアルモード」)が用意される。そして、アプリケーションの制作者が任意に使用するモードを指定することで、当該モードに応じた、右仮想カメラ302および左仮想カメラ304の設定値が自動的に決定される。
より具体的には、「アプリケーション優先モード」では、アプリケーションの制作者が意図した範囲の内容を立体表示できるように、右仮想カメラ302および左仮想カメラ304の設定値が決定される。一方、「リアルモード」では、ユーザに対して、3次元仮想空間に存在しているかのような感覚を与えることができるように、右仮想カメラ302および左仮想カメラ304の設定値が決定される。
以下、各モードにおける、右仮想カメラ302および左仮想カメラ304の設定値を決定する処理の詳細について説明する。
[c2.アプリケーション優先モード]
「アプリケーション優先モード」においては、アプリケーションの制作者は、平面表示のみを利用する(立体表示を利用しない)アプリケーションを制作する場合と同様に、1つの基準仮想カメラ(図2および図3に示す基準仮想カメラ300)の配置位置および視体積(描画範囲)を指定する(図8に示す(1)基準仮想カメラ情報)。同時に、制作者は、指定した視体積に含まれる空間内のいずれの平面位置が、表示装置10において立体表示をした際にその表示面付近に位置するように表示したいかを指定する(図8に示す(2)基準仮想面情報)。さらに、制作者は、右オブジェクト画像と左オブジェクト画像との間に生じる視差量を評価して、ユーザが表示装置10での立体表示を気持ちよく受け入れることができることを保証するための視差判定面を指定する(図8に示す(3)視差判定面情報)。
この指定に応答して、立体表示用ライブラリ218は、以下詳細に説明するように、右仮想カメラ302によって生成される右オブジェクト画像と左仮想カメラ304によって生成される左オブジェクト画像との間に生じる視差が予め定められた値を超えないように、右仮想カメラ302および左仮想カメラ304を設定する。そして、立体表示用ライブラリ218は、設定された右仮想カメラ302を定義するための(5)右仮想カメラ情報と、設定された左仮想カメラ304を定義するための(6)左仮想カメラ情報とを出力するとともに、右仮想カメラ302と左仮想カメラ304との間の位置関係を示す(7)仮想カメラ間距離を出力する。
(c2−i.プロジェクション行列およびビュー行列)
以下の説明においては、(1)基準仮想カメラ情報、(5)右仮想カメラ情報、および、(6)左仮想カメラ情報は、いずれもカメラ行列として定義される例を示す。先に、このカメラ行列について説明する。
このカメラ行列は、仮想カメラの視野範囲(視体積)を定義する方法の一例であり、典型的には、3次元仮想空間を仮想カメラから見た方向に変換するためのビュー行列(3行×4列)と、2次元画面(投影面)に投影するためのプロジェクション行列(4行×4列)とを含む。
図12は、本発明の実施の形態に従うカメラ行列を説明するための図である。図12に示すように、ある3次元仮想空間をX,Y,Zの3軸で定義する。仮想カメラの座標を(cx,cy,cz)とし、注視点(仮想カメラの方向と基準仮想面との交点)の座標を(bx,by,bz)とする。また、仮想カメラからニアクリップ面までの距離をnとし、仮想カメラからファークリップ面までの距離をfとする。さらに、仮想カメラの向きを示すベクトルを、正面方向ベクトル(Zx,Zy,Zz)、上方向ベクトル(Yx,Yy,Yz)および左方向ベクトル(Xx,Xy,Xz)として定義する。なお、これらのベクトルは、いずれもその大きさが「1」の単位ベクトルとする。
図12に示す場合のプロジェクション行列を(1)式として示し、ビュー行列を(2)式として示す。
Figure 0005405264
このようなカメラ行列(プロジェクション行列およびビュー行列)を用いることで、アプリケーション毎にそれぞれ設定される3次元仮想空間に対応することができる。すなわち、カメラ行列は、汎用的な次元で定義される行列であり、アプリケーションに依存することなく、上述のような仮想カメラの設定処理を実行することができる。
なお、図12では、仮想カメラの座標と注視点の座標とを用いて、プロジェクション行列を生成する方法について例示したが、照明方向と仮想カメラの向きベクトルとを用いて、プロジェクション行列を生成することができる。
また、図12では、ニアクリップ面を規定する4辺の位置(大きさ)を用いて、ビュー行列を生成する方法について例示したが、仮想カメラの視野角に基づいてビュー行列を生成することもできる。
なお、プロジェクション行列およびビュー行列は、いずれも双方向に変換が可能である。たとえば、プロジェクション行列についてみれば、仮想カメラの座標および注視点の座標に基づいてプロジェクション行列を生成することも可能である一方、プロジェクション行列から仮想カメラの座標および注視点の座標を算出することも可能である。
したがって、設定された基準仮想カメラ300に応じた、右仮想カメラ302および左仮想カメラ304のそれぞれの配置位置、ならびにそれらの視体積が後述する図13および図14に示すような方法に従って設定されると、これらの情報に基づいて、右仮想カメラ302および左仮想カメラ304の各々のカメラ行列(プロジェクション行列およびビュー行列)が出力される。
(c2−ii.基準仮想面)
基準仮想面は、図9に示すように、基準仮想カメラ300を基準として設定される。以下の説明においては、(2)基準仮想面情報として、基準仮想カメラ300から設定される基準仮想面までの基準仮想カメラ300のカメラ方向301(基準カメラ方向)に沿った仮想空間距離Dとして定義される例を示す。
(c2−iii.視差判定面)
図13は、本発明の実施の形態に従う右仮想カメラ302および左仮想カメラ304の設定処理を2次元的に説明するための図である。図14は、図13に示す右仮想カメラおよび左仮想カメラの設定処理の処理結果に応じて設定される視体積を示す図である。
図13および図14には、表示装置10を見るユーザが心地よく立体表示を受け入れることのできる深さ(奥行き)に対応する位置に視差判定面361を設定する例を示す。すなわち、表示装置10の表示面付近には、3次元仮想空間の基準仮想平面領域360に位置する表示対象が表示されるため、視差判定面361に位置する表示対象は、表示装置10の表示面からより奥側に見えることになる。右オブジェクト画像と左オブジェクト画像との間の視差判定面361に対応する部分については、右仮想カメラ302と左仮想カメラ304との位置関係に応じた視差量が生じる。この視差量が相対的に大きくなると、表示装置10を見るユーザへの負担が大きくなる。そのため、視差判定面361における視差が所定のしきい値を超えないように、右仮想カメラ302および左仮想カメラ304を設定する必要がある。
なお、図13および図14においては、視差判定面361を、基準仮想平面領域360について基準仮想カメラ300とは反対側に設定した場合を例示するが、基準仮想カメラ300の側に設定してもよい。この場合には、視差判定面361は、表示装置10を見るユーザが心地よく立体表示を受け入れることのできる画像の飛び出し量に対応する位置に設定される。
さらに、基準仮想平面領域360より遠方側に第1の視差判定面を設定するとともに、基準仮想平面領域360より近傍側に第2の視差判定面を設定し、それぞれの視差判定面において条件を満足するか否かを評価してもよい。
いずれの場合にも、視差判定面は、基準仮想平面領域360と平行に配置され、右仮想カメラ302によって生成される右オブジェクト画像と左仮想カメラ304によって生成される左オブジェクト画像との間に生じる視差を評価するために用いられる。すなわち、視差判定面361に存在する表示対象についての視差を所定のしきい値以下に維持することで、少なくとも、基準仮想平面領域360から視差判定面361の間に存在するオブジェクトについては、その立体表示をユーザが気持ちよく受け入れることが保証される。
この視差判定面361における視差の限界値は、情報処理システム1(表示装置10)の物理的な大きさおよび特性、ならびに、ユーザに依存する身体的な特性などに応じて定まる。より具体的には、この視差の限界値は、表示装置10の表示サイズ(縦長さと横長さ)、各画素のサイズ、視差バリアの間隔、ユーザの眼の間隔(図5に示す実距離L1)、ユーザから表示装置10の表示面までの距離(図5に示す実距離L2)などに依存した値となる。
以下の説明においては、(3)視差判定面情報については、図13(A)に示すように、基準仮想平面領域360から視差判定面361までの仮想空間距離Aとして定義される例を示す。
なお、(2)基準仮想面情報、および(3)視差判定面情報としては、上述したものに限られず、基準仮想カメラ300から視差判定面361までの仮想空間距離を定義した上で、基準仮想カメラ300から基準仮想平面領域360までの仮想空間距離を、基準仮想カメラ300から視差判定面361までの仮想空間距離を基準とした比率として与えてもよい。
(c2−iv.右仮想カメラおよび左仮想カメラの設定処理)
次に、図13および図14を参照して、基準仮想カメラ300の設定に応答して、右仮想カメラ302および左仮想カメラ304がどのように設定されるかについて説明する。
図13(A)を参照して、まず、3次元仮想空間のある位置に基準仮想カメラ300の設定が指定されたものとする。同時に、基準仮想カメラ300から仮想空間距離Dだけ離れた位置に基準仮想平面領域360が指定され、基準仮想平面領域360から仮想空間距離Aだけ離れた位置に視差判定面361が指定されたものとする。
基準仮想カメラ300と基準仮想平面領域360との間の仮想空間距離が与えられると、図13(A)に示すように、この基準仮想カメラ300の視体積380に含まれる、基準仮想カメラ300のカメラ方向に直交する平面領域として、基準仮想平面領域360が定まる。この視体積380は、3次元仮想空間のうち、基準仮想カメラ300によって有効にレンダリングされる範囲に相当する。
より具体的には、視体積380は、基準仮想カメラ300の視野角を頂点とする四角錐をニアクリップ面364およびファークリップ面366で区切った錐体に相当する。すなわち、視体積380は、基準仮想カメラ300の視野角、基準仮想カメラ300から最も近傍側の面に対応するニアクリップ面364、および、基準仮想カメラ300から最も遠方側の面に対応するファークリップ面366によって定義される。言い換えれば、視体積380は、基準仮想平面領域360を定義する各頂点360a,360b,360c,360dと内接することになる。
図13(A)に示す状態から、視差判定面361を含む平面上において、右最大視差面362および左最大視差面363の位置が決定される。この右最大視差面362は、視差判定面361における視差を限界値とした場合における、左仮想カメラ304によってレンダリングされる範囲である。同様に、この左最大視差面363は、視差判定面361における視差を限界値とした場合における、右仮想カメラ302によってレンダリングされる範囲である。
より具体的には、右最大視差面362と左最大視差面363との間のずれ量が視差判定面361において許容される視差(限界視差量に対応する最大値)と一致するように、右最大視差面362および左最大視差面363の位置がそれぞれ決定される。言い換えれば、図13(B)に示すように、視差判定面361をそれぞれ紙面左側および紙面右側にスライドさせることで、右最大視差面362および左最大視差面363が得られる。ここで、右最大視差面362と左最大視差面363との間の距離である仮想空間距離Sが、表示装置10の表示面における限界視差量に相当する。
基準仮想平面領域360と、上述のような手順によって位置が定まった右最大視差面362および左最大視差面363とに基づいて、右仮想カメラ302および左仮想カメラ304の配置位置がそれぞれ決定される。本実施の形態においては、図13(C)に示すように、基準仮想カメラ300を通り、かつ、基準仮想平面領域360に平行な、基準線350が定義され、この基準線350上に、右仮想カメラ302および左仮想カメラ304が設定される。より具体的には、基準仮想平面領域360と右最大視差面362とを含む視体積が定義できる位置に右仮想カメラ302が設定される。同様に、基準仮想平面領域360と左最大視差面363とを含む視体積が定義できる位置に左仮想カメラ304が設定される。すなわち、基準仮想カメラ300の配置位置を基準線350に沿って右側に移動させた位置に右仮想カメラ302が設定され、基準仮想カメラ300の配置位置を基準線350に沿って左側に移動させた位置に左仮想カメラ304が設定される。
なお、図13に示す例では、基準仮想カメラ300の配置位置から基準線350に沿ってDf/2だけ右側に移動させた位置に右仮想カメラ302が設定され、基準線350の配置位置から基準線350に沿ってDf/2だけ左側に移動させた位置に左仮想カメラ304が設定される。
上述のように設定された右仮想カメラ302および左仮想カメラ304の視体積について見ると、図14(B)〜図14(D)に示すように、右仮想カメラ302および左仮想カメラ304の視体積は、いずれも、基準仮想カメラ300の視体積380に含まれる基準仮想平面領域360の範囲(断面領域)が維持されるように設定される。すなわち、右仮想カメラ302の視体積382における基準仮想平面領域360に対応する位置の断面、および、左仮想カメラ304の視体積384における基準仮想平面領域360に対応する位置の断面が、いずれも基準仮想カメラ300の視体積380における基準仮想平面領域360に対応する位置の断面と一致するように、右仮想カメラ302の視体積382および左仮想カメラ304の視体積384が設定される。
言い換えれば、先に、基準仮想カメラ300の視体積380に含まれる基準仮想平面領域360の4つの頂点360a,360b,360c,360dの位置がそれぞれ取得される。そして、右仮想カメラ302の配置位置から基準仮想平面領域360の頂点360a,360b,360c,360dをそれぞれ通る直線372a,372b,372c,372dによって、右仮想カメラ302の視体積382が定義される。このとき、直線372a,372b,372c,372dは、それぞれ右最大視差面362の頂点362a,362b,362c,362dと交差するように設定される。また、左仮想カメラ304の配置位置から基準仮想平面領域360の頂点360a,360b,360c,360dをそれぞれ通る直線374a,374b,374c,374dによって、左仮想カメラ304の視体積384が定義される。このとき、直線374a,374b,374c,374dは、それぞれ左最大視差面363の頂点363a,363b,363c,363dと交差するように設定される。
このように設定される右仮想カメラ302および左仮想カメラ304のカメラ方向は、いずれも基準仮想カメラ300の基準カメラ方向301と平行に維持される。その結果、右仮想カメラ302および左仮想カメラ304のカメラ方向は、いずれも基準線350と直交する方向となる。
[c3.リアルモード]
「リアルモード」においては、アプリケーションの制作者は、平面表示のみを利用する(立体表示を利用しない)アプリケーションを制作する場合と同様に、1つの基準仮想カメラ(図2および図3に示す基準仮想カメラ300)の配置位置および視体積(描画範囲)を指定する(図8に示す(1)基準仮想カメラ情報)。同時に、制作者は、指定した視体積に含まれる空間内のいずれの平面位置が、表示装置10において立体表示をした際にその表示面付近に位置するように表示したいかを指定する(図8に示す(2)基準仮想面情報)。
さらに、制作者は、立体表示における立体感の調整を行なうための基準立体度合を指定する(図8に示す(3’)基準立体度合)。すなわち、リアルモードでは、上述のアプリケーション優先モードのような(3)視差判定面情報は必要なく、それに代えて、(3’)基準立体度合が入力される。上述したように、(3’)基準立体度合は、アプリケーションの種類や進行状況によっては必ずしも現実に近い立体表示をしたくない場合に、立体表示の立体感の調整についての指示に使用される。典型的には、基準立体度合は、「0」から「1」までの間の値をとる係数として与えられ、「1」に設定された場合には、現実に近い立体表示をそのまま行なえるように右仮想カメラ302および左仮想カメラ304が設定され、「0」に近づくほど立体感を弱めて立体表示されるように、右仮想カメラ302および左仮想カメラ304が設定される。
これらの指定に応答して、立体表示用ライブラリ218は、以下詳細に説明するように、両仮想カメラ間の仮想空間距離が許容される最大値を越えないように、右仮想カメラ302および左仮想カメラ304が設定される。この許容される仮想空間距離の最大値は、現実に近い立体表示を行なうための両仮想カメラ間の仮想空間距離と、基準立体度合とを乗じた値となる。
(c3−i.右仮想カメラおよび左仮想カメラの設定処理)
図15は、この発明の実施の形態に従うリアルモードにおける処理内容を説明するための図である。このリアルモードでは、図15(A)に示すように、ユーザが表示装置10に対峙して表示面を見る場合の光学的な関係と等価なレンダリング処理がなされる。すなわち、ユーザの右眼と左眼との間の実距離L1、ユーザの両眼から表示装置10の表示面までの実距離L2、および表示装置10の表示面の実画面幅L3で規定される位置関係に対応して、右仮想カメラおよび左仮想カメラの設定位置および視体積が決定される。
なお、リアルモードにおいて入力される、(1)基準仮想カメラ情報、および(2)基準仮想面情報は、基本的には、レンダリング対象の基準仮想平面領域360を指定するために用いられる。すなわち、基準仮想カメラ300、ならびにそれに関連して設定される右仮想カメラ302および左仮想カメラ304の位置は、アプリケーション側で設定される位置から変更され得る。
たとえば、図15(B)に示すように、基準仮想カメラ300から仮想空間距離Dだけ離れた位置に基準仮想平面領域360が設定された場合を考える。この場合には、基準仮想カメラ300に設定されている視体積と仮想空間距離Dとに基づいて、基準仮想平面領域360の範囲が決定される。このとき、基準仮想平面領域360の表示面の横方向に対応する幅は、仮想空間距離Wであるとする。
そして、この基準仮想平面領域360の(3次元仮想空間内の)範囲と表示装置10の表示面の(現実の)大きさとが対応するように、基準仮想カメラ300の位置および視体積が調整される。より具体的には、「実距離L2:仮想空間距離D’=表示面の実画面幅L3:仮想空間距離W」の関係が成立するように、基準仮想平面領域360から基準仮想カメラ300までの仮想空間距離D’が決定される。このとき、図15(C)に示すように、基準仮想平面領域360の大きさは一定に維持されるので、基準仮想カメラ300の視野範囲(視体積)は、基準仮想平面領域360からの距離の変更に伴って、再設定される。
このように、ユーザと表示装置10の表示面との間の実距離に応じて、右仮想カメラ302と左仮想カメラ304との間で許容される仮想空間距離の最大値が決定される。
基準仮想カメラ300が再設定された後、右仮想カメラ302および左仮想カメラ304が、その両仮想カメラの間の仮想空間距離がユーザの眼の実間隔に対応するように、設定される。より具体的には、「実距離L2:仮想空間距離D’=実距離L1:仮想空間距離Df」の関係が成立するように、仮想空間距離Dfが決定される。この仮想空間距離Dfは、表示装置10で現実に近い立体表示を行なうための、ユーザが表示装置10に対峙して表示面を見る場合に許容される理論的な最大値に相当する。そして、この仮想空間距離Dfに基準立体度合を乗じた値が、右仮想カメラ302と左仮想カメラ304との間の仮想空間距離として決定される。より具体的には、基準仮想カメラ300を中心にして、両仮想カメラの間がこの決定された仮想空間距離だけ離れるように、右仮想カメラ302および左仮想カメラ304の位置が決定される。
このような処理によって、アプリケーションの制作者がユーザに表示することを意図した3次元仮想空間の表示において、表示装置10において本当に現物が存在しているかのように表現することができる。すなわち、上述のように右仮想カメラ302および左仮想カメラ304を設定することで、3次元仮想空間における基準仮想カメラ300と基準仮想平面領域360付近のオブジェクトとの位置関係は、現実空間におけるユーザの両眼と表示装置10の表示面との位置関係に一致するため、あたかも、表示装置10の画面の大きさの枠を持った窓から、仮想空間が見えているような表示が可能となる。
[c4.立体感調整]
上述した、アプリケーション優先モードおよびリアルモードにおいて決定される、右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfは、必ずしもそのまま用いるのではなく、その後に所定の条件(アプリケーションによって許容される値やユーザ操作など)によって、さらに調整された後に用いられてもよい。その場合には、仮想空間距離Dfは、アプリケーションなどから与えられた条件下における、右仮想カメラ302と左仮想カメラ304との間の最大値を示す。すなわち、右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfは、表示装置10に表示される右オブジェクト画像と左オブジェクト画像との間に生じ得る最大視差を定めるパラメータであり、アプリケーションなどによって設定される条件下における限界視差量に応じて、その最大値が制限されることになる。
右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfは、表示装置10を見るユーザが感じることのできる立体感の程度に比例することになる。言い換えれば、この仮想空間距離Dfが「0」、すなわち、右仮想カメラ302と左仮想カメラ304とが同じ位置に設定される場合には、表示装置10においては、被写体は立体表示ではなく平面表示される。
ユーザフレンドリの観点からは、上述のような処理によって定められる立体感の程度をユーザ操作に応じて、調整できることが好ましい。すなわち、上述のような処理によって定められる右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Df(最大値)までの範囲で、ユーザ操作に応じて、右仮想カメラ302と左仮想カメラ304との間の仮想空間距離を増減できることが好ましい。
このようなユーザ操作を受付ける機構としては、立体感の程度に関連付けられた1次元のパラメータ値に対するユーザ操作を受付けるものが好ましい。この立体感の程度に関連付けられた1次元のパラメータ値を受付ける入力手段(ユーザインターフェイス)の一例としては、図16〜図18に示すような形態が挙げられる。
図16〜図18は、本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の一例を示す図である。
図16には、本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の一例として、所定の一軸方向にスライド操作可能な機構(スライダー1062)が示されている。このスライダー1062は、表示装置10の表示面の側面などに設けられる。図16に示すように、紙面上方向には立体表示を示す「3D」の文字が付されており、紙面下方向には平面表示を示す「2D」の文字が付されている。
すなわち、ユーザがスライダー1062を調整することで、右仮想カメラ302と左仮想カメラ304との間の仮想空間距離は、最大値である「Df」から最小値である「0」まで変化する。言い換えれば、スライダー1062による調整幅の最大値(紙面の最上部)には、立体表示用ライブラリ218により最初に設定される右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfが対応するように設定され、スライダー1062による調整幅の最小値(紙面の最下部)には「0」が対応するように設定される。すなわち、スライダー1062によって与えられる調整値をγとすると、立体感調整後の仮想空間距離Df’は、以下のような式で表わすことができる。
仮想空間距離Df’=仮想空間距離Df(最大値)×調整値γ (0≦γ≦1)
なお、スライダー1062による調整幅の最大値に、右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Df(最大値)が全く一致しなくともよい。たとえば、仮想空間距離Df(最大値)に所定の定数α(0<α<1)を乗じた値をスライダー1062による調整幅の最大値に対応付けてもよい。この場合には、スライダー1062によって与えられる調整値をγとすると、立体感調整後の仮想空間距離Df’は、以下のような式で表わすことができる。
仮想空間距離Df’=定数α×仮想空間距離Df(最大値)×調整値γ (0≦γ≦1)
このようなユーザによるスライダー1062の操作に応答して、上述のような処理によって設定された右仮想カメラ302および左仮想カメラ304の配置位置の少なくとも一方が変更される。そして、右仮想カメラ302および/または左仮想カメラ304の位置が変更されると、右仮想カメラ302および/または左仮想カメラ304の視野範囲(視体積)も再設定される。
図17には、本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の別の一例として、表示装置10をタッチパネルとした場合のユーザインターフェイスが示されている。このユーザインターフェイスにおいても、上述の図16に示すスライダーと類似した、所定の一軸方向に沿った画像オブジェクト310と、この画像オブジェクト310に対して相対移動するように表示される画像オブジェクト312とが表示される。この画像オブジェクト312は、ユーザがタッチペン(スタイラスペン)70などを用いて表示装置10上をタッチすることで、そのタッチ操作に応じて移動する。そして、この画像オブジェクト312の位置に応じた指令が生成される。
図18には、本発明の実施の形態に従うユーザによる立体感調整を受付ける構成のさらに別の一例として、表示装置10と操作ボタンとを用いたユーザインターフェイスが示されている。このユーザインターフェイスにおいても、上述の図16に示すスライダーと類似した、所定の一軸方向に沿った画像オブジェクト320と、この画像オブジェクト320に対して相対移動するように表示される画像オブジェクト322とが表示される。そして、ユーザが情報処理システム1上に設けられた操作ボタン(+ボタン1063および−ボタン1064)を押下することで、この画像オブジェクト322は移動する。さらに、この画像オブジェクト322の位置に応じた指令が生成される。
[c5.変形例]
上述の実施の形態においては、右仮想カメラおよび左仮想カメラを設定する際に、基準仮想カメラ300の配置位置を基準線350に沿って右側および左側にそれぞれ等距離だけ移動させる処理について例示した。しかしながら、いずれか一方の仮想カメラを基準仮想カメラ300の配置位置に固定しておき、他方の仮想カメラのみを移動させるようにしてもよい。以下、このような場合の処理について例示する。
図19は、本発明の実施の形態の変形例に従う右仮想カメラおよび左仮想カメラの設定処理を2次元的に説明するための図である。
図19(A)を参照して、3次元仮想空間のある位置に基準仮想カメラ300が指定されているものとする。この状態において、視差判定面361における視差を限界値とした場合における、右最大視差面および左最大視差面が決定される。この場合には、上述の図13(B)とは異なり、基準仮想カメラ300に対応する視差判定面361は固定されたまま、一方の仮想カメラ(図19(B)に示す例では、右仮想カメラ300A)の位置を設定するための右最大視差面361Aの位置が算出される。すなわち、図19(B)に示すように、視差判定面361を紙面左側にスライドさせることで、右最大視差面361Aが得られる。ここで、視差判定面361と右最大視差面361Aとの間の仮想空間距離Sが限界視差量に相当する。
最終的に、図19(C)に示すように、基準仮想カメラ300を通り、かつ、基準仮想面に平行な、基準線350が定義され、この基準線350上に、右仮想カメラ300Aが設定される。より具体的には、基準仮想平面領域360と右最大視差面361Aとを含む視体積が定義できる位置に右仮想カメラ300Aが設定される。そして、右仮想カメラ300Aおよび基準仮想カメラ300を用いて、右オブジェクト画像および左オブジェクト画像がそれぞれ生成される。
図19に示すような方法によれば、表示装置10の表示面に立体表示される視点は、基準仮想カメラ300から右仮想カメラ300Aと基準仮想カメラ300との中点に移動する。たとえば、「利き眼」が分かっているユーザの場合(図19に示す例では左眼)には、図19に示すような方法で一対の仮想カメラの位置を設定することで、平面表示から立体表示への切換をより違和感なく受け入れることができる。
なお、図19に示す例では、基準仮想カメラ300を右側に移動することで右仮想カメラ300Aを設定する構成について説明したが、右仮想カメラ300Aを基準仮想カメラ300の位置に設定し、基準仮想カメラ300を左側に移動することで左仮想カメラを設定するようにしてもよい。
[c6.戻り値]
再度図8を参照して、立体表示用ライブラリ218は、右仮想カメラ302および左仮想カメラ304の設定値を算出するだけでなく、所定処理の結果値を戻り値としてアプリケーションなどに返す。本実施の形態においては、立体表示用ライブラリ218は、右仮想カメラ302と左仮想カメラ304との間の位置関係を示す情報を戻り値として返す。以下の説明では、この位置関係の典型例として、3次元仮想空間内における右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfを用いる場合の処理例について説明する。
この仮想空間距離Dfは、右仮想カメラ302および左仮想カメラ304がそれぞれ3次元仮想空間内の無限遠に位置するオブジェクトをそれぞれ仮想的に撮影した場合に生成される、右オブジェクト画像および左オブジェクト画像内における当該オブジェクトに対応する像についての視差量に相当する。これは、以下のように説明できる。右仮想カメラ302および左仮想カメラ304から見ると、無限遠に位置するオブジェクトは、それぞれの仮想カメラ位置から仮想カメラ方向にのばした直線上にあるように見えるため、ある無限遠に位置するオブジェクトを右仮想カメラによって見た場合と、同じオブジェクトを左仮想カメラによって見た場合とでは、当該無限遠に位置するオブジェクトはそれぞれの仮想カメラの真正面にあるように見えることとなる。したがって、それぞれの仮想カメラの真正面にあるように見えるようにオブジェクトをレンダリングすれば、無限遠にあるオブジェクトとして表現することができる。それぞれの仮想カメラの真正面にあるように見せるには、それぞれの仮想カメラ間の距離分の視差量を持った画像を生成して表示すればよいこととなる。なお、右仮想カメラ302および左仮想カメラ304から無限遠までのいずれかの位置にあるオブジェクトについて生じる視差は、この無限遠に位置するオブジェクトについて生じる視差(仮想空間距離Df)より小さくなる。
したがって、その中に表れる同一対象物についての像の現れる位置の差が仮想空間距離Dfに相当する大きさとなっている一対の画像を表示装置10に表示することで、ユーザから見て当該像が最も奥側に位置するとして視認できる。言い換えれば、右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfに連係して、適切な視差を有する右背景画像および左背景画像を生成することで、たとえ表示装置10における立体感の程度が変化した場合であっても、背景画像をいずれのオブジェクトよりも常に奥側に表示させることができる。そこで、詳細については後述するが、本実施の形態においては、立体表示用ライブラリ218の戻り値(図8に示す(7)仮想カメラ間距離)に応じて、右背景画像および左背景画像が生成される。
ところで、上述の仮想空間距離Dfは、対象の3次元空間における仮想空間距離であり、表示装置10の表示面の実サイズとは異なる単位系となっている。そのため、表示装置10の表示面上において、その間にどの程度の視差量を有する右背景画像および左背景画像を生成すべきかを容易に決定できるように、戻り値としては、規格化された無次元の値を用いることが好ましい。
本実施の形態においては、このような無次元の値として、表示装置10に表示されるレンダリング範囲を基準として規格化した比率を用いる。より具体的には、立体表示用ライブラリ218は、基準仮想カメラ300の視体積に含まれ、基準仮想カメラ300のカメラ方向301に垂直な仮想平面である基準仮想平面領域(図3参照)の幅を基準とした、右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfの比率を戻り値として出力する。
すなわち、基準仮想平面領域は、表示装置10の表示面にレンダリングされる範囲に相当するので、基準仮想平面領域の幅に対する仮想空間距離Dfの比率は、表示装置10の実画面幅に対する右背景画像と左背景画像との間に生じさせるべき現実の視差量の比率に一致する。したがって、基準仮想平面領域の幅に対する仮想空間距離Dfの比率を戻り値として採用することで、ユーザから見て最も奥側に位置する絵である、右背景画像と左背景画像との間に生じさせるべき視差量を表示装置10の実画面幅に応じて容易に決定できる。
図20は、本発明の実施の形態に従う立体表示用ライブラリ218の戻り値の算出処理を説明するための図である。
上述したように、立体表示用ライブラリ218の戻り値は、基準仮想平面領域の3次元仮想空間内での幅を基準とした、右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfの比に相当する。
図20を参照して、戻り値RV=(右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Df/基準仮想平面領域360の幅に相当する仮想空間距離W)として算出される。ここで、仮想空間距離Wは、基準仮想カメラ300からファークリップ面366までの仮想空間距離LNと、基準仮想カメラ300から基準仮想面までの仮想空間距離Dと、ニアクリップ面364の幅に相当する仮想空間距離NWとを用いて、以下のようにとして表わすことができる。
仮想空間距離W=仮想空間距離NW×仮想空間距離D/仮想空間距離LN
したがって、戻り値RVは、以下のように算出することができる。
戻り値RV={仮想空間距離Df/(仮想空間距離NW×仮想空間距離D/仮想空間距離LN)}
これらのパラメータのうち、仮想空間距離NWおよび仮想空間距離LNについては、立体表示用ライブラリ218に入力される(1)基準仮想カメラ情報(図8参照)に基づいて算出され、仮想空間距離Dについては、立体表示用ライブラリ218に入力される(2)基準仮想面情報に基づいて算出される。また、仮想空間距離Dfについては、上述したように、右仮想カメラ302および左仮想カメラ304の設定処理の結果として決定される。
<D.背景画像生成処理>
[d1.概要]
次に、上述した立体表示用ライブラリ218からの戻り値に基づいて、右背景画像および左背景画像を生成する処理(背景画像生成処理)について説明する。
上述したように、表示装置10において、背景画像をユーザから見て最も奥側に位置する絵として表現するためには、表示装置10の表示面上における右背景画像と左背景画像との間の視差量を、先に決定される右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfに応じた値に設定する必要がある。
基本的に、背景画像として表示されるオブジェクトは、ユーザに注目してもらいたいオブジェクトなどとは異なり、奥行方向の情報をもたない平面状の画像として与えられる。そのため、表示装置10に表示されるサイズより大きなサイズを有する原背景画像BG(図1および図2参照)を予め用意しておき、この原背景画像BGに対して、それぞれ右背景画像および左背景画像として出力すべき2つの描画範囲を、両者の間を仮想空間距離Dfに応じた距離だけずらした位置にそれぞれ設定することで、背景画像として表示することに適した視差量を有する、右背景画像および左背景画像を生成することができる。
あるいは、その内面に背景画像が描かれた仮想空間を仮想カメラで仮想的に撮影することで、平面2次元画像である背景画像を生成する処理などにおいては、先に設定された背景画像を生成するための仮想カメラの視体積(描画範囲)を基準として、それぞれが右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfに応じた視体積(描画範囲)を有する一対の仮想カメラ(背景画像の生成用)を設定するようにしてもよい。
[d2.原背景画像からの背景画像の生成]
以下、表示装置10に表示されるサイズより大きなサイズを有する原背景画像BG(図1および図2参照)を用いて、右背景画像および左背景画像を生成する処理例について説明する。図21は、本発明の実施の形態に従う背景画像の生成処理を説明するための模式図である。
たとえば、図1に示すような平面表示を行なう際の背景画像として、図21(A)に示すような描画範囲410が指定されたとする。このとき、図2に示すような立体表示を行なう場合において、描画範囲410内の内容とほぼ同様の内容を背景として表示する場合を考える。
この場合、図21(B)に示すように、右背景画像として生成される画像の領域として右描画範囲412が設定され、左背景画像として生成される画像の領域として左描画範囲414が設定される。この右描画範囲412と左描画範囲414との間は、上述の右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfに応じた距離WDだけずらして設定される。なお、平面表示と立体表示との間で表示装置10に表示される情報量(画像サイズ)が同一である限り、右描画範囲412および左描画範囲414のサイズは、描画範囲410のサイズと一致する。
この結果、図21(C)に示すように、右描画範囲412によって定義される右背景画像と、左描画範囲414によって定義される左背景画像との間では、同一対象物(図21(C)に示す例では、背景オブジェクトBG_OBJ1)の像がそれぞれ現れる位置の間では、距離WDだけずれが生じることになる。したがって、表示装置10の表示面上においては、距離WDの視差量が発生することになる。
この距離WDは、表示装置10にレンダリングされる範囲、すなわち描画範囲410(右描画範囲412および左描画範囲414)の幅WPに、戻り値RV(基準仮想平面領域の3次元仮想空間内での幅に対する右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfの比)を乗じることで算出される。この関係は、次のように表わすことができる。
距離WD=描画範囲の幅WP×戻り値RV
なお、描画範囲の幅WPおよび幅WPから算出される距離WDとしては、表示装置10の表示面の実表示幅(物理的な長さ)を示す単位(たとえば、[mm])を用いてもよいが、処理の容易性から、レンダリングされる背景画像の画素数を単位として用いることが好ましい。また、戻り値RVは規格化されているので、無次元の値である。
すなわち、上述の式から明らかなように、原背景画像BGに対して右背景画像として出力すべき右描画範囲412が設定されるとともに、右描画範囲412を右描画範囲412の幅に戻り値RV(基準仮想平面領域の3次元仮想空間内での幅に対する右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfの比)を乗じて得られる距離WDだけずらした位置に、左背景画像として出力すべき左描画範囲414が設定される。
なお、図21(B)に示すように、アプリケーションの制作者が描画範囲410を予め指定しているような場合には、描画範囲410を基準として、右描画範囲412および左描画範囲414をそれぞれ設定することが好ましい。より具体的には、描画範囲410を距離WDの1/2だけ紙面右側にずらした位置に右描画範囲412を設定し、描画範囲410を距離WDの1/2だけ紙面左側にずらした位置に左描画範囲414を設定する。このように、描画範囲410を基準にして、右描画範囲412および左描画範囲414を設定することで、アプリケーションの制作者が図1に示すような平面表示において背景として表示したいと意図した範囲の絵を、図2に示すような立体表示においてもほぼ同様に表示させることができる。
なお、図7に示す各モジュールとの対応について説明すれば、背景画像範囲設定モジュール208が、立体表示用ライブラリ218から出力される戻り値RVに応じて、図21に示す、右描画範囲412および左描画範囲414をそれぞれ設定する。また、背景画像レンダリングモジュール210が、背景画像範囲設定モジュール208によって設定される右描画範囲412および左描画範囲414に応じて、右背景画像および左背景画像をそれぞれ生成する。また、背景画像データ214には、原背景画像BGを定義するデータを含む。
[d3.変形例1]
上述の説明では、原背景画像BGに対して、右背景画像として出力すべき右描画範囲412および左背景画像として出力すべき左描画範囲414を指定する構成について例示したが、背景として表示される背景オブジェクトを含む3次元仮想空間に対して、背景画像を生成するための仮想カメラを設定し、当該設定した仮想カメラを用いて背景画像を生成するようにしてもよい。以下、このような処理例について、説明する。
図22および図23は、本発明の実施の形態の変形例に従う背景画像の生成処理を説明するための模式図である。図24は、図23に対応する立体表示用ライブラリ218について入出力されるデータ項目を説明するための図である。
一般的に、3次元仮想空間は、その定義内容によって任意の形状を設定することができるが、理解を容易にするために、以下の説明では、図22に示すような円筒形状の3次元仮想空間VSを一例として考える。この3次元仮想空間VSの円周側の内面には、原背景画像BGが貼り付けられているとする。
このような3次元仮想空間VSにおいて、背景画像を生成するための基準仮想カメラ(背景)400が配置されているものとする。このとき、基準仮想カメラ(背景)400の視野範囲(視体積)は、基本的には、周囲に配置された原背景画像BGのみを含むように設定される。すなわち、基準仮想カメラ400は、原背景画像BGに対して設定される平面である描画範囲450をレンダリング範囲とする。
そして、描画範囲450を基準として、右背景画像として生成される画像の領域として右描画範囲452、および、左背景画像として生成される画像の領域として左描画範囲454が設定される。この右描画範囲452と左描画範囲454との間は、上述の右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfに応じた距離WDだけずらした位置に設定される。
この右描画範囲452および左描画範囲454の設定に際して、その範囲を直接的に決定する処理に代えて、右描画範囲452および左描画範囲454にそれぞれ対応する右仮想カメラ(背景)402および左仮想カメラ(背景)404の配置位置および視野範囲(視体積)を算出するようにしてもよい。この場合には、上述の背景画像生成処理と同様に、右仮想カメラ302と左仮想カメラ304との間の仮想空間距離が算出された上で、元の描画範囲450を基準として、右描画範囲452および左描画範囲454の配置位置がそれぞれ決定され、これに応じて、右仮想カメラ(背景)402および左仮想カメラ(背景)404の配置位置および視野範囲(視体積)がそれぞれ算出される。
図21および図22に示すように、背景画像を生成するための基準仮想カメラ400が3次元仮想空間に配置されている場合には、図24に示すような立体表示用ライブラリ218Aを採用することもできる。
すなわち、図24に示す立体表示用ライブラリ218Aは、(1)基準仮想カメラ情報、(2)基準仮想面情報、(3)視差判定面情報、および(4)モード情報の入力に加えて、(1’)基準仮想カメラ(背景)情報を入力として受付ける。そして、立体表示用ライブラリ218Aは、(5)右仮想カメラ情報、(6)左仮想カメラ情報、(8)右仮想カメラ(背景)情報、(9)左仮想カメラ(背景)情報を出力する。すなわち、図24に示す立体表示用ライブラリ218Aでは、(7)仮想カメラ間距離が出力されず、その代わりに、内部的に算出される(7)仮想カメラ間距離に基づいて、入力される(1’)基準仮想カメラ(背景)情報に応じた、(8)右仮想カメラ(背景)情報、および、(9)左仮想カメラ(背景)情報が出力される。
このような立体表示用ライブラリ218Aを用いることで、アプリケーションの制作者は、オブジェクト画像を生成するための基準仮想カメラ300、および、背景画像を生成するための基準仮想カメラ400を設定するだけで、右仮想カメラ302および左仮想カメラ304についての設定値、ならびに、右仮想カメラ(背景)402および左仮想カメラ(背景)404についての設定値を取得することができる。
さらに、図22および図23に示す3次元仮想空間VSにおいて、上述したオブジェクトOBJ1およびOBJ2などの立体表示の対象となるオブジェクトをさらに仮想的に配置してもよい。この場合には、上述した右仮想カメラ(背景)402および左仮想カメラ(背景)404とは独立して、オブジェクト画像を生成するための右仮想カメラ302および左仮想カメラ304が3次元仮想空間VS内に配置される。そして、設定された右仮想カメラ302および左仮想カメラ304により、ユーザに注目してもらいたいオブジェクトなどを撮影することで、右オブジェクト画像および左オブジェクト画像がそれぞれ生成される。
なお、同一の3次元仮想空間内にオブジェクト画像として表現されるオブジェクトと、背景画像として表現されるオブジェクトとを配置した場合であっても、アプリケーションの進行に応じて、それぞれの仮想カメラの視点を独立に設定することが好ましい場合もある。たとえば、ユーザに注目してもらいたいオブジェクト(典型的には、キャラクタオブジェクト)が移動する様子を表現する場合などを考えると、オブジェクト画像を生成するための仮想カメラについては、当該オブジェクトの移動に伴って視点を移動させることが好ましい一方、背景画像を生成するための仮想カメラについては、当該オブジェクトの移動に影響されず、特定の描画範囲を背景画像としてレンダリングすることが好ましい。これによって、表示装置10において最も奥側に表現される背景はほぼ一定としつつ、ユーザが操作するキャラクタオブジェクトのみが移動するといった状況を表現できる。
[d3.変形例2]
上述の説明では、基本的には予め定義された原背景画像BGのうち、アプリケーションの進行などに応じた範囲が背景画像として出力される処理について説明したが、原背景画像BG自体の内容をアプリケーションの進行やユーザ操作などに応じて、逐次更新してもよい。但し、このような場合であっても、アプリケーションの制作者は、平面表示のみを利用するアプリケーションを開発する場合と同様に、背景として表示させたい描画範囲を指定するだけで、立体表示の背景として表示させるための右背景画像および左背景画像をそれぞれ容易に生成することができる。
<E.表示データ生成処理>
次に、上述した処理によって生成される、右オブジェクト画像と左オブジェクト画像、および、右背景画像と左背景画像を用いて、表示装置10での画像表示に使用されるデータ(右表示画像および左表示画像)を生成するための処理について説明する。
本実施の形態においては、右オブジェクト画像と右背景画像とを重ねることで、表示装置10に表示される右表示画像が生成され、左オブジェクト画像と左背景画像とを重ねることで、表示装置10に表示される左表示画像が生成される。
図25は、本発明の実施の形態に従う表示データ生成処理を説明するための模式図である。図25を参照して、典型的な実装としては、ユーザの右眼によって視認される第1LCD116に対応付けられる第1VRAM112(図6)に、少なくとも2段のレイヤ75および76が設けられる。同様に、ユーザの左眼によって視認される第2LCD126に対応付けられる第2VRAM122(図6)にも、少なくとも2段のレイヤ77および78が設けられる。
第1LCD116に設けられる上側のレイヤ75には、右オブジェクト画像が書込まれ、下側のレイヤ76には、右背景画像が書込まれる。そして、レイヤ75とレイヤ76とに書込まれた画像が合成されて、右表示画像として出力される。
同様に、第2LCD126に設けられる上側のレイヤ77には、左オブジェクト画像が書込まれ、下側のレイヤ78には、左背景画像が書込まれる。そして、レイヤ77とレイヤ78とに書込まれた画像が合成されて、左表示画像として出力される。
<F.処理手順>
次に、図26および図27を参照して、本実施の形態に従うプログラムの処理内容について説明する。なお、図26および図27に示す各ステップは、典型的には、情報処理システム1のCPU100がプログラムを実行することで提供される。
(f1.メインルーチン)
図26は、本発明の実施の形態に従うプログラムのメインルーチンを示すフローチャートである。図26に示すフローチャートにおいては、アプリケーションの進行に伴って、図1に示すような、3次元仮想空間内のオブジェクトを表示装置10で平面表示する場合と同様のパラメータを指定することで、表示装置10において立体表示を行なう場合の処理について説明する。
図26を参照して、CPU100は、プログラムに記述されたアプリケーション命令を順次実行する(ステップS2)。すなわち、図7に示す進行モジュール204が、入力モジュール202などによって生成される内部コマンドなどに従って、アプリケーションを進行する。
そして、CPU100は、表示装置10に対するレンダリング処理の命令が実行対象になると(ステップS4においてYES)、ステップS8以下の処理を実行する。これに対して、対象の命令が表示装置10に対するレンダリング処理以外であれば(ステップS4においてNO)、CPU100は、対象の命令に従う処理を実行する(ステップS6)。その後、処理はステップS2へ戻る。
ステップS8において、CPU100は、アプリケーションの進行に伴って指定される基準仮想カメラ(図1に示す基準仮想カメラ300)の設定値(配置位置および視体積)および背景画像の描画範囲の設定値を所定のレジスタへ格納する。なお、基準仮想カメラの設定値としては、カメラ行列(プロジェクション行列およびビュー行列)が用いられる。すなわち、ステップS8においては、図8に示す(1)基準仮想カメラ情報が指定される。
また、背景画像の描画範囲の設定値としては、原背景画像BGのうち背景画像とすべき範囲を特定するための複数の座標が用いられる。代替的に、図1に示すような背景画像を生成するための基準仮想カメラ400の設定値(配置位置および視体積)が指定される場合もある。
続くステップS10において、CPU100は、「アプリケーション優先モード」および「リアルモード」のいずれが指定されているかを判断する。このモードは、アプリケーションの制作者の意図やユーザ操作などに応じて指定される。
「アプリケーション優先モード」が指定されている場合(ステップS10において「アプリケーション優先」の場合)には、CPU100は、内部フラグを「アプリケーション優先モード」にセットする(ステップS12)。すなわち、図8に示す(4)モード情報がセットされる。続いて、CPU100は、アプリケーションの進行に伴って表示される3次元仮想空間における、基準仮想面(図13および図14に示す基準仮想平面領域360に相当)および視差判定面(図13および図14に示す視差判定面361)の位置を特定するための情報を所定のレジスタへ格納する(ステップS14)。すなわち、図8に示す(2)基準仮想面情報、および(3)視差判定面情報が指定される。
さらに、CPU100は、ステップS8およびS12において設定したレジスタの値を指定して、右仮想カメラおよび左仮想カメラを設定するために、立体表示用ライブラリ218をコールする(ステップS16)。
これに対して、「リアルモード」が指定されている場合(ステップS10において「リアルモード」の場合)には、CPU100は、内部フラグを「リアルモード」にセットする(ステップS18)。すなわち、図8に示す(4)モード情報がセットされる。続いて、CPU100は、3次元仮想空間における注目させたい表示対象が存在する基準仮想面(図13および図14に示す基準仮想平面領域360に相当)を特定するための情報、および基準立体度合の値を所定のレジスタへ格納する(ステップS20)。すなわち、図8に示す(2)基準仮想面情報、および(3’)基準立体度合が指定される。さらに、CPU100は、ステップS8およびS18において設定したレジスタの値を指定して、右仮想カメラおよび左仮想カメラを設定するために、立体表示用ライブラリ218をコールする(ステップS16)。
ステップS16における立体表示用ライブラリ218での処理については、図27を用いて詳述するが、立体表示用ライブラリ218をコールによって、CPU100は、右仮想カメラのカメラ行列(プロジェクション行列およびビュー行列)、および、左仮想カメラのカメラ行列(プロジェクション行列およびビュー行列)、ならびに、戻り値(基準仮想カメラ300についての基準仮想平面領域(図3参照)の幅を基準とした、右仮想カメラ302と左仮想カメラ304との間の距離の比)を算出する。
続くステップS30において、CPU100は、立体表示用ライブラリ218によって算出されたカメラ行列に従って、3次元仮想空間に右仮想カメラ(図2に示す右仮想カメラ302)を設定し、右仮想カメラによる仮想撮影に基づく右オブジェクト画像を生成する。さらに、ステップS32において、CPU100は、算出されたカメラ行列に基づいて、3次元仮想空間に左仮想カメラ(図2に示す左仮想カメラ304)を設定し、左仮想カメラによる仮想撮影に基づく左オブジェクト画像を生成する。
すなわち、上述のステップS30およびS32においては、図7に示すオブジェクト画像レンダリングモジュール206が、立体表示用ライブラリ218による算出結果に従って、オブジェクト定義データ212を参照して、右オブジェクト画像および左オブジェクト画像を生成(レンダリング)する。
ステップS34において、CPU100は、立体表示用ライブラリ218による戻り値に基づいて、ステップS8において指定されている背景画像の描画範囲を所定方向にずらすことで、右描画範囲(図21に示す右描画範囲412)および左描画範囲(図21に示す左描画範囲414)を設定する。すなわち、図7に示す背景画像範囲設定モジュール208が、原背景画像BGのうち右背景画像および左背景画像としてレンダリングすべき範囲を設定する。
続くステップS36において、CPU100は、設定された右描画範囲および左描画範囲に従って、右背景画像および左背景画像をそれぞれ生成(レンダリング)する。すなわち、図7に示す背景画像レンダリングモジュール210が、ステップS34において設定された右描画範囲および左描画範囲に従って、背景画像データ214を参照して、右背景画像および左背景画像を生成する。
その後、ステップS38において、CPU100は、ステップS30において生成された右オブジェクト画像と、ステップS36において生成された右背景画像とを合成して、右表示画像を生成するとともに、ステップS32において生成された左オブジェクト画像と、ステップS36において生成された左背景画像とを合成して、左表示画像を生成する。すなわち、図7に示す表示データ生成モジュール216が、右オブジェクト画像および左オブジェクト画像、ならびに、右背景画像および左背景画像とに基づいて、右表示画像および左表示画像を生成する。
最終的に、ステップS40において、CPU100は、ステップS38において生成した右表示画像および左表示画像を表示装置10の対応する画素へ出力する。
その後、CPU100は、ユーザが図16〜図18に示すようなスライダーなどを操作して、立体感の程度を変更したか否かを判断する(ステップS42)。立体感の程度を変更された場合(ステップS42においてYESの場合)には、ステップS16の処理が再度実行される。
立体感の程度を変更されていない場合(ステップS42においてNOの場合)には、CPU100は、アプリケーションの終了が指示されたか否かを判断する(ステップS44)。アプリケーションの終了が指示されていなければ(ステップS44においてNO)、ステップS2以下の処理が繰返される。これに対して、アプリケーションの終了が指示されれば(ステップS44においてYES)、処理は終了する。
(f2.立体表示用ライブラリ)
図27は、本発明の実施の形態に従う立体表示用ライブラリ218の処理内容を示すフローチャートである。図27を参照して、CPU100は、まず、初期化処理を実行する(ステップS100)。この初期化処理には、表示装置10の表示面の実サイズ、ユーザの眼の実間隔、ユーザから表示装置10の表示面までの実距離、ユーザが立体表示を気持ちよく受け入れることができる限界の深さなどの初期値が所定の設定値にセットされる。これらの設定値を設定する方法としては、表示装置10のハードウェア(あるいは、ファームウェア)に予め登録されている想定値を指定する態様、アプリケーションによって指定する態様、および、ユーザが設定する態様などを利用してもよい。
続くステップS102において、CPU100は、基準仮想カメラのプロジェクション行列に基づいて、3次元仮想空間内のニアクリップ面およびファークリップ面の範囲(3次元仮想空間の値)を算出することで、基準仮想カメラの視体積を取得する。さらに続くステップS104において、CPU100は、基準仮想カメラのプロジェクション行列および基準仮想面の位置情報に基づいて、レンダリング対象の基準仮想平面領域の範囲(3次元仮想空間における値)を取得する。さらに続くステップS106において、CPU100は、3次元仮想空間における基準仮想平面領域の横方向の長さ(または、縦方向の長さ)と、表示装置10の表示面の実画面幅(または、実画面高さ)との比率に基づいて、現実空間と3次元仮想空間との間の変換係数を算出する。
続くステップS108において、CPU100は、「アプリケーション優先モード」および「リアルモード」のいずれが指定されているかを判断する。「アプリケーション優先モード」が指定された場合(ステップS108において「アプリケーション優先モード」の場合)には、ステップS110以下の処理が実行される。また、「リアルモード」が指定された場合(ステップS108において「リアルモード」の場合)には、ステップS120以下の処理が実行される。
ステップS110において、CPU100は、ユーザが表示装置10において立体表示を気持ちよく受け入れることができる表示面上での右オブジェクト画像と左オブジェクト画像との間の最大視差量(限界視差量)を取得する。ユーザに注目してもらいたいオブジェクトについての視差量は、この限界視差量以下の視差量となるようにして表示することが好ましい。この限界視差量は、表示装置10の表示面についての実画面幅、ユーザの眼の実間隔、およびユーザから表示装置10の表示面までの実距離などに応じて定まる。
ステップS110における限界視差量の取得方法の一例としては、想定される表示装置10の表示面についての実画面幅、ユーザの眼の実間隔、およびユーザから表示装置10の表示面までの実距離などから予め算出しておいて、その値を利用するようにしてもよい。あるいは、例えば、表示装置10に撮像装置などを搭載しておき、当該撮像装置を利用してユーザの眼の実間隔を測定する方法といった、他の手段によって求められた値から限界視差量を算出するようにしてもよい。
続くステップS112において、CPU100は、ステップS106において算出した変換係数を用いて、限界視差量に対応する、3次元仮想空間における仮想空間距離S(図13に示す、右最大視差面362と左最大視差面363とのずれ量に相当)を算出する。すなわち、ステップS110において取得される限界視差量は、現実空間における値であり、ステップS112においては、以下に示す視差判定面上での判定処理を行なうために、現実空間における値を対象の3次元仮想空間における値に変換する。
続くステップS114およびS116において、CPU100は、右仮想カメラおよび左仮想カメラの配置位置を決定する。すなわち、ステップS114において、CPU100は、3次元仮想空間における視差判定面において仮想空間距離Sの視差が生じるように、右仮想カメラによってレンダリングされる範囲である右最大視差面(図13に示す右最大視差面362)と、左仮想カメラによってレンダリングされる範囲である左最大視差面(図13に示す左最大視差面363)とを設定する。続くステップS116において、CPU100は、ステップS104において取得される基準仮想平面領域と、ステップS114において設定される右最大視差面および左最大視差面とに基づいて、右仮想カメラおよび左仮想カメラの配置位置をそれぞれ決定する。より具体的には、CPU100は、基準仮想平面領域と右最大視差面とを含む視体積が定義できる位置に右仮想カメラを設定するとともに、基準仮想平面領域と左最大視差面とを含む視体積が定義できる位置に左仮想カメラを設定する。なお、右仮想カメラおよび左仮想カメラは、基準仮想カメラを通り、かつ、基準仮想面に平行な、基準線上に配置される。すなわち、CPU100は、基準仮想カメラを基準線に沿って所定距離だけそれぞれ移動させることで、右仮想カメラおよび左仮想カメラの位置を決定する。
続くステップS118において、CPU100は、ステップS116において決定した右仮想カメラおよび左仮想カメラとの間の仮想空間距離Dfを算出する。そして、処理はステップS140へ進む。
ステップS120において、CPU100は、現実の表示装置10とユーザとの位置関係に対応するように、3次元仮想空間における基準仮想面に対する基準仮想カメラの仮想空間距離D’を算出する(図15(A)および図15(C)参照)。より具体的には、CPU100は、ユーザから表示装置10の表示面までの実距離として想定される距離(図15(A)に示す実距離L1)に、ステップS106において算出した変換係数を乗じて、基準仮想カメラから基準仮想面までの新たな仮想空間距離D’(図15(C)参照)を算出する。リアルモードにおいては、基準仮想平面領域と仮想カメラとの間の位置関係が、表示装置10の表示面とユーザの目との間の位置関係と一致するように、仮想カメラの位置が設定される。すなわち、CPU100は、仮想空間距離D’と、ユーザから表示装置10の表示面までの距離との比が、基準仮想平面領域の幅W(図15(B)参照)と表示装置10の実画面幅L3(図15(A)参照)との比に一致するように、仮想空間距離D’を設定する。
続くステップS122において、CPU100は、ステップS120において算出した新たな仮想空間距離D’に基づいて、3次元仮想空間における基準仮想カメラの位置を変更する(図15(C)参照)。CPU100は、この基準仮想カメラの位置変更に伴って、基準仮想カメラとニアクリップ面およびファークリップ面との間の相対的な位置関係を変更する。
ステップS124において、CPU100は、変更後の基準仮想カメラの位置とニアクリップ面との位置関係が適切であるか否かを判断する。これは、基準仮想カメラをニアクリップ面に近付ける方向に移動させることで、基準仮想カメラのカメラ方向とは反対側にニアクリップ面が位置することになる場合もあるからである。
変更後の基準仮想カメラの位置とニアクリップ面との位置関係が適切ではない場合(ステップS124においてNOの場合)には、CPU100は、ニアクリップ面の位置を変更する(ステップS126)。さらに続くステップS128において、CPU100は、変更後のニアクリップ面の位置とファークリップ面との位置関係が適切であるか否かを判断する(ステップS128)。これは、ニアクリップ面の位置を変更することで、ニアクリップ面がファークリップ面より遠方に位置することになる場合もあるからである。
変更後のニアクリップ面の位置とファークリップ面との位置関係が適切ではない場合(ステップS128においてNOの場合)には、CPU100は、ファークリップ面の位置を変更する(ステップS130)。
その後、ステップS132において、CPU100は、新たなニアクリップ面の範囲(3次元仮想空間の値)を取得する。
続くステップS134において、CPU100は、現実に近い立体表示を行なう場合における、右仮想カメラおよび左仮想カメラとの間の最大の仮想空間距離を算出する。より具体的には、ユーザの眼の実間隔に、ステップS106において算出した変換係数を乗じて、3次元仮想空間における最大の仮想空間距離を算出する。さらに続くステップS136において、CPU100は、算出した最大の仮想空間距離に対して、立体表示用ライブラリ218がコールされた際に指定された(3’)基準立体度合を乗じて、右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfを算出する。これにより、右仮想カメラおよび左仮想カメラの位置が決定される。そして、処理はステップS140へ進む。
ステップS140において、CPU100は、図16〜図18に示すようなスライダーでの設定値(典型的には、0〜100%の範囲の値)を取得する。さらに続くステップS142において、CPU100は、仮想空間距離DfにステップS140において取得した設定値を乗じて得られる新たな仮想空間距離に従って、先の処理で設定されている右仮想カメラおよび/または左仮想カメラの位置を変更する。
続くステップS144において、CPU100は、基準仮想カメラの視体積に含まれる基準仮想平面領域の範囲が維持されるように、右仮想カメラの視体積および左仮想カメラの視体積をそれぞれ設定する。さらに続くステップS146において、CPU100は、設定したそれぞれの仮想カメラの視体積を表わす、右仮想カメラのプロジェクション行列および左仮想カメラのプロジェクション行列をそれぞれ算出する。
続くステップS148において、CPU100は、基準仮想カメラのビュー行列に基づいて、基準仮想カメラの位置および向きを取得する。さらに続くステップS150において、CPU100は、先の処理で算出されている仮想空間距離Dfに基づいて、右仮想カメラおよび左仮想カメラの座標位置、ならびに、右仮想カメラおよび左仮想カメラの注視点を算出する。さらに続くステップS152において、CPU100は、ステップS150において算出したパラメータに基づいて、右仮想カメラおよび左仮想カメラのビュー行列をそれぞれ算出する。
続くステップS154において、CPU100は、戻り値RVを算出する。すなわち、CPU100は、基準仮想平面領域の幅に相当する仮想空間距離を基準とした、右仮想カメラと左仮想カメラとの間の仮想空間距離の比率を算出する。
その後、処理はリターンする。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 情報処理システム、10 表示装置、12 視差バリア、14 スリット、16,18 ガラス基板、50 オブジェクト画像生成機能、51 左右仮想カメラ設定機能、52 オブジェクト画像レンダリング機能、53 オブジェクト定義、60 背景画像生成機能、61 背景画像範囲設定機能、62 背景画像レンダリング機能、63 背景画像定義、70 表示データ生成機能、71 右オブジェクト画像、72 右背景画像、73 左オブジェクト画像、74 左背景画像、75,76,77,78 レイヤ、106 入力部、112 第1VRAM、114 LCDドライバ、116 第1LCD、122 第2VRAM、126 第2LCD、200A,200B アプリケーション、202 入力モジュール、204 進行モジュール、206 オブジェクト画像レンダリングモジュール、208 背景画像範囲設定モジュール、210 背景画像レンダリングモジュール、212 オブジェクト定義データ、214 背景画像データ、216 表示データ生成モジュール、218,218A 立体表示用ライブラリ、250A,250B ファームウェア。

Claims (16)

  1. 立体表示が可能な表示装置を制御するための表示制御プログラムであって、前記表示制御プログラムは、前記表示装置のコンピュータを、
    第1の仮想空間内のオブジェクトを第1の右仮想カメラおよび第1の左仮想カメラでそれぞれ仮想的に撮影することで、前記オブジェクトを前記表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成手段、
    前記表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成手段、ならびに
    前記右オブジェクト画像と前記左オブジェクト画像、および、前記右背景画像と前記左背景画像を用いて、前記表示装置での画像表示に使用されるデータを生成する表示データ生成手段として機能させ、
    前記オブジェクト画像生成手段は、前記第1の仮想空間内に設定される第1の基準仮想カメラに応じて、当該第1の基準仮想カメラを通り、かつ、当該第1の基準仮想カメラのカメラ方向に垂直な直線上に、前記第1の右仮想カメラおよび前記第1の左仮想カメラを設定し、
    前記背景画像生成手段は、仮想空間における前記第1の右仮想カメラと前記第1の左仮想カメラとの間の距離に基づいて、両背景画像が、前記第1の右仮想カメラと前記第1の左仮想カメラとの間の位置関係に応じた相対関係を有するように、前記右背景画像および前記左背景画像を表示制御する、表示制御プログラム。
  2. 立体表示が可能な表示装置を制御するための表示制御プログラムであって、前記表示制御プログラムは、前記表示装置のコンピュータを、
    第1の仮想空間内のオブジェクトを第1の右仮想カメラおよび第1の左仮想カメラでそれぞれ仮想的に撮影することで、前記オブジェクトを前記表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成手段、
    前記表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成手段、ならびに
    前記右オブジェクト画像と前記左オブジェクト画像、および、前記右背景画像と前記左背景画像を用いて、前記表示装置での画像表示に使用されるデータを生成する表示データ生成手段として機能させ、
    前記オブジェクト画像生成手段は、前記第1の仮想空間内に設定される第1の基準仮想カメラに応じて、当該第1の基準仮想カメラを通り、かつ、当該第1の基準仮想カメラのカメラ方向に垂直な直線上に、前記第1の右仮想カメラおよび前記第1の左仮想カメラを設定し、
    前記背景画像生成手段は、両背景画像が、前記第1の右仮想カメラと前記第1の左仮想カメラとの間の位置関係の変更に応じて、前記右背景画像と前記左背景画像との相対関係が変更されるように、前記右背景画像および前記左背景画像を表示制御する、表示制御プログラム。
  3. 前記背景画像生成手段は、仮想空間における前記第1の右仮想カメラと前記第1の左仮想カメラとの間の距離に基づいて、前記右背景画像および前記左背景画像を表示制御する、請求項に記載の表示制御プログラム。
  4. 前記右背景画像および前記左背景画像は、共通の画像を用いて生成される画像であり、
    前記右背景画像および前記左背景画像は、両画像間の対応箇所が一対の仮想カメラの距離に応じた視差で表示されるように表示制御される、請求項1または3に記載の表示制御プログラム。
  5. 前記背景画像生成手段は、前記第1の基準仮想カメラの視体積に含まれ、当該第1の基準仮想カメラのカメラ方向に垂直な仮想平面である、基準仮想平面領域の幅を基準とした、前記第1の右仮想カメラと前記第1の左仮想カメラとの間の距離の比に応じて、前記右背景画像および前記左背景画像を生成する、請求項1、3、4のいずれか1項に記載の表示制御プログラム。
  6. 前記背景画像生成手段は、前記表示装置に表示されるサイズより大きなサイズを有する原背景画像に対して、前記右背景画像として出力すべき右描画範囲を設定するとともに、当該右描画範囲を、当該右描画範囲の幅に前記第1の右仮想カメラと前記第1の左仮想カメラとの間の距離の比を乗じて得られる距離だけずらした位置に、前記左背景画像として出力すべき左描画範囲を設定する、請求項に記載の表示制御プログラム。
  7. 前記背景画像生成手段は、前記第1の右仮想カメラと前記第1の左仮想カメラとの間の距離に基づいて、背景オブジェクトを含む第2の仮想空間内に設定される第2の基準仮想カメラを基準として、前記背景オブジェクトを仮想的に撮影することで右背景画像を生成するための第2の右仮想カメラおよび第2の左仮想カメラを設定する、請求項1、3、4、5のいずれか1項に記載の表示制御プログラム。
  8. 前記第2の基準仮想カメラ、前記第2の右仮想カメラ、および前記第2の左仮想カメラの各々は、プロジェクション行列およびビュー行列として定義される、請求項に記載の表示制御プログラム。
  9. 前記第1の基準仮想カメラ、前記第1の右仮想カメラ、および前記第1の左仮想カメラの各々は、プロジェクション行列およびビュー行列として定義される、請求項1〜のいずれか1項に記載の表示制御プログラム。
  10. 前記オブジェクト画像生成手段は、前記表示装置において提供される立体感の程度を示す指示に応じて、前記第1の右仮想カメラと前記第1の左仮想カメラとの間の位置関係を決定する、請求項1〜のいずれか1項に記載の表示制御プログラム。
  11. 前記表示制御プログラムは、前記表示装置のコンピュータを、前記表示装置において提供される立体感の程度を示す要求を受付ける入力手段としてさらに機能させ、
    前記オブジェクト画像生成手段は、前記入力手段を介して立体感の程度の変更が指示されると、当該指示に応じて、前記第1の右仮想カメラと前記第1の左仮想カメラとの間の位置関係を変更する、請求項10に記載の表示制御プログラム。
  12. 立体表示が可能な表示装置のコンピュータ上で、アプリケーションプログラムと協働するライブラリプログラムであって、前記ライブラリプログラムは、前記コンピュータを、
    第1の仮想空間内における第1の基準仮想カメラの設定値の入力に応答して、前記第1の仮想空間内のオブジェクトをそれぞれ仮想的に撮影することで、前記オブジェクトを前記表示装置で立体表示するために用いられる、右オブジェクト画像を生成するための第1の右仮想カメラの設定値、および、左オブジェクト画像を生成するための第1の左仮想カメラの設定値を出力する設定値出力手段、および
    前記第1の右仮想カメラと前記第1の左仮想カメラとの間の位置関係を示す値、を出力する位置関係出力手段として機能させ、
    前記設定出力手段は、当該第1の基準仮想カメラを通り、かつ、当該第1の基準仮想カメラのカメラ方向に垂直な直線上に、前記第1の右仮想カメラおよび前記第1の左仮想カメラを設定し、
    前記第1の右仮想カメラと前記第1の左仮想カメラとの間の距離に基づいて、前記表示装置において背景表示に用いられる右背景画像および左背景画像が生成される、ライブラリプログラム。
  13. 立体表示が可能な表示装置と、
    第1の仮想空間内のオブジェクトを第1の右仮想カメラおよび第1の左仮想カメラでそれぞれ仮想的に撮影することで、前記オブジェクトを前記表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成手段と、
    前記表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成手段と、
    前記右オブジェクト画像と前記左オブジェクト画像、および、前記右背景画像と前記左背景画像を用いて、前記表示装置での画像表示に使用されるデータを生成する表示データ生成手段とを備え、
    前記オブジェクト画像生成手段は、前記第1の仮想空間内に設定される第1の基準仮想カメラに応じて、当該第1の基準仮想カメラを通り、かつ、当該第1の基準仮想カメラのカメラ方向に垂直な直線上に、前記第1の右仮想カメラおよび前記第1の左仮想カメラを設定し、
    前記背景画像生成手段は、仮想空間における前記第1の右仮想カメラと前記第1の左仮想カメラとの間の距離に基づいて、両背景画像の間が、前記第1の右仮想カメラと前記第1の左仮想カメラとの間の位置関係に応じた相対関係を有するように、前記右背景画像および前記左背景画像を表示制御する、情報処理システム。
  14. 立体表示が可能な表示装置と、
    第1の仮想空間内のオブジェクトを第1の右仮想カメラおよび第1の左仮想カメラでそれぞれ仮想的に撮影することで、前記オブジェクトを前記表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成手段と、
    前記表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成手段と、
    前記右オブジェクト画像と前記左オブジェクト画像、および、前記右背景画像と前記左背景画像を用いて、前記表示装置での画像表示に使用されるデータを生成する表示データ生成手段とを備え、
    前記オブジェクト画像生成手段は、前記第1の仮想空間内に設定される第1の基準仮想カメラに応じて、当該第1の基準仮想カメラを通り、かつ、当該第1の基準仮想カメラのカメラ方向に垂直な直線上に、前記第1の右仮想カメラおよび前記第1の左仮想カメラを設定し、
    前記背景画像生成手段は、両背景画像が、前記第1の右仮想カメラと前記第1の左仮想カメラとの間の位置関係の変更に応じて、前記右背景画像と前記左背景画像との相対関係が変更されるように、前記右背景画像および前記左背景画像を表示制御する、情報処理システム。
  15. 立体表示が可能な表示装置を制御する表示制御方法であって、
    第1の仮想空間内のオブジェクトを第1の右仮想カメラおよび第1の左仮想カメラでそれぞれ仮想的に撮影することで、前記オブジェクトを前記表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成ステップと、
    前記表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成ステップと、
    前記右オブジェクト画像と前記左オブジェクト画像、および、前記右背景画像と前記左背景画像を用いて、前記表示装置での画像表示に使用されるデータを生成する表示データ生成ステップとを備え、
    前記オブジェクト画像生成ステップは、前記第1の仮想空間内に設定される第1の基準仮想カメラに応じて、当該第1の基準仮想カメラを通り、かつ、当該第1の基準仮想カメラのカメラ方向に垂直な直線上に、前記第1の右仮想カメラおよび前記第1の左仮想カメラを設定するステップを含み、
    前記背景画像生成ステップは、仮想空間における前記第1の右仮想カメラと前記第1の左仮想カメラとの間の距離に基づいて、両背景画像の間が、前記第1の右仮想カメラと前記第1の左仮想カメラとの間の位置関係に応じた相対関係を有するように、前記右背景画像および前記左背景画像を表示制御するステップを含む、表示制御方法。
  16. 立体表示が可能な表示装置を制御する表示制御方法であって、
    第1の仮想空間内のオブジェクトを第1の右仮想カメラおよび第1の左仮想カメラでそれぞれ仮想的に撮影することで、前記オブジェクトを前記表示装置で立体表示するために用いられる、右オブジェクト画像および左オブジェクト画像を生成するオブジェクト画像生成ステップと、
    前記表示装置において背景表示に用いられる右背景画像および左背景画像を生成する背景画像生成ステップと、
    前記右オブジェクト画像と前記左オブジェクト画像、および、前記右背景画像と前記左背景画像を用いて、前記表示装置での画像表示に使用されるデータを生成する表示データ生成ステップとを備え、
    前記オブジェクト画像生成ステップは、前記第1の仮想空間内に設定される第1の基準仮想カメラに応じて、当該第1の基準仮想カメラを通り、かつ、当該第1の基準仮想カメラのカメラ方向に垂直な直線上に、前記第1の右仮想カメラおよび前記第1の左仮想カメラを設定するステップを含み、
    前記背景画像生成ステップは、両背景画像が、前記第1の右仮想カメラと前記第1の左仮想カメラとの間の位置関係の変更に応じて、前記右背景画像と前記左背景画像との相対関係が変更されるように、前記右背景画像および前記左背景画像を表示制御するステップを含む、表示制御方法。
JP2009241314A 2009-10-20 2009-10-20 表示制御プログラム、ライブラリプログラム、情報処理システム、および、表示制御方法 Active JP5405264B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009241314A JP5405264B2 (ja) 2009-10-20 2009-10-20 表示制御プログラム、ライブラリプログラム、情報処理システム、および、表示制御方法
EP12160332.8A EP2480000B1 (en) 2009-10-20 2010-10-19 Display control program, library program, information processing system, and display control method
EP10188033A EP2323414A3 (en) 2009-10-20 2010-10-19 Display control program, library program, information processing system, and display control method
US12/907,248 US9019261B2 (en) 2009-10-20 2010-10-19 Storage medium storing display control program, storage medium storing library program, information processing system, and display control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009241314A JP5405264B2 (ja) 2009-10-20 2009-10-20 表示制御プログラム、ライブラリプログラム、情報処理システム、および、表示制御方法

Publications (2)

Publication Number Publication Date
JP2011091486A JP2011091486A (ja) 2011-05-06
JP5405264B2 true JP5405264B2 (ja) 2014-02-05

Family

ID=43448523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009241314A Active JP5405264B2 (ja) 2009-10-20 2009-10-20 表示制御プログラム、ライブラリプログラム、情報処理システム、および、表示制御方法

Country Status (3)

Country Link
US (1) US9019261B2 (ja)
EP (2) EP2323414A3 (ja)
JP (1) JP5405264B2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5409107B2 (ja) * 2009-05-13 2014-02-05 任天堂株式会社 表示制御プログラム、情報処理装置、表示制御方法、および情報処理システム
JP5405264B2 (ja) 2009-10-20 2014-02-05 任天堂株式会社 表示制御プログラム、ライブラリプログラム、情報処理システム、および、表示制御方法
JP4754031B2 (ja) 2009-11-04 2011-08-24 任天堂株式会社 表示制御プログラム、情報処理システム、および立体表示の制御に利用されるプログラム
EP2355526A3 (en) 2010-01-14 2012-10-31 Nintendo Co., Ltd. Computer-readable storage medium having stored therein display control program, display control apparatus, display control system, and display control method
US9693039B2 (en) 2010-05-27 2017-06-27 Nintendo Co., Ltd. Hand-held electronic device
JP5522018B2 (ja) * 2010-12-15 2014-06-18 富士通株式会社 画像処理装置、画像処理方法及び画像処理プログラム
EP2506587A2 (en) * 2011-03-31 2012-10-03 Fujifilm Corporation Stereoscopic display apparatus
FR2974435A1 (fr) * 2011-04-22 2012-10-26 France Telecom Procede et dispositif de creation d'images stereoscopiques
EP2710804A1 (en) * 2011-05-19 2014-03-26 Thomson Licensing Automatic conversion of a stereoscopic image in order to allow a simultaneous stereoscopic and monoscopic display of said image
US9259645B2 (en) * 2011-06-03 2016-02-16 Nintendo Co., Ltd. Storage medium having stored therein an image generation program, image generation method, image generation apparatus and image generation system
KR20130081569A (ko) * 2012-01-09 2013-07-17 삼성전자주식회사 3d 영상을 출력하기 위한 장치 및 방법
US8884928B1 (en) * 2012-01-26 2014-11-11 Amazon Technologies, Inc. Correcting for parallax in electronic displays
JP2013211672A (ja) * 2012-03-30 2013-10-10 Namco Bandai Games Inc 曲面投影立体視装置
JP5773944B2 (ja) * 2012-05-22 2015-09-02 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
JP6071105B2 (ja) * 2012-09-27 2017-02-01 株式会社ニデック 視標呈示装置
US20140104137A1 (en) * 2012-10-16 2014-04-17 Google Inc. Systems and methods for indirectly associating logical and physical display content
JP6396310B2 (ja) * 2012-11-23 2018-09-26 キャデンス メディカル イメージング インコーポレイテッドCadens Medical Imaging Inc. 第一レンダリング投影と第二レンダリング投影との間のトランジションをユーザーに表示するための方法および装置
JP6066066B2 (ja) * 2013-02-20 2017-01-25 株式会社ジオ技術研究所 立体視画像出力システム
US10078228B2 (en) 2016-09-29 2018-09-18 Jeremy Paul Willden Three-dimensional imaging system
US10369472B1 (en) 2017-03-30 2019-08-06 Electronic Arts Inc. Virtual environment mapping system
US10969740B2 (en) 2017-06-27 2021-04-06 Nvidia Corporation System and method for near-eye light field rendering for wide field of view interactive three-dimensional computer graphics
US11182951B2 (en) * 2018-02-23 2021-11-23 Sony Group Corporation 3D object modeling using scale parameters and estimated distance
CN110910438B (zh) * 2018-09-17 2022-03-22 中国科学院沈阳自动化研究所 一种超高分辨率双目图像的高速立体匹配算法
US11620800B2 (en) 2019-03-27 2023-04-04 Electronic Arts Inc. Three dimensional reconstruction of objects based on geolocation and image data
US11887253B2 (en) 2019-07-24 2024-01-30 Electronic Arts Inc. Terrain generation and population system
US11335058B2 (en) * 2020-10-13 2022-05-17 Electronic Arts Inc. Spatial partitioning for graphics rendering
CN112929651B (zh) * 2021-01-25 2025-01-24 北京信息科技大学 一种显示方法、装置、电子设备及存储介质
TWI812566B (zh) * 2022-12-28 2023-08-11 宏碁股份有限公司 立體影像深度調整方法與裝置
CN118941754A (zh) * 2024-10-15 2024-11-12 山东捷瑞信息技术产业研究院有限公司 基于场景边界动态计算场景虚拟摄像机裁剪平面的方法

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0425985B1 (en) 1989-10-25 1997-06-11 Hitachi, Ltd. Stereoscopic imaging system
US5065236A (en) 1990-11-02 1991-11-12 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Stereoscopic camera and viewing systems with undistorted depth presentation and reduced or eliminated erroneous acceleration and deceleration perceptions, or with perceptions produced or enhanced for special effects
EP0563737B1 (en) 1992-03-23 1997-09-10 Canon Kabushiki Kaisha Multilens imaging apparatus with correction of misregistration
US5309522A (en) 1992-06-30 1994-05-03 Environmental Research Institute Of Michigan Stereoscopic determination of terrain elevation
JP2849313B2 (ja) 1993-09-21 1999-01-20 キヤノン株式会社 画像記録再生装置
JPH0759119A (ja) 1993-08-20 1995-03-03 Seiko Epson Corp 疑似立体映像表示装置
DE69417824T4 (de) 1993-08-26 2000-06-29 Matsushita Electric Industrial Co., Ltd. Stereoskopischer Abtastapparat
JPH07143524A (ja) 1993-11-19 1995-06-02 Honda Motor Co Ltd 車載用ステレオ画像表示装置
US5510832A (en) 1993-12-01 1996-04-23 Medi-Vision Technologies, Inc. Synthesized stereoscopic imaging system and method
US6118475A (en) * 1994-06-02 2000-09-12 Canon Kabushiki Kaisha Multi-eye image pickup apparatus, and method and apparatus for measuring or recognizing three-dimensional shape
JP3157384B2 (ja) 1994-06-20 2001-04-16 三洋電機株式会社 立体映像装置
EP0696144A3 (en) 1994-08-02 1996-04-24 Canon Kk Image pickup device with a plurality of lenses and a unit for extracting matching points
TW282527B (ja) 1994-11-11 1996-08-01 Nintendo Co Ltd
JPH08136855A (ja) 1994-11-11 1996-05-31 Nintendo Co Ltd 画像表示装置、画像表示システムおよびそれに用いられるプログラムカートリッジ
TW269094B (en) 1994-11-11 1996-01-21 Nitendo Kk Three dimensional visual image display device and electric game apparatus, memory device thereof
JP2716388B2 (ja) 1994-12-26 1998-02-18 日本電気株式会社 立体画像用ディスプレイ装置
JPH08205201A (ja) 1995-01-31 1996-08-09 Sony Corp 疑似立体視方法
KR100414629B1 (ko) 1995-03-29 2004-05-03 산요덴키가부시키가이샤 3차원표시화상생성방법,깊이정보를이용한화상처리방법,깊이정보생성방법
JPH08331607A (ja) 1995-03-29 1996-12-13 Sanyo Electric Co Ltd 三次元表示画像生成方法
JP2848291B2 (ja) 1995-08-24 1999-01-20 松下電器産業株式会社 立体tv装置
JP3579162B2 (ja) 1995-06-29 2004-10-20 松下電器産業株式会社 立体cg画像生成装置
US6005607A (en) 1995-06-29 1999-12-21 Matsushita Electric Industrial Co., Ltd. Stereoscopic computer graphics image generating apparatus and stereoscopic TV apparatus
EP0772350A3 (en) * 1995-10-30 1997-07-23 Photron Kk Overlay device and method for producing composite images
US6088006A (en) * 1995-12-20 2000-07-11 Olympus Optical Co., Ltd. Stereoscopic image generating system for substantially matching visual range with vergence distance
US6163337A (en) 1996-04-05 2000-12-19 Matsushita Electric Industrial Co., Ltd. Multi-view point image transmission method and multi-view point image display method
JP3733359B2 (ja) 1996-04-05 2006-01-11 松下電器産業株式会社 視差推定方法、画像伝送方法、画像表示方法、多視点画像伝送方法、多視点画像復元方法および視差推定装置
US6389179B1 (en) 1996-05-28 2002-05-14 Canon Kabushiki Kaisha Image combining apparatus using a combining algorithm selected based on an image sensing condition corresponding to each stored image
JPH09322199A (ja) * 1996-05-29 1997-12-12 Olympus Optical Co Ltd 立体映像ディスプレイ装置
EP0817125B1 (en) 1996-06-26 2004-09-08 Matsushita Electric Industrial Co., Ltd. Stereoscopic computer graphics moving image generating apparatus
JP3934211B2 (ja) 1996-06-26 2007-06-20 松下電器産業株式会社 立体cg動画像生成装置
US6198484B1 (en) 1996-06-27 2001-03-06 Kabushiki Kaisha Toshiba Stereoscopic display system
US6310733B1 (en) * 1996-08-16 2001-10-30 Eugene Dolgoff Optical elements and methods for their manufacture
JP3532709B2 (ja) 1996-10-29 2004-05-31 株式会社東芝 動画像符号化方法および装置
JPH1127703A (ja) 1997-06-30 1999-01-29 Canon Inc 表示装置及びその制御方法
US6762794B1 (en) 1997-12-03 2004-07-13 Canon Kabushiki Kaisha Image pick-up apparatus for stereoscope
JP4149037B2 (ja) * 1998-06-04 2008-09-10 オリンパス株式会社 映像システム
JP3420504B2 (ja) 1998-06-30 2003-06-23 キヤノン株式会社 情報処理方法
US6064354A (en) * 1998-07-01 2000-05-16 Deluca; Michael Joseph Stereoscopic user interface method and apparatus
JP2000078615A (ja) 1998-09-02 2000-03-14 Sanyo Electric Co Ltd ディジタル放送受信機
JP3619063B2 (ja) 1999-07-08 2005-02-09 キヤノン株式会社 立体画像処理装置、その方法、立体視パラメータ設定装置、その方法そしてコンピュータプログラム記憶媒体
GB2354389A (en) * 1999-09-15 2001-03-21 Sharp Kk Stereo images with comfortable perceived depth
EP1085769B1 (en) 1999-09-15 2012-02-01 Sharp Kabushiki Kaisha Stereoscopic image pickup apparatus
JP3728160B2 (ja) * 1999-12-06 2005-12-21 キヤノン株式会社 奥行き画像計測装置及び方法、並びに複合現実感提示システム
JP2001195582A (ja) 2000-01-12 2001-07-19 Mixed Reality Systems Laboratory Inc 画像検出装置、画像検出方法、立体表示装置、表示コントローラ、立体表示システムおよびプログラム記憶媒体
GB0010685D0 (en) * 2000-05-03 2000-06-28 Koninkl Philips Electronics Nv Autostereoscopic display driver
JP4590686B2 (ja) 2000-05-12 2010-12-01 ソニー株式会社 立体画像表示装置
JP2002095018A (ja) 2000-09-12 2002-03-29 Canon Inc 画像表示制御装置及び画像表示システム、並びに画像データの表示方法
GB0105801D0 (en) 2001-03-09 2001-04-25 Koninkl Philips Electronics Nv Apparatus
JP4610799B2 (ja) * 2001-06-25 2011-01-12 オリンパス株式会社 立体観察システム、及び内視鏡装置
US20030113012A1 (en) 2001-08-17 2003-06-19 Byoungyi Yoon Method and system for controlling a screen ratio based on a photographing ratio
TW584815B (en) 2001-09-13 2004-04-21 Silicon Integrated Sys Corp Method for removing noise regions in a stereo 3D display system
JP2003107603A (ja) * 2001-09-28 2003-04-09 Namco Ltd 立体視画像生成装置、立体視画像生成情報および情報記憶媒体
US8369607B2 (en) * 2002-03-27 2013-02-05 Sanyo Electric Co., Ltd. Method and apparatus for processing three-dimensional images
JP3749227B2 (ja) 2002-03-27 2006-02-22 三洋電機株式会社 立体画像処理方法および装置
US7679616B2 (en) 2002-04-25 2010-03-16 Sharp Kabushiki Kaisha Image data generation apparatus for adding attribute information regarding image pickup conditions to image data, image data reproduction apparatus for reproducing image data according to added attribute information, and image data recording medium related thereto
JP4115188B2 (ja) 2002-07-19 2008-07-09 キヤノン株式会社 仮想空間描画表示装置
JP3973525B2 (ja) 2002-09-24 2007-09-12 シャープ株式会社 2d(2次元)及び3d(3次元)表示機能を備える電子機器
WO2004030376A1 (ja) * 2002-09-27 2004-04-08 Sharp Kabushiki Kaisha 立体画像表示装置、立体画像記録装置および立体画像記録方法
JP4228646B2 (ja) * 2002-10-02 2009-02-25 株式会社セガ 立体視画像生成方法および立体視画像生成装置
EP1408703A3 (en) 2002-10-10 2004-10-13 Fuji Photo Optical Co., Ltd. Electronic stereoscopic imaging system
JP4190263B2 (ja) 2002-11-25 2008-12-03 三洋電機株式会社 立体視用映像提供方法及び立体映像表示装置
US20060203085A1 (en) 2002-11-28 2006-09-14 Seijiro Tomita There dimensional image signal producing circuit and three-dimensional image display apparatus
JPWO2004084560A1 (ja) 2003-03-20 2006-06-29 富田 誠次郎 立体映像撮影表示システム
JP3962699B2 (ja) 2003-03-20 2007-08-22 株式会社ソフィア 遊技機
JP2004294861A (ja) 2003-03-27 2004-10-21 Sanyo Electric Co Ltd 立体映像表示装置
JP4179946B2 (ja) 2003-08-08 2008-11-12 オリンパス株式会社 立体内視鏡装置
JP2005165614A (ja) * 2003-12-02 2005-06-23 Canon Inc 画像合成装置および画像合成方法
GB0329312D0 (en) * 2003-12-18 2004-01-21 Univ Durham Mapping perceived depth to regions of interest in stereoscopic images
US8094927B2 (en) * 2004-02-27 2012-01-10 Eastman Kodak Company Stereoscopic display system with flexible rendering of disparity map according to the stereoscopic fusing capability of the observer
JP3770497B2 (ja) * 2004-03-31 2006-04-26 任天堂株式会社 携帯ゲーム機およびゲームプログラム
JP2005353047A (ja) * 2004-05-13 2005-12-22 Sanyo Electric Co Ltd 立体画像処理方法および立体画像処理装置
EP1877982A1 (en) * 2005-04-25 2008-01-16 Yappa Corporation 3d image generation and display system
JP2007044244A (ja) 2005-08-10 2007-02-22 Seiko Epson Corp 表示装置、遊技機、及び表示装置の制御方法
KR100893616B1 (ko) 2006-04-17 2009-04-20 삼성모바일디스플레이주식회사 전자 영상 기기, 2d/3d 영상 표시 장치 및 그 구동방법
JP5011842B2 (ja) 2006-06-22 2012-08-29 株式会社ニコン 画像再生装置
JP4892405B2 (ja) 2007-05-18 2012-03-07 キヤノン株式会社 画像処理装置および方法
JP4982862B2 (ja) 2007-09-07 2012-07-25 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及び画像生成システム
JP5409107B2 (ja) * 2009-05-13 2014-02-05 任天堂株式会社 表示制御プログラム、情報処理装置、表示制御方法、および情報処理システム
JP2011035592A (ja) * 2009-07-31 2011-02-17 Nintendo Co Ltd 表示制御プログラムおよび情報処理システム
JP5405264B2 (ja) 2009-10-20 2014-02-05 任天堂株式会社 表示制御プログラム、ライブラリプログラム、情報処理システム、および、表示制御方法
JP4754031B2 (ja) * 2009-11-04 2011-08-24 任天堂株式会社 表示制御プログラム、情報処理システム、および立体表示の制御に利用されるプログラム

Also Published As

Publication number Publication date
US9019261B2 (en) 2015-04-28
EP2480000A2 (en) 2012-07-25
EP2480000A3 (en) 2012-08-01
EP2323414A3 (en) 2011-06-01
US20110090215A1 (en) 2011-04-21
JP2011091486A (ja) 2011-05-06
EP2323414A2 (en) 2011-05-18
EP2480000B1 (en) 2016-08-03

Similar Documents

Publication Publication Date Title
JP5405264B2 (ja) 表示制御プログラム、ライブラリプログラム、情報処理システム、および、表示制御方法
JP4754031B2 (ja) 表示制御プログラム、情報処理システム、および立体表示の制御に利用されるプログラム
CN107209565B (zh) 用于显示固定大小的增强现实对象的方法和系统
US20110032252A1 (en) Storage medium storing display control program for controlling display capable of providing three-dimensional display and information processing system
KR100812905B1 (ko) 입체 화상 처리 방법, 장치 및 컴퓨터 판독가능 기록 매체
US7321682B2 (en) Image generation system, image generation method, program, and information storage medium
KR101675961B1 (ko) 적응적 부화소 렌더링 장치 및 방법
US8749547B2 (en) Three-dimensional stereoscopic image generation
TW201029440A (en) Image processing device, program, image processing method, recording method, and recording medium
US20120306860A1 (en) Image generation system, image generation method, and information storage medium
US20120306857A1 (en) Computer readable medium storing information processing program of generating a stereoscopic image
US20230290046A1 (en) Multiview display system and method employing multiview image convergence plane tilt
US7680322B2 (en) Method of fabricating printed material for stereoscopic viewing, and printed material for stereoscopic viewing
JP5950701B2 (ja) 画像表示システム、パズルゲームシステム、画像表示方法、パズルゲーム方法、画像表示装置、パズルゲーム装置、画像表示プログラム、および、パズルゲームプログラム
US20240073391A1 (en) Information processing apparatus, information processing method, and program
KR101425321B1 (ko) 적응형 렌즈 어레이를 구비하는 3차원 집적 영상 디스플레이 시스템 및 적응형 렌즈 어레이에 대한 요소 영상 생성 방법
JPH10172004A (ja) 立体画像表示方法
KR100893381B1 (ko) 실시간 입체영상 생성방법
JP6601392B2 (ja) 表示制御装置、表示制御方法、及び、プログラム
CN119536865A (zh) 虚拟场景显示方法及其装置、设备
CN116033137A (zh) 显示屏的处理方法、装置、非易失性存储介质及电子设备
CN120070719A (zh) 三维场景重建方法、装置、设备和存储介质
JP2019139376A (ja) 仮想空間画像提示システム、仮想空間画像提示方法及びプログラム
JP2018186319A (ja) 立体画像表示制御装置、立体画像表示制御方法及び立体画像表示制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120918

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130726

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131015

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131030

R150 Certificate of patent or registration of utility model

Ref document number: 5405264

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250