JP2012175358A - 表示制御プログラム、表示制御装置、表示制御方法及び表示制御システム - Google Patents

表示制御プログラム、表示制御装置、表示制御方法及び表示制御システム Download PDF

Info

Publication number
JP2012175358A
JP2012175358A JP2011034798A JP2011034798A JP2012175358A JP 2012175358 A JP2012175358 A JP 2012175358A JP 2011034798 A JP2011034798 A JP 2011034798A JP 2011034798 A JP2011034798 A JP 2011034798A JP 2012175358 A JP2012175358 A JP 2012175358A
Authority
JP
Japan
Prior art keywords
correction rate
parallax
virtual
reference plane
setting
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.)
Withdrawn
Application number
JP2011034798A
Other languages
English (en)
Inventor
Hiromasa Yomo
宏昌 四方
Shiro Mori
志朗 毛利
Shinji Okane
慎治 岡根
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 JP2011034798A priority Critical patent/JP2012175358A/ja
Publication of JP2012175358A publication Critical patent/JP2012175358A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

【課題】所定位置よりも仮想カメラに近い位置にあるオブジェクトの立体感を調整すると、所定位置を奥行き方向に通過するオブジェクトは、所定位置の前後(手前側と奥側)において不自然な立体感で視認されることがある。
【解決手段】表示制御プログラムは、視差補正率設定手段を備える。視差補正率設定手段は、基準補正率に対して、仮想3次元空間において、第1の基準面から奥側の視差補正率を当該基準補正率よりも大きくし、かつ、当該第1の基準面において視差補正率を連続的に変化させる第1の設定と、第2の基準面から手前側の視差補正率を当該基準補正率よりも小さくし、かつ、当該第2の基準面において視差補正率を連続的に変化させる第2の設定のうち、少なくとも一方の設定を行った視差補正率を設定する。
【選択図】図19

Description

本発明は、表示制御プログラム、表示制御装置、表示制御方法及び表示制御システムに関し、より特定的には、立体視表示を行う表示制御プログラム、表示制御装置、表示制御方法及び表示制御システムに関する。
従来、両画像間で視差を設けた左目用画像及び右目用画像を用いて立体視表示を行う装置がある。例えば、特許文献1に記載の装置は、左右両目に対して、視差を与えた画像をそれぞれ与えることにより人工的に立体感を感じさせるものである。また特許文献1には、この視差を調整することにより、ユーザに与える立体感を調整する技術が開示されている。
特開2004−007396号公報
上記した従来の立体視表示によれば、仮想3次元空間に配置されたオブジェクトは、所定位置よりも仮想カメラに近い場合には、ディスプレイ面から手前に飛び出して視認されるように表示され、所定位置よりも仮想カメラから遠い場合には、ディスプレイ面から奥に引っ込んで視認されるように表示される。この手前への飛び出し具合は、左目用画像と右目用画像の視差の大きさに依るが、仮想カメラに近いオブジェクトの場合、左目用画像と右目用画像の視差が大き過ぎるため、ユーザに両画像を1つの立体視画像として視認させづらくなり、ユーザの目に負担がかかる可能性があるという課題がある。
この課題に対して、上記した従来の立体視表示では、所定位置よりも仮想カメラに近い位置にあるオブジェクトの立体感を調整する(すなわち、当該オブジェクトの左目用画像及び右目用画像の視差を調整する)ことにより、ユーザの目に負担がかかる可能性を軽減させることを提案している。しかし、その調整される立体感は、所定位置の前後(つまり、手前側と奥側)において視差が急激に変化するため、この所定位置を通過するオブジェクトは、所定位置の前後において不自然な立体感で視認されてしまうという課題があった。
それ故に、本発明の主たる目的は、ユーザの目に負担がかかる可能性を軽減しながらも、自然な立体感を与える立体視表示を実現する表示制御プログラム等を提供することである。
本発明は、上述の課題を解決するために、以下の構成を採用した。
本発明に係る表示制御プログラムは、立体視表示可能な表示装置に、仮想ステレオカメラで撮像した仮想3次元空間の表示を行う表示制御装置のコンピュータを、基準補正率設定手段と、視差補正率設定手段と、立体視画像生成手段と、表示制御手段として機能させる。基準補正率設定手段は、仮想3次元空間において立体表示する際の、仮想ステレオカメラからの距離に応じて変化する視差に対する補正の割合であって、その割合の基準となる基準補正率を設定する。視差補正率設定手段は、視差を補正する際の補正の割合を示す視差補正率を設定する。具体的には、視差補正率設定手段は、基準補正率に対して、仮想3次元空間において、第1の基準面から奥側の視差補正率を当該基準補正率よりも大きくし、かつ、当該第1の基準面において視差補正率を連続的に変化させる第1の設定と、第2の基準面から手前側の視差補正率を当該基準補正率よりも小さくし、かつ、当該第2の基準面において視差補正率を連続的に変化させる第2の設定のうち、少なくとも一方の設定を行った視差補正率を設定する。立体視画像生成手段は、視差補正率に基づいて、仮想ステレオカメラから仮想3次元空間を撮像することにより立体視画像を生成する。表示制御手段は、立体視画像を表示装置に表示させる。
本構成によれば、第1の設定が行われることにより、仮想3次元空間において、第1の基準面よりも奥側に位置するオブジェクトの視差補正率が基準補正率よりも大きく設定される。したがって、ユーザに近いオブジェクトの立体感が強くなり過ぎることを回避するために、立体感の基準となる基準補正率を予め小さく設定することによって、基準補正率によって補正される視差を小さくして、手前側の立体感を軽減させたとしても、第1の基準面よりも奥側においては、第1の設定によって当該基準補正率よりも大きな視差補正率が設定されるので、この視差補正率によって視差は大きくなるように補正され、ユーザは、第1の基準面よりも奥側に位置するオブジェクトに対して、十分な立体感を得ることができる。また、本構成によれば、第2の設定が行われることにより、仮想3次元空間において、第2の基準面よりも手前側に位置するオブジェクトの視差補正率が基準補正率よりも小さく設定される。したがって、ユーザから遠いオブジェクトの立体感を従来通り大きなままとするために、基準補正率を従来通りの値に設定したとしても、第2の基準面よりも手前側においては、第2の設定によって当該基準補正率よりも小さな視差補正率が設定されるので、この視差補正率によって視差は小さくなるように補正され、ユーザは、第2の基準面よりも手前側に位置する(すなわち、自身に近い)オブジェクトに対して、過度に強い立体感を覚えることがない。このため、オブジェクトの過度に強い立体感に起因してユーザの目に負担がかかる可能性が軽減される。さらに、本構成によれば、これらの設定された視差補正率は基準面(第1の基準面及び第2の基準面)において連続的に変化している。このことにより、ユーザは、当該基準面を通過するオブジェクトの立体感が当該基準面の奥側と手前側において急激に変わることによる不自然さを覚えることがなく、自然な立体感の変化を感じることができる。さらに、本構成によれば、第1の設定と第2の設定とが同時に行われることにより、ユーザは、自身に近いオブジェクトに対しては、過度に強い立体感を覚えることなく、かつ、自身から遠いオブジェクトに対しては、よりリアルな立体感を覚えることができ、より自然な立体視を楽しむことができる。
視差補正率設定手段による視差補正率の設定は以下のように行われてもよい。すなわち、視差補正率設定手段は、基準補正率に対して、第1の基準面から奥側の視差補正率を当該基準補正率よりも大きくし、かつ、当該第1の基準面において視差補正率を滑らかに変化させる第1の設定と、第2の基準面から手前側の視差補正率を当該基準補正率よりも小さくし、かつ、当該第2の基準面において視差補正率を滑らかに変化させる第2の設定のうち、少なくとも一方の設定を行った視差補正率を設定する。
本構成によれば、基準面(第1の基準面及び第2の基準面)において視差補正率が滑らかに変化する。このため、当該基準面の前後(奥側と手前側)で、視差補正率によって補正されたオブジェクトの視差は滑らかに変化する。このことにより、ユーザは、自身に近いオブジェクトに対して過度に強い立体感を覚えることがなく、かつ、その立体感の変化がより滑らかであるため、ユーザは、補正が行われていることを感じることなく、より自然な立体視を楽しむことができる。
視差補正率設定手段による視差補正率の設定は以下のように行われてもよい。すなわち、視差補正率設定手段は、基準補正率に対して、第1の基準面から奥側への距離が大きくなるほど、当該基準補正率と視差補正率との差が大きくなる第1の設定と、第2の基準面から手前側への距離が大きくなるほど、当該基準補正率と視差補正率との差が大きくなる第2の設定のうち、少なくとも一方の設定を行った視差補正率を設定する。
本構成によれば、基準補正率と視差補正率との差は、基準面(第1の基準面及び第2の基準面)付近では小さく、基準面から離れるほど大きくなる。したがって、当該基準面付近に位置するオブジェクトの視差補正率は、当該基準補正率に近い値となり、オブジェクトが第1の基準面から奥側に大きく離れるほど、当該オブジェクトの視差補正率は、当該基準補正率よりも大きな値となる。また、オブジェクトが第2の基準面から手前側に大きく離れるほど、当該オブジェクトの視差補正率は、当該基準補正率よりも小さな値となる。このことにより、ユーザは、基準面付近に位置するオブジェクトに対しては、視差補正率によって視差が補正される前の立体感に近い立体視が可能であり、オブジェクトが第1の基準面から奥側に離れるほど(すなわち、オブジェクトがユーザから遠ざかるほど)、奥行きの立体感が強く感じられる、よりリアルな立体視が可能である。また、オブジェクトが第2の基準面から手前側に離れるほど(すなわち、オブジェクトがユーザに近づくほど)、オブジェクトが近くにあるように見え過ぎること(過度な立体感)が軽減される。
視差補正率設定手段による視差補正率の設定は以下のように行われてもよい。すなわち、視差補正率設定手段は、基準補正率に対して、第1の基準面から奥側への距離が大きくなるほど、当該基準補正率と視差補正率との差の変化量が大きくなる第1の設定と、第2の基準面から手前側への距離が大きくなるほど、当該基準補正率と視差補正率との差の変化量が大きくなる第2の設定のうち、少なくとも一方の設定を行った視差補正率を設定する。
本構成によれば、基準補正率と視差補正率との差の変化量は、基準面(第1の基準面及び第2の基準面)付近では小さく、基準面から離れるほど大きくなる。したがって、当該基準面付近に位置するオブジェクトが、その付近で前後(奥側及び手前側)に移動したとしても、視差補正率は、基準補正率から大きく変化することがない。このことにより、ユーザは、基準面付近でオブジェクトが前後に移動したとしても、当該オブジェクトに対しては、視差補正率によって視差が補正される前の立体感とそれほど変わりのない自然な立体感を感じることができる。このため、本構成によれば、オブジェクトが近くにあるように見え過ぎること(過度な立体感)が軽減され、かつ、オブジェクトの移動に対しても、より自然な立体視が実現される。
視差補正率設定手段による視差補正率の設定は以下のように行われてもよい。すなわち、視差補正率設定手段は、基準補正率に対して、仮想3次元空間における深度に対する視差補正率の変化の割合を、第1の基準面を示す深度において、当該基準補正率の変化の割合に一致させる第1の設定と、第2の基準面を示す深度において、当該基準補正率の変化の割合に一致させる第2の設定のうち、少なくとも一方の設定を行った視差補正率を設定する。
本構成によれば、視差補正率の深度に対する変化の割合は、基準面(第1の基準面及び第2の基準面)において基準補正率の深度に対する変化の割合と一致する。したがって、オブジェクトが基準面付近で前後(奥側及び手前側)に移動したとしても、視差補正率は、滑らかに変化する。このことにより、ユーザは、基準面付近でオブジェクトが前後に移動したとしても、視差補正率による視差の補正が行われていることに対する不自然さを覚えることなく、より自然な立体視を楽しむことができる。
視差補正率設定手段による視差補正率の設定は以下のように行われてもよい。すなわち、視差補正率設定手段は、基準補正率に対して、第1の基準面から奥側の視差補正率を、仮想3次元空間における深度の増加に対してnが1以上のn次関数に従って当該基準補正率よりも大きくする第1の設定と、第2の基準面から手前側の視差補正率を、深度の減少に対してmが1次以上のm次関数に従って当該基準補正率よりも小さくする第2の設定のうち、少なくとも一方の設定を行った視差補正率を設定する。
本構成によれば、第1の基準面よりも奥側においては、視差補正率の値は、オブジェクトが当該第1の基準面から離れるほど(深度が増加するほど)、直線的に、或いは、曲線的(2次関数以上の高次関数的)に深度の増加に応じて、基準補正率の値よりも大きくなる。また、第2の基準面よりも手前側においては、視差補正率の値は、オブジェクトが当該第2の基準面から離れるほど(深度が減少するほど)、直線的に、或いは、曲線的(2次関数以上の高次関数的)に深度の減少に応じて、基準補正率の値よりも小さくなる。このことにより、ユーザは、基準面(第1の基準面及び第2の基準面)付近に位置するオブジェクトに対しては、視差補正率によって視差が補正される前の立体感に近い自然な立体視が可能であり、オブジェクトが第1の基準面から奥側に離れるほど、奥行きの立体感が強く感じられるよりリアルな立体視が可能となり、オブジェクトが第2の基準面から手前側に離れるほど、オブジェクトが近くにあるように見え過ぎること(過度な立体感)が軽減される。さらに、視差補正率が深度に対して曲線的に変化する場合には、基準面において、より自然な立体視が実現される。
仮想ステレオカメラは、仮想左カメラと仮想右カメラとを含んでもよい。この場合、立体視画像生成手段による立体視画像の生成は以下のように行われてもよい。すなわち、立体視画像生成手段は、仮想左カメラと仮想右カメラの間隔を、視差補正率に応じて変更し、当該仮想ステレオカメラに仮想3次元空間を撮像させることによって立体視画像を生成する。
本構成によれば、視差補正率設定手段によって設定された視差補正率は、仮想ステレオカメラ(仮想左カメラと仮想右カメラ)の間隔に反映される。すなわち、従来の仮想3次元空間の撮像処理(描画処理)において必要とされる仮想ステレオカメラの位置(両仮想カメラ間の距離)決めに対して、視差補正率の設定が反映される。このことにより、複雑な補正の工程を必要とすることなく、従来の撮像処理に用いられるステレオカメラの位置(両カメラ間の距離)決めだけで、オブジェクトの視差を補正するための視差補正率を調節することが可能となる。
第1の基準面と第2の基準面は同一であってもよい。
本構成によれば、第1の基準面と第2の基準面が同一であるので、第1の基準面と第2の基準面との間の領域が存在しない。このことにより、当該基準面から手前側に視差補正率が小さくなるように設定され、当該基準面から奥側に視差補正率が大きくなるように設定されても、当該基準面において互いの視差補正率の値は一致し、かつ連続的に変化する。このことにより、当該基準面を通過するオブジェクトの立体感が当該基準面の奥側と手前側において急激に変わることによる不自然さを覚えることがなく、自然な立体感の変化を感じることができる。
第1の基準面と第2の基準面のいずれか一方は、視差の生じない基準面であってもよい。
本構成によれば、第1の基準面と第2の基準面のいずれか一方の基準面においては視差が0(ゼロ)となる。そして、この視差が0(ゼロ)となる面の前後において、オブジェクトの立体感は反転する(すなわち、オブジェクトの飛び出し具合と引っ込み具合が入れ替わる)。したがって、例えば、第1の基準面が、視差が0(ゼロ)となる面(オブジェクトが非立体視される面)である場合、第1の基準面より奥側において視差補正率によって視差が補正されても(すなわち、引っ込み具合が補正されても)、第1の基準面においてオブジェクトは平面視(非立体視)されるので、ユーザは、この第1の基準面の前後で視差補正率によって視差の補正が行われていることに気がつきにくい。そのため、ユーザは、基準面前後のオブジェクトの移動に対しても、より自然な立体視が可能となる。
第1の基準面と第2の基準面は、同一であり、かつ、視差の生じない基準面であってもよい。
本構成によれば、第1基準面と第2基準面が同一であるので、第1の基準面と第2の基準面との間の領域が存在せず、かつ、当該基準面において視差は0(ゼロ)となる。このことにより、当該基準面から手前側に視差補正率が小さくなるように設定され、当該基準面から奥側に視差補正率が大きくなるように設定されても、当該基準面において互いの視差補正率の値は一致し、かつ連続的に変化する。また、当該基準面において視差補正率の値がどのような値であっても、視差は0(ゼロ)となり、当該基準面においてオブジェクトは平面視されるので、ユーザは、当該基準面の前後で視差補正率によって視差の補正が行われていることに気がつきにくい。これらのことにより、ユーザは、当該基準面前後のオブジェクトの移動に対して、より自然な立体視が可能となる。
視差補正率設定手段による視差補正率の設定は以下のように行われてもよい。すなわち、視差補正率設定手段は、基準補正率に対して、第1の基準面から奥側の視差補正率を当該基準補正率よりも大きくする第1の設定を行った視差補正率を設定する。
本構成によれば、この設定が行われることにより、仮想3次元空間において、第1の基準面よりも奥側に位置するオブジェクトの視差補正率が、基準補正率よりも大きく設定される。したがって、ユーザに近いオブジェクトの立体感が強くなり過ぎることを回避するために、立体感の基準となる基準補正率を予め小さく設定することによって、手前側の立体感を軽減させたとしても、第1の基準面よりも奥側においては、上記設定によって当該基準補正率よりも大きな視差補正率が設定されるので、ユーザは、第1の基準面よりも奥側に位置するオブジェクトに対して、十分な立体感を得ることができる。
視差補正率設定手段による視差補正率の設定は以下のように行われてもよい。すなわち、視差補正率設定手段は、基準補正率に対して、第2の基準面から手前側の視差補正率を当該基準補正率よりも小さくする第2の設定を行った視差補正率を設定する。
本構成によれば、この設定が行われることにより、仮想3次元空間において、第2の基準面よりも手前側に位置するオブジェクトの視差補正率が、基準補正率よりも小さく設定される。したがって、ユーザから遠いオブジェクトの立体感を従来通り大きなままとするために、当該基準補正率を従来通りの値に設定したとしても、第2の基準面よりも手前側においては、上記設定によって当該基準補正率よりも小さな視差補正率が設定されるので、ユーザは、第2の基準面よりも手前側に位置する(すなわち、自身に近い)オブジェクトに対して、過度に強い立体感を覚えることがない。
コンピュータを、ユーザからの入力を受け付ける入力受付手段としてさらに機能させてもよい。この場合、基準補正率設定手段は、入力受付手段で受け付けた入力に基づき、基準補正率を設定してもよい。
本構成によれば、基準補正率は、ユーザから受け付けられた入力に応じて決定される。このことにより、ユーザは、自身の最も立体視し易い基準補正率を設定することができ、より自然な立体視を楽しむことができる。
以上では、表示制御プログラムとして本発明を構成する場合について記載した。しかし、本発明は、表示制御装置、表示制御システム、又は表示制御方法として構成されてもよい。更には、本発明は、上記表示制御プログラムを記録したコンピュータで読み取り可能な記録媒体として構成されてもよい。
本発明によれば、ユーザの目に負担がかかる可能性を軽減しながらも、自然な立体感を与える立体視表示を実現する表示制御プログラム等を提供することができる。
開状態におけるゲーム装置10の正面図 閉状態におけるゲーム装置10の左側面図、正面図、右側面図及び背面図 ゲーム装置10の内部構成を示すブロック図 本実施形態における立体視の概要について説明するための図 本実施形態における立体視の概要について説明するための図 仮想3次元空間における仮想カメラの位置及び描画範囲を説明するための図 オブジェクトの視差を説明するための図 視差と深度の関係を示すグラフ 基準補正率と深度との関係を示すグラフ 従来技術による補正率と深度との関係を示すグラフ 従来技術による補正後の視差と深度との関係を示すグラフ 本実施形態における補正率と深度との関係の一例を示すグラフ 本実施形態における補正後の視差と深度との関係の一例を示すグラフ 本実施形態における補正率と深度との関係の一例を示すグラフ 本実施形態における補正後の視差と深度との関係の一例を示すグラフ 補正率決定式を表わした図 ゲーム装置10のメインメモリ32のメモリマップの一例を示す図 表示制御処理のフローチャートの一例 図8のステップS5の座標変換処理のフローチャートの一例 図19のステップS13の処理について説明するための図 図19のステップS14の処理について説明するための図 図19のステップS15の処理について説明するための図 本実施形態における補正率と深度の関係の一例を示すグラフ 図19のステップS17、S18の処理について説明するための図 補正後の視差の減少を模式的に表わした図 変形例における補正率と深度との関係の一例を示すグラフ 変形例における補正後の視差と深度との関係の一例を示すグラフ 変形例における補正率と深度との関係の一例を示すグラフ 変形例における補正後の視差と深度との関係の一例を示すグラフ 変形例における補正率と深度との関係の一例を示すグラフ 変形例における補正後の視差と深度との関係の一例を示すグラフ 変形例における補正率と深度との関係の一例を示すグラフ 変形例における補正後の視差と深度との関係の一例を示すグラフ 変形例における補正率と深度との関係の一例を示すグラフ 変形例における仮想カメラの描画範囲を説明するための図
(一実施形態)
以下、本発明の一実施形態に係る表示制御装置であるゲーム装置について説明する。なお、本発明は、このような装置に限定されるものではなく、このような装置の機能を実現する表示制御システムであってもよく、このような装置における表示制御方法であってもよく、このような装置において実行される表示制御プログラムであってもよい。更には、本発明は、この表示制御プログラムを記録したコンピュータ読み取り可能な記録媒体であってもよい。
(ゲーム装置の外観構成)
以下、本発明の一実施形態に係るゲーム装置について説明する。図1及び図2は、ゲーム装置10の外観を示す平面図である。ゲーム装置10は携帯型のゲーム装置であり、図1及び図2に示すように折り畳み可能に構成されている。図1は、開いた状態(開状態)におけるゲーム装置10を示し、図2は、閉じた状態(閉状態)におけるゲーム装置10を示している。図1は、開状態におけるゲーム装置10の正面図である。ゲーム装置10は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、又は、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
まず、図1及び図2を参照して、ゲーム装置10の外観構成について説明する。図1及び図2に示されるように、ゲーム装置10は、下側ハウジング11及び上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に接続されている。
(下側ハウジングの説明)
まず、下側ハウジング11の構成について説明する。図1及び図2に示すように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L、アナログスティック15、LED16A〜16B、挿入口17、及び、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12の画素数は、例えば、320dot×240dot(横×縦)であってもよい。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1及び図2(d)に示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、及びスタートボタン14Lが、設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、及びスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
アナログスティック15は、方向を指示するデバイスである。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、仮想3次元空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを仮想3次元空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右及び斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク42(図3参照)が設けられ、当該マイク42がゲーム装置10の外部の音を検出する。
図2(a)は閉状態におけるゲーム装置10の左側面図であり、図2(b)は閉状態におけるゲーム装置10の正面図であり、図2(c)は閉状態におけるゲーム装置10の右側面図であり、図2(d)は閉状態におけるゲーム装置10の背面図である。図2(b)及び(d)に示されるように、下側ハウジング11の上側面には、Lボタン14G及びRボタン14Hが設けられている。Lボタン14G及びRボタン14Hは、例えば、撮像部のシャッターボタン(撮影指示ボタン)として機能することができる。また、図2(a)に示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
図2(a)に示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。
また、図2(d)に示されるように、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。
また、図1及び図2(c)に示されるように、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図2(c)参照)。
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
(上側ハウジングの説明)
次に、上側ハウジング21の構成について説明する。図1及び図2に示すように、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23a及び外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、及び、3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
図1に示すように、上側LCD22は上側ハウジング21に収納される。上側LCD22の画素数は、例えば、800dot×240dot(横×縦)であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
上側LCD22は、立体視可能な画像(立体視画像)を表示することが可能な表示装置である。また、本実施形態では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。又は、左目用画像と右目用画像とが時分割で交互に表示される方式の表示装置であってもよい。また、本実施形態では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目及び右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体視画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体視画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(23a及び23b)の総称である。外側撮像部(左)23aと外側撮像部(右)23bの撮像方向は、いずれも当該外側面21Dの外向きの法線方向である。外側撮像部(左)23aと外側撮像部(右)23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側撮像部(左)23a及び外側撮像部(右)23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体視画像)の立体感を調整するために用いられる。3D調整スイッチ25のスライダ25aは、所定方向(上下方向)の任意の位置にスライド可能であり、当該スライダ25aの位置に応じて上側LCD22の表示モードが設定される。また、スライダ25aの位置に応じて、立体視画像の見え方が調整される。具体的には、スライダ25aの位置に応じて、右目用画像及び左目用画像におけるオブジェクトの横方向の位置のずれ量(後述する基準視差)が調整される。
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。なお、3Dインジケータ26は、上側LCD22が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。
(ゲーム装置10の内部構成)
次に、図3を参照して、ゲーム装置10の内部の電気的構成について説明する。図3は、ゲーム装置10の内部構成を示すブロック図である。図3に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、電源回路40、及びインターフェイス回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(又は上側ハウジング21でもよい)内に収納される。
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。情報処理部31のCPU311は、ゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35)に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22及び/又は下側LCD12に出力し、上側LCD22及び/又は下側LCD12に当該画像が表示される。
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、及び、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。
メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ44や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ44は、例えば読み取り専用の半導体メモリで構成される。外部メモリ44が外部メモリI/F33に接続されると、情報処理部31は外部メモリ44に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ45には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ45がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ45に記憶された画像を読み込み、上側LCD22及び/又は下側LCD12に当該画像を表示することができる。
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
無線通信モジュール36は、例えばIEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば独自プロトコルによる通信や、赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36及びローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
また、情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸又は2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを検出することができる。なお、情報処理部31には、上記した加速度センサ39に加えて(又はその代わりに)角度センサや角速度センサ等の他のセンサが接続され、このセンサによってゲーム装置10の姿勢や動きを検出してもよい。
また、情報処理部31には、RTC38及び電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
また、情報処理部31には、LED16(16A、16B)が接続される。情報処理部31は、LED16を用いて、ゲーム装置10の電源のON/OFF状況をユーザに通知し、又、ゲーム装置10の無線通信の確立状況をユーザに通知する。
また、情報処理部31には、I/F回路41が接続される。I/F回路41には、マイク42及びスピーカ43が接続される。具体的には、I/F回路41には、図示しないアンプを介してスピーカ43が接続される。マイク42は、ユーザの音声を検知して音声信号をI/F回路41に出力する。アンプは、I/F回路41からの音声信号を増幅し、音声をスピーカ43から出力させる。また、タッチパネル13はI/F回路41に接続される。I/F回路41は、マイク42及びスピーカ43(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換及びD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、及び、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。
アナログスティック15は情報処理部31に接続される。アナログスティック15から情報処理部31へは、アナログスティック15に対するアナログ入力(操作方向及び操作量)を示す操作データが出力される。情報処理部31は、アナログスティック15から操作データを取得することによって、アナログスティック15に対する入力に従った処理を実行する。
下側LCD12及び上側LCD22は情報処理部31に接続される。下側LCD12及び上側LCD22は、情報処理部31(のGPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、上側LCD22に立体視画像(立体視可能な画像)を表示させる。
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像及び左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
外側撮像部23及び内側撮像部24は、情報処理部31に接続される。外側撮像部23及び内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。
また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。以上がゲーム装置10の内部構成の説明である。
(立体視の概要)
次に、図4及び図5を参照して、立体視の概要について説明する。図4及び図5は、上側LCD22に表示される立体視画像によって、オブジェクトがユーザに向かって飛び出して視認される場合の例を示す図である。なお、図4及び図5において、(1)は、立体視画像が表示される上側LCD22の画面をユーザが視認している状況を上方から見た概念図であり、(2)は、ユーザが視認する(1)の状況の上側LCD22の画面を示す図である。
図4(1)に示すように、上側LCD22に表示された立体視画像によって、オブジェクトA、B及びCが、上側LCD22の画面からユーザに向かって飛び出しているように視認される。具体的には、上側LCD22によって、オブジェクトAは上側LCD22の画面上よりもユーザに近い位置に視認される視差の立体視画像として表示され、オブジェクトCはオブジェクトAよりもユーザに近い位置に視認される視差の立体視画像として表示され、オブジェクトBはオブジェクトCよりもユーザに近い位置に視認される視差の立体視画像として表示されている。ここで、極端に大きく手前に飛び出して視認されるような視差(つまり、極端に大きい視差)でオブジェクトが表示(立体視表示)された場合、ユーザは、このオブジェクトを視認しづらくなる場合がある。具体的には、ユーザは、大きく飛び出してくるオブジェクトC及び更に大きく飛び出してくるオブジェクトBを、図4(2)に例示するように、2つにぶれた画像として視認してしまう場合がある(すなわち、上側LCD22に表示される右目用画像と左目用画像を重ねた際、オブジェクトを1つの立体視画像として視認することができなくなる場合がある)。
そこで、本実施形態では、上側LCD22によって所定位置よりも手前に飛び出してくるように立体視表示されるオブジェクトについて、飛び出してくる程度を緩和する。具体的には、図5(1)に示すように、図4(1)に示したオブジェクトC及びBの飛び出してくる程度(つまり、視差)を、それぞれ緩和する補正を行う。なお、図5(1)において、オブジェクトの補正前の位置を点線で示している。このことによって、本実施形態では、図5(2)に示すように、オブジェクトA、B及びCを、ユーザに見やすく立体視させることができる。
また、従来の技術において、例えば所定位置から手前側のオブジェクトの飛び出してくる程度を緩和する補正を行う場合には、所定位置を前後方向(奥行き方向)に跨って移動するオブジェクトの立体感(つまり視差)が急激に変化するため、ユーザにとっては不自然な立体視表示となってしまうという問題があった。そこで、本実施形態では、上記した手前側のオブジェクトの飛び出してくる程度を緩和しながらも、所定位置を前後方向に跨って移動してくるオブジェクトの立体感の変化が自然である補正が行われる。この補正方法について、以下に詳述する。
まず、図6、図7を参照して立体視可能な画像(立体視画像)の生成方法(描画方法)について説明する。図6は、仮想3次元空間における仮想カメラの位置関係及び描画範囲を説明するための図であり、図7は、仮想左カメラ画像(左目用画像)と仮想右カメラ画像(右目用画像)におけるオブジェクトの視差を説明するための図である。
図6に示すように、仮想3次元空間には、オブジェクト53、仮想左カメラ50、仮想右カメラ51及び仮想中間カメラ52が配置される。仮想左カメラ50及び仮想右カメラ51(仮想ステレオカメラの一例)は、仮想中間カメラ52を中心として、矢印60Cで示す仮想中間カメラ52の撮像方向と垂直な方向に所定の間隔を隔てて配置される。仮想中間カメラ52と仮想左カメラ50との間隔と、仮想中間カメラ52と仮想右カメラ51との間隔とは同一である。なお、本実施形態では、この2つの間隔は連動して設定されるものとする(すなわち、この2つの間隔は常に同一であるものとする)。また、仮想中間カメラ52の位置を点OCで示し、仮想左カメラ50の位置を点OLで示し、仮想右カメラ51の位置を点ORで示す。また、仮想左カメラ50及び仮想右カメラ51の撮像方向60L及び60Rは、仮想中間カメラ52の撮像方向60Cと、それぞれ同一である。そして、仮想中間カメラ52、仮想左カメラ50及び仮想右カメラ51(以下、これらを総称して仮想カメラという場合がある)を用いて、撮像対象のオブジェクト53が撮像(描画)される。
次に、仮想カメラによって撮像(描画)される描画領域について説明する。図6に示すように、仮想左カメラ50及び仮想右カメラ51は、所定の画角で仮想3次元空間を撮像(描画)し、ニアクリップ面80Nとファークリップ面80Fに挟まれた空間を仮想左カメラ画像及び仮想右カメラ画像(図7参照)として描画する。したがって、仮想左カメラ50が描画する空間は台形型の領域70Lとなり、仮想右カメラ51が描画する空間は台形型の領域70Rとなる。なお、ニアクリップ面80Nとは、仮想3次元空間において、仮想カメラからの深度がNである面を指し、ファークリップ面80Fとは、仮想カメラからの深度がFである面を指し、Fの値はNの値よりも大きい。ここで、深度とは、仮想カメラからの当該仮想カメラの撮像方向における距離であり、具体的には、後述する図21及び図22等における仮想カメラのビュー座標系のz座標の値によって規定される距離である。
図6に示すように、視差ゼロ面80Bは、仮想カメラからの深度がB0(このB0の値はNの値よりも大きく、Fの値よりも小さい)である面を指す。この深度がB0の位置である視差ゼロ面80Bにディスプレイ面(上側LCD22の表示画面)に対応するスクリーン面を設定することによって、当該視差ゼロ面80Bに位置するオブジェクトは立体感のない(つまり視差がゼロである)平面画像としてディスプレイ面に表示される。このディスプレイ面の領域が図6に示す領域75で示されるものとした場合、仮想左カメラ50によって描画された領域70Lのうち、領域70C(領域70Lと領域70Rとが重なる領域)が切り取られて所定の変換の後、領域75(上側LCD22の表示領域)に左目用画像として表示され、仮想右カメラ51によって描画された領域70Rのうち、領域70Cが切り取られて所定の変換の後、領域75に右目用画像として表示される(図7も参照)。
次に、オブジェクトの左目用画像における表示位置と右目用画像における表示位置との差(つまり、オブジェクトの視差)について説明する。図7は、深度DPに位置するオブジェクト53(図6参照)が仮想左カメラ50及び仮想右カメラ51によって撮像(描画)された画像を示す図である。図7に示すように、仮想左カメラ50が撮像した仮想左カメラ画像のうち、左目用画像として切り取られる領域75におけるオブジェクト53の表示位置と、仮想右カメラ51が撮像した仮想右カメラ画像のうち、右目用画像として切り取られる領域75におけるオブジェクト53の表示位置は、図7に示す左右方向に所定の量だけずれている。このずれの量がオブジェクト53の視差であり、この視差によって、左目用画像と右目用画像が重なってディスプレイ面(上側LCD22の表示画面)に表示されたときに、オブジェクト53が奥行き感(又は飛び出し感)のある立体視画像として視認される。なお、右目用画像におけるオブジェクト53の表示位置が、左目用画像におけるオブジェクト53の表示位置よりも左側にずれている場合(図7参照)には、オブジェクト53は、手前に飛び出した立体視画像として視認され、右側にずれている場合(図示せず)には、オブジェクト53は奥に引っ込んだ立体視画像として視認される。
(視差と深度の関係)
次に、図8を参照して、上記した視差と深度との関係について説明をする。図8は、ニアクリップ面80N(深度z=N)からファークリップ面80F(深度z=F)における視差(D)と深度(z)の関係を表わしたグラフである。なお、右目用画像におけるオブジェクト53の表示位置が、左目用画像におけるオブジェクト53の表示位置よりも右側にずれている場合には、視差(D)の符号を正(プラス)と定義し、左側にずれている場合には、視差(D)の符号を負(マイナス)と定義する。また、以下の説明において単に「視差」と称する場合には、この符号は考慮しておらず、視差(D)の絶対値を示すものとする。
図8に示すように、深度(z)がB0(視差ゼロ面80B;以下、単に基準面という場合がある)よりも大きくなるにつれ、視差(D)の絶対値は大きくなり、深度(z)がFのときに視差(D)の値はDfとなる。また、深度(z)がB0よりも小さくなるにつれ、視差(D)の絶対値は大きくなり、深度(z)がNのときに視差(D)の値はDnとなる。したがって、オブジェクトが、視差の生じない基準面からファークリップ面80F側(以下、単に奥側という)に配置されるほど、その視差は大きくなり、また、オブジェクトが、視差の生じない基準面からニアクリップ面80N側(以下、単に手前側という)に配置されるほど、その視差は大きくなる。このことにより、オブジェクトは奥側に配置されるほど奥行き感をもち、手前側に配置されるほど飛び出し感をもった立体視画像として視認される。なお、このオブジェクトの立体感(奥行き感の程度や、飛び出し感の程度)を決定する視差(D)は、深度(z)に依存する関数に基づいて予め設定されている。
(補正率)
前述したように、3D調整スイッチ25によって立体視画像の立体感(すなわち視差)は調整可能になっている。具体的には、3D調整スイッチ25によって視差を増減させる補正率(視差補正率)が調整(変更)される。この補正率は、視差を補正するために、視差に乗じられる値であり、所定の範囲内(例えば0.0〜1.0)にシステムにより設定され、ユーザによって変更可能に設定されている。例えば、補正率が1.0のときには、視差に増減はなく、補正率が0.0のときには、視差はゼロとなる。なお、システムにより初期設定され、ユーザによって変更可能なこの補正率のことを基準補正率といい、この基準補正率が乗じられた視差のことを基準視差という。例えば、基準補正率が1.0(図9参照)であるときには、基準視差は補正されない標準の視差となる。
(従来の視差の補正)
これまでに述べたように、図8に示すような視差の場合、ユーザに近いオブジェクト(手前側のオブジェクト)の視差が大きくなり過ぎるため、ユーザは、当該オブジェクトを1つの立体視画像として視認しづらくなる場合がある。このため、例えば基準面から手前側の視差を補正することが考えられる。図10は、従来技術により手前側の視差を軽減する補正が行われるときの補正率(R)と深度(z)の関係を表わしたグラフである。図10に示す補正率によれば、手前側の補正率が基準補正率よりも小さな値に設定されるので、手前側での視差は小さくなる(図11に示す破線から実線に補正される)。しかし、このときの補正率は、基準面(深度B0)において不連続(図10参照)であるため、基準面の前後において、視差は急激に変化する(図11参照)。そのため、基準面を通過するオブジェクトは、基準面の前後において不自然な立体感で視認されてしまう(例えば、ユーザに一定の速さで近づくオブジェクトは、基準面を通過すると、急激にその速さが変化するように視認されてしまう)問題があった。
(本実施形態の特徴的な視差の補正)
図12〜図15を参照して、上記した問題を解決する、本実施形態の特徴的な視差を軽減する補正について説明する。図12は、本実施形態の補正率(R)と深度(z)との関係を示すグラフであり、図13は、図12に示す補正率(R)によって補正された視差(D)と深度(z)の関係を示すグラフである。同様に、図14は、本実施形態の補正率(R)と深度(z)との関係を示すグラフであり、図15は、図14に示す補正率(R)によって補正された視差(D)と深度(z)の関係を示すグラフである。
図12に示すように、本実施形態の補正率は、基準面(深度z=B0)において連続的に変化している。具体的には、基準面よりも奥側(深度z>B0)においては、補正率は、基準補正率であり(その値は、maxR)、基準面よりも手前側(深度z<B0)においては、深度(z)の減少と共に直線的に減少し、基準面においてmaxRであった補正率は、ニアクリップ面80N(深度z=N)においてminRとなる。なお、このminRには、所定の値が設定される。また、基準補正率の値であるmaxRは、システムにより初期値(例えば1.0)として設定され、また、ユーザにより変更可能となっている。
このように、図12に示す本実施形態の補正率は、基準面において連続的に変化しているため、ユーザは、当該基準面を通過するオブジェクトの立体感が当該基準面の奥側と手前側において急激に変わることによる不自然さを覚えることがなく、自然な立体感を得ることができる。
また、図13に示すように、図12に示す補正率によって視差が補正されるとき、補正後の視差は、基準面よりも手前側において基準視差よりも小さくなる。このため、ユーザに近いオブジェクト(手前側のオブジェクト)であっても、その視差が大きくなり過ぎることがなく、ユーザは、当該オブジェクトを立体視画像として視認し易くなる。また、上記したように、基準面で補正率は連続的に変化しているため、基準面近傍での視差は基準視差と比べて大きく変わることがない。このため、ユーザは、当該基準面近傍におけるオブジェクトの立体感に不自然さを覚えることなく、かつ、ユーザに近いオブジェクトに対しては従来よりも小さな視差(基準視差よりも小さな視差)で立体視することができ、オブジェクトを視認し易くなる。
図14は、図12に示す補正率よりも、基準面近傍において滑らかに変化する補正率を示している。図14に示すように、補正率は、基準面(深度z=B0)において連続的に変化し、かつ、基準面よりも手前側においては曲線的に変化する。具体的には、基準面よりも奥側(深度z>B0)においては、補正率は、基準補正率であり(その値は、maxR)、基準面よりも手前側(深度z<B0)においては、深度(z)の減少と共に曲線的に減少し、基準面においてmaxRであった補正率は、ニアクリップ面80N(深度z=N)においてminRとなる。また、この曲線は、基準面(深度z=B0)において、深度z>B0において表わされる直線R=maxRと滑らかに接続される。
このように、図14に示す補正率は、基準面において連続的に変化し、かつ、図12に示す補正率よりも、基準面近傍において滑らかに変化する。したがって、ユーザは、当該基準面を通過するオブジェクトの立体感が当該基準面の奥側と手前側において急激に変わることによる不自然さを覚えることがなく、かつ、その立体感の変化がより滑らかであるため、ユーザは、補正が行われていることに対する不自然さを更に覚えることなく、より自然な立体視を楽しむことができる。
また、図15に示すように、図14に示す補正率によって視差が補正されるとき、補正後の視差は、基準面よりも手前側において基準視差よりも小さくなる。このため、ユーザに近いオブジェクト(手前側のオブジェクト)であっても、その視差が大きくなり過ぎることがなく、ユーザは、当該オブジェクトを1つの立体視画像として視認し易くなる。また、上記したように、基準面近傍での視差は、図13に示す視差よりも、より基準視差に近い視差となる。このため、ユーザは、当該基準面近傍におけるオブジェクトの立体感をこれまでとほとんど変わらず(基準視差とほとんど同じ視差で)視認することができる。したがって、ユーザは、補正が行われていることに対する不自然さを更に覚えることなく、かつ、ユーザに近いオブジェクトに対しては従来よりも小さな視差(基準視差よりも小さな視差)で立体視することができ、オブジェクトを視認し易くなる。
このように、本実施形態における特徴的な補正率によって視差が補正されることによって、ユーザに近いオブジェクトに対しては従来よりも視差を軽減しつつ、基準面付近での立体感に不自然さを与えることなく自然な立体視を可能とすることができる。
なお、この補正率(R)を決定する補正率決定式は、例えば以下の(式1)及び(式2)によって与えられる。

(式1)R=maxR+(minR−maxR)×
(B0−z)n/(B0−N)n (N≦z≦B0)
(式2)R=maxR (B0≦z≦F)

ここで、nは1以上の整数であり、n=1の場合が、図12に示す補正率に対応し、n=2の場合が、図14に示す補正率に対応する。また、(式1)からわかるように、nが2以上のとき、z=B0においてこの曲線の傾き(微分係数)は0となり、(式2)の直線(傾き0)と滑らかに接続される(z=B0における微分係数が一致する)。ここでnの値を大きくすると、(式1)で示される曲線は、図16に示す矢印の方向(n=1の直線より上方)により膨らむ曲線となる(図16参照)。したがって、nの値を大きくすることにより、基準面近傍における補正率をより基準補正率に近づけることができ、その結果、基準面近傍における視差を、基準視差とほぼ一致させることができる。
(表示制御処理の詳細)
次に、ゲーム装置10によってゲーム処理が実行される際に行われる表示制御処理の詳細を説明する。まず、ゲーム処理の際にメインメモリ32に記憶されるデータについて説明する。図17は、ゲーム装置10のメインメモリ32のメモリマップの一例を示す図である。図17に示すように、メインメモリ32は、プログラム記憶領域400及びデータ記憶領域500を含む。プログラム記憶領域400及びデータ記憶領域500のデータの一部は、例えば外部メモリ44に記憶されており、ゲーム処理の実行時にはメインメモリ32に読み込まれて記憶される。
プログラム記憶領域400には、後述する図18、図19に示すフローチャートの処理を実行するゲーム処理プログラム401や描画処理プログラム402等のプログラムが記憶される。
データ記憶領域500には、操作データ501、仮想カメラデータ502、深度値データ506、補正率決定式データ507、及びオブジェクトデータ508等が記憶される。
操作データ501は、各操作ボタン14A〜E、G〜H、アナログスティック15、3D調整スイッチ25、及びタッチパネル13に対して行われたユーザの操作を示すデータである。この操作データ501は、ユーザがオブジェクトを移動させる操作を示すデータや、3D調整スイッチ25におけるスライダ25aの位置を示すデータ等である。
仮想カメラデータ502は、図6を参照して説明した各仮想カメラのデータ、すなわち、仮想左カメラデータ503、仮想右カメラデータ504、及び仮想中間カメラデータ505等を含む。
仮想左カメラデータ503は、ユーザの左目に見せるための左目用画像を撮像(描画)する仮想左カメラ50に関するデータであり、ゲームが展開される仮想3次元空間における仮想左カメラ50の位置、撮像方向、及び撮像画角等を示すデータである。
仮想右カメラデータ504は、ユーザの右目に見せるための右目用画像を撮像(描画)する仮想右カメラ51に関するデータであり、ゲームが展開される仮想3次元空間における仮想右カメラ51の位置、撮像方向、及び撮像画角等を示すデータである。
仮想中間カメラデータ505は、図12〜図15を参照して説明した補正率によって視差を補正するために用いられる仮想中間カメラ52に関するデータであり、ゲームが展開される仮想3次元空間における仮想中間カメラ52の位置、撮像方向、及び撮像画角等を示すデータである。なお、これら3つの仮想カメラは、1つの仮想カメラが位置等を切り替えて撮像(描画)を行うことによって、実質的にこれら3つの仮想カメラとして機能しているものと考えてもよい。
深度値データ506は、図6を参照して説明した3次元仮想空間におけるニアクリップ面80N、ファークリップ面80F、視差ゼロ面80Bの位置(すなわち、深度の値)を決定するためのデータである。具体的には、深度値データ506は、ニアクリップ面80Nの深度(N)を示すデータ、ファークリップ面80Fの深度(F)を示すデータ、及び視差ゼロ面80Bの深度(B0)を示すデータ等を含む。
補正率決定式データ507は、図12及び図14を参照して説明した補正率を決定するための補正率Rと、深度zとの関係を規定する数式(補正率決定式)を示すデータであり、例えば、上述した(式1)及び(式2)で表わされる数式を示すデータである。なお、補正率決定式は、図12及び図14に示す関係を規定するテーブルに置き換えられてもよい。
オブジェクトデータ508は、仮想3次元空間におけるオブジェクトの位置、向き、形状(ポリゴン形状)、及び色彩(テクスチャ)等を示すデータである。また、オブジェクトデータ508には、オブジェクトごとに、オブジェクトの重心位置と、重心位置に対する当該オブジェクトの各頂点(重心以外の点)の相対位置を示すデータが含まれている。
次に、図18を参照して、ゲーム装置10によって実行されるゲーム処理の際に行われる表示制御処理のフローについて簡単に説明する。図18は、CPU311によって実行される表示制御処理のフローチャートの一例である。図18のフローチャートで示す処理は、1フレーム(例えば1/60秒)毎に繰り返し実行される。なお、以下の説明では、本発明とは直接関連しない処理についての説明は省略する。
ゲーム装置10の電源が投入されると、ゲーム装置10のCPU311は、データ保存用内部メモリ35等に記憶されている起動プログラムを実行し、これによってメインメモリ32等の各ユニットが初期化される。そして、外部メモリ44に記憶されたゲーム処理プログラム401等がメインメモリ32に読み込まれ、CPU311によってゲーム処理プログラム401が実行される。
まず、ステップS1において、CPU311は、仮想カメラデータ502を参照することによって仮想3次元空間における仮想カメラの位置情報等を取得する。その後、処理はステップS2に移る。
ステップS2において、CPU311は、3D調整スイッチ25の操作があったか否かを判定する。具体的には、CPU311は、操作データ501を参照し、3D調整スイッチ25におけるスライダ25aの位置を示すデータに更新があったか否かを判定する。この判定の結果がYESの場合、処理はステップS3に移り、NOの場合、処理はステップS4に移る。
ステップS3において、CPU311は、更新された3D調整スイッチ25におけるスライダ25aの位置データに基づいて、仮想カメラの位置情報等を仮想カメラデータ502に更新し、更新した仮想カメラの位置情報等を取得する。その後、処理はステップS4に移る。
ここで、ステップS1又はS3においてCPU311が取得する仮想カメラデータの位置情報によって、上述した基準補正率の値が決定される(図9参照)。詳しくは後述するが、仮想左カメラ50と、仮想右カメラ51の両者間の位置(間隔)に基づいて、上述した基準補正率が変化し、この結果として基準視差が変化する。したがって、CPU311がステップS1又はS3の処理を実行することによって取得した仮想カメラデータ502に含まれる仮想カメラの位置情報に基づいて、基準補正率の値が決定される。このため、ユーザは、3D調整スイッチ25を操作することによって、仮想カメラの位置を変更し(すなわち、基準補正率を変更し)、この結果としてオブジェクトの立体感(つまり、基準視差)を調整することができる。
次に、ステップS4において、CPU311は、オブジェクトデータ508に従って仮想3次元空間にオブジェクトを配置し、取得した仮想カメラデータ502に従って仮想3次元空間に仮想左カメラ50、仮想右カメラ51、及び仮想中間カメラ52を配置し、操作データ501に従ってオブジェクトを制御してゲームを進行させる。その後、処理はステップS5に移る。
以下、ステップS5及びS6の処理は、GPU312が描画処理プログラム402を実行することによって、ゲームが進行している仮想3次元空間(ゲーム空間)を仮想カメラで描画して上側LCD22に表示させる処理である。
ステップS5において、GPU312は、座標変換処理を行う。図19は、GPU312によって実行される描画処理における座標変換処理のフローチャートの一例である。以下、図19を参照して、ステップS5の座標変換処理について詳細に説明する。
図19に示すように、まず、ステップS11において、GPU312は、描画対象として、座標変換処理が行われていないオブジェクトを1つ選択する。なお、描画対象のオブジェクトとしては、図6に示す描画領域70C内に位置するオブジェクトが対象となる(例えば、オブジェクト53)。その後、処理はステップS12に移る。
ステップS12において、GPU312は、ステップS11で選択したオブジェクト53の仮想3次元空間における位置座標P(オブジェクト53の重心の座標)を取得する。その後、処理はステップS13に移る。
ステップS13において、GPU312は、図20に例示するように、仮想中間カメラ52によって、ステップS11で選択したオブジェクト53の深度DPを算出する。言い換えると、GPU312は、仮想中間カメラ52のビュー空間におけるオブジェクト53のz座標を算出する。なお、ビュー空間は、ビューイング空間又はカメラ空間と言われる場合もあり、ビュー空間を規定する座標系をビュー座標系と呼ぶ。このビュー座標系において、z軸の正方向は、矢印60Cで示す仮想中間カメラ52の撮像方向であり、x軸の正方向はz軸の正方向を時計回りに90度回転した方向であり、y軸正方向は紙面に垂直に紙面裏側から表側を指す方向である(後述する図21参照)。その後、処理はステップS14に移る。
ステップS14において、GPU312は、ステップS12で選択したオブジェクトの位置座標Pを、仮想中間カメラ52のビュー座標系における点P1に変換(ビュー変換)する。ここで、ステップS13の処理によって、仮想中間カメラ52のビュー座標系における点P1のz座標(すなわち、オブジェクト53の深度DP)は既に算出されているので、GPU312は、仮想中間カメラ52のビュー座標系における点P1のx座標及びy座標を算出する処理を行うことによって、このビュー変換を行う。図21は、ステップS14の処理を説明するための図である。図21に示すように、図20に示した仮想3次元空間における点Pは、仮想中間カメラ52のビュー座標系における点P1に変換されている。以下では、一例として、点P1のビュー座標を(−1.0,0.0,12.5)として説明を行う。その後、処理はステップS15に移る。
ステップS15において、GPU312は、ステップS12で取得した点Pを、仮想左カメラ50のビュー座標系における点P2に変換(ビュー変換)し、また、この点Pを、仮想右カメラ51のビュー座標系における点P3に変換(ビュー変換)する。このことにより、点Pが、左目用画像の生成に用いられる点P2と右目用画像の生成に用いられる点P3に変換される。図22は、ステップS15の処理を説明するための図である。図22に示すように、図20に示した仮想3次元空間における点Pは、仮想左カメラ50のビュー座標系における点P2に変換され、また、この点Pは、仮想右カメラ51のビュー座標系における点P3に変換される。ここで、仮想左カメラ50、仮想右カメラ51及び仮想中間カメラ52は、図6を参照して説明した位置関係にあるので、ビュー座標系における点P2のx座標の値は、点P1のx座標の値よりも所定の値(仮想左カメラ50と仮想中間カメラ52との間隔)だけ大きい値となり、ビュー座標系における点P3のx座標の値は、点P1のx座標の値よりも所定の値(仮想右カメラ51と仮想中間カメラ52との間隔)だけ小さい値となる。ここで、本実施形態では、仮想左カメラ50と仮想中間カメラ52との間隔、及び仮想右カメラ51と仮想中間カメラ52との間隔を、何れも「1.0」とする。このようにすると、点P2の座標は点P1の座標がx軸方向に「1.0」平行移動されて(0.0,0.0,12.5)となり、点P3の座標は点P1の座標がx軸方向に「−1.0」平行移動されて(−2.0,0.0,12.5)となる。その後、処理はステップS16に移る。
ここで、オブジェクト53のビュー座標系における点P2と点P3のx座標の差、仮想カメラの位置、及び補正率の関係について、図6、図9、図22を参照して説明する。図22を参照して説明したように、仮想左カメラ50と、仮想右カメラ51は、それぞれ、仮想中間カメラ52と、ビュー座標系におけるx軸方向に「1.0」だけ隔てて配置されているため、ビュー座標系における点P2と点P3のx座標の値の差は「2.0」となる。しかし、例えば、仮想左カメラ50と、仮想右カメラ51が、それぞれ、仮想中間カメラ52と、ビュー座標系におけるx軸方向に「0.8」だけ隔てて配置されていると仮定すると、ビュー座標系における点P2と点P3のx座標の値の差は「1.6」となる。すなわち、仮想左カメラ50(又は、仮想右カメラ51)と仮想中間カメラ52との距離(言い換えると、仮想左カメラ50と仮想右カメラ51の間隔)が小さくなるほど、ビュー座標系における点P2と点P3のx座標の値の差が小さくなる。ところで、ビュー座標系における点P2と点P3の算出方法からわかるように、オブジェクト53のz座標(深度DP)が変わったとしても(つまり、点P1のz座標が変わったとしても)、ビュー座標系における点P2及び点P3のx座標の値に変化はない。すなわち、図22に示すカメラ位置の場合、どの深度に位置するオブジェクトに対しても、ビュー座標系における点P2と点P3のx座標の値の差は一定の値「2.0」となる。言い換えると、ビュー座標系における点P2と点P3のx座標の値の差は、仮想左カメラ50と仮想右カメラ51の間隔によって定まる一定値であり、この値が図9に示す補正率(基準補正率)に対応する(厳密には、所定の変倍等を考慮していないため補正率と比例関係にある)。
このことから、仮想カメラの基準位置(補正が行われないときの仮想左カメラ50と仮想右カメラ51の基準間隔)が決定されることによって、基準補正率が決定され、仮想カメラの位置(仮想左カメラ50と仮想右カメラ51の間隔)を変更することで補正率(基準補正率)が変更されることが解る。なお、図6に示すように、仮想左カメラ50と仮想右カメラ51の間隔が広くなると、仮想左カメラ50が描画する領域70Lと仮想右カメラ51が描画する領域70Rとが重なる領域70Cが小さくなり、領域75に表示される画像(描画領域)が小さくなる。これを防ぐために、仮想左カメラ50(或いは、仮想右カメラ51)と仮想中間カメラ52の間隔は所定の値以上大きくすることはできない(すなわち、基準補正率の値がmaxRを超えることはできない)としてもよい。
上記のことから、補正率(R)は、以下の式によって与えられることが解る。

(式3)R=|xa−xb|×k

ここで、xaは、仮想左カメラ50のビュー座標に変換された点Pのx座標であり、xbは仮想右カメラ51のビュー座標に変換された点Pのx座標であり、kは所定の比例係数(例えば0.5)である。ここで、図22に示すように点Pが、仮想左カメラ50のビュー座標系における点P2、及び仮想右カメラ51のビュー座標系における点P3にビュー変換された場合、xa=0.0、xb=−2.0であるから、|xa−xb|=2.0となり、補正率Rの値は1.0となる(図23参照)。以上のように、仮想カメラの位置が変更されることにより、補正率(基準補正率)が変更され、反対に、補正率が決定されることによって、その補正率に応じた仮想カメラの位置(仮想左カメラ50と仮想右カメラ51の間隔)が決定される。
説明は、図19のフローチャートに戻り、ステップS16において、GPU312は、仮想3次元空間においてオブジェクト53が基準面(視差ゼロ面80B)よりも手前側(仮想カメラに近い側)にあるか否かを判定する。具体的には、GPU312は、深度値データ506を参照して、ステップS13で算出した深度DPが深度B0よりも小さいか否かを判定する。ステップS16での判定がYESの場合、処理はステップS17に移り、この判定がNOの場合、処理はステップS22に移る。
ステップS17において、GPU312は、ステップS14で求めた点P1とステップS15で求めた点P2と補正率決定式データ507を用いて、3次元仮想空間における仮想左カメラ50位置を補正する。また、ステップS17において、GPU312は、ステップS14で求めた点P1とステップS15で求めた点P3と補正率決定式データ507を用いて、仮想右カメラ51の位置を補正する。その後、処理はステップS18に移る。
ステップS18において、GPU312は、ステップS17によって補正された仮想左カメラ50及び仮想右カメラ51の位置に基づいて、ステップS12で取得された点Pの座標を、仮想左カメラ50のビュー座標系における補正点P4、及び仮想右カメラ51のビュー座標系における補正点P5に補正する。その後、処理はステップS19に移る。
ステップS19において、GPU312は、ステップS18によって取得された補正点P4及びP5のx座標の値を立体視用のx座標の値に変換することによって、点P4をP4aに変換し、点P5をP5aに変換する。以下に詳述するが、このことによって、オブジェクト53の飛び出してくる程度(視差の大きさ)が緩和されることになる。その後、処理はステップS20に移る。
ここで、ステップS17〜S19の処理について、図23〜図25を参照して以下に具体的に説明する。図23は、視差の補正に用いられる上述した(式1)及び(式2)においてn=1としたときの補正率(R)と深度(z)の関係を示すグラフであり、このグラフには、図22に示すオブジェクト53等の深度の値が例示されている。図24は、ステップS17、S18の処理を説明するための図であり、図22に示す仮想カメラの位置関係が補正された後のビュー座標系における補正点P4及びP5を例示している。図25は、補正によって視差が減少する(緩和される)ことを説明した図である。
まず、仮想左カメラ50のビュー座標系における補正点P4を算出する手順について、説明する。GPU312は、補正率決定式データ507が示す補正率決定式(上述の(式1)及び(式2)を参照)を用いて、深度z=DPのときの補正率(R)を決定する。例えば、(式1)においてn=1である補正率決定式に従う場合、GPU312は、図23に示すグラフに従って、補正率(R)を決定する。図23から解るように、GPU312は、深度(z)の値がB0を超える場合には、補正率(R)の値を1.0(基準補正率maxR)とし、深度(z)の値がB0(15.0)より小さくなるに従い、補正率(R)の値を一定の割合で減少させ、深度(z)の値がN(10.0)になったところで、その値をminR(0.7)とする。したがって、GPU312は、深度z=DP(12.5)の場合には、補正率R=0.85と決定する。
ところで、前述したように、補正率は、仮想カメラの位置(仮想左カメラ50と仮想右カメラ51の間隔)に基づいて決定される。したがって、GPU312は、補正率決定式に基づいて、深度DP(=12.5)におけるオブジェクトの補正率Rの値を「0.85」とするために、仮想左カメラ50の位置を変更する。具体的には、補正率が基準補正率(=1.0)のときには、仮想左カメラ50と仮想中間カメラ52との間隔(すなわち、ビュー座標系における仮想中間カメラ52とのx座標の値の差)が「1.0」であったので、比例配分により、この間隔が「0.85」となるように仮想左カメラ50の位置を変更する。すなわち、図22(1)で示されていた仮想左カメラ50の位置は、仮想中間カメラ52に近づいて図24(1)に示される仮想左カメラ50の位置に補正される(図19のステップS17)。このことにより、仮想左カメラ50のビュー座標系における点P2の座標(0.0,0.0,12.5)は、補正されて、点P4の座標(−0.15,0.0,12.5)となる(図19のステップS18、図24(1)参照)。なお、点P2のy座標及びz座標の値と、点P4のy座標及びz座標の値とは、それぞれ同一なので(つまり補正されないので)、補正点P4のy座標及びz座標の値は、点P2のy座標値「0.0」及びz座標値「12.5」をそのまま使用することができる。
次に、仮想右カメラ51のビュー座標系における補正点P5を算出する手順について、説明する。補正点P5の算出手順についても、前述の補正点P4の算出手順と同様であり、GPU312は、深度DP(=12.5)におけるオブジェクトの補正率Rの値を「0.85」とするために、仮想右カメラ51の位置を補正する(図19のステップS17、図24(2)参照)。このことにより、仮想右カメラ51のビュー座標系における点P3の座標(−2.0,0.0,12.5)は、補正されて、点P5の座標(−1.85,0.0,12.5)となる(図19のステップS18,図24(2)参照)。
以上のように、GPU312は、補正率決定式データ507に基づいて、図24に示すように、仮想左カメラ50及び仮想右カメラ51の位置を変更する。このことにより、仮想左カメラ50のビュー座標系において、点P2(0.0,0.0,12.5)は補正点P4(−0.15,0.0,12.5)に補正され、仮想右カメラ51のビュー座標系において、点P3(−2.0,0.0,12.5)は点P5(−1.85,0.0,12.5)に補正される。この結果として、点P2のx座標値「0.0」と点P3のx座標値「−2.0」との差「2.0」は、点P4のx座標値「−0.15」と点P5のx座標値「−1.85」との差「1.7」に減少する。したがって、仮想カメラの位置が変更されることによって、補正率は、基準補正率の1.0から、0.85に減少する。
次に、点P4及び点P5から立体視用座標P4a及びP5aを算出する(ステップS19の)手順について、説明する。GPU312は、深度(z)に依存して決定される視差(D)からz=DP(12.5)のときの視差を算出する。具体的には、視差(D)は、例えば図8に示される深度(z)に依存する関数で与えられており、深度z=DP(12.5)のときの視差D=−5.0を算出する。なお、この視差(D)を決定する決定式はデータ記憶領域500に格納されている(図示せず)。そして、GPU312は、この視差Dの半分の値「−2.5」を、P4のx座標の値に乗じることによって、P4の立体視用のx座標「−0.375」を算出し、P5のx座標の値に乗じることによって、P5の立体視用のx座標「−4.625」を算出する。そして、この算出された(視差が乗じられた)x座標の値が用いられて、点P4は、立体視用座標P4a(−0.375,0.0,12.5)に変換され、点P5は、立体視用座標P5a(−4.625,0.0,12.5)に変換される。このことにより、仮想3次元空間において深度DPに位置するオブジェクト53(の点P)が仮想カメラ(位置を補正された仮想カメラ)によって撮像されたときの視差が、点P4aと点P5aのx座標の値の差(x軸方向のずれ)で与えられる。すなわち、点Pがビュー空間における立体視用座標点P4aと点P5aに変換されて、視差は「5.0」から、「4.25」に減少する(図25参照)。この結果として、ステップS11で処理対象として選択されたオブジェクト53の左目用画像と右目画像における視差が緩和(減少)されて、上側LCD22に表示されることとなる。
説明は、図19のフローチャートに戻り、ステップS20において、GPU312は、ステップS19で算出した点P4aに基づき、オブジェクト53を構成する各頂点を立体視用座標に変換し、ステップS19で算出した点P5aに基づき、オブジェクト53の各頂点を立体視用座標に変換する。具体的には、GPU312は、まず、オブジェクトデータ508を参照して、オブジェクト53の各頂点の重心に対する相対位置を示すデータを取得する。次にGPU312は、点P4aがオブジェクト53の重心であるとして、当該オブジェクト53の各頂点を、取得した相対位置を示すデータに基づいて仮想左カメラ50のビュー空間において点P4aの周りに配置する(立体視用座標に変換する)。同様にして、GPU312は、オブジェクト53の各頂点を、仮想右カメラ51のビュー空間において点P5aの周りに配置する(立体視用座標に変換する)。その後、処理はステップS21に移る。
ステップS21において、GPU312は、ステップS20で算出した点P4aの周りに配置された各頂点の座標を、左目用画像のスクリーン座標に変換し、ステップS20で算出した点P5aの周りに配置された各頂点の座標を、右目用画像のスクリーン座標に変換する。つまり、GPU312は、点P4aの周りに配置された各頂点の座標を左目用画像のスクリーンに描画し、点P5aの周りに配置された各頂点の座標を右目用画像のスクリーンに描画する。その後、処理はステップS25に移る。
一方、ステップS22において、GPU312は、ステップS15によって取得された点P2及び点P3のx座標の値を立体視用のx座標の値に変換することによって、点P2をP2aに変換し、点P3をP3aに変換する。すなわち、仮想3次元空間においてオブジェクト53が基準面(視差ゼロ面80B)よりも奥側にある場合(ステップS16でNO)、補正率は基準補正率のまま変わらないので、仮想カメラの位置が補正されることなく、点P2及び点P3が、そのまま立体視用の座標P2a及びP3aに変換される。その後、処理はステップS23に移る。
ステップS23において、GPU312は、ステップS22で算出した点P2aに基づき、オブジェクト53を構成する各頂点を立体視用座標に変換し、ステップS22で算出した点P3aに基づき、オブジェクト53を構成する各頂点を立体視用座標に変換する。具体的にはステップS20の処理と同様であるので、その説明を省略する。その後、処理はステップS24に移る。
ステップS24において、GPU312は、ステップS23で算出した点P2aの周りに配置された各頂点の座標を、左目用画像のスクリーン座標に変換し、ステップS23で算出した点P3aの周りに配置された各頂点の座標を、右目用画像のスクリーン座標に変換する。つまり、GPU312は、点P2aの周りに配置された各頂点の座標を左目用画像のスクリーンに描画し、点P3aの周りに配置された各頂点の座標を右目用画像のスクリーンに描画する。その後、処理はステップS25に移る。
ステップS25において、GPU312は、仮想カメラの描画範囲(具体的には、図6に示す領域70C)内の全てのオブジェクトに対して上記した変換処理を行ったか否かを判定する。ステップS25での判定がYESの場合には図19の座標変換処理は終了し、処理は図18のステップS6に移り、この判定がNOの場合には処理はステップS11に戻る。そして、処理がステップS11に戻った場合には、ステップS11において未処理のオブジェクトが選択されて、このオブジェクトについて上記した変換処理が行われる。つまり、このステップS25の判定処理が行われることによって、仮想カメラの描画範囲内の全てのオブジェクトに対して、座標変換処理が行われることとなる。
図18のステップS6において、GPU312は、オブジェクトデータ508を参照して、ステップS5によって座標変換処理された点(位置)に基づいて、各オブジェクトを構成するポリゴンにテクスチャを貼り付けて、左目用画像及び右目用画像を生成し、上側LCD22に出力する。このことによって、上側LCD22に立体視画像が表示されることとなる。その後、処理はステップS7に移る。
ステップS7において、CPU311は、表示制御処理が終了したか否かを判定する。具体的には、CPU311は、仮想3次元空間で進行しているゲームが所定の終了状態になったか否か、及び操作データ501に基づいてユーザがゲームを終了させる操作を行ったか否かを判定し、所定の終了状態になった場合又はゲームを終了させる操作が行われた場合(ステップS7でYES)には、表示制御処理を終了させる。一方、ステップS7でNOと判定した場合、CPU311は、処理をS1に戻す。
以上に説明したように、本実施形態によれば、上側LCD22に表示される立体視画像によって、所定位置よりも手前に飛び出してくるように視認されるオブジェクトについて、左目用画像と右目用画像との間の視差を低減する補正を行うことによって、飛び出してくる程度を緩和することができる。また、本実施形態によれば、補正率は、基準面において連続的に変化しているため、ユーザは、当該基準面を通過するオブジェクトの立体感が当該基準面の奥側と手前側において急激に変わることによる不自然さを覚えることがなく、自然な立体感を得ることができる。すなわち、本実施形態によれば、ユーザの目に負担がかかる可能性を軽減しながらも、自然な立体感を与える立体視表示が実現できる。
(変形例1)
上記本実施形態では、ユーザに近いオブジェクトの飛び出してくる程度を緩和するために、基準面よりも手前側の補正率を基準補正率よりも小さくすることによって、ユーザに近いオブジェクトに対する視差を低減するものとした。しかし、これに代え、基準視差そのものを予め小さくする(基準補正率を小さくする、或いは視差そのものを小さく初期設定する)ことによって、ユーザに近いオブジェクトに対する視差を低減するものとしてもよい。この場合、ユーザに近いオブジェクトの飛び出してくる程度は緩和されるが、同時に、基準面よりも奥側での視差(基準視差)も低減されるため、ユーザから遠いオブジェクトの奥行き感の程度が従来よりも小さくなってしまう。そこで、変形例1では、基準面よりも奥側の視差を基準視差(低減された基準視差)よりも大きくする補正を行う。以下、この補正について図26及び図27を参照して説明する。
図26は、変形例1の補正率(R)と深度(z)との関係を示すグラフであり、図27は、図26に示す補正率(R)によって補正された視差(D)と深度(z)の関係を示すグラフである。図26に示すように、変形例1の補正率は、基準面(深度z=B0)において連続的に変化している。具体的には、基準面よりも手前側(深度z<B0)においては、補正率は、基準補正率であり(その値は、minR)、基準面よりも奥側(深度z>B0)においては、深度(z)の増加と共に線形に増加し(図26の(1)参照)、或いは、曲線的に滑らかに増加し(図26の(2)参照)、基準面においてminRであった補正率は、ファークリップ面80F(深度z=F)においてmaxRとなる。なお、基準補正率の値であるminRは、システムにより初期値(例えば0.7)として設定され、また、ユーザにより変更可能となっている。また、maxRには、所定の値が設定される。
このように、図26に示す変形例1の補正率は、基準面において連続的に変化しているため、ユーザは、当該基準面を通過するオブジェクトの立体感が当該基準面の奥側と手前側において急激に変わることによる不自然さを覚えることがなく、自然な立体感を得ることができる。さらに補正率が、図26の(2)に示す曲線に従って変化する場合、補正率は、図26の(1)に示す直線に従って変化する時よりも、基準面近傍において滑らかに変化し、その結果、基準面近傍での立体感の変化は、より滑らかになる。このことにより、ユーザは、より自然な立体視を楽しむことができる。
また、図27に示すように、図26に示す補正率によって視差が補正されるとき、補正後の視差は、基準面よりも奥側において手前側における基準視差よりも大きくなる。すなわち、ユーザに近いオブジェクト(手前側のオブジェクト)の視差を小さく設定しながらも、ユーザから遠いオブジェクト(奥側のオブジェクト)の視差を大きくすることができる。このことにより、ユーザは、ユーザに近いオブジェクトを1つの立体視画像として視認し易くなると同時に、ユーザから遠いオブジェクトを奥行きの十分ある立体感をもった立体視画像として視認することができる。なお、図27の(1)の曲線で示される視差は、図26の(1)に示される補正率によって補正された視差を示し、同様に図27の(2)の曲線で示される視差は図26の(2)に示される補正率によって補正された視差を示す。
このように、変形例1における特徴的な補正率によって視差が補正されることによって、ユーザに近いオブジェクトに対しては従来よりも視差を軽減しつつ、基準面付近での立体感に不自然さを与えることなく自然な立体視を可能とし、かつ、ユーザから遠いオブジェクトに対しては従来どおり大きな視差を十分与えることができる。
なお、この補正率(R)を決定する補正率決定式は、例えば以下の(式4)及び(式5)によって与えられる。

(式4)R=minR (N≦z≦B0)
(式5)R=minR+(maxR−minR)×
(z−B0)n/(F−B0)n (B0≦z≦F)

ここで、nは1以上の整数であり、n=1が、図26及び図27の(1)に対応し、n=2が、図26及び図27の(2)に対応する。また、(式5)からわかるように、nが2以上のとき、z=B0においてこの曲線の傾き(微分係数)は0となり、(式4)の直線(傾き0)と滑らかに接続される(z=B0における微分係数が一致する)。ここでnの値を大きくすると、(式5)で示される曲線は、図26の(2)に示す曲線((式5)においてn=2で表わされる曲線)よりも、より下方に膨らむ曲線となる(図示せず)。したがって、nの値を大きくすることにより、基準面近傍における補正率をより基準補正率に近づけることができ、その結果、基準面近傍における視差を、基準視差とほぼ一致させることができる。
なお、変形例1では、表示制御処理において座標変換処理の一部が上記実施形態とは異なる。具体的には、図19に示すフローチャートの一例において、ステップS16の処理が異なる。上記変形例1では、ステップS16において、GPU312は、仮想3次元空間においてオブジェクト53が基準面(視差ゼロ面80B)よりも奥側(ユーザから遠い側)にあるか否かを判定する。具体的には、GPU312は、深度値データ506を参照して、ステップS13で算出した深度DPが深度B0よりも大きいか否かを判定する。このステップS16での判定がYESの場合、処理はステップS17に移り、この判定がNOの場合、処理はステップS22に移る。すなわち、変形例1では、仮想3次元空間においてオブジェクト53が基準面よりも奥側にある場合、仮想カメラの位置の補正が行われ(すなわち、ステップS17、S18の処理が行われ)、基準面よりも手前側にある場合、仮想カメラの位置の補正は行われない。その他の処理は上記本実施形態と同様であるから、その説明は省略する。
(変形例2)
変形例2では、上記本実施形態と上記変形例1の両者を組み合わせた実施形態であってもよい。すなわち、基準面よりも手前側においては、補正率によって視差を減少させる補正を行い、基準面よりも奥側においては、補正率によって視差を増加させる補正を行ってもよい。以下、この補正について図28及び図29を参照して説明する。
図28は、変形例2の補正率(R)と深度(z)との関係を示すグラフであり、図29は、図28に示す補正率(R)によって補正された視差(D)と深度(z)の関係を示すグラフである。図28に示すように、変形例2の補正率は、基準面(深度z=B0)において連続的に変化している。具体的には、基準面よりも手前側(深度z<B0)においては、補正率は、深度(z)の減少と共に曲線的に滑らかに減少し、基準面においてmidRであった補正率は、ニアクリップ面80N(深度z=N)においてminRとなる。一方、基準面よりも奥側(深度z>B0)においては、補正率は、深度(z)の増加と共に曲線的に滑らかに増加し、基準面においてmidRであった補正率は、ファークリップ面80F(深度z=F)においてmaxRとなる。なお基準面における補正率(基準補正率)であるmidRは、システムにより初期値(例えば0.85)として設定され、また、ユーザにより変更可能となっている。また、maxR及びminRには、所定の値が設定される。
このように、図28に示す変形例2の補正率は、基準面において連続的に変化しているため、ユーザは、当該基準面を通過するオブジェクトの立体感が当該基準面の奥側と手前側において急激に変わることによる不自然さを覚えることがなく、自然な立体感を得ることができる。さらに、補正率は、基準面近傍において滑らかに変化し、その結果、基準面近傍での立体感の変化は、より滑らかになる。このことにより、変形例2においても、ユーザは、より自然な立体視を楽しむことができる。
また、図29に示すように、図28に示す補正率によって視差が補正されるとき、補正後の視差は、基準面よりも奥側において基準視差よりも大きくなり、基準面よりも手前側において基準視差よりも小さくなる。すなわち、ユーザに近いオブジェクト(手前側のオブジェクト)の視差を小さくする補正を行うことによって、ユーザに近いオブジェクトを立体視画像として視認し易くなると同時に、ユーザから遠いオブジェクト(奥側のオブジェクト)の視差を大きくする補正を行うことによって、ユーザから遠いオブジェクトを奥行きの十分ある立体感をもった立体視画像として視認することができる。
このように、変形例2における特徴的な補正率によって視差が補正されることによって、ユーザに近いオブジェクトに対しては従来よりも視差を減少させつつ、基準面付近での立体感に不自然さを与えることなく自然な立体視を可能とし、かつ、ユーザから遠いオブジェクトに対しては視差を増加させることができる。
なお、この補正率(R)を決定する補正率決定式は、例えば以下の(式6)及び(式7)によって与えられる。

(式6)R=midR+(minR−midR)×
(B0−z)n/(B0−N)n (N≦z≦B0)
(式7)R=midR+(maxR−midR)×
(z−B0)n/(F−B0)n (B0≦z≦F)

ここで、nは1以上の整数であり、n=2の場合が、図28のグラフに対応する。n=1のときについては図示していないが、この場合には、図28の補正率が直線的に変化する。また、(式6)及び(式7)からわかるように、nが2以上のとき、z=B0においてこの曲線の傾き(微分係数)は共に0となり、両曲線は基準面において滑らかに接続される(z=B0における微分係数が一致する)。ここでnの値を大きくすると、(式5)及び(式6)で示される曲線は、基準面近傍において基準補正率を示す直線に近づく(図示せず)。したがって、nの値を大きくすることにより、基準面近傍における補正率をより基準補正率に近づけることができ、その結果、基準面近傍における視差を、基準視差とほぼ一致させることができる。
なお、変形例2では、表示制御処理において座標変換処理の一部が上記本実施形態とは異なる。具体的には、図19に示すフローチャートの一例において、ステップS16、S22〜S24の処理が異なる。変形例2では、ステップS16、S22〜S24の処理が行われない。変形例2では、全ての深度に位置するオブジェクトの補正率は、図28に示される補正率(R)によって(或いは、(式6)及び(式7)に基づいて)決定される。このため、オブジェクトの深度によってGPU312が行う処理が分かれることはなく(すなわち、ステップS16の処理が行われることはなく)、全ての深度に位置するオブジェクトに対して、深度に応じた仮想カメラの位置の補正が行われる。したがって、仮想カメラの位置の補正が行われないステップS22〜S24の処理も行われない。その他の処理は上記本実施形態と同様であるから、その説明は省略する。
(変形例3)
上記本実施形態では、手前側のオブジェクトの視差を軽減するために、視差ゼロ面80Bから手前側(すなわち、深度がB0よりも小さい位置)にあるオブジェクトに対して、補正率を基準補正率よりも小さくするものとした。しかし、変形例3では、深度がB1(B0よりも小さい深度)である面(以下、基準面B1という)から手前側(すなわち、深度がB1よりも小さい位置)にあるオブジェクトに対して、補正率を小さくするものとしてもよい(図30参照)。この場合においても、補正率は、基準面B1において連続的に変化するため、ユーザは、当該基準面B1の奥側と手前側においてオブジェクトの立体感が急激に変わることによる不自然さを覚えることがない。さらに、視差ゼロ面80B(深度B0)の近傍では補正率は基準補正率に一致するため、ディスプレイ上に平面視表示されるオブジェクトの近傍に多くのオブジェクトが配置されやすい場合には、上記実施形態よりも更に自然な立体視を実現でき、かつ、まれに配置される手前側のオブジェクトに対しても視差を軽減することができる(図31参照)。
(変形例4)
変形例1では、奥側のオブジェクトの視差を増加するために、視差ゼロ面80Bから奥側(すなわち、深度がB0よりも大きい位置)にあるオブジェクトに対して、補正率を基準補正率よりも大きくするものとした。しかし、変形例4では、深度がB2(B0よりも大きい深度)である面(以下、基準面B2という)から奥側(すなわち、深度がB2よりも大きい位置)にあるオブジェクトに対して、補正率を大きくするものとしてもよい(図32参照)。この場合においても、補正率は、基準面B2において連続的に変化するため、ユーザは、当該基準面B2の奥側と手前側においてオブジェクトの立体感が急激に変わることによる不自然さを覚えることがない。さらに、視差ゼロ面80B(深度B0)の近傍では補正率は基準補正率に一致するため、ディスプレイ上に平面視表示されるオブジェクトの近傍に多くのオブジェクトが配置されやすい場合には、上記実施形態よりも更に自然な立体視を実現でき、かつ、まれに配置される奥側のオブジェクトに対しても視差を増加することができる(図33参照)。
(その他の変形例)
なお、他の変形例では、変形例3と変形例4の両者を組み合わせた実施形態であってもよい。すなわち、基準面B1から手前側にあるオブジェクトに対して、補正率を小さくするものとし、かつ、基準面B2から奥側にあるオブジェクトに対して、補正率を大きくするものとしてもよい。この場合においても、補正率は、基準面B1及び基準面B2において連続的に変化するため、ユーザは、当該基準面B1及び当該基準面B2の奥側と手前側においてオブジェクトの立体感が急激に変わることによる不自然さを覚えることがない。さらに、基準面B1と基準面B2の間(B1<深度(z)<B2)に位置するオブジェクトに対する補正率は基準補正率に一致するため、深度B1から深度B2の間に多くのオブジェクトが配置されやすい場合には、上記実施形態よりも更に自然な立体視を実現でき、かつ、まれに配置される手前側のオブジェクトに対しては視差を軽減し、奥側に配置されるオブジェクトに対しては視差を増加することができる。
また、上記実施形態では、オブジェクト53の仮想3次元空間における位置が取得される際、例えばオブジェクト53の重心座標である点Pの1点のみが取得されるものとした(図19に示すステップS12)。しかし、これに代え、オブジェクトを形成する各頂点が取得されるものとしてもよい。この場合、オブジェクトを形成する各頂点が、座標変換され、各頂点に対して、それぞれ左目用画像と右目用画像における視差が算出される。したがって、例えば大きな奥行きをもつ(深度方向に長い)オブジェクトが、大きく飛び出してくる場合であっても、オブジェクトの深度方向の各頂点に対して適切に視差が補正されるので、ユーザは更に視認しやすくなる。
また、上記実施形態では、minRの値やmaxRの値は所定の固定値であるとした。しかし、例えば、図12において、minRの値を「maxR×0.7」として、基準補正率(maxR)の値に応じて変化するものとしてもよい。このようにすると、ユーザが基準補正率(maxR)を変更した場合であっても、適切な割合で視差を軽減させることができる。なお、同様に、図26においては、maxRの値を「minR×1.5」として、基準補正率(minR)の値に応じて変化するものとしてもよく、図28においては、maxRの値を「midR×1.2」、minRの値を「midR×0.8」として、それぞれが基準補正率(midR)の値に応じて変化するものとしてもよい。
また、上記実施形態では、仮想カメラの位置を変更することによって、補正率が変更され、結果としてオブジェクトの視差を補正するものとした。しかし、補正率決定式に基づいて、直接視差が算出される座標変換処理が行われてもよい。
また、上記実施形態では、補正率は、(式1)や(式5)で与えられるn次関数であるものとした。しかし、基準面において滑らかに接続され、かつ、深度と共に補正率が減少する関数であれば、このような関数に限られるものでない。例えば指数関数であってもよいし、或いは、図34に示すような変曲点をもつ関数であってもよい。図34に示す補正率は、深度がCである面の近傍に位置するオブジェクトが少ない場合に用いられると有効である。
また、上記実施形態では、仮想カメラの描画範囲は図6に示される領域70Cに固定されるものとした。しかし、ニアクリップ面80Nの位置とファークリップ面80Fの位置(すなわち、深度Nと深度Fの値)は変更可能であり、領域70Cの大きさは深度方向に可変であるものとしてもよい。
また、上記実施形態では、仮想3次元空間において、仮想中間カメラ52が配置されるものとしたが、この仮想中間カメラ52は、配置されなくてもよい。この場合、オブジェクト53の深度DPは、仮想左カメラ50又は仮想右カメラ51によって算出されればよい。
また、上記実施形態では、図6を参照して説明したように、仮想左カメラ50によって描画された領域70Lのうち、領域70Cが切り取られて所定の変換の後、領域75に左目用画像として表示され、仮想右カメラ51によって描画された領域70Rのうち、領域70Cが切り取られて所定の変換の後、領域75に右目用画像として表示されるものとして説明した。しかし、図35に示すように、仮想左カメラ50によって描画される領域70Lに対して所定の変換が行われることによって生成される左目用画像の領域が領域75と一致するように仮想左カメラ50の描画領域を予め設定し、また、仮想右カメラ51によって描画される領域70Rに対して所定の変換が行われることによって生成される右目用画像の領域が領域75と一致するように仮想右カメラ51の描画領域を予め設定してもよい。この様にした場合、図6の場合とは異なり、描画後に領域70Cを切り出す処理が不要となる。
また、上記実施形態では、上側LCD22に表示される立体視画像が、裸眼で立体視できる画像であるものとして説明した。しかし、上側LCD22には、立体視できる画像が表示されればよく、例えば、ユーザが立体視用の眼鏡をかけることによって立体視できる画像(つまり、左目用画像と右目用画像とが時分割で交互に表示される画像)が表示されてもよい。
また、上記実施形態は、本発明をゲーム装置10に適用したものであるが、本発明はゲーム装置10に限定されない。例えば、携帯電話機、簡易型携帯電話機(PHS)、PDA等の携帯情報端末にも本発明の適用は可能である。また、据え置き型ゲーム機やパーソナルコンピュータ等にも本発明の適用は可能である。
また、上記実施形態では、1つのゲーム装置10で上述した処理を実行しているが、有線又は無線で通信可能な複数の装置で上記処理を分担してもよい。
また、上記実施形態において、ゲーム装置10の形状や、それに設けられている各種操作ボタン14等、タッチパネル13の形状、数、及び設置位置等は、単なる一例に過ぎず他の形状、数、及び設置位置であっても、本発明を実現できることは言うまでもない。また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず、本発明の範囲を逸脱しなければ他の順序や値であっても、本発明を実現できることは言うまでもない。
また、上記実施形態のゲーム装置10において実行される各種情報処理プログラムは、外部メモリ44等の記憶媒体を通じてゲーム装置10に供給されるだけでなく、有線又は無線の通信回線を通じてゲーム装置10に供給されてもよい。また、上記プログラムは、ゲーム装置10内部の不揮発性記憶装置(データ保存用内部メモリ35等)に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、或いはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ等であってもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを一時的に記憶する揮発性メモリでもよい。
以上、本発明を詳細に説明してきたが、上述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
10 ゲーム装置
11 下側ハウジング
12 下側LCD
13 タッチパネル
14 操作ボタン
15 アナログスティック
16 LED
21 上側ハウジング
22 上側LCD
23 外側撮像部
23a 外側撮像部(左)
23b 外側撮像部(右)
24 内側撮像部
25 3D調整スイッチ
26 3Dインジケータ
28 タッチペン
31 情報処理部
32 メインメモリ
50、51、52 仮想カメラ
311 CPU
312 GPU
313 VRAM

Claims (16)

  1. 立体視表示可能な表示装置に、仮想ステレオカメラで撮像した仮想3次元空間の表示を行う表示制御装置のコンピュータで実行される表示制御プログラムであって、
    前記コンピュータを、
    前記仮想3次元空間において立体表示する際の、前記仮想ステレオカメラからの距離に応じて変化する視差に対する補正の割合であって、その割合の基準となる基準補正率を設定する基準補正率設定手段と、
    前記視差を補正する際の補正の割合を示す視差補正率を設定する視差補正率設定手段と、
    前記視差補正率に基づいて、前記仮想ステレオカメラから前記仮想3次元空間を撮像することにより立体視画像を生成する立体視画像生成手段と、
    前記立体視画像を前記表示装置に表示させる表示制御手段として機能させ、
    前記視差補正率設定手段は、前記基準補正率に対して、前記仮想3次元空間において、第1の基準面から奥側の視差補正率を当該基準補正率よりも大きくし、かつ、当該第1の基準面において視差補正率を連続的に変化させる第1の設定と、第2の基準面から手前側の視差補正率を当該基準補正率よりも小さくし、かつ、当該第2の基準面において視差補正率を連続的に変化させる第2の設定のうち、少なくとも一方の設定を行った視差補正率を設定する、表示制御プログラム。
  2. 前記視差補正率設定手段は、前記基準補正率に対して、前記第1の基準面から奥側の視差補正率を当該基準補正率よりも大きくし、かつ、当該第1の基準面において視差補正率を滑らかに変化させる前記第1の設定と、前記第2の基準面から手前側の視差補正率を当該基準補正率よりも小さくし、かつ、当該第2の基準面において視差補正率を滑らかに変化させる前記第2の設定のうち、少なくとも一方の設定を行った前記視差補正率を設定する、請求項1に記載の表示制御プログラム。
  3. 前記視差補正率設定手段は、前記基準補正率に対して、前記第1の基準面から奥側への距離が大きくなるほど、当該基準補正率と前記視差補正率との差が大きくなる前記第1の設定と、前記第2の基準面から手前側への距離が大きくなるほど、当該基準補正率と前記視差補正率との差が大きくなる前記第2の設定のうち、少なくとも一方の設定を行った前記視差補正率を設定する、請求項1又は2に記載の表示制御プログラム。
  4. 前記視差補正率設定手段は、前記基準補正率に対して、前記第1の基準面から奥側への距離が大きくなるほど、当該基準補正率と前記視差補正率との差の変化量が大きくなる前記第1の設定と、前記第2の基準面から手前側への距離が大きくなるほど、当該基準補正率と前記視差補正率との差の変化量が大きくなる前記第2の設定のうち、少なくとも一方の設定を行った前記視差補正率を設定する、請求項1ないし3のいずれかに記載の表示制御プログラム。
  5. 前記視差補正率設定手段は、前記基準補正率に対して、前記仮想3次元空間における深度に対する前記視差補正率の変化の割合を、前記第1の基準面を示す深度において、当該基準補正率の変化の割合に一致させる前記第1の設定と、前記第2の基準面を示す深度において、当該基準補正率の変化の割合に一致させる前記第2の設定のうち、少なくとも一方の設定を行った前記視差補正率を設定する、請求項1ないし4のいずれかに記載の表示制御プログラム。
  6. 前記視差補正率設定手段は、前記基準補正率に対して、前記第1の基準面から奥側の視差補正率を、前記仮想3次元空間における深度の増加に対してnが1以上のn次関数に従って当該基準補正率よりも大きくする前記第1の設定と、前記第2の基準面から手前側の視差補正率を、前記深度の減少に対してmが1次以上のm次関数に従って当該基準補正率よりも小さくする前記第2の設定のうち、少なくとも一方の設定を行った前記視差補正率を設定する、請求項1ないし5のいずれかに記載の表示制御プログラム。
  7. 前記仮想ステレオカメラは、仮想左カメラと仮想右カメラとを含み、
    前記立体視画像生成手段は、前記仮想左カメラと前記仮想右カメラの間隔を、前記視差補正率に応じて変更し、当該仮想ステレオカメラに前記仮想3次元空間を撮像させることによって立体視画像を生成する、請求項1ないし6のいずれかに記載の表示制御プログラム。
  8. 前記第1の基準面と前記第2の基準面は同一である、請求項1ないし7のいずれかに記載の表示制御プログラム。
  9. 前記第1の基準面と前記第2の基準面のいずれか一方は、視差の生じない基準面である、請求項1ないし7のいずれかに記載の表示制御プログラム。
  10. 前記第1の基準面と前記第2の基準面は、同一であり、かつ、視差の生じない基準面である、請求項1ないし7のいずれかに記載の表示制御プログラム。
  11. 前記視差補正率設定手段は、前記基準補正率に対して、前記第1の基準面から奥側の視差補正率を当該基準補正率よりも大きくする前記第1の設定を行った前記視差補正率を設定する、請求項1ないし10のいずれかに記載の表示制御プログラム。
  12. 前記視差補正率設定手段は、前記基準補正率に対して、前記第2の基準面から手前側の視差補正率を当該基準補正率よりも小さくする前記第2の設定を行った前記視差補正率を設定する、請求項1ないし10のいずれかに記載の表示制御プログラム。
  13. 前記コンピュータを、ユーザからの入力を受け付ける入力受付手段としてさらに機能させ、
    前記基準補正率設定手段は、前記入力受付手段で受け付けた入力に基づき、前記基準補正率を設定する、請求項1ないし12のいずれかに記載の表示制御プログラム。
  14. 立体視表示可能な表示装置に、仮想ステレオカメラで撮像した仮想3次元空間の表示を行う表示制御装置であって、
    前記仮想3次元空間において立体表示する際の、前記仮想ステレオカメラからの距離に応じて変化する視差に対する補正の割合であって、その割合の基準となる基準補正率を設定する基準補正率設定手段と、
    前記視差を補正する際の補正の割合を示す視差補正率を設定する視差補正率設定手段と、
    前記視差補正率に基づいて、前記仮想ステレオカメラから前記仮想3次元空間を撮像することにより立体視画像を生成する立体視画像生成手段と、
    前記立体視画像を前記表示装置に表示させる表示制御手段とを備え、
    前記視差補正率設定手段は、前記基準補正率に対して、前記仮想3次元空間において、第1の基準面から奥側の視差補正率を当該基準補正率よりも大きくし、かつ、当該第1の基準面において視差補正率を連続的に変化させる第1の設定と、第2の基準面から手前側の視差補正率を当該基準補正率よりも小さくし、かつ、当該第2の基準面において視差補正率を連続的に変化させる第2の設定のうち、少なくとも一方の設定を行った視差補正率を設定する、表示制御装置。
  15. 立体視表示可能な表示装置に、仮想ステレオカメラで撮像した仮想3次元空間の表示を行う表示制御システムであって、
    前記仮想3次元空間において立体表示する際の、前記仮想ステレオカメラからの距離に応じて変化する視差に対する補正の割合であって、その割合の基準となる基準補正率を設定する基準補正率設定手段と、
    前記視差を補正する際の補正の割合を示す視差補正率を設定する視差補正率設定手段と、
    前記視差補正率に基づいて、前記仮想ステレオカメラから前記仮想3次元空間を撮像することにより立体視画像を生成する立体視画像生成手段と、
    前記立体視画像を前記表示装置に表示させる表示制御手段とを備え、
    前記視差補正率設定手段は、前記基準補正率に対して、前記仮想3次元空間において、第1の基準面から奥側の視差補正率を当該基準補正率よりも大きくし、かつ、当該第1の基準面において視差補正率を連続的に変化させる第1の設定と、第2の基準面から手前側の視差補正率を当該基準補正率よりも小さくし、かつ、当該第2の基準面において視差補正率を連続的に変化させる第2の設定のうち、少なくとも一方の設定を行った視差補正率を設定する、表示制御システム。
  16. 立体視表示可能な表示装置に、仮想ステレオカメラで撮像した仮想3次元空間の表示を行う表示制御方法であって、
    前記仮想3次元空間において立体表示する際の、前記仮想ステレオカメラからの距離に応じて変化する視差に対する補正の割合であって、その割合の基準となる基準補正率を設定する基準補正率設定ステップと、
    前記視差を補正する際の補正の割合を示す視差補正率を設定する視差補正率設定ステップと、
    前記視差補正率に基づいて、前記仮想ステレオカメラから前記仮想3次元空間を撮像することにより立体視画像を生成する立体視画像生成ステップと、
    前記立体視画像を前記表示装置に表示させる表示制御ステップとを備え、
    前記視差補正率設定ステップでは、前記基準補正率に対して、前記仮想3次元空間において、第1の基準面から奥側の視差補正率を当該基準補正率よりも大きくし、かつ、当該第1の基準面において視差補正率を連続的に変化させる第1の設定と、第2の基準面から手前側の視差補正率を当該基準補正率よりも小さくし、かつ、当該第2の基準面において視差補正率を連続的に変化させる第2の設定のうち、少なくとも一方の設定を行った視差補正率を設定する、表示制御方法。
JP2011034798A 2011-02-21 2011-02-21 表示制御プログラム、表示制御装置、表示制御方法及び表示制御システム Withdrawn JP2012175358A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011034798A JP2012175358A (ja) 2011-02-21 2011-02-21 表示制御プログラム、表示制御装置、表示制御方法及び表示制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011034798A JP2012175358A (ja) 2011-02-21 2011-02-21 表示制御プログラム、表示制御装置、表示制御方法及び表示制御システム

Publications (1)

Publication Number Publication Date
JP2012175358A true JP2012175358A (ja) 2012-09-10

Family

ID=46977837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011034798A Withdrawn JP2012175358A (ja) 2011-02-21 2011-02-21 表示制御プログラム、表示制御装置、表示制御方法及び表示制御システム

Country Status (1)

Country Link
JP (1) JP2012175358A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014086851A (ja) * 2012-10-23 2014-05-12 Toppan Printing Co Ltd 視差制御装置及び視差制御プログラム
JP2015043187A (ja) * 2013-08-26 2015-03-05 日本放送協会 画像生成装置および画像生成プログラム
JP2015091071A (ja) * 2013-11-07 2015-05-11 日本放送協会 立体映像生成装置、そのプログラム及び立体映像表示装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014086851A (ja) * 2012-10-23 2014-05-12 Toppan Printing Co Ltd 視差制御装置及び視差制御プログラム
JP2015043187A (ja) * 2013-08-26 2015-03-05 日本放送協会 画像生成装置および画像生成プログラム
JP2015091071A (ja) * 2013-11-07 2015-05-11 日本放送協会 立体映像生成装置、そのプログラム及び立体映像表示装置

Similar Documents

Publication Publication Date Title
JP5689707B2 (ja) 表示制御プログラム、表示制御装置、表示制御システム、および、表示制御方法
US20120242807A1 (en) Hand-held electronic device
JP5725902B2 (ja) 画像処理プログラム、画像処理装置、画像処理方法および画像処理システム
US20120293549A1 (en) Computer-readable storage medium having information processing program stored therein, information processing apparatus, information processing system, and information processing method
JP5689637B2 (ja) 立体視表示制御プログラム、立体視表示制御システム、立体視表示制御装置、および、立体視表示制御方法
US9639972B2 (en) Computer-readable storage medium having stored therein display control program, display control apparatus, display control method, and display control system for performing display control of a display apparatus capable of stereoscopic display
EP2471583B1 (en) Display control program, display control method, and display control system
US20120133641A1 (en) Hand-held electronic device
JP5723149B2 (ja) 画像処理システム、画像処理プログラム、画像処理方法及び画像処理装置
JP5785732B2 (ja) 情報処理プログラム、撮像装置、撮像方法及び撮像システム
JP2012128514A (ja) 情報処理プログラム、情報処理装置、情報処理方法及び情報処理システム
JP5714393B2 (ja) 情報処理プログラム、情報処理装置、情報処理方法及び情報処理システム
JP5660818B2 (ja) 画像処理プログラム、画像処理装置、画像処理システム、および、画像処理方法
JP2012175358A (ja) 表示制御プログラム、表示制御装置、表示制御方法及び表示制御システム
JP5770018B2 (ja) 表示制御プログラム、表示制御装置、表示制御方法及び表示制御システム
JP5739670B2 (ja) 画像表示プログラム、装置、システムおよび方法
JP5525924B2 (ja) 立体画像表示プログラム、立体画像表示装置、立体画像表示システム、および、立体画像表示方法
JP5739673B2 (ja) 画像表示プログラム、装置、システムおよび方法
JP2014135771A (ja) 立体視表示制御プログラム、立体視表示制御システム、立体視表示制御装置、および、立体視表示制御方法
JP5541973B2 (ja) 立体画像表示プログラム、立体画像表示装置、立体画像表示システム、および、立体画像表示方法
JP5546960B2 (ja) 立体画像表示プログラム、立体画像表示装置、立体画像表示システム、および、立体画像表示方法
JP2012018666A (ja) 画像表示プログラム、装置、システムおよび方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140513