JP4754031B2 - 表示制御プログラム、情報処理システム、および立体表示の制御に利用されるプログラム - Google Patents

表示制御プログラム、情報処理システム、および立体表示の制御に利用されるプログラム Download PDF

Info

Publication number
JP4754031B2
JP4754031B2 JP2010238665A JP2010238665A JP4754031B2 JP 4754031 B2 JP4754031 B2 JP 4754031B2 JP 2010238665 A JP2010238665 A JP 2010238665A JP 2010238665 A JP2010238665 A JP 2010238665A JP 4754031 B2 JP4754031 B2 JP 4754031B2
Authority
JP
Japan
Prior art keywords
virtual camera
virtual
camera
display
plane
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
JP2010238665A
Other languages
English (en)
Other versions
JP2011120224A (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 JP2010238665A priority Critical patent/JP4754031B2/ja
Priority to US12/938,089 priority patent/US11089290B2/en
Priority to EP10189834A priority patent/EP2337364A3/en
Publication of JP2011120224A publication Critical patent/JP2011120224A/ja
Application granted granted Critical
Publication of JP4754031B2 publication Critical patent/JP4754031B2/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/30Image reproducers
    • H04N13/356Image reproducers having separate monoscopic and stereoscopic modes
    • H04N13/359Switching between monoscopic and stereoscopic modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/30Clipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/282Image signal generators for generating image signals corresponding to three or more geometrical viewpoints, e.g. multi-view systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/302Image reproducers for viewing without the aid of special glasses, i.e. using autostereoscopic displays
    • H04N13/31Image reproducers for viewing without the aid of special glasses, i.e. using autostereoscopic displays using parallax barriers

Description

この発明は、立体表示が可能な表示装置で2つの画像を用いて立体表示を行なう際に使用される表示制御プログラムおよび情報処理システム、ならびにそれに向けられたプログラムに関する。
従来から、所定の視差を有する2つの画像を用いて、立体表示を行なう方法が知られている。このような立体表示の適用先は、さまざまな分野へ広がりつつある。たとえば、ゲームやCGアニメーションといった、3次元仮想空間を表示するようなアプリケーションなどが開発されている。
このようなアプリケーションでは、3次元仮想空間内に2つの仮想カメラを設定し、それぞれの仮想カメラが仮想的に撮影することで得られる、オブジェクトなどの被写体を含む画像を用いて立体表示が行なわれる。ユーザにとって見やすい立体表示のためには、当該2つの仮想カメラを適切に設定する必要がある。たとえば、特開2003−107603号公報(特許文献1)には、注目させたい部分にフォーカスを当てるように立体表示用の画像を生成する方法が開示されている。
特開2003−107603号公報
上述のような表示装置で立体表示を行なう際には、2つの仮想カメラがそれぞれ撮影することで得られる画像を重ね合わせて表示する必要がある。特開2003−107603号公報(特許文献1)に開示される方法によれば、各々の視野範囲などを同じ設定のまま、それぞれの仮想カメラが異なる位置に配置される。この方法では、それぞれの仮想カメラが描画(出力)する画像の間には、重ならない部分が存在する。そのため、表示装置に実質的に表示される範囲よりもより広い範囲の画像を描画する必要があり、不要な無駄な処理が発生するという課題があった。
この発明は、このような課題を解決するためになされたものであって、その目的は、立体表示に用いられる2つの画像をより少ない処理量で生成することのできる表示制御プログラムおよび情報処理システム、ならびにそれに向けられたプログラムに関する。
この発明の第1の局面によれば、立体表示が可能な表示装置を制御するための表示制御プログラムを提供する。本表示制御プログラムは、表示装置のコンピュータを、所定の仮想空間を表現した画像を表示装置で立体表示するために用いられる右画像および左画像を生成するために、仮想空間の仮想的な撮影に用いられる右仮想カメラおよび左仮想カメラのカメラ方向が同じ方向を向き、かつ、当該カメラ方向と両仮想カメラの位置を通る直線とが垂直になるように、仮想空間内に両仮想カメラの位置および方向をそれぞれ設定する仮想カメラ設定手段と、仮想空間の中で少なくとも表示装置に表示すべき領域である表示対象領域に対して、右仮想カメラの視体積および左仮想カメラの視体積の両方が当該表示対象領域を含むように、両仮想カメラの視体積を設定し、さらに、少なくとも一方の仮想カメラの視体積が、当該一方の仮想カメラの位置からカメラ方向に伸びる線に関して他方の仮想カメラが存在する側に偏在するように設定する視体積設定手段として機能させる。
第1の局面に従う発明によれば、各々のカメラ方向が互いに平行になるように右仮想カメラおよび左仮想カメラが配置されるとともに、各仮想カメラに対して、他方の仮想カメラが存在する側に偏在した視体積が設定される。そのため、表示装置での立体表示に使用されない範囲の(余分な)画像を生成する必要がない。したがって、不要なレンダリング処理を抑制して、立体表示処理に係る処理量を削減することができる。
好ましい第2の局面によれば、仮想カメラ設定手段は、基準仮想カメラが仮想空間内に設定されることに応答して、右仮想カメラおよび左仮想カメラを、当該右仮想カメラおよび当該左仮想カメラのカメラ方向が、基準仮想カメラのカメラ方向である基準カメラ方向と同じ方向になるように設定し、視体積設定手段は、基準仮想カメラの視体積に含まれ、基準カメラ方向と垂直な所定の面上の領域である仮想平面領域である基準仮想平面領域を表示対象領域として設定する。
第2の局面に従う発明によれば、基準仮想カメラを仮想空間内に設定することで、対応する一対の仮想カメラ(右仮想カメラおよび左仮想カメラ)が設定される。そのため、立体表示を含むアプリケーションなどの制作者などからみれば、二次元表示のみを利用する(すなわち、立体表示を利用しない)アプリケーションを制作する場合と同様の作業量で、立体表示を行なうために必要な設定値を取得することができる。より具体的には、アプリケーションの制作者などは、仮想空間内に、表示装置の表示面に表示したい表示対象領域(基準仮想平面領域)が含まれるように、基準仮想カメラを設定するだけで、その基準仮想カメラを視点とした、立体表示を行なうために必要な右画像および左画像を容易に取得することができる。
また、仮想空間内の基準仮想平面領域に位置するオブジェクトは、表示装置の表示面に視差がない状態で表示されるので、当該アプリケーションをプレイするユーザにとって最も認識しやすい。さらに、基準仮想平面領域に設定された範囲は、表示装置で確実に表示されることが保証されるため、アプリケーションの制作者によってみれば、右仮想カメラおよび左仮想カメラの配置位置などを考慮することなく、基準仮想カメラおよび基準仮想平面領域のみを考慮すればよい。そのため、アプリケーションの制作が容易になる。
さらに好ましい第3の局面によれば、仮想カメラ設定手段は、基準仮想カメラの配置位置を基準カメラ方向と垂直な方向に沿って右側に移動させた位置に右仮想カメラを設定すること、および、基準仮想カメラの配置位置を基準カメラ方向と垂直な方向に沿って左側に移動させた位置に左仮想カメラを設定すること、の少なくとも一方を実行する。
第3の局面に従う発明によれば、右仮想カメラおよび/または左仮想カメラを基準仮想カメラのカメラ方向と垂直な方向に沿って配置するので、基準仮想平面領域に対する基準仮想カメラの位置関係と同じ位置関係を維持した状態に、右仮想カメラおよび左仮想カメラを設定できる。
さらに好ましい第4の局面によれば、仮想カメラ設定手段は、基準仮想カメラの配置位置を基準カメラ方向と垂直な方向に沿って所定距離だけ右側に移動させた位置に右仮想カメラを設定するとともに、基準仮想カメラの配置位置を基準カメラ方向と垂直な方向に沿って所定距離だけ左側に移動させた位置に左仮想カメラを設定する。
第4の局面に従う発明によれば、右仮想カメラの視野範囲(視体積)と左仮想カメラ視野範囲(視体積)とが、基準仮想カメラのカメラ方向を中心に対称的に設定される。このように設定される右仮想カメラおよび左仮想カメラで撮影した右画像および左画像を用いることで、ユーザにとってより自然な立体表示を提供することができる。
好ましい第5の局面によれば、視体積設定手段は、右仮想カメラの視体積における基準仮想平面領域に対応する位置の断面、および、左仮想カメラの視体積における基準仮想平面領域に対応する位置の断面が、いずれも基準仮想カメラの視体積における基準仮想平面領域に対応する位置の断面と一致するように、右仮想カメラおよび左仮想カメラの視体積を設定する。
好ましい第6の局面によれば、視体積設定手段は、右仮想カメラの位置から複数の頂点位置のそれぞれに向かう線によって、右仮想カメラの視体積を設定し、左仮想カメラの位置から複数の頂点位置のそれぞれに向かう線によって、左仮想カメラの視体積を設定する。
第5および第6の局面に従う発明によれば、右仮想カメラおよび左仮想カメラについて、基準仮想カメラの視体積に含まれる基準仮想平面領域と同じ範囲を含む視体積がそれぞれ設定される。すなわち、右仮想カメラおよび左仮想カメラの視体積は、基準仮想カメラの視体積に含まれる基準仮想平面領域と同じ範囲を過不足無く含む。そのため、右仮想カメラおよび左仮想カメラは、基準仮想カメラにより生成される画像と同じ大きさの画像(右画像および左画像)を生成する。したがって、レンダリング処理に要する負荷の増大を抑制することができる。また、基準仮想カメラからの視点の位置を維持したまま、表示装置において同じ被写体を立体表示することができる。
好ましい第7の局面によれば、視体積設定手段は、基準仮想カメラの視体積のニアクリップ面およびファークリップ面を用いて、右仮想カメラおよび左仮想カメラの視体積を設定する。
第7の局面に従う発明によれば、右仮想カメラおよび左仮想カメラは、基準仮想カメラによって描画される奥行き範囲と同じ奥行き範囲を有効に描画するので、レンダリング処理に要する負荷の増大を抑制することができる。また、基準仮想カメラの視点範囲を維持したまま、表示装置において同じ被写体を立体表示することができる。
好ましい第8の局面によれば、本表示制御プログラムは、さらにコンピュータを、視体積設定手段によって設定された、右仮想カメラおよび左仮想カメラの視体積を示す情報を出力する第1情報出力手段として機能させる。
第8の局面に従う発明によれば、右仮想カメラおよび左仮想カメラの視体積の情報を、本発明に係る表示制御プログラム以外の各種プログラムで利用することができる。
好ましい第9の局面によれば、表示制御プログラムは、さらにコンピュータを、仮想カメラ設定手段によって設定された、右仮想カメラと左仮想カメラとの間の距離を示す情報を出力する第2情報出力手段として機能させる。
第9の局面に従う発明によれば、右仮想カメラと左仮想カメラとの間の距離の情報を、本発明に係る表示制御プログラム以外の各種プログラムで利用することができる。
好ましい第10の局面によれば、第2情報出力手段は、基準仮想平面領域の幅を基準とした、右仮想カメラと左仮想カメラとの間の距離の比を出力する。
第10の局面に従う発明によれば、出力される距離の比は、仮想空間の無限遠にある共通のオブジェクトを右仮想カメラおよび左仮想カメラを用いてそれぞれ仮想的に撮影した場合に、当該オブジェクトが右画像と左画像との間でどの程度ずれるかを示す。そのため、たとえば、遠くの景色を1枚の画像で描画するような場合、右仮想カメラによって出力される右画像を、出力される距離の比に応じた値だけずらして表示し、同様に、左仮想カメラによって出力される左画像を、出力される距離の比に応じた値だけずらして表示することで、当該オブジェクトを最も奥にある絵として表現することができる。
好ましい第11の局面によれば、表示制御プログラムは、ライブラリとして実装されるプログラムを含む。
第11の局面に従う発明によれば、本発明に係る表示制御プログラムを複数のアプリケーションによって共通に利用することができる。
さらに好ましい第12の局面によれば、視体積設定手段は、右仮想カメラの視体積および左仮想カメラの視体積を互いに対称的に偏在するように設定する。
第12の局面に従う発明によれば、人間の視野に対応する右画像および左画像を生成できるので、より自然な立体表示を行なうことができる。
さらに好ましい第13の局面によれば、表示制御プログラムは、右仮想カメラによって生成される右画像と左仮想カメラによって生成される左画像との間に生じる視差量を評価するための、基準仮想平面領域と平行な視差判定面の位置を指定するための情報を受付けるように構成される。
第13の局面に従う発明によれば、右画像と左画像との間に生じる視差量を評価した上で、右仮想カメラおよび左仮想カメラを設定できる。そのため、立体表示をユーザが気持ちよく受け入れることができる範囲に、右仮想カメラおよび左仮想カメラを適切に設定できる。
さらに好ましい第14の局面によれば、表示制御プログラムは、右仮想カメラによって生成される右画像と左仮想カメラによって生成される左画像との間に生じる視差量を評価するための、基準仮想平面領域と平行な視差判定面を、両仮想カメラの視体積のうち基準仮想カメラから最も遠い位置に設定するように構成される。
第14の局面に従う発明によれば、右画像と左画像との間に生じる視差量を評価するための視差判定面が予め定められた位置に設定されるので、両仮想カメラの視体積のみを設定すれば、視差判定面を設定するための情報を入力する必要がない。また、両仮想カメラの視体積(レンダリングされる領域)に含まれるオブジェクトのうち、基準仮想カメラから最も遠い位置にあるオブジェクトについての視差量が最大となるので、視差判定面において視差量を評価すれば、それ以外の位置にあるオブジェクトについて生じる視差量を考慮する必要がない。そのため、アプリケーションの制作をより簡素化できる。
さらに好ましい第15の局面によれば、視差判定面は、基準仮想平面領域に対して、基準仮想カメラとは反対側に設けられる。
第15の局面に従う発明によれば、ユーザから見れば表示装置の表示面より奥側に仮想空間(典型的には、ゲーム空間など)が表現されるので、表示面上にほこりや汚れなどがあっても、当該仮想空間を違和感なく見ることができる。
好ましい第16の局面によれば、仮想カメラ設定手段は、右仮想カメラと左仮想カメラとの間の許容される最大距離を決定する最大距離決定手段を含む。
第16の局面に従う発明によれば、実際にユーザが表示装置を見る際の状況に応じて、右仮想カメラおよび左仮想カメラが設定されるので、ユーザが実際に仮想空間にいるような状況を再現することができる。
さらに好ましい第17の局面によれば、表示制御プログラムは、さらにコンピュータを、第1および第2モードのいずれかを設定するモード設定手段として機能させる。仮想カメラ設定手段は、第1モードが設定された場合に、右仮想カメラによって生成される右画像と左仮想カメラによって生成される左画像との間に生じる視差量が予め定められた値を超えないように、右仮想カメラおよび左仮想カメラを設定し、第2モードが設定された場合に、基準仮想平面領域から右仮想カメラおよび左仮想カメラまでの距離が予め定められた値となるように、右仮想カメラおよび左仮想カメラを設定する。
第17の局面に従う発明によれば、典型的には、アプリケーションでのゲーム進行などに応じて、アプリケーションの制作者が意図した場面を立体表示した状況、および、ユーザが実際に仮想空間にいるような状況を再現したい状況のいずれについても対応することができる。
好ましい第18の局面によれば、本表示制御プログラムは、さらにコンピュータを、立体感変更指示に応答して、仮想カメラ設定手段によって設定された右仮想カメラの位置および左仮想カメラの位置の少なくとも一方を変更する変更受付手段として機能させる。
さらに好ましい第19の局面によれば、視体積設定手段は、変更受付手段によって、右仮想カメラの位置、または、左仮想カメラの位置が変更されたときに、右仮想カメラおよび左仮想カメラの視体積を変更する。
第18および第19の局面に従う発明によれば、各ユーザにおける立体表示の見え方などに応じて、立体感を適宜調整することができる。
さらに好ましい第20の局面によれば、変更受付手段は、所定の一軸方向に沿うスライド操作に応じて、立体感変更指示を受付ける。
さらに好ましい第21の局面によれば、変更受付手段は、仮想カメラ設定手段により最初に設定された右仮想カメラと左仮想カメラとの間の距離を立体感指示の調整幅の略最大値に対応させる。
第20および第21の局面に従う発明によれば、ユーザは、スライド操作を行なうことで、表示装置に表現される立体表示の立体度合を直感的に操作することができる。
この発明の第22の局面に従う情報処理システムは、立体表示が可能な表示装置と、所定の仮想空間を表現した画像を表示装置で立体表示するために用いられる右画像および左画像を生成するために、仮想空間の仮想的な撮影に用いられる右仮想カメラおよび左仮想カメラのカメラ方向が同じ方向を向き、かつ、当該カメラ方向と両仮想カメラの位置を通る直線とが垂直になるように、仮想空間内に両仮想カメラの位置および方向をそれぞれ設定する仮想カメラ設定手段と、仮想空間の中で少なくとも表示装置に表示すべき領域である表示対象領域に対して、右仮想カメラの視体積および左仮想カメラの視体積の両方が当該表示対象領域を含むように、両仮想カメラの視体積を設定し、さらに、少なくとも一方の仮想カメラの視体積が、当該一方の仮想カメラの位置からカメラ方向に伸びる線に関して他方の仮想カメラが存在する側に偏在するように設定する視体積設定手段と含む。
第22の局面に従う発明によれば、上述の第1の局面に従う発明と同様の作用効果を得ることができる。
第23の局面に従えば、立体表示の制御に利用されるプログラムを提供する。プログラムはコンピュータを、所定の仮想空間における基準仮想カメラを定義する第1プロジェクション行列および第1ビュー行列、ならびに、当該基準仮想カメラのカメラ方向である基準カメラ方向と垂直な所定の面上の領域である仮想平面領域までの当該基準仮想カメラからの距離の入力を受付ける入力手段と、入力手段によって受付けられた、第1プロジェクション行列、第1ビュー行列、仮想平面領域までの基準仮想カメラからの距離に基づいて、仮想空間に基準仮想カメラを設定するとともに、仮想空間の仮想的な撮影に用いられる右仮想カメラおよび左仮想カメラのカメラ方向が同じ方向を向き、かつ、当該カメラ方向と両仮想カメラの位置を通る直線とが垂直になるように、仮想空間内に両仮想カメラの位置および方向をそれぞれ設定する仮想カメラ設定手段と、仮想空間の中で少なくとも立体表示すべき領域である表示対象領域に対して、右仮想カメラの視体積および左仮想カメラの視体積の両方が当該表示対象領域を含むように、両仮想カメラの視体積を設定し、さらに、少なくとも一方の仮想カメラの視体積が、当該一方の仮想カメラの位置からカメラ方向に伸びる線に関して他方の仮想カメラが存在する側に偏在するように設定する視体積設定手段と、仮想カメラ設定手段および視体積設定手段によって設定された右仮想カメラを定義する第2プロジェクション行列および第2ビュー行列と、仮想カメラ設定手段および視体積設定手段によって設定された左仮想カメラを定義する第3のプロジェクション行列および第3のビュー行列とを出力する出力手段として機能させる。
第23の局面に従う発明によれば、典型的には、立体表示を行なうことが可能なアプリケーションなどと連携して、より容易に立体表示機能を提供することができる。
上述の記載においては、本発明の理解を助けるために後述の実施形態との対応関係を示す補足説明等を付したが、これらは本発明を何ら限定するものではない。
本発明のある局面によれば、立体表示に必要な画像をより少ない数のパラメータの設定で生成することができる。
本発明の実施の形態に従う立体表示処理を関連する平面表示処理と対比して説明するための図である。 本発明の実施の形態に従う仮想カメラの視野範囲を説明するための図である。 本発明の実施の形態に従う立体表示処理に係る機能を示す模式図である。 本発明の実施の形態に従う表示装置の構造の一例を示す図である。 本発明の実施の形態に従う情報処理システムの内部構成を示すブロック図である。 本発明の実施の形態に従う情報処理システムにおいて実装されるプログラム構成の一例を示す図である。 図6に示す立体表示用ライブラリについて入出力されるデータ項目を説明するための図である。 本発明の実施の形態に従う立体表示処理の対象となる3次元仮想空間の一例を示す模式図である。 図8に示す状態において生成される画像(右画像および左画像)の生成処理を示す模式図である。 図9に示す右仮想カメラおよび左仮想カメラによってそれぞれ生成される画像の一例を示す図である。 本発明の実施の形態に従うカメラ行列を説明するための図である。 本発明の実施の形態に従う右仮想カメラおよび左仮想カメラの設定処理を2次元的に説明するための図である。 図12に示す右仮想カメラおよび左仮想カメラの設定処理の処理結果に応じて設定される視体積を示す図である。 本発明の実施の形態の変形例に従う右仮想カメラおよび左仮想カメラの設定処理を2次元的に説明するための図である。 この発明の実施の形態に従うリアルモードにおける処理内容を説明するための図である。 本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の一例を示す図である。 本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の一例を示す図である。 本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の一例を示す図である。 本発明の実施の形態に従う立体表示用ライブラリの戻り値の算出処理を説明するための図である。 本実施の形態の変形例に従う立体表示用ライブラリについて入出力データ項目を説明するための図である。 本発明の実施の形態に従うプログラムのメインルーチンを示すフローチャートである。 本発明の実施の形態に従う立体表示用ライブラリの処理内容を示すフローチャートである。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.概要および概念>
本発明のある局面によれば、典型的には、立体表示を含むアプリケーションなどを制作する場合であっても、平面表示のみを含むアプリケーションと同様の作業量で済むような環境を提供することを目的とする。そこで、まず、本発明に係る概要および概念について、図1〜図3を参照して説明する。
[a1.立体表示]
図1は、本発明の実施の形態に従う立体表示処理を関連する平面表示処理と対比して説明するための図である。図1(A)を参照して、オブジェクトOBJ1およびOBJ2を含む3次元仮想空間を表現した画像を表示装置10に表示する場合を考える。この場合には、オブジェクトOBJ1およびOBJ2が配置された3次元仮想空間内のいずれかの位置に仮想カメラ300が設定される。そして、3次元仮想空間内のオブジェクトOBJ1およびOBJ2などを、仮想カメラ300で仮想的に撮影することで、画像(平面2次元画像)を生成する。この基準仮想カメラ300によって生成される画像からなる表示データに基づいて、表示装置10において平面表示がなされる。
ここで、仮想カメラ300は、立体表示を行なわず平面表示のみを行なう処理において設定される、3次元仮想空間および3次元仮想空間内のオブジェクトを仮想的に撮影する。
後述するように、本実施の形態に従う立体表示処理では、上述の図1(A)に示す平面表示を行なう場合に要するパラメータと同様のパラメータを指定することで、表示装置10における立体表示に必要な、一対の画像(右画像および左画像)を生成する。
以下、図1(B)を参照して、一例として、上述の平面表示においてレンダリングされた範囲と同様の範囲を立体表示する処理について説明する。
この場合には、まず、オブジェクトOBJ1およびOBJ2を含む3次元仮想空間内において、上述の図1に示す平面表示をするときと同じように、仮想カメラ300が指定される(なお、この「平面表示をするときと同じように設定される仮想カメラ」を基準仮想カメラと呼ぶ)。この基準仮想カメラ300の配置位置を基準として、右画像を生成するための右仮想カメラ302および左画像を生成するための左仮想カメラ304の位置および方向が設定される。より具体的には、基準仮想カメラ300のカメラ位置を基準として、基準仮想カメラ300に対して右方向に距離Cだけ離れるように、右仮想カメラ302を設定し、基準仮想カメラ300に対して左方向に距離Cだけ離れるように、左仮想カメラ304を設定する。なお、右仮想カメラと左仮想カメラのカメラ方向および画角は、基準仮想カメラ300のカメラ方向および画角と同じ値に設定される。つまり、この際、後述するように、右仮想カメラ302および左仮想カメラ304の視野範囲(視体積)もそれぞれ設定される。このように、配置された右仮想カメラ302および左仮想カメラ304で、3次元仮想空間内のオブジェクトOBJ1およびOBJ2などを仮想的に撮影することで、右画像および左画像がそれぞれ生成される。
そして、右画像に基づいて右眼用の表示データが生成されるとともに、左画像に基づいて左眼用の表示データが生成される。これらの表示データに基づいて、表示装置10において立体表示がなされる。
概略すると、本実施の形態に従う立体表示処理においては、仮想空間を表現した画像を表示装置10で立体表示するために用いられる右画像および左画像を生成するために、基準仮想カメラ300を基準にして、仮想空間(および、それに含まれるオブジェクト)の仮想的な撮影に用いられる右仮想カメラ302および左仮想カメラ304がそれぞれ仮想空間内に設定される。このとき、右仮想カメラ302のカメラ方向303と左仮想カメラ304のカメラ方向305とが同じ方向を向き(すなわち、カメラ方向303とカメラ方向305とが平行であり)、かつ、カメラ方向303(および、カメラ方向305)と右仮想カメラ302および左仮想カメラ304の位置を通る直線(基準線350)とが垂直になるように、仮想空間内に右仮想カメラ302および左仮想カメラ304が設定される。
このように右仮想カメラ302および左仮想カメラ304が設定されると、右仮想カメラ302および左仮想カメラ304のそれぞれについて視野範囲(視体積)が設定される。このとき、表示装置10の表示面付近に表示させたい範囲である表示対象領域(典型的には、仮想空間内に設定される2次元平面である基準仮想平面領域360や特定のオブジェクトが存在する範囲)が指定される。すなわち、表示対象領域は、仮想空間の中で少なくとも表示装置に表示すべき領域に相当する。この表示対象領域は、カメラ方向303および305に垂直であり、かつ、カメラ方向303および305側に設定される。そして、右仮想カメラ302および左仮想カメラ304については、両仮想カメラの視体積のいずれもが、表示対象領域を含むように、右仮想カメラ302の視体積382および左仮想カメラ304の視体積384がそれぞれ設定される。
すなわち、表示対象領域の面は、カメラ方向303および305に垂直である。また、表示対象領域は、右仮想カメラ302または左仮想カメラ304から見ると、それぞれカメラ方向303および305の側に存在する。また、右仮想カメラ302と左仮想カメラ304との中間点から表示対象領域の中心へ伸びる方向は、カメラ方向303および305と一致する。
さらに、少なくとも一方の仮想カメラに関して、当該一方の仮想カメラの視体積は、他方の仮想カメラの位置から対応するカメラ方向(カメラ方向303または305)に伸びる線に関して、他方の仮想カメラが存在する側に偏在するように設定される。
ここで、一方の仮想カメラの視体積が、当該仮想カメラのカメラ方向に関して他方の仮想カメラが存在する側に「偏在」するとは、当該一方の仮想カメラの位置から、当該一方の仮想カメラのカメラ方向に伸ばした直線を当該一方の仮想カメラのカメラ軸とみなしたときに、当該一方の仮想カメラの視体積に含まれる、当該一方の仮想カメラのカメラ軸に垂直な任意の平面の中心(重心)が、当該カメラ軸よりも、他方の仮想カメラが存在する側に寄っていることをいう。言い換えれば、一方の仮想カメラの視体積全体の重心が、当該一方の仮想カメラのカメラ軸に対して、他方の仮想カメラが存在する側に偏っている状態を意味する。
なお、右仮想カメラ302の視体積および左仮想カメラ304の視体積を互いに対称的に偏在することがより好ましい。これにより、人間の視野に対応する右画像および左画像を生成できるので、より自然な立体表示を行なうことができる。
上述のような立体表示処理によれば、アプリケーションの制作者などから見れば、図1(A)に示すような、平面表示のみを利用する(立体表示を利用しない)アプリケーションと同様に基準仮想カメラ300の設定値を指定することで、立体表示を行なうために必要な、右仮想カメラ302および左仮想カメラ304の設定値を取得することができる。
また、上述のような立体表示処理によれば、右仮想カメラ302および左仮想カメラ304に対して、それぞれ他方の仮想カメラが存在する側に偏在した視体積が設定されることになるので、表示装置10での立体表示に使用されない範囲の(余分な)画像を生成することがない。したがって、不要なレンダリング処理を抑制して、立体表示処理に係る処理量を削減することができる。
[a2.用語]
(i) 本明細書において、「立体表示」とは、画像に含まれる少なくとも一部の対象物をユーザに立体的に視認させることができるように、当該画像を表現することを意味する。典型的には、視差を有する一対の平面2次元画像(ステレオ画像)をユーザに視認させて、眼や脳の生理的な働きを利用することで、当該ユーザに立体感を感じさせる。
本明細書において、「視差」とは、ユーザの右眼で視認される像と、ユーザの左眼で視認される像との間における、対象点の見え方の違いを意味する。典型的には、ある対象物を異なる複数の観測点から観測した場合に、それぞれの観測点で観測される内容に基づいて画像をそれぞれ生成した場合に、これらの画像は視差を有する画像となる。また、右眼用の画像を生成するための観測点と左眼用の画像を生成するための観測点との差に依存して、ある対象物についての、表示される右眼用の画像内の像と左眼用の画像内の像とは、それぞれの現れる位置が異なる。このような、2つの画像内における同一対象物についての像の位置の差の大きさを「視差量」と称す。
(ii) 本明細書において、「右」および「左」とは、ユーザがいずれの眼で視認するかを区別するために使用される。すなわち、上述した「右画像」は、ユーザが右眼で視認されることが予定されている画像であることを示し、上述した「左画像」は、ユーザが左眼で視認されることが予定されている画像であることを示す。また、「右画像」を生成する仮想カメラを「右仮想カメラ」とも称し、「左画像」を生成する仮想カメラを「左仮想カメラ」とも称する。
(iii) 本明細書において、「視体積」とは、以下のような範囲を意味する。図2は、本発明の実施の形態に従う仮想カメラの視野範囲を説明するための図である。図2を参照して、本実施の形態に従う仮想カメラは、3次元仮想空間のうちカメラ方向の所定範囲(図2においてハッチング表示されている範囲)にあるオブジェクトのみをレンダリングする。言い換えれば、仮想カメラの視野角(図2において破線で囲む範囲)の外になる範囲はレンダリングされない。また、仮想カメラに対して、近傍側に「ニアクリップ面」が設定され、遠方側に「ファークリップ面」が設定される。これらのニアクリップ面およびファークリップ面は、仮想カメラのカメラ方向の線に対して垂直となるように設定される。このニアクリップ面とファークリップ面との間に存在するオブジェクトであり、かつ、仮想カメラの視野角の内に含まれるオブジェクトがレンダリング対象となる。
このように仮想カメラによる仮想的な撮影によって画像を生成する際の、ユーザが現実に見える範囲(すなわち、レンダリングされる範囲)を「視体積」とも称す。より具体的には、仮想カメラ位置を頂点とし当該仮想カメラのファークリップ面を底面とする四角錐の全体のうち、ニアクリップ面を一方面としファークリップ面を他方面とする四角錐体を「視体積」と称す。この「視体積」は、「ビューフラスタム」または「視錐体」と称されることもある。したがって、3次元仮想空間をある視体積(視野範囲)を有する仮想カメラで撮影したときには、当該視体積の内に含まれる空間が、当該仮想カメラによってレンダリングされることになる。
上述の例について見れば、図1(A)に示す基準仮想カメラ300に対応して視体積380が設定され、図1(B)に示す右仮想カメラ302に対応して視体積382が設定され、図1(B)に示す左仮想カメラ304に対応して視体積384が設定される。
(iv) 表示装置10において立体表示を行なう場合には、表示装置10の表示面の位置に対応する平面(3次元仮想空間の中で、立体表示を見るユーザが表示装置10の表示面の位置に存在すると感じる面)である「基準仮想面」が3次元仮想空間内に設定される(図2参照)。なお、基準仮想面は、「3次元仮想空間の中で、立体表示を見るユーザが表示装置10の表示面から所定のオフセットを持った位置に存在すると感じる面」としてもよい。この「基準仮想面」についても、カメラ方向に対して垂直となるように設定される。さらに、表示装置10の表示面の実サイズは有限であるから、当該基準仮想面のうち、表示装置10の表示面にレンダリングされる範囲に対応する「基準仮想平面領域」を定義することができる。すなわち、無限面である基準仮想面のうち、レンダリングされる範囲(視体積に含まれる範囲)が、「基準仮想平面領域」である。
「基準仮想平面領域」は、表示装置10において立体表示を行なう際に、ユーザが表示装置10の表示面付近(前述の通り、典型的にはちょうど表示面の位置であるが、例えば表示面から所定のオフセットを持った位置として設定してもよい)にあるように感じる3次元仮想空間内の位置および領域を定義する。すなわち、立体表示は、表示装置10の表示面の手前側に飛び出して見える部分や、表示面の奥に引っ込んで見える部分を含むが、ユーザにとってみれば、基準仮想平面領域の付近に対応する空間がちょうど表示装置10の表示面付近にあるように見えることになる。右仮想カメラ302および左仮想カメラ304が、図1(B)に示すような位置に設定された場合には、両仮想カメラによって生成される右画像および左画像の間では、基準仮想平面領域の付近に対応する空間に位置するオブジェクトについての表示のされ方が互いに一致する(すなわち、視差が実質的に無くなる)。
したがって、表示装置10の表示面を見るユーザにとってみれば、基準仮想平面領域に対応する部分(にあるオブジェクト)については、右眼で視認する画像(右画像)と左眼で視認する画像(左画像)との間で実質的に同じ位置に見え、その結果、両画像を現実に表示している面である、表示装置10の表示面上に当該部分が存在するように見える。
一方、基準仮想平面領域とは異なる位置に設定された面に対応する部分(にあるオブジェクト)については、右仮想カメラ302と左仮想カメラ304との位置関係に応じて、右オブジェクト画像と左オブジェクト画像の表示位置が異なったものとなり(すなわち、何らかの視差を有する表示となり)、ユーザにとってみれば、表示装置10の表示面から飛び出した位置または引っ込んだ位置に存在するように見える。
(v) 上述したように、本実施の形態においては、視差を有する一対の平面2次元画像を表示装置10に表示させることで、ユーザに立体感を感じさせる。この一対の平面2次元画像内のあるオブジェクトについての視差量が大きくなればなるほど、当該オブジェクトはユーザにとってより大きな立体感をもって視認されることになるが、視差量が一定値を超えて大きくなると、逆にユーザは立体感を感じにくくなる。そのため、表示装置10で立体表示を行なう際には、視差量を適切な範囲に維持する必要がある。以下では、ユーザが表示装置10において立体表示を気持ちよく受け入れることができる、表示面上における右画像と左画像との間の最大視差量を「限界視差量」と称す。この立体感を気持ちよく感じられるしきい値、すなわち限界視差量は、表示装置10の表示面についての実画面幅、ユーザの眼の実間隔、およびユーザから表示装置10の表示面までの実距離などによって決まる。
したがって、本実施の形態においては、ユーザに視認させたいオブジェクトについての視差量がこの限界視差量以下の視差量となるように、当該オブジェクトが表示装置10の表示面に表示される。
このような表示装置10に表示されるオブジェクトについての立体感を制御するために、本実施の形態においては、発生する視差量を評価するための平面が3次元仮想空間内に設定される。以下では、このような視差量を評価するための平面を「視差判定面」と称する(図2参照)。この視差判定面についても、仮想カメラのカメラ方向に対して垂直となるように設定される。すなわち、視差判定面は、基準仮想面よりも奥側(仮想カメラと反対側)の位置に、基準仮想平面と平行に設定される。
より具体的には、3次元仮想空間内に設定される視差判定面に位置する表示対象を右仮想カメラおよび左仮想カメラでそれぞれ仮想的に撮影して得られる右画像および左画像の間では、右仮想カメラと左仮想カメラとの間の位置関係に応じた視差が生じる。そして、この視差判定面に位置するオブジェクトについての位置ずれ量が所定のしきい値を超えないように、右仮想カメラおよび左仮想カメラが設定される。これにより、視差判定面より手前(仮想カメラ側)に存在する各オブジェクトについての視差量が限界視差量以下とすることができる。なお、基準仮想面より手前側の位置に、別途の視差判定面(第2の視差判定面)を設けて、当該視差判定面に位置する表示対象についての位置ずれ量が所定のしきい値を超えないように、仮想カメラを設定してもよい。以下に説明する本実施の形態では、基準仮想面を所望の位置に設定できるように、第2の視差判定面は設けない例を示す。
[a3.機能および処理]
図3は、本発明の実施の形態に従う立体表示処理に係る機能を示す模式図である。図3を参照して、本実施の形態に従う立体表示処理は、仮想カメラ設定機能50と、視体積設定機能60と、変更受付機能70と、モード設定機能80と、レンダリング機能90とを含む。
仮想カメラ設定機能50は、3次元仮想空間内のオブジェクトを表示装置10で立体表示するために用いられる右画像および左画像を生成するための、右仮想カメラ302および左仮想カメラ304の3次元仮想空間内における配置位置を決定する。
視体積設定機能60は、仮想カメラ設定機能50によってその配置位置が決定された右仮想カメラ302および左仮想カメラ304に対して、それぞれ視体積382および384を設定する。なお、後述する実施の形態においては、右仮想カメラ302および左仮想カメラ304の配置位置および視体積を並列的に決定する例を示すが、配置位置と視体積とを直列的に決定するようにしてもよい。
より具体的には、仮想カメラ設定機能50は、最大距離決定機能51を含む。最大距離決定機能51は、右仮想カメラ302と左仮想カメラ304との間の許容される最大距離を決定する。右仮想カメラ302と左仮想カメラ304との間の3次元仮想空間における距離が大きくなるほど(言い換えれば、2つの仮想カメラの間が離れるほど)、右画像と左画像との間には、より大きな視差量が生じ得る。一方、上述したように、右画像と左画像との間の視差量が一定値を超えて大きくなると、ユーザは立体感を感じにくくなる。そのため、最大距離決定機能51は、アプリケーションやユーザなどによって与えられる各種条件下において、右仮想カメラ302と左仮想カメラ304との間をどの程度まで離して配置することができるかを決定する。
上述のように、仮想カメラ設定機能50および視体積設定機能60は、何らかの方法によって設定される基準カメラ情報に基づいて、右仮想カメラ302および左仮想カメラ304の設定値を算出する。
変更受付機能70は、立体感変更指示に応答して、仮想カメラ設定機能50によって決定されている右仮想カメラ302の配置位置および左仮想カメラ304の配置位置の少なくとも一方を変更する。これは、基本的には、仮想カメラ設定機能50においては、与えられた条件下において許容される最大値となるように、右仮想カメラ302および左仮想カメラ304の配置位置が決定されるが、これらの設定値を必ずしもそのまま用いるのではなく、さらに調整したいというニーズがあるためである。なお、立体感変更指示は、表示装置10において提供される立体感の度合いの変更を示す指示である。この立体感変更指示は、ユーザが実際に立体表示されるオブジェクトを見ながら入力する形態に加えて、アプリケーションの制作者が予め意図した範囲に立体感を制限するために与えられる形態もある。
また、変更受付機能70によって、右仮想カメラ302および左仮想カメラ304の少なくとも一方の配置位置が変更されると、視体積設定機能60は、先に設定されている右仮想カメラ302および左仮想カメラ304の視体積382および/または384を変更する。すなわち、視体積設定機能60は、右仮想カメラ302および/または左仮想カメラ304の配置位置の変更に応じて、より適切な視体積をそれぞれ設定する。
なお、変更受付機能70に対して入力される、ユーザからの立体感変更指示を受付けるための入力手段の一例については、図16〜図18を参照して、後ほど詳細に説明する。
本実施の形態に従う立体表示処理においては、表示装置10における立体表示に係るモードとして、2つのモード(「アプリケーション優先モード」および「リアルモード」)が選択的可能になっている。モード設定機能80は、アプリケーション(すなわち、アプリケーションの制作者の意図)やユーザなどによって与えられるモード設定に応答して、「アプリケーション優先モード」および「リアルモード」をいずれかを設定する。
「アプリケーション優先モード」では、アプリケーションの制作者が意図した範囲の内容を立体表示できるように、右仮想カメラ302および左仮想カメラ304の設定値が決定される。より具体的には、「アプリケーション優先モード」が設定された場合に、仮想カメラ設定機能50は、右仮想カメラ302によって生成される右画像と左仮想カメラ304によって生成される左画像との間に生じる視差量が、(アプリケーションなどによって)予め定められた値を超えないように、右仮想カメラ302および左仮想カメラ304を設定する。
一方、「リアルモード」では、ユーザに対して、3次元仮想空間に存在しているかのような感覚を与えることができるように、右仮想カメラ302および左仮想カメラ304の設定値が決定される。より具体的には、「リアルモード」が設定された場合に、仮想カメラ設定機能50は、基準仮想平面領域から右仮想カメラ302および左仮想カメラ304までの距離が予め定められた値となるように、右仮想カメラ302および左仮想カメラ304を設定する。なお、各モードにおける、右仮想カメラ302および左仮想カメラ304の設定値を決定する処理の具体例については、図11〜図15を参照して、詳細に説明する。
レンダリング機能90は、仮想カメラ設定機能50および視体積設定機能60によって決定される右仮想カメラ302および左仮想カメラ304の設定値に基づいて、オブジェクト定義92を参照して、右画像および左画像を生成する。このオブジェクト定義92は、3次元仮想空間および当該3次元仮想空間内のオブジェクトなどの情報を含む。すなわち、レンダリング機能90は、3次元仮想空間内のオブジェクトを右仮想カメラ302および左仮想カメラ304でそれぞれ仮想的に撮影することで、当該オブジェクトを表示装置10で立体表示するために用いられる、右画像および左画像を生成する。
なお、上述した、各仮想カメラの3次元仮想空間内の配置位置および視体積などは、任意の方法で指定することが可能であるが、関連する3次元仮想空間についてのレンダリング技術などとの一貫性を維持する観点からは、カメラ行列(プロジェクション行列およびビュー行列)として定義することが好ましい。このカメラ行列の詳細については、後述する。
<B.典型的な実装>
[b1.表示装置]
表示装置10としては、ユーザに向けて立体表示が可能なデバイスであれば、任意の型式の表示デバイスを採用することができる。すなわち、表示装置10としては、視差を有する2つの画像をユーザがそれぞれの眼で視認できるようなデバイスであればよい。典型的には、例えば、前面視差バリアタイプの液晶表示デバイスやレンチキュラータイプの表示デバイスなどを用いることができる。あるいは、表示装置10として、それに含まれる主波長成分の異なる2つの画像をそれぞれ独立に表示するとともに、透過波長範囲の異なる2つのカラーフィルタがそれぞれ組込まれたメガネをユーザに装着させることで、立体表示を行なう構成を採用してもよい。これに類似の構成として、偏光方向を異ならせて2つの画像をそれぞれ表示するとともに、当該2つの偏光方向に対応する偏光フィルタがそれぞれ組込まれたメガネをユーザに装着させることで、立体表示を行なう構成であってもよい。
以下、図4を参照して、視差光学系として視差バリアを有する前面視差バリアタイプの構成を採用した場合の表示装置10の構成について説明する。この表示装置10では、その表示面に、一定の視差を有する一対の右画像と左画像とを表示することで、左右両表示画像の間の視差量に応じた立体感をユーザに視認させることができる。
図4は、本発明の実施の形態に従う表示装置10の構造の一例を示す図である。図4には、前面視差バリアタイプの液晶表示デバイスの断面構造が示されている。図4に示す表示装置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つの画像の対応するピクセルを表示させることで、ユーザに所定の視差を与えることができる。
なお、図4に示す例においては、視差バリア12のユーザ側の表面が表示装置10の「表示面」に相当する。
[b2.システム構成]
上述した本実施の形態に従う立体表示処理は、コンピュータを用いたシステムとして実装することが可能である。以下、図5を参照して、情報処理システムとして実装した場合の構成例について説明する。
図5は、本発明の実施の形態に従う情報処理システム1の内部構成を示すブロック図である。図5を参照して、本実施の形態に従う情報処理システム1は、プロセッサによる処理が可能なコンピュータの典型例である。なお、情報処理システム1としては、パーソナルコンピュータ、ワークステーション、携帯端末、PDA(Personal Digital Assistant)、携帯電話、携帯型ゲーム装置などとして実現してもよい。
情報処理システム1は、表示装置10に加えて、CPU(Central Processing Unit)100と、ROM(Read Only Memory)102と、RAM(Random Access Memory)104と、入力部106と、第1および第2VRAM(Video RAM)112および122とを含む。なお、各部は、内部バスを介して、互いにデータ通信可能に接続されている。
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.プログラム構成]
本発明の実施の形態に従う情報処理システム1において実装される表示制御プログラムとしては、アプリケーションとして実装される部分と、ライブラリとして実装される部分とを含み得る。以下、図6を参照して、本実施の形態に従う情報処理システム1におけるプログラムの実装例について説明する。
図6は、本発明の実施の形態に従う情報処理システム1において実装されるプログラム構成の一例を示す図である。
図6(A)は、本実施の形態に従う情報処理システム1において実装されるプログラム構成の一例を示す図である。図6(A)に示す情報処理システム1では、アプリケーション200Aおよびファームウェア250Aが実装されている。典型的には、アプリケーション200Aは記憶媒体に格納されて流通し、ファームウェア250AはROM102(図5)などに予め格納されている。情報処理システム1のCPU100は、必要に応じて、アプリケーション200Aおよびファームウェア250Aに含まれる命令を読出して実行する。
アプリケーション200Aは、入力モジュール202と、進行モジュール204と、画像レンダリングモジュール206と、オブジェクト定義データ208と、立体表示用ライブラリ218とを含む。
入力モジュール202は、ユーザから入力部106(図5)などを介して与えられる指令に応じた内部コマンドを生成する。より具体的には、入力モジュール202は、立体感変更指示やモード設定の入力に応答して、必要な内部コマンドを発生する。すなわち、入力モジュール202は、図3に示す変更受付機能70およびモード設定機能80を提供する。
進行モジュール204は、入力モジュール202によって生成される内部コマンドに従って、アプリケーションを進行する。すなわち、進行モジュール204は、アプリケーションの進行に伴って、表示データや各種のパラメータを順次更新する。
画像レンダリングモジュール206は、図3に示すレンダリング機能90を提供する。より具体的には、画像レンダリングモジュール206は、進行モジュール204によって、図1(B)に示す基準仮想カメラ300の情報のみが指定された場合には、立体表示用ライブラリ218をコールして、右仮想カメラ302および左仮想カメラ304の情報を取得し、これらの取得した情報に基づいて、右画像および左画像を生成する(詳細については後述する)。
オブジェクト定義データ208は、右画像および左画像を生成するための3次元仮想空間および当該3次元仮想空間に含まれるオブジェクトの定義を含む。
立体表示用ライブラリ218は、図1に示す基準仮想カメラ300の情報などの指定に応答して、立体表示を行なうための右仮想カメラ302および左仮想カメラ304の設定値を算出する。また、立体表示用ライブラリ218は、算出した右仮想カメラ302と左仮想カメラ304との間の位置関係を示す値を戻り値として出力する。すなわち、立体表示用ライブラリ218は、図3に示す、仮想カメラ設定機能50および視体積設定機能60を提供する。なお、立体表示用ライブラリ218のインターフェイスの詳細については、図7を用いて後述する。
ファームウェア250Aは、図5に示す情報処理システム1を構成する各ハードウェアを制御するための機能や、メニュー画面などを表示したりする機能を提供する。なお、ファームウェア250Aとしては、OS(Operating System)の一部または全部を含むようにしてもよい。
図6(A)に示すプログラム構成においては、アプリケーション200Aに立体表示用ライブラリ218が含まれている例を示すが、この立体表示用ライブラリ218は、図6(B)に示すように、立体表示を含む複数のアプリケーションに共有される形態で実装してもよい。
図6(B)は、本実施の形態に従う情報処理システム1において実装されるプログラム構成の別の一例(変形例)を示す図である。図6(B)に示すプログラム構成においては、立体表示用ライブラリ218は、ファームウェア250Bの一部として組込まれている。一方、アプリケーション200Bは、立体表示用ライブラリ218を含んでおらず、必要に応じて、ファームウェア250Bの立体表示用ライブラリ218をコールすることになる。
[b4.立体表示用ライブラリ]
本実施の形態に従う立体表示用ライブラリ218は、上述のように、基準仮想カメラの設定値が入力されると、後述するような処理を実行し、その結果として、右仮想カメラ302および左仮想カメラ304の設定値を出力する。すなわち、立体表示用ライブラリ218は、設定された右仮想カメラ302および左仮想カメラ304の視体積を示す情報を出力するとともに、設定された右仮想カメラ302と左仮想カメラ304との間の距離を示す情報を出力する。以下、図7を参照して、立体表示用ライブラリ218の入出力インターフェイスの具体例について説明する。
図7は、図6に示す立体表示用ライブラリ218について入出力されるデータ項目を説明するための図である。
上述したように、立体表示用ライブラリ218は、表示装置10における立体表示に係るモードとして、2つのモード(「アプリケーション優先モード」および「リアルモード」)が選択的可能になっている。そのため、立体表示用ライブラリ218を利用(コール)するときには、上記2つのモードの一方を示すモード情報が指定される。その上で、以下に示すようなデータ項目が、パラメータが立体表示用ライブラリ218とアプリケーションなどとの間で遣り取りされる。
図7を参照して、「アプリケーション優先モード」が指定されると、立体表示用ライブラリ218は、(1)基準仮想カメラ情報、(2)基準仮想面情報、(3)視差判定面情報、(4)モード情報の入力を受付けて、(5)右仮想カメラ情報、(6)左仮想カメラ情報、(7)仮想カメラ間距離を出力する。
(1)基準仮想カメラ情報は、図1に示す基準仮想カメラ300の配置位置および視体積(視野角、ニアクリップ面、ファークリップ面などの設定値)などを定義する情報であり、典型的には、カメラ行列が用いられる。詳細については後述するが、このカメラ行列は、プロジェクション行列およびビュー行列を含む。
(2)基準仮想面情報は、図1に示す基準仮想カメラ300に対する基準仮想面(基準仮想平面領域を含む平面)(図2参照)の位置を定義するための情報であり、典型的には、基準仮想カメラ300の配置位置から基準仮想面(基準仮想平面領域)(図2参照)までの仮想空間距離を含む。
(3)視差判定面情報は、視差判定面を定義するための情報であり、右仮想カメラ302によって生成される右画像と左仮想カメラ304によって生成される左画像との間に生じる視差量を評価するための視差判定面(図2参照)の位置が定義される。典型的には、(3)視差判定面情報は、図1に示す基準仮想カメラ300の配置位置から視差判定面までの仮想空間距離、または、基準仮想面と視差判定面との間の距離を含む。
(4)モード情報は、上述の「アプリケーション優先モード」および「リアルモード」のうち、いずれかを含む。
(5)右仮想カメラ情報は、図1に示す基準仮想カメラ300の設定に応じて算出される、右仮想カメラ302の配置位置および視体積(視野角、ニアクリップ面、ファークリップ面などの設定値)などを定義する情報である。同様に、(6)左仮想カメラ情報は、図1に示す基準仮想カメラ300の設定に応じて算出される、左仮想カメラ304の配置位置および視体積(視野角、ニアクリップ面、ファークリップ面などの設定値)などを定義する情報である。典型的には、右仮想カメラ情報および左仮想カメラ情報のいずれについても、プロジェクション行列およびビュー行列を含む、カメラ行列が用いられる。
(7)仮想カメラ間距離は、基準仮想カメラ300の設定に応じて算出される、右仮想カメラ302と左仮想カメラ304との間の位置関係を示す情報であり、3次元仮想空間上における右仮想カメラ302と左仮想カメラ304との間の距離の情報を含む。好ましくは、仮想カメラ間距離としては、右仮想カメラ302と左仮想カメラ304との間の距離を規格化した値、具体的には、「基準仮想平面領域(図2参照)の左右方向の幅」に対する「右仮想カメラ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つの仮想カメラの設定情報を取得することができる。
上述のように、本実施の形態に従う立体表示用ライブラリ218は、(1)基準仮想カメラ情報として、基準仮想カメラ300を定義するカメラ行列(プロジェクション行列およびビュー行列)の入力を受付ける。また、立体表示用ライブラリ218は、(2)基準仮想面情報として、基準仮想カメラ300から基準仮想平面領域360までの距離の入力を受付ける。その上で、立体表示用ライブラリ218は、(5)右仮想カメラ情報として、設定された右仮想カメラ302を定義するカメラ行列(プロジェクション行列およびビュー行列)を出力するとともに、(6)左仮想カメラ情報として、設定された左仮想カメラ304を定義するカメラ行列(プロジェクション行列およびビュー行列)を出力する。
また、本実施の形態に従う立体表示用ライブラリ218は、(3)視差判定面情報として、基準仮想平面領域360と平行な視差判定面の位置を指定するための情報を受付ける。
<C.画像生成処理>
以下、立体表示用ライブラリ218での処理内容(仮想カメラの配置位置および視体積の設定処理など)を含めた、右画像および左画像を生成するための処理について詳述する。
[c1.概要]
図8は、本発明の実施の形態に従う立体表示処理の対象となる3次元仮想空間の一例を示す模式図である。図9は、図8に示す状態において生成される画像(右画像および左画像)の生成処理を示す模式図である。図10は、図9に示す右仮想カメラ302および左仮想カメラ304によってそれぞれ生成される画像の一例を示す図である。
図8および図9に示すように、本実施の形態においては、基本的には、共通の表示対象(被写体)を含み、かつ所定の視差を有する一対の画像(ステレオ画像)を用いて、立体表示を行なう。このような一対の画像は、3次元仮想空間内に一対の仮想カメラ(右仮想カメラ302および左仮想カメラ304)を配置し、この一対の仮想カメラがそれぞれ3次元仮想空間内のオブジェクトを仮想的に撮影することで、動的に生成される。すなわち、ポリゴン生成といったコンピュータグラフィックスの技術を用いて、共通のオブジェクトに対して、視点を異ならせた2つの仮想カメラを用いて、一対の画像が描画(レンダリング)される。
図8および図9に示す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からは、図10に示すような画像がそれぞれ生成される。図10には、図8および図9に示すような3次元仮想空間において、右仮想カメラ302が仮想的に撮影を行なうことで生成される右画像IMG1と、左仮想カメラ304が仮想的に撮影を行なうことで左画像IMG2とが例示される。
右画像IMG1と左画像IMG2とを比較すると、右画像IMG1内におけるオブジェクトOBJ1の存在位置は、左画像IMG2内におけるオブジェクトOBJ1の位置と実質的に一致する。これに対して、右画像IMG1内におけるオブジェクトOBJ2の位置は、左画像IMG2内におけるオブジェクトOBJ2の存在位置とは異なっている。すなわち、表示装置10に対峙するユーザにとってみれば、オブジェクトOBJ1については視差がない状態で視認され、一方、オブジェクトOBJ2についてはある視差量を有する状態で視認される。
言い換えれば、図8に示すように、3次元仮想空間内において、オブジェクトOBJ1を通る位置に基準仮想面(基準仮想平面領域)が設定されているため、オブジェクトOBJ1については、右画像と左画像との間で、その表示のされ方が一致する。その結果、表示装置10の表示面において、オブジェクトOBJ1についての視差が実質的に無くなり、ユーザにとってみれば、オブジェクトOBJ1の存在する付近の空間がちょうど表示装置10の表示面付近にあるように見える。
上述したように、ユーザに視認させたいオブジェクト(上述の例では、オブジェクトOBJ1)が表示装置10の表示面付近にあるように立体表示させることが一般的であると考えられる。このようにユーザに視認させたいオブジェクトを立体表示させるためには、3次元仮想空間内に右仮想カメラ302および左仮想カメラ304を設定し、続いて、表示装置10の表示面付近に表示させたいオブジェクトの位置に応じた位置に、カメラ方向303および左カメラ方向305と垂直になるように、基準仮想面を設定する必要がある。
本実施の形態においては、オブジェクトに係るレンダリングの処理負荷を低減する観点から、右仮想カメラ302および左仮想カメラ304のレンダリング範囲(視体積)は、いずれも基準仮想平面領域を基準に設定される。図9に示すように、右仮想カメラ302および左仮想カメラ304が、両仮想カメラを通る基準線350上に、仮想空間距離Dfだけ離れて設定されている場合においては、右仮想カメラ302および左仮想カメラ304の各々は、その配置位置を基準とする視体積についてレンダリングすることが可能であるが、本実施の形態においては、基準仮想平面領域を基準とするレンダリング範囲が設定される。すなわち、右仮想カメラ302については、その配置位置から基準仮想平面領域の外周によって規定される視体積がレンダリング範囲に設定される。左仮想カメラ304についても、その配置位置から基準仮想平面領域の外周によって規定される視体積がレンダリング範囲に設定される。
このように、右仮想カメラ302および左仮想カメラ304に対して、基準仮想平面領域の外周によって規定される視体積をそれぞれ設定することで、右仮想カメラ302および左仮想カメラ304がそれぞれ生成する右画像および左画像を、そのまま表示装置10での立体表示に用いることができる。より具体的には、右仮想カメラ302から出力された右画像は、そのまま第1VRAM112(図5)へ書込まれ、左仮想カメラ304から出力された左画像は、そのまま第2VRAM122(図5)へ書込まれる。このように、本実施の形態においては、表示装置10での表示に使用されない範囲の(余分な)画像を生成することがない。したがって、不要なレンダリング処理を回避できる。
一方で、3次元仮想空間内に配置された、ユーザに視認させたいオブジェクトを表示装置10において立体表示する場合には、右仮想カメラ302および左仮想カメラ304に対して、それぞれ異なる視野範囲(視体積)を設定する必要がある。そのため、立体表示を含むアプリケーションの制作者は、当該アプリケーションの進行に関連付けられた各シーンにおいて、ユーザに視認させたいオブジェクトに応じて、右仮想カメラおよび左仮想カメラの設定値(配置位置および視体積など)を適切に指定する必要がある。このような作業は制作者の負担が大きく、立体表示を利用したアプリケーションを制作する際の障壁となり得る。
そこで、本実施の形態に従うプログラム(典型的には、上述の立体表示用ライブラリ218として実装)は、図1に示すような、平面表示のみを利用する(立体表示を利用しない)アプリケーションと同様のパラメータを指定するだけで、立体表示を行なうために必要な各種パラメータを自動的に設定できる機能を提供する。
より具体的には、平面表示のみを利用するアプリケーションと同様に、制作者は、表示装置10に表示させたいオブジェクトに応じた位置に1つの基準仮想カメラ300(図1参照)を設定する。なお、この基準仮想カメラの設定値としては、基準仮想カメラ300の配置位置および対応する視体積の設定値を含む。このような設定項目に加えて、制作者は、表示装置10の表示面付近に表示させたいオブジェクトが存在する位置を基準仮想面として設定する。そして、この基準仮想面のうち、基準仮想カメラの視体積の内部に含まれる領域が、基準仮想平面領域360として決まる。
すると、本実施の形態に従うプログラムは、上述のような設定に基づいて、右仮想カメラ302および左仮想カメラ304の配置位置および視体積などをそれぞれ算出する。このような処理によって、立体表示を利用したアプリケーションの制作者は、従来の平面表示のみを利用するアプリケーションを制作する場合と同様の作業量で、3次元仮想空間内の意図した範囲を表示装置10上で立体表示させることができる。また、基準仮想平面領域360付近に存在するオブジェクトは、視差が無いか、もしくは、視差が少ない状態で表示装置10の表示面に表示されるので、当該アプリケーションをプレイするユーザにとってみれば、そのオブジェクトを最も視認し易くなる。さらに、基準仮想平面領域360として設定した領域は、表示装置10で確実に表示されることが保証されるため、アプリケーションの制作者にとってみれば、右仮想カメラ302および左仮想カメラ304の設定値などを考慮することなく、基準仮想カメラ300および基準仮想平面領域360のみを考慮するだけでよい。そのため、アプリケーションの制作が容易になる。
また、アプリケーションの内容によっては、3次元仮想空間の状態をリアルにユーザに表示したい場合もある。すなわち、ユーザに対して、3次元仮想空間に存在しているかのような感覚を与えることも有効な場合がある。この場合には、ユーザは、表示装置10の立体表示によって、本当にその場に現物の表示対象が存在しているかのような感覚を得ることになる。
上述のように、アプリケーションの内容やその進行に応じて、ユーザに対してどのような立体表示を行なうかというニーズは異なったものとなる。そこで、本実施の形態に従うプログラムでは、少なくとも2つのモード(上述した、「アプリケーション優先モード」および「リアルモード」)が用意される。そして、アプリケーションの制作者が任意に使用するモードを指定することで、当該モードに応じた、右仮想カメラ302および左仮想カメラ304の設定値が自動的に決定される。
以下、各モードにおける、右仮想カメラ302および左仮想カメラ304に係る設定値を決定する処理の詳細について説明する。
[c2.アプリケーション優先モード]
「アプリケーション優先モード」においては、アプリケーションの制作者は、平面表示のみを利用する(立体表示を利用しない)アプリケーションを制作する場合と同様に、1つの基準仮想カメラ(図1に示す基準仮想カメラ300)の配置位置および視体積(描画範囲)を指定する(図7に示す(1)基準仮想カメラ情報)。同時に、制作者は、指定した視体積に含まれる空間内のいずれの平面位置が、表示装置10において立体表示をした際にその表示面付近に位置するように表示したいかを指定する(図7に示す(2)基準仮想面情報)。さらに、制作者は、右画像と左画像との間に生じる視差量を評価して、ユーザが表示装置10での立体表示を気持ちよく受け入れることができることを保証するための視差判定面を指定する(図7に示す(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列)とを含む。
図11は、本発明の実施の形態に従うカメラ行列を説明するための図である。図11に示すように、ある3次元仮想空間をX,Y,Zの3軸で定義する。仮想カメラの座標を(cx,cy,cz)とし、注視点(仮想カメラの方向と基準仮想面との交点)の座標を(bx,by,bz)とする。また、仮想カメラからニアクリップ面までの距離をnとし、仮想カメラからファークリップ面までの距離をfとする。さらに、仮想カメラの向きを示すベクトルを、正面方向ベクトル(Zx,Zy,Zz)、上方向ベクトル(Yx,Yy,Yz)および左方向ベクトル(Xx,Xy,Xz)として定義する。なお、これらのベクトルは、いずれもその大きさが「1」の単位ベクトルとする。
図11に示す場合のプロジェクション行列を(1)式として示し、ビュー行列を(2)式として示す。
Figure 0004754031
このようなカメラ行列(プロジェクション行列およびビュー行列)を用いることで、アプリケーション毎にそれぞれ設定される3次元仮想空間に対応することができる。すなわち、カメラ行列は、汎用的な次元で定義される行列であり、アプリケーションに依存することなく、上述のような仮想カメラの設定処理を実行することができる。
なお、図11では、仮想カメラの座標と注視点の座標とを用いて、プロジェクション行列を生成する方法について例示したが、照明方向と仮想カメラの向きベクトルとを用いて、プロジェクション行列を生成することができる。
また、図11では、ニアクリップ面を規定する4辺の位置(大きさ)を用いて、ビュー行列を生成する方法について例示したが、仮想カメラの視野角に基づいてビュー行列を生成することもできる。
なお、プロジェクション行列およびビュー行列は、いずれも双方向に変換が可能である。たとえば、プロジェクション行列についてみれば、仮想カメラの座標および注視点の座標に基づいてプロジェクション行列を生成することも可能である一方、プロジェクション行列から仮想カメラの座標および注視点の座標を算出することも可能である。
したがって、設定された基準仮想カメラ300に応じた、右仮想カメラ302および左仮想カメラ304のそれぞれの配置位置、ならびにそれらの視体積が後述する図12〜図14に示すような方法に従って設定されると、これらの情報に基づいて、右仮想カメラ302および左仮想カメラ304の各々のカメラ行列(プロジェクション行列およびビュー行列)が出力される。
(c2−ii.基準仮想面)
基準仮想面は、図8に示すように、基準仮想カメラ300を基準として設定される。以下の説明においては、(2)基準仮想面情報として、基準仮想カメラ300から設定される基準仮想面までの基準仮想カメラ300のカメラ方向301(基準カメラ方向)に沿った仮想空間距離Dとして定義される例を示す。
(c2−iii.視差判定面)
図12は、本発明の実施の形態に従う右仮想カメラ302および左仮想カメラ304の設定処理を2次元的に説明するための図である。図13は、図12に示す右仮想カメラおよび左仮想カメラの設定処理の処理結果に応じて設定される視体積を示す図である。
図12および図13には、視差判定面361が、基準仮想平面領域360に対して基準仮想カメラ300とは反対側に設けられる例を示す。より具体的には、表示装置10を見るユーザが心地よく立体表示を受け入れることのできる深さ(奥行き)に対応する位置として視差判定面361を設定する例を示す。すなわち、表示装置10の表示面付近には、3次元仮想空間の基準仮想平面領域360に位置する表示対象が表示されるため、視差判定面361に位置する表示対象は、表示装置10の表示面からより奥側に見えることになる。右画像と左画像との間の視差判定面361に対応する部分については、右仮想カメラ302と左仮想カメラ304との位置関係に応じた視差量が生じる。この視差量が相対的に大きくなると、表示装置10を見るユーザへの負担が大きくなる。そのため、視差判定面361における視差が所定のしきい値を超えないように、右仮想カメラ302および左仮想カメラ304を設定する必要がある。
なお、図12および図13においては、視差判定面361を、基準仮想平面領域360に対して基準仮想カメラ300とは反対側に設けた例を示すが、基準仮想カメラ300の側に設定してもよい。この場合には、視差判定面361は、表示装置10を見るユーザが心地よく立体表示を受け入れることのできる画像の飛び出し量に対応する位置に設定される。
さらに、基準仮想平面領域360より遠方側に第1の視差判定面を設定するとともに、基準仮想平面領域360より近傍側に第2の視差判定面を設定し、それぞれの視差判定面において条件を満足するか否かを評価してもよい。
いずれの場合にも、視差判定面は、基準仮想平面領域360と平行に配置され、右仮想カメラ302によって生成される右画像と左仮想カメラ304によって生成される左画像との間に生じる視差を評価するために用いられる。すなわち、視差判定面361に存在する表示対象についての視差を所定のしきい値以下に維持することで、少なくとも、基準仮想平面領域360から視差判定面361の間に存在するオブジェクトについては、その立体表示をユーザが気持ちよく受け入れることを保証する。
この視差判定面361における視差の限界値は、情報処理システム1(表示装置10)の物理的な大きさおよび特性、ならびに、ユーザに依存する身体的な特性などに応じて定まる。より具体的には、この視差の限界値は、表示装置10の表示サイズ(縦長さと横長さ)、各画素のサイズ、視差バリアの間隔、ユーザの眼の間隔(図4に示す実距離L1)、ユーザから表示装置10の表示面までの距離(図4に示す実距離L2)などに依存した値となる。
以下の説明においては、(3)視差判定面情報については、図12(A)に示すように、基準仮想平面領域360から視差判定面361までの仮想空間距離Aとして定義される例を示す。
なお、(2)基準仮想面情報、および(3)視差判定面情報としては、上述したものに限られず、基準仮想カメラ300から視差判定面361までの仮想空間距離を定義した上で、基準仮想カメラ300から基準仮想平面領域360までの仮想空間距離を、基準仮想カメラ300から視差判定面361までの仮想空間距離を基準とした比率として与えてもよい。
(c2−iv.右仮想カメラおよび左仮想カメラの設定処理)
次に、図12および図13を参照して、基準仮想カメラ300の設定に応答して、右仮想カメラ302および左仮想カメラ304がどのように設定されるかについて説明する。
図12(A)を参照して、まず、3次元仮想空間のある位置に基準仮想カメラ300を設定するように指定されたものとする。同時に、基準仮想カメラ300から仮想空間距離Dだけ離れた位置に基準仮想平面領域360を設定するように指定され、基準仮想平面領域360から仮想空間距離Aだけ離れた位置に視差判定面361を設定するように指定されたものとする。
基準仮想カメラ300と基準仮想平面領域360との間の仮想空間距離が与えられると、図12(A)に示すように、この基準仮想カメラ300の視体積380に含まれる、基準仮想カメラ300のカメラ方向に直交する平面領域として、基準仮想平面領域360が定まる。この視体積380は、3次元仮想空間のうち、基準仮想カメラ300によって有効にレンダリング(描画)される範囲に相当する。
より具体的には、視体積380は、基準仮想カメラ300の視野角を頂点とする四角錐をニアクリップ面364およびファークリップ面366で区切った錐体に相当する。すなわち、視体積380は、基準仮想カメラ300の視野角、基準仮想カメラ300から最も近傍側の面に対応するニアクリップ面364、および、基準仮想カメラ300から最も遠方側の面に対応するファークリップ面366によって定義される。言い換えれば、視体積380は、基準仮想平面領域360を定義する各頂点360a,360b,360c,360dと内接することになる。
図12(A)に示す状態から、視差判定面361を含む平面上において、右最大視差面362および左最大視差面363の位置が決定される。この右最大視差面362は、視差判定面361における視差を限界値とした場合における、左仮想カメラ304によってレンダリングされる範囲である。同様に、この左最大視差面363は、視差判定面361における視差を限界値とした場合における、右仮想カメラ302によってレンダリングされる範囲である。
より具体的には、右最大視差面362と左最大視差面363との間のずれ量が視差判定面361において許容される視差(限界視差量に対応する最大値)と一致するように、右最大視差面362および左最大視差面363の位置がそれぞれ決定される。これは、図12(B)に示すように、視差判定面361を紙面左側および紙面右側にそれぞれスライドさせることで、右最大視差面362および左最大視差面363が得られる。ここで、右最大視差面362と左最大視差面363との間の距離である仮想空間距離Sが、表示装置10の表示面における限界視差量に相当する。
基準仮想平面領域360と、上述のような手順によって位置が定まった右最大視差面362および左最大視差面363とに基づいて、右仮想カメラ302および左仮想カメラ304の配置位置がそれぞれ決定される。本実施の形態においては、図12(C)に示すように、基準仮想カメラ300を通り、かつ、基準仮想平面領域360に平行な、基準線350が定義され、この基準線350上に、右仮想カメラ302および左仮想カメラ304が設定される。より具体的には、基準仮想平面領域360と右最大視差面362とを含む視体積が定義できる位置に右仮想カメラ302が設定される。同様に、基準仮想平面領域360と左最大視差面363とを含む視体積が定義できる位置に左仮想カメラ304が設定される。
上述の仮想カメラの設定処理を、図12(C)を参照して、別の観点で表現すると、立体表示用ライブラリ218は、基準仮想カメラ300が3次元仮想空間内に設定されることに応答して、右仮想カメラ302のカメラ方向303および左仮想カメラ304のカメラ方向305が、基準仮想カメラ300のカメラ方向である基準カメラ方向301と同じ方向になるように、右仮想カメラ302および左仮想カメラ304を設定する。このとき、立体表示用ライブラリ218は、基準カメラ方向301と垂直であり、かつ、基準仮想カメラ300の視体積380に含まれる仮想平面領域である基準仮想平面領域360を表示対象領域として設定する。
さらに、立体表示用ライブラリ218は、基準仮想カメラ300の配置位置を基準カメラ方向301と垂直な方向に沿って右側に移動させた位置に右仮想カメラ302を設定すること、および、基準仮想カメラ300の配置位置を基準カメラ方向301と垂直な方向に沿って左側に移動させた位置に左仮想カメラ304を設定すること、の少なくとも一方を実行する。
図12(C)においては、立体表示用ライブラリ218は、基準仮想カメラ300の配置位置を基準カメラ方向301と垂直な方向に沿って所定距離だけ右側に移動させた位置に右仮想カメラ302を設定するとともに、基準仮想カメラ300の配置位置を基準カメラ方向301と垂直な方向に沿って所定距離だけ左側に移動させた位置に左仮想カメラ304を設定する例を示す。
すなわち、基準仮想カメラ300の配置位置を基準線350に沿って右側に移動させた位置に右仮想カメラ302が設定され、基準仮想カメラ300の配置位置を基準線350に沿って左側に移動させた位置に左仮想カメラ304が設定される。なお、図12(C)に示す例では、基準仮想カメラ300の配置位置から基準線350に沿ってDf/2だけ右側に移動させた位置に右仮想カメラ302が設定され、基準仮想カメラ300の配置位置から基準線350に沿って同じDf/2だけ左側に移動させた位置に左仮想カメラ304が設定される例を示す。
なお、後述する、図14(C)においては、基準仮想カメラ300の配置位置と同じ位置に左仮想カメラを設定するとともに、基準仮想カメラ300の配置位置を基準カメラ方向301と垂直な方向に沿って所定距離だけ右側に移動させた位置に右仮想カメラを設定する例を示す。
上述のように設定された右仮想カメラ302および左仮想カメラ304の視体積について見ると、図13(B)〜図13(D)に示すように、右仮想カメラ302および左仮想カメラ304の視体積は、いずれも、基準仮想カメラ300の視体積380に含まれる基準仮想平面領域360の範囲(断面領域)が維持されるように設定される。
すなわち、立体表示用ライブラリ218は、右仮想カメラ302の視体積382における基準仮想平面領域360に対応する位置の断面が、左仮想カメラ304の視体積384における基準仮想平面領域360に対応する位置の断面と一致するように、右仮想カメラ302の視体積382および左仮想カメラ304の視体積384がそれぞれ設定される。
上述の視体積の設定理を、別の観点で表現すると、立体表示用ライブラリ218は、基準仮想カメラ300の視体積380に含まれる基準仮想平面領域360の4つの頂点360a,360b,360c,360dの位置をそれぞれ取得する。そして、立体表示用ライブラリ218は、右仮想カメラ302の位置から複数の頂点360a,360b,360c,360dにそれぞれ向かう直線372a,372b,372c,372dによって、右仮想カメラ302の視体積382を設定する。このとき、直線372a,372b,372c,372dは、それぞれ右最大視差面362の頂点362a,362b,362c,362dと交差するように設定される。
同様に、立体表示用ライブラリ218は、左仮想カメラ304の位置から複数の頂点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と直交する方向となる。
(c2−v.右仮想カメラおよび左仮想カメラの設定処理の変形例)
上述の説明においては、右仮想カメラおよび左仮想カメラを設定する際に、基準仮想カメラ300の配置位置を基準線350に沿って右側および左側にそれぞれ等距離だけ移動させる処理について例示した。しかしながら、いずれか一方の仮想カメラを基準仮想カメラ300の配置位置に固定しておき、他方の仮想カメラのみを移動させるようにしてもよい。以下、このような場合の処理について例示する。
図14は、本発明の実施の形態の変形例に従う右仮想カメラおよび左仮想カメラの設定処理を2次元的に説明するための図である。
図14(A)を参照して、3次元仮想空間のある位置に基準仮想カメラ300が設定されたとする。この状態において、視差判定面361における視差を限界値とした場合における、右最大視差面および左最大視差面が決定される。この場合には、上述の図12(B)とは異なり、基準仮想カメラ300に対応する視差判定面361は固定されたまま、一方の仮想カメラ(図14(B)に示す例では、右仮想カメラ300A)の位置を設定するための右最大視差面361Aの位置が算出される。すなわち、図14(B)に示すように、視差判定面361を紙面左側にスライドさせることで、右最大視差面361Aが得られる。ここで、視差判定面361と右最大視差面361Aとの間の仮想空間距離Sが限界視差量に相当する。
最終的に、図14(C)に示すように、基準仮想カメラ300を通り、かつ、基準仮想面に平行な、基準線350が定義され、この基準線350上に、右仮想カメラ300Aが設定される。より具体的には、基準仮想平面領域360と右最大視差面361Aとを含む視体積が定義できる位置に右仮想カメラ300Aが設定される。そして、右仮想カメラ300Aおよび基準仮想カメラ300を用いて、右画像および左画像がそれぞれ生成される。
図14に示すような方法によれば、表示装置10の表示面に立体表示される視点は、基準仮想カメラ300から右仮想カメラ300Aと基準仮想カメラ300との中点に移動する。たとえば、「利き眼」が分かっているユーザの場合(図14に示す例では左眼)には、図14に示すような方法で一対の仮想カメラの位置を設定することで、平面表示から立体表示への切換をより違和感なく受け入れることができる。
なお、図14に示す例では、基準仮想カメラ300を右側に移動することで右仮想カメラ300Aを設定する構成について説明したが、右仮想カメラ300Aを基準仮想カメラ300の位置に設定し、基準仮想カメラ300を左側に移動することで左仮想カメラを設定するようにしてもよい。
[c3.リアルモード]
「リアルモード」においては、アプリケーションの制作者は、平面表示のみを利用する(立体表示を利用しない)アプリケーションを制作する場合と同様に、1つの基準仮想カメラ(図1に示す基準仮想カメラ300)の配置位置および視体積(描画範囲)を指定する(図7に示す(1)基準仮想カメラ情報)。同時に、制作者は、指定した視体積に含まれる空間内のいずれの平面位置が、表示装置10において立体表示をした際にその表示面付近に位置するように表示したいかを指定する(図7に示す(2)基準仮想面情報)。
さらに、制作者は、立体表示における立体感の調整を行なうための基準立体度合を指定する(図7に示す(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の表示面の側面などに設けられる。
この機構(スライダー1062)の調整幅に関して、所与の条件下における右仮想カメラ302と左仮想カメラ304との間の最大値である、算出直後の仮想空間距離Dfを、スライダー1062によって立体感指示の調整幅の略最大値に対応させることが好ましい。
すなわち、典型的には、ユーザがスライダー1062を調整することで、右仮想カメラ302と左仮想カメラ304との間の仮想空間距離は、最大値である「Df」(あるいは、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)
なお、右仮想カメラ302と左仮想カメラ304との間の仮想空間距離が「0」となった場合には、表示装置10では立体表示ではなく平面表示がなされる。そのため、図16に示すスライダー1062には、紙面上方向には立体表示を示す「3D」の文字が付されており、紙面下方向には平面表示を示す「2D」の文字が付されている。すなわち、ユーザがスライダー1062を「3D」の位置に変更すると、最大の仮想空間距離が設定される一方、ユーザがスライダー1062を「2D」の位置に変更すると、仮想空間距離は「0」に設定される。
このようなユーザによるスライダー1062の操作に応答して、上述のような処理によって設定された右仮想カメラ302および左仮想カメラ304の配置位置の少なくとも一方が変更される。そして、右仮想カメラ302および/または左仮想カメラ304の位置が変更されると、右仮想カメラ302および/または左仮想カメラ304の視野範囲(視体積)も再設定される。
図17には、本発明の実施の形態に従うユーザによる立体感調整を受付ける構成の別の一例として、表示装置10をタッチパネルとした場合のユーザインターフェイスが示されている。このユーザインターフェイスにおいても、上述の図16に示すスライダーと類似した、所定の一軸方向に沿った画像オブジェクト310と、この画像オブジェクト310に対して相対移動するように表示される画像オブジェクト312とが表示される。この画像オブジェクト312は、ユーザがタッチペン(スタイラスペン)700などを用いて表示装置10上をタッチすることで、そのタッチ操作に応じて移動する。そして、この画像オブジェクト312の位置に応じた指令が生成される。
図18には、本発明の実施の形態に従うユーザによる立体感調整を受付ける構成のさらに別の一例として、表示装置10と操作ボタンとを用いたユーザインターフェイスが示されている。このユーザインターフェイスにおいても、上述の図16に示すスライダーと類似した、所定の一軸方向に沿った画像オブジェクト320と、この画像オブジェクト320に対して相対移動するように表示される画像オブジェクト322とが表示される。そして、ユーザが情報処理システム1上に設けられた操作ボタン(+ボタン1063および−ボタン1064)を押下することで、この画像オブジェクト322は移動する。さらに、この画像オブジェクト322の位置に応じた指令が生成される。
[c5.戻り値]
再度図7を参照して、立体表示用ライブラリ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における立体感の程度が変化した場合であっても、背景画像をいずれのオブジェクトよりも常に奥側に表示させることができる。
ところで、上述の仮想空間距離Dfは、対象の3次元空間における仮想空間距離であり、表示装置10の表示面の実サイズとは異なる単位系となっている。そのため、表示装置10の表示面上において、その間にどの程度の視差量を有する右背景画像および左背景画像を生成すべきかを容易に決定できるように、戻り値としては、規格化された無次元の値を用いることが好ましい。
本実施の形態においては、このような無次元の値として、表示装置10に表示されるレンダリング範囲を基準として規格化した比率を用いる。より具体的には、立体表示用ライブラリ218は、基準仮想カメラ300の視体積に含まれ、基準仮想カメラ300のカメラ方向301に垂直な仮想平面である基準仮想平面領域(図2参照)の幅を基準とした、右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfの比率を戻り値として出力する。
すなわち、基準仮想平面領域は、表示装置10の表示面にレンダリングされる範囲に相当するので、基準仮想平面領域の幅に対する仮想空間距離Dfの比率は、表示装置10の実画面幅に対する右背景画像と左背景画像との間に生じさせるべき現実の視差量の比率に一致する。したがって、基準仮想平面領域の幅に対する仮想空間距離Dfの比率を戻り値として採用することで、ユーザから見て最も奥側に位置する絵である、右背景画像と左背景画像との間に生じさせるべき視差量を表示装置10の実画面幅に応じて容易に決定できる。
図19は、本発明の実施の形態に従う立体表示用ライブラリ218の戻り値の算出処理を説明するための図である。
上述したように、立体表示用ライブラリ218の戻り値は、基準仮想平面領域の3次元仮想空間内での幅を基準とした、右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Dfの比に相当する。
図19を参照して、戻り値RV=(右仮想カメラ302と左仮想カメラ304との間の仮想空間距離Df/基準仮想平面領域360の幅に相当する仮想空間距離W)として算出される。ここで、仮想空間距離Wは、基準仮想カメラ300からニアクリップ面364までの仮想空間距離LNと、基準仮想カメラ300から基準仮想面までの仮想空間距離Dと、ニアクリップ面364の幅に相当する仮想空間距離NWとを用いて、以下のように表わすことができる。
仮想空間距離W=仮想空間距離NW×仮想空間距離D/仮想空間距離LN
したがって、戻り値RVは、以下のように算出することができる。
戻り値RV={仮想空間距離Df/(仮想空間距離NW×仮想空間距離D/仮想空間距離LN)}
これらのパラメータのうち、仮想空間距離NWおよび仮想空間距離LNについては、立体表示用ライブラリ218に入力される(1)基準仮想カメラ情報(図7参照)に基づいて算出され、仮想空間距離Dについては、立体表示用ライブラリ218に入力される(2)基準仮想面情報に基づいて算出される。また、仮想空間距離Dfについては、上述したように、右仮想カメラ302および左仮想カメラ304の設定処理の結果として決定される。
上述した戻り値RVは、3次元仮想空間内に設定された右仮想カメラ302および左仮想カメラ304によってそれぞれ無限遠にあるオブジェクトを撮影した場合に、表示装置10の表示面においてどの程度ずれるかを示す。たとえば、遠くの景色を1枚の画像で描画するような場合、右仮想カメラ302によって出力される右画像を(表示面の横幅×戻り値(%))だけ右にずらし、かつ、左仮想カメラ304によって出力される左画像を表示面の横幅×戻り値だけ左ずらすことで、この遠くの景色を表わす画像を最も奥にある絵として表現することができる。
[c7.立体表示用ライブラリに係る変形例]
上述の図12に示す例では、視差判定面361を、ニアクリップ面364とファークリップ面366との間の任意の位置に設定する例を示した。一例として、図7に示す立体表示用ライブラリ218では、基準仮想平面領域360からの仮想空間距離A((3)視差判定面情報)を用いて、図12に示すような、視差判定面361が定義される。
これに対して、視差判定面361を設定する位置を予め設定しておいてもよい。たとえば、視差判定面361をファークリップ面366と一致するように設定してもよい。すなわち、ファークリップ面366において、右オブジェクト画像と左オブジェクト画像との間に生じる視差量を評価してもよい。
このように、視差判定面361をファークリップ面366に一致させた場合には、仮想空間のレンダリングされる範囲内において、最も奥側にある面における視差量が評価の対象となる。そのため、レンダリング対象の範囲内に存在するすべてのオブジェクトについて、限界視差量を超える視差が生じないことを保証できる。
すなわち、右仮想カメラによって生成される右画像と左仮想カメラによって生成される左画像との間に生じる視差量を評価するための視差判定面361を、両仮想カメラの視体積のうち基準仮想カメラから最も遠い位置に設定する。
このような場合には、立体表示用ライブラリに対して、(3)視差判定面情報を入力する必要がない。すなわち、少なくとも、(1)基準仮想カメラ情報を用いてファークリップ面366を設定さえすれば、視差判定面361を自動的に設定できるからである。
そこで、視差判定面361をファークリップ面366と一致するように設定する場合には、図20に示すような立体表示用ライブラリ218#を用いてもよい。この図20に示す立体表示用ライブラリ218#では、(3)視差判定面情報の入力が省略される(あるいは、無効値“null”が入力される)。これにより、立体表示用ライブラリ218#に与える情報をより少なくできるので、処理の簡素化および高速化を実現できる。
代替の構成として、図7に示す立体表示用ライブラリ218と同数の入力引数をもつように設計することも可能である。この場合には、「アプリケーション優先モード」においても、(3’)基準立体度合に相当する情報を受付けるようにしてもよい。典型的には、立体表示用ライブラリ218#は、「0」から「1」までの間の値をとる係数である基準立体度合の入力を受付け、仮想カメラ間の仮想空間距離Df(図9参照)を調整する。より具体的には、上述したような手順に従って算出された仮想空間距離Df(または、戻り値RV)に対して、さらに補正するような処理に用いられる。すなわち、立体表示用ライブラリ218#は、図16〜図18に示したような立体感調整の機能を実現するためのパラメータを受付け可能に構成される。
このような機構を採用することで、「アプリケーション優先モード」においても、立体感を補助的に調整することができる。
<D.処理手順>
次に、図21および図22を参照して、本実施の形態に従うプログラムの処理内容について説明する。なお、図21および図22に示す各ステップは、典型的には、情報処理システム1のCPU100がプログラムを実行することで提供される。
(d1.メインルーチン)
図21は、本発明の実施の形態に従うプログラムのメインルーチンを示すフローチャートである。図21に示すフローチャートにおいては、アプリケーションの進行に伴って、図1に示すような、3次元仮想空間内のオブジェクトを表示装置10で平面表示する場合と同様のパラメータを指定することで、表示装置10において立体表示を行なう場合の処理について説明する。
図21を参照して、CPU100は、プログラムに記述されたアプリケーション命令を順次実行する(ステップS2)。すなわち、図6に示す進行モジュール204が、入力モジュール202などによって生成される内部コマンドなどに従って、アプリケーションを進行する。
そして、CPU100は、表示装置10に対する描画処理の命令が実行対象になると(ステップS4においてYES)、ステップS8以下の処理を実行する。これに対して、対象の命令が表示装置10に対する描画処理以外であれば(ステップS4においてNO)、CPU100は、対象の命令に従う処理を実行する(ステップS6)。その後、処理はステップS2へ戻る。
ステップS8において、CPU100は、アプリケーションの進行に伴って指定される基準仮想カメラ(図1に示す基準仮想カメラ300)の設定値(配置位置および視体積)を所定のレジスタへ格納する。なお、基準仮想カメラの設定値としては、カメラ行列(プロジェクション行列およびビュー行列)が用いられる。すなわち、ステップS8においては、図7に示す(1)基準仮想カメラ情報が指定される。
続くステップS10において、CPU100は、「アプリケーション優先モード」および「リアルモード」のいずれが指定されているかを判断する。このモードは、アプリケーションの制作者の意図やユーザ操作などに応じて指定される。
「アプリケーション優先モード」が指定されている場合(ステップS10において「アプリケーション優先」の場合)には、CPU100は、内部フラグを「アプリケーション優先モード」にセットする(ステップS12)。すなわち、図7に示す(4)モード情報がセットされる。続いて、CPU100は、アプリケーションの進行に伴って表示される3次元仮想空間における、基準仮想面(図12および図13に示す基準仮想平面領域360に相当)および視差判定面(図12および図13に示す視差判定面361)の位置を特定するための情報を所定のレジスタへ格納する(ステップS14)。すなわち、図7に示す(2)基準仮想面情報、および(3)視差判定面情報が指定される。なお、後述のステップS16において、立体表示用ライブラリ218#(図20)がコールされる場合には、(3)視差判定面情報の指定が省略されてもよい。
さらに、CPU100は、ステップS8およびS12において設定したレジスタの値を指定して、右仮想カメラおよび左仮想カメラを設定するために、立体表示用ライブラリ218(または、立体表示用ライブラリ218#)をコールする(ステップS16)。
これに対して、「リアルモード」が指定されている場合(ステップS10において「リアルモード」の場合)には、CPU100は、内部フラグを「リアルモード」にセットする(ステップS18)。すなわち、図7に示す(4)モード情報がセットされる。続いて、CPU100は、3次元仮想空間における視認させたい表示対象が存在する基準仮想面(図12および図13に示す基準仮想平面領域360に相当)を特定するための情報、および基準立体度合の値を所定のレジスタへ格納する(ステップS20)。すなわち、図7に示す(2)基準仮想面情報、および(3’)基準立体度合が指定される。さらに、CPU100は、ステップS8およびS18において設定したレジスタの値を指定して、右仮想カメラおよび左仮想カメラを設定するために、立体表示用ライブラリ218(または、立体表示用ライブラリ218#)をコールする(ステップS16)。
ステップS16における立体表示用ライブラリ218(または、立体表示用ライブラリ218#)での処理については、図22を用いて詳述するが、立体表示用ライブラリ218をコールすることによって、CPU100は、右仮想カメラのカメラ行列(プロジェクション行列およびビュー行列)、および、左仮想カメラのカメラ行列(プロジェクション行列およびビュー行列)、ならびに、戻り値(基準仮想カメラ300についての基準仮想平面領域(図2参照)の幅を基準とした、右仮想カメラ302と左仮想カメラ304との間の距離の比)を算出する。
続くステップS30において、CPU100は、立体表示用ライブラリ218(または、立体表示用ライブラリ218#)によって算出されたカメラ行列に従って、3次元仮想空間に右仮想カメラ(図1に示す右仮想カメラ302)を設定し、右仮想カメラによる仮想撮影に基づく右画像を生成する。さらに、ステップS32において、CPU100は、算出されたカメラ行列に基づいて、3次元仮想空間に左仮想カメラ(図1に示す左仮想カメラ304)を設定し、左仮想カメラによる仮想撮影に基づく左画像を生成する。
すなわち、上述のステップS30およびS32においては、図6に示す画像レンダリングモジュール206が、立体表示用ライブラリ218(または、立体表示用ライブラリ218#)による算出結果に従って、オブジェクト定義データ208を参照して、右画像および左画像を生成(レンダリング)する。
最終的に、ステップS34において、CPU100は、ステップS30およびS32において生成した右画像および左画像を表示装置10の対応する画素へ出力する。
その後、CPU100は、ユーザが図16〜図18に示すようなスライダーなどを操作して、立体感の程度を変更したか否かを判断する(ステップS36)。立体感の程度を変更された場合(ステップS36においてYESの場合)には、ステップS16の処理が再度実行される。
立体感の程度を変更されていない場合(ステップS36においてNOの場合)には、CPU100は、アプリケーションの終了が指示されたか否かを判断する(ステップS38)。アプリケーションの終了が指示されていなければ(ステップS38においてNO)、ステップS2以下の処理が繰返される。これに対して、アプリケーションの終了が指示されれば(ステップS38においてYES)、処理は終了する。
(d2.立体表示用ライブラリ)
図22は、本発明の実施の形態に従う立体表示用ライブラリ218の処理内容を示すフローチャートである。図22を参照して、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(図12に示す、右最大視差面362と左最大視差面363とのずれ量に相当)を算出する。すなわち、ステップS110において取得される限界視差量は、現実空間における値であり、ステップS112においては、以下に示す視差判定面上での判定処理を行なうために、現実空間における値を対象の3次元仮想空間における値に変換する。
続くステップS114およびS116において、CPU100は、右仮想カメラおよび左仮想カメラの配置位置を決定する。すなわち、ステップS114において、CPU100は、3次元仮想空間における視差判定面において仮想空間距離Sの視差が生じるように、右仮想カメラによってレンダリングされる範囲である右最大視差面(図12に示す右最大視差面362)と、左仮想カメラによってレンダリングされる範囲である左最大視差面(図12に示す左最大視差面363)とを設定する。
視差判定面は、(3)視差判定面情報が入力されている場合には、基準仮想平面領域を基準に設定され、(3)視差判定面情報が入力されてない場合には、ファークリップ面の位置に設定される。
続くステップ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 最大距離決定機能、60 視体積設定機能、70 変更受付機能、80 モード設定機能、90 レンダリング機能、92 オブジェクト定義、106 入力部、112 第1VRAM、114 LCDドライバ、116 第1LCD、122 第2VRAM、126 第2LCD、200A,200B アプリケーション、202 入力モジュール、204 進行モジュール、206 画像レンダリングモジュール、208 オブジェクト定義データ、218,218A 立体表示用ライブラリ、250A,250B ファームウェア。

Claims (21)

  1. 立体表示が可能な表示装置を制御するための表示制御プログラムであって、前記表示制御プログラムは、前記表示装置のコンピュータを、
    所定の仮想空間を表現した画像を前記表示装置で立体表示するために用いられる右画像および左画像を生成するために、前記仮想空間の仮想的な撮影に用いられる右仮想カメラおよび左仮想カメラのカメラ方向が同じ方向を向き、かつ、当該カメラ方向と両仮想カメラの位置を通る直線とが垂直になるように、前記仮想空間内に両仮想カメラの位置および方向をそれぞれ設定する仮想カメラ設定手段と、
    前記仮想空間の中で少なくとも前記表示装置に表示すべき領域である表示対象領域に対して、前記右仮想カメラの視体積および前記左仮想カメラの視体積の両方が当該表示対象領域を含むように、両仮想カメラの視体積を設定し、さらに、少なくとも一方の仮想カメラの視体積が、当該一方の仮想カメラの位置から前記カメラ方向に伸びる線に関して他方の仮想カメラが存在する側に偏在するように設定する視体積設定手段として機能させ、
    前記仮想カメラ設定手段は、基準仮想カメラが前記仮想空間内に設定されることに応答して、前記右仮想カメラおよび前記左仮想カメラを、当該右仮想カメラおよび当該左仮想カメラの前記カメラ方向が、前記基準仮想カメラのカメラ方向である基準カメラ方向と同じ方向になるように設定し、
    前記視体積設定手段は、
    前記基準仮想カメラの視体積に含まれ、前記基準カメラ方向と垂直な所定の面上の領域である仮想平面領域である基準仮想平面領域を前記表示対象領域として設定し、
    前記右仮想カメラの視体積における前記基準仮想平面領域に対応する位置の断面、および、前記左仮想カメラの視体積における前記基準仮想平面領域に対応する位置の断面が、いずれも前記基準仮想カメラの視体積における前記基準仮想平面領域に対応する位置の断面と一致するように、前記右仮想カメラおよび前記左仮想カメラの視体積を設定する、表示制御プログラム。
  2. 前記仮想カメラ設定手段は、前記基準仮想カメラの配置位置を前記基準カメラ方向と垂直な方向に沿って右側に移動させた位置に前記右仮想カメラを設定すること、および、前記基準仮想カメラの配置位置を前記基準カメラ方向と垂直な方向に沿って左側に移動させた位置に前記左仮想カメラを設定すること、の少なくとも一方を実行する、請求項に記載の表示制御プログラム。
  3. 前記仮想カメラ設定手段は、前記基準仮想カメラの配置位置を前記基準カメラ方向と垂直な方向に沿って所定距離だけ右側に移動させた位置に前記右仮想カメラを設定するとともに、前記基準仮想カメラの配置位置を前記基準カメラ方向と垂直な方向に沿って前記所定距離だけ左側に移動させた位置に前記左仮想カメラを設定する、請求項に記載の表示制御プログラム。
  4. 前記視体積設定手段は、
    前記基準仮想カメラの視体積に含まれる前記基準仮想平面領域の複数の頂点位置を取得し、
    前記右仮想カメラの位置から前記複数の頂点位置のそれぞれに向かう線によって、前記右仮想カメラの視体積を設定し、
    前記左仮想カメラの位置から前記複数の頂点位置のそれぞれに向かう線によって、前記左仮想カメラの視体積を設定する、請求項のいずれか1項に記載の表示制御プログラム。
  5. 前記視体積設定手段は、前記基準仮想カメラの視体積のニアクリップ面およびファークリップ面を用いて、前記右仮想カメラおよび前記左仮想カメラの視体積を設定する、請求項のいずれか1項に記載の表示制御プログラム。
  6. 前記表示制御プログラムは、さらに前記コンピュータを、前記視体積設定手段によって設定された、前記右仮想カメラおよび前記左仮想カメラの視体積を示す情報を出力する第1情報出力手段として機能させる、請求項のいずれか1項に記載の表示制御プログラム。
  7. 前記表示制御プログラムは、さらに前記コンピュータを、前記仮想カメラ設定手段によって設定された、前記右仮想カメラと前記左仮想カメラとの間の距離を示す情報を出力する第2情報出力手段として機能させる、請求項のいずれか1項に記載の表示制御プログラム。
  8. 前記第2情報出力手段は、前記基準仮想平面領域の幅を基準とした、前記右仮想カメラと前記左仮想カメラとの間の距離の比を出力する、請求項に記載の表示制御プログラム。
  9. 前記表示制御プログラムは、ライブラリとして実装されるプログラムを含む、請求項のいずれか1項に記載の表示制御プログラム。
  10. 前記視体積設定手段は、前記右仮想カメラの視体積および前記左仮想カメラの視体積を互いに対称的に偏在するように設定する、請求項のいずれか1項に記載の表示制御プログラム。
  11. 前記表示制御プログラムは、
    前記右仮想カメラによって生成される前記右画像と前記左仮想カメラによって生成される前記左画像との間に生じる視差量を評価するための、前記基準仮想平面領域と平行な視差判定面の位置を指定するための情報を受付けるように構成される、請求項10に記載の表示制御プログラム。
  12. 前記表示制御プログラムは、
    前記右仮想カメラによって生成される前記右画像と前記左仮想カメラによって生成される前記左画像との間に生じる視差量を評価するための、前記基準仮想平面領域と平行な視差判定面を、前記両仮想カメラの視体積のうち前記基準仮想カメラから最も遠い位置に設定するように構成される、請求項10に記載の表示制御プログラム。
  13. 前記視差判定面は、前記基準仮想平面領域に対して、前記基準仮想カメラとは反対側に設けられる、請求項12に記載の表示制御プログラム。
  14. 前記仮想カメラ設定手段は、前記右仮想カメラと前記左仮想カメラとの間の許容される最大距離を決定する最大距離決定手段を含む、請求項13のいずれか1項に記載の表示制御プログラム。
  15. 前記表示制御プログラムは、さらに前記コンピュータを、第1および第2モードのいずれかを設定するモード設定手段として機能させ、
    前記仮想カメラ設定手段は、
    前記第1モードが設定された場合に、前記右仮想カメラによって生成される前記右画像と前記左仮想カメラによって生成される前記左画像との間に生じる視差量が予め定められた値を超えないように、前記右仮想カメラおよび前記左仮想カメラを設定し、
    前記第2モードが設定された場合に、前記基準仮想平面領域から前記右仮想カメラおよび前記左仮想カメラまでの距離が予め定められた値となるように、前記右仮想カメラおよび前記左仮想カメラを設定する、請求項14に記載の表示制御プログラム。
  16. 前記表示制御プログラムは、さらに前記コンピュータを、立体感変更指示に応答して、前記仮想カメラ設定手段によって設定された前記右仮想カメラの位置および前記左仮想カメラの位置の少なくとも一方を変更する変更受付手段として機能させる、請求項1〜15のいずれか1項に記載の表示制御プログラム。
  17. 前記視体積設定手段は、前記変更受付手段によって、前記右仮想カメラの位置、または、前記左仮想カメラの位置が変更されたときに、前記右仮想カメラおよび前記左仮想カメラの視体積を変更する、請求項16に記載の表示制御プログラム。
  18. 前記変更受付手段は、所定の一軸方向に沿うスライド操作に応じて、前記立体感変更指示を受付ける、請求項16または17に記載の表示制御プログラム。
  19. 前記変更受付手段は、前記仮想カメラ設定手段により最初に設定された前記右仮想カメラと前記左仮想カメラとの間の距離を前記立体感指示の調整幅の略最大値に対応させる、請求項1618のいずれか1項に記載の表示制御プログラム。
  20. 立体表示が可能な表示装置と、
    所定の仮想空間を表現した画像を前記表示装置で立体表示するために用いられる右画像および左画像を生成するために、前記仮想空間の仮想的な撮影に用いられる右仮想カメラおよび左仮想カメラのカメラ方向が同じ方向を向き、かつ、当該カメラ方向と両仮想カメラの位置を通る直線とが垂直になるように、前記仮想空間内に両仮想カメラの位置および方向をそれぞれ設定する仮想カメラ設定手段と、
    前記仮想空間の中で少なくとも前記表示装置に表示すべき領域である表示対象領域に対して、前記右仮想カメラの視体積および前記左仮想カメラの視体積の両方が当該表示対象領域を含むように、両仮想カメラの視体積を設定し、さらに、少なくとも一方の仮想カメラの視体積が、当該一方の仮想カメラの位置から前記カメラ方向に伸びる線に関して他方の仮想カメラが存在する側に偏在するように設定する視体積設定手段とえ、
    前記仮想カメラ設定手段は、基準仮想カメラが前記仮想空間内に設定されることに応答して、前記右仮想カメラおよび前記左仮想カメラを、当該右仮想カメラおよび当該左仮想カメラの前記カメラ方向が、前記基準仮想カメラのカメラ方向である基準カメラ方向と同じ方向になるように設定し、
    前記視体積設定手段は、
    前記基準仮想カメラの視体積に含まれ、前記基準カメラ方向と垂直な所定の面上の領域である仮想平面領域である基準仮想平面領域を前記表示対象領域として設定し、
    前記右仮想カメラの視体積における前記基準仮想平面領域に対応する位置の断面、および、前記左仮想カメラの視体積における前記基準仮想平面領域に対応する位置の断面が、いずれも前記基準仮想カメラの視体積における前記基準仮想平面領域に対応する位置の断面と一致するように、前記右仮想カメラおよび前記左仮想カメラの視体積を設定する、情報処理システム。
  21. 立体表示の制御に利用されるプログラムであって、前記プログラムはコンピュータを、
    所定の仮想空間における基準仮想カメラを定義する第1プロジェクション行列および第1ビュー行列、ならびに、当該基準仮想カメラのカメラ方向である基準カメラ方向と垂直な所定の面上の領域である仮想平面領域までの当該基準仮想カメラからの距離の入力を受付ける入力手段と、
    前記入力手段によって受付けられた、前記第1プロジェクション行列、前記第1ビュー行列、前記仮想平面領域までの前記基準仮想カメラからの距離に基づいて、前記仮想空間に前記基準仮想カメラを設定するとともに、前記仮想空間の仮想的な撮影に用いられる右仮想カメラおよび左仮想カメラのカメラ方向が同じ方向を向き、かつ、当該カメラ方向と両仮想カメラの位置を通る直線とが垂直になるように、前記仮想空間内に両仮想カメラの位置および方向をそれぞれ設定する仮想カメラ設定手段と、
    前記仮想空間の中で少なくとも立体表示すべき領域である表示対象領域に対して、前記右仮想カメラの視体積および前記左仮想カメラの視体積の両方が当該表示対象領域を含むように、両仮想カメラの視体積を設定し、さらに、少なくとも一方の仮想カメラの視体積が、当該一方の仮想カメラの位置から前記カメラ方向に伸びる線に関して他方の仮想カメラが存在する側に偏在するように設定する視体積設定手段と、
    前記仮想カメラ設定手段および前記視体積設定手段によって設定された前記右仮想カメラを定義する第2プロジェクション行列および第2ビュー行列と、前記仮想カメラ設定手段および前記視体積設定手段によって設定された前記左仮想カメラを定義する第3のプロジェクション行列および第3のビュー行列とを出力する出力手段として機能させる、プログラム。
JP2010238665A 2009-11-04 2010-10-25 表示制御プログラム、情報処理システム、および立体表示の制御に利用されるプログラム Active JP4754031B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010238665A JP4754031B2 (ja) 2009-11-04 2010-10-25 表示制御プログラム、情報処理システム、および立体表示の制御に利用されるプログラム
US12/938,089 US11089290B2 (en) 2009-11-04 2010-11-02 Storage medium storing display control program, information processing system, and storage medium storing program utilized for controlling stereoscopic display
EP10189834A EP2337364A3 (en) 2009-11-04 2010-11-03 Display control program, information processing system, and program utilized for controlling stereoscopic display

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009253234 2009-11-04
JP2009253234 2009-11-04
JP2010238665A JP4754031B2 (ja) 2009-11-04 2010-10-25 表示制御プログラム、情報処理システム、および立体表示の制御に利用されるプログラム

Publications (2)

Publication Number Publication Date
JP2011120224A JP2011120224A (ja) 2011-06-16
JP4754031B2 true JP4754031B2 (ja) 2011-08-24

Family

ID=43548303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010238665A Active JP4754031B2 (ja) 2009-11-04 2010-10-25 表示制御プログラム、情報処理システム、および立体表示の制御に利用されるプログラム

Country Status (3)

Country Link
US (1) US11089290B2 (ja)
EP (1) EP2337364A3 (ja)
JP (1) JP4754031B2 (ja)

Families Citing this family (20)

* 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
JP5507003B2 (ja) * 2011-03-24 2014-05-28 富士フイルム株式会社 立体画像処理装置及び立体画像処理方法
EP2506587A2 (en) * 2011-03-31 2012-10-03 Fujifilm Corporation Stereoscopic display apparatus
CN103026388A (zh) * 2011-04-28 2013-04-03 松下电器产业株式会社 图像生成装置
JP2012234411A (ja) * 2011-05-02 2012-11-29 Nintendo Co Ltd 画像生成装置、画像生成システム、画像生成プログラムおよび画像生成方法
JP5904526B2 (ja) * 2011-07-12 2016-04-13 国立研究開発法人情報通信研究機構 立体画像制作支援装置、立体画像制作支援方法および立体画像制作支援プログラム
JP5818674B2 (ja) * 2011-12-21 2015-11-18 株式会社東芝 画像処理装置、方法、及びプログラム、並びに、画像表示装置
KR20130081569A (ko) * 2012-01-09 2013-07-17 삼성전자주식회사 3d 영상을 출력하기 위한 장치 및 방법
JP5181083B1 (ja) 2012-01-19 2013-04-10 パナソニック株式会社 立体画像表示制御装置、立体画像表示制御方法、及びプログラム
JP5456820B2 (ja) * 2012-03-28 2014-04-02 株式会社スクウェア・エニックス ゲーム装置
JP5773944B2 (ja) * 2012-05-22 2015-09-02 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
JP6066066B2 (ja) * 2013-02-20 2017-01-25 株式会社ジオ技術研究所 立体視画像出力システム
JP6963399B2 (ja) * 2017-03-16 2021-11-10 株式会社スクウェア・エニックス プログラム、記録媒体、画像生成装置、画像生成方法
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
CN110324601A (zh) * 2018-03-27 2019-10-11 京东方科技集团股份有限公司 渲染方法、计算机产品及显示装置
WO2023084783A1 (ja) * 2021-11-15 2023-05-19 涼平 山中 投影プログラム、投影方法、投影システム、およびコンピュータ可読媒体

Family Cites Families (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69030911T2 (de) 1989-10-25 1997-11-06 Hitachi Ltd Stereoskopisches bilderzeugendes 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
DE69313694T2 (de) 1992-03-23 1998-02-19 Canon Kk Bildaufnahmevorrichtung mit mehreren Linsen und Korrektur von Falschregistrierung
US5764231A (en) * 1992-05-15 1998-06-09 Eastman Kodak Company Method and apparatus for creating geometric depth images using computer graphics
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 疑似立体映像表示装置
DE69417824D1 (de) 1993-08-26 1999-05-20 Matsushita Electric Ind 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 三洋電機株式会社 立体映像装置
US6236748B1 (en) 1994-08-02 2001-05-22 Canon Kabushiki Kaisha Compound eye image pickup device utilizing plural image sensors and plural lenses
TW269094B (en) 1994-11-11 1996-01-21 Nitendo Kk Three dimensional visual image display device and electric game apparatus, memory device thereof
JPH08137428A (ja) 1994-11-11 1996-05-31 Nintendo Co Ltd 画像表示装置、画像表示システムおよびそれに用いられるプログラムカートリッジ
JPH08136855A (ja) 1994-11-11 1996-05-31 Nintendo Co Ltd 画像表示装置、画像表示システムおよびそれに用いられるプログラムカートリッジ
JP2716388B2 (ja) 1994-12-26 1998-02-18 日本電気株式会社 立体画像用ディスプレイ装置
JPH08205201A (ja) 1995-01-31 1996-08-09 Sony Corp 疑似立体視方法
JPH08331607A (ja) 1995-03-29 1996-12-13 Sanyo Electric Co Ltd 三次元表示画像生成方法
US6384859B1 (en) 1995-03-29 2002-05-07 Sanyo Electric Co., Ltd. Methods for creating an image for a three-dimensional display, for calculating depth information and for image processing using the depth information
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
JP2848291B2 (ja) 1995-08-24 1999-01-20 松下電器産業株式会社 立体tv装置
EP0772350A3 (en) 1995-10-30 1997-07-23 Photron Kk Inlay system 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
JP3733359B2 (ja) 1996-04-05 2006-01-11 松下電器産業株式会社 視差推定方法、画像伝送方法、画像表示方法、多視点画像伝送方法、多視点画像復元方法および視差推定装置
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
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 ディジタル放送受信機
US6559844B1 (en) * 1999-05-05 2003-05-06 Ati International, Srl Method and apparatus for generating multiple views using a graphics engine
JP3619063B2 (ja) 1999-07-08 2005-02-09 キヤノン株式会社 立体画像処理装置、その方法、立体視パラメータ設定装置、その方法そしてコンピュータプログラム記憶媒体
US7236622B2 (en) 1999-08-25 2007-06-26 Eastman Kodak Company Method for forming a depth image
GB2354389A (en) 1999-09-15 2001-03-21 Sharp Kk Stereo images with comfortable perceived depth
JP2001142166A (ja) 1999-09-15 2001-05-25 Sharp Corp 3dカメラ
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 立体視画像生成装置、立体視画像生成情報および情報記憶媒体
CA2361341A1 (en) * 2001-11-07 2003-05-07 Idelix Software Inc. Use of detail-in-context presentation on stereoscopically paired images
JP3749227B2 (ja) 2002-03-27 2006-02-22 三洋電機株式会社 立体画像処理方法および装置
US8369607B2 (en) * 2002-03-27 2013-02-05 Sanyo Electric Co., Ltd. Method and apparatus for processing three-dimensional images
KR100977193B1 (ko) 2002-04-25 2010-08-20 샤프 가부시키가이샤 화상 데이터 생성 장치, 화상 데이터 재생 장치, 및 화상데이터 기록 매체
JP4115188B2 (ja) 2002-07-19 2008-07-09 キヤノン株式会社 仮想空間描画表示装置
JP3973525B2 (ja) 2002-09-24 2007-09-12 シャープ株式会社 2d(2次元)及び3d(3次元)表示機能を備える電子機器
ES2392244T3 (es) 2002-09-27 2012-12-07 Sharp Kabushiki Kaisha Dìspositivo de visualización de imágenes en 3D
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
JP3962699B2 (ja) 2003-03-20 2007-08-22 株式会社ソフィア 遊技機
US7417664B2 (en) 2003-03-20 2008-08-26 Seijiro Tomita Stereoscopic image picking up and display system based upon optical axes cross-point information
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 立体画像処理方法および立体画像処理装置
WO2006114898A1 (en) 2005-04-25 2006-11-02 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 株式会社ニコン 画像再生装置
KR101311896B1 (ko) 2006-11-14 2013-10-14 삼성전자주식회사 입체 영상의 변위 조정방법 및 이를 적용한 입체 영상장치
JP4892405B2 (ja) 2007-05-18 2012-03-07 キヤノン株式会社 画像処理装置および方法
US7884823B2 (en) * 2007-06-12 2011-02-08 Microsoft Corporation Three dimensional rendering of display information using viewer eye coordinates
US8358332B2 (en) * 2007-07-23 2013-01-22 Disney Enterprises, Inc. Generation of three-dimensional movies with improved depth control
JP4982862B2 (ja) 2007-09-07 2012-07-25 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及び画像生成システム
US8228327B2 (en) * 2008-02-29 2012-07-24 Disney Enterprises, Inc. Non-linear depth rendering of stereoscopic animated images
CN102124490B (zh) 2008-06-13 2018-02-13 图象公司 用于缩减或者清除在显示的立体图像中感知到的重像的方法和系统
WO2010025458A1 (en) 2008-08-31 2010-03-04 Mitsubishi Digital Electronics America, Inc. Transforming 3d video content to match viewer position
US9025007B1 (en) * 2009-04-28 2015-05-05 Lucasfilm Entertainment Company Ltd. Configuring stereo cameras
JP5409107B2 (ja) 2009-05-13 2014-02-05 任天堂株式会社 表示制御プログラム、情報処理装置、表示制御方法、および情報処理システム
US20100328428A1 (en) * 2009-06-26 2010-12-30 Booth Jr Lawrence A Optimized stereoscopic visualization
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 任天堂株式会社 表示制御プログラム、情報処理システム、および立体表示の制御に利用されるプログラム
JP5186715B2 (ja) 2010-06-14 2013-04-24 任天堂株式会社 表示制御プログラム、表示制御装置、表示制御方法、および、表示制御システム

Also Published As

Publication number Publication date
EP2337364A3 (en) 2011-07-06
EP2337364A2 (en) 2011-06-22
US11089290B2 (en) 2021-08-10
US20110102425A1 (en) 2011-05-05
JP2011120224A (ja) 2011-06-16

Similar Documents

Publication Publication Date Title
JP4754031B2 (ja) 表示制御プログラム、情報処理システム、および立体表示の制御に利用されるプログラム
JP5405264B2 (ja) 表示制御プログラム、ライブラリプログラム、情報処理システム、および、表示制御方法
KR100812905B1 (ko) 입체 화상 처리 방법, 장치 및 컴퓨터 판독가능 기록 매체
US8472702B2 (en) Method and apparatus for processing three-dimensional images
US20110032252A1 (en) Storage medium storing display control program for controlling display capable of providing three-dimensional display and information processing system
KR101675961B1 (ko) 적응적 부화소 렌더링 장치 및 방법
US20120306860A1 (en) Image generation system, image generation method, and information storage medium
JP5757790B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、及び、情報処理方法
US8749547B2 (en) Three-dimensional stereoscopic image generation
US7680322B2 (en) Method of fabricating printed material for stereoscopic viewing, and printed material for stereoscopic viewing
KR101425321B1 (ko) 적응형 렌즈 어레이를 구비하는 3차원 집적 영상 디스플레이 시스템 및 적응형 렌즈 어레이에 대한 요소 영상 생성 방법
US20150234196A1 (en) Image display apparatus, lenticular lens, and image display method
JP2018186319A (ja) 立体画像表示制御装置、立体画像表示制御方法及び立体画像表示制御プログラム

Legal Events

Date Code Title Description
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: 20110426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110524

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140603

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4754031

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250