説明

プログラム、情報記憶媒体及び画像生成システム

【課題】立体視においてプレーヤが感じる不自然さを軽減できるプログラム、情報記憶媒体、画像生成システム等の提供。
【解決手段】画像生成システムは、複数のオブジェクトが配置されるオブジェクト空間の設定処理を行うオブジェクト空間設定部と、オブジェクト空間において立体視における第1視点から見える第1視点画像と、オブジェクト空間において立体視における第2視点から見える第2視点画像を生成する画像生成部を含む。画像生成部は、第1視点に対応する第1視点用ビューボリュームと第2視点に対応する第2視点用ビューボリュームとの共通領域の内側描画領域から、内側描画領域の外側へと向かう方向で、オブジェクトの表示態様が変化する描画処理を行って、第1視点画像、第2視点画像を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び画像生成システム等に関する。
【背景技術】
【0002】
近年、映画やゲーム等の分野において、より臨場感が溢れる画像を生成・表示するシステムとして、立体視画像の生成・表示システムが脚光を浴びている。例えばこの立体視画像生成・表示システムの1つである2眼式の立体視画像生成・表示システムでは、左眼用画像と右眼用画像を生成・表示する。そして例えばプレーヤが立体視用の眼鏡を装着して、左眼は左眼用画像のみを見て、右眼は右眼用画像のみを見るようにすることで、立体視を実現する。このような立体視を実現する画像生成・表示システムの従来技術としては、例えば特許文献1に開示される技術がある。
【0003】
このような立体視用画像をCG(Computer Graphics)で生成する場合には、左眼用仮想カメラに対応する左眼用ビューボリューム(左眼用視錐台)を視界に設定して、描画処理を行い、左眼用画像を生成する。また右眼用仮想カメラに対応する右眼用ビューボリューム(右眼用視錐台)を視界に設定して、描画処理を行い、右眼用画像を生成する。
【0004】
しかしながら、このように左眼用、右眼用のビューボリュームを設定した場合に、左眼用ビューボリューム内に存在するオブジェクトが、右眼用ビューボリューム内には存在しなかったり、左眼用ビューボリューム内に存在するオブジェクトが、右眼用ビューボリューム内には存在しなかったりするなどの事態が生じる。即ち、いわゆるフレームバイオレーション(ウィンドウ違反)の問題が存在する。このため、ビューボリュームのクリッピング面付近に位置するオブジェクトが、プレーヤの左眼からは見えるが右眼からは見えなかったり、プレーヤの右眼からは見えるが左眼からは見えなかったりするなどの事態が生じ、プレーヤが不自然さを感じるおそれがある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−126902号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の幾つかの態様によれば、立体視においてプレーヤが感じる不自然さを軽減できるプログラム、情報記憶媒体、画像生成システム等を提供できる。
【課題を解決するための手段】
【0007】
本発明の一態様は、複数のオブジェクトが配置されるオブジェクト空間の設定処理を行うオブジェクト空間設定部と、前記オブジェクト空間において立体視における第1視点から見える第1視点画像と、前記オブジェクト空間において立体視における第2視点から見える第2視点画像を生成する画像生成部とを含み、前記画像生成部は、前記第1視点に対応する第1視点用ビューボリュームと前記第2視点に対応する第2視点用ビューボリュームとの共通領域の内側描画領域から、前記内側描画領域の外側へと向かう方向で、オブジェクトの表示態様が変化する描画処理を行って、前記第1視点画像、前記第2視点画像を生成する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0008】
本発明の一態様によれば、オブジェクト空間において第1視点、第2視点から見える第1視点画像、第2視点画像が生成されることで、立体視が実現される。この場合に本発明の一態様では、第1視点用、第2視点用ビューボリュームの共通領域の内側描画領域から外側へと向かう方向で、オブジェクトの表示態様が変化するような第1視点画像、第2視点画像が生成される。このようにすれば、例えばスクリーンの左右端辺付近等でのオブジェクトの画像の見え方の異なり度合いを低減でき、立体視においてプレーヤが感じる不自然さを軽減することが可能になる。
【0009】
また本発明の一態様では、前記画像生成部は、前記内側描画領域から前記内側描画領域の外側へと向かう方向で、オブジェクトが徐々に透明に近づく描画処理を行って、前記第1視点画像、前記第2視点画像を生成してもよい。
【0010】
このようにすれば、内側描画領域から外側に向かうにつれてオブジェクトが徐々に透明になるような第1視点画像、第2視点画像が生成されるようになり、より自然に見える立体視用画像の提供が可能になる。
【0011】
また本発明の一態様では、前記画像生成部は、前記内側描画領域から前記内側描画領域の外側へと向かう方向で、オブジェクトが徐々にデフォーカスされる描画処理を行って、前記第1視点画像、前記第2視点画像を生成してもよい。
【0012】
このようにすれば、内側描画領域から外側に向かうにつれてオブジェクトが徐々にデフォーカスされるような第1視点画像、第2視点画像が生成されるようになり、不自然さが軽減された立体視用画像の提供が可能になる。
【0013】
また本発明の一態様では、前記画像生成部は、前記内側描画領域から前記内側描画領域の外側へと向かう方向で、オブジェクトの色が徐々にターゲット色に近づく描画処理を行って、前記第1視点画像、前記第2視点画像を生成してもよい。
【0014】
このようにすれば、内側描画領域から外側に向かうにつれてオブジェクトの色が徐々にターゲット色に近づくような第1視点画像、第2視点画像が生成されるようになり、不自然さが軽減された立体視用画像の提供が可能になる。
【0015】
また本発明の一態様では、画像が表示される表示部の画面の、プレーヤ側から見た場合の周囲の色情報を取得する情報取得部を含み(情報取得部としてコンピュータを機能させ)、前記画像生成部は、取得された前記色情報に基づいて、前記ターゲット色を設定してもよい。
【0016】
このようにすれば、表示部の画面の存在感を消すことができ、いわゆる光学迷彩のような画像表現が可能になる。
【0017】
また本発明の一態様では、前記画像生成部は、前記共通領域の前記内側描画領域から、前記共通領域のクリッピング面に近づくにつれて、オブジェクトの表示態様が徐々に変化する描画処理を行って、前記第1視点画像、前記第2視点画像を生成してもよい。
【0018】
このようにすれば、共通領域のクリッピング面に近づくにつれてオブジェクトの表示態様が徐々に変化するような第1視点画像、第2視点画像が生成されるようになる。従って、例えば一方のビューボリュームにおいて、オブジェクトの一部がクリッピング面によってクリッピングされているような場合にも、より自然に見える立体視用画像を提供できるようになる。
【0019】
また本発明の一態様では、前記画像生成部は、前記第1視点用ビューボリュームにおけるオブジェクトの頂点のスクリーン上での位置である第1視点側頂点スクリーン位置と、前記第2視点用ビューボリュームにおけるオブジェクトの頂点の前記スクリーン上での位置である第2視点側頂点スクリーン位置とを求め、求められた前記第1視点側頂点スクリーン位置、前記第2視点側頂点スクリーン位置に基づいて、オブジェクトの表示態様を変化させる描画処理を行って、前記第1視点画像、前記第2視点画像を生成してもよい。
【0020】
このようにすれば、第1視点側頂点スクリーン位置や第2視点側頂点スクリーン位置を求めるという頂点処理により、内側描画領域から外側へと向かう方向でオブジェクトの表示態様を変化させる描画処理を実現できる。
【0021】
また本発明の一態様では、前記画像生成部は、前記第1視点側頂点スクリーン位置と前記スクリーンの前記左右端辺との距離に応じて設定される第1のα値と、前記第2視点側頂点スクリーン位置と前記スクリーンの前記左右端辺との距離に応じて設定される第2のα値とを求め、前記第1、第2のα値に基づいて、オブジェクトの頂点のα値を設定して、前記第1視点画像、前記第2視点画像を生成してもよい。
【0022】
このようにすれば、第1視点側頂点スクリーン位置により求まる第1のα値と、第2視点側頂点スクリーン位置により求まる第2のα値により、オブジェクトの頂点のα値を設定して、内側描画領域から外側へと向かう方向でオブジェクトの表示態様を変化させる描画処理を実現できる。
【0023】
また本発明の一態様では、前記第1視点用ビューボリュームと前記第2視点用ビューボリュームとの前記共通領域の内側に前記内側描画領域を設定する領域設定部を含み(領域設定部としてコンピュータを機能させ)、前記領域設定部は、前記共通領域の形状に変化に応じて前記内側描画領域の形状を変化させてもよい。
【0024】
このようにすれば、第1視点用ビューボリュームや第2視点用ビューボリュームの位置や方向が変化して、これらのビューボリュームの共通領域の形状が変化した場合にも、内側描画領域の形状が変化することで、これに対応することが可能になる。
【0025】
また本発明の一態様では、前記領域設定部は、自由曲面で形成された前記内側描画領域の形状を、前記共通領域の頂点を制御点として変形させてもよい。
【0026】
このようにすれば、自由曲面の手法を有効活用して、共通領域の形状変化に応じた内側描画領域の形状変形を実現できる。
【0027】
また本発明の一態様では、プレーヤの左眼、右眼の位置情報を取得する情報取得部と、視点制御部とを含み(情報取得部、視点制御部としてコンピュータを機能させ)、前記視点制御部は、取得された前記位置情報に基づいて、前記第1視点用ビューボリューム、前記第2視点用ビューボリュームを設定してもよい。
【0028】
このようにすれば、プレーヤの左眼、右眼の位置に応じて、第1視点用ビューボリューム、第2視点用ビューボリュームの位置や方向が変化するようになる。従って、上記で説明した自然に見える処理が、プレーヤ自身の位置移動に連動するような画像表現を実現できる。
【0029】
また本発明の一態様では、前記プレーヤが装着する認識用部材には、前記プレーヤの左眼に対応する左眼用マーカと、前記プレーヤの右眼に対応する右眼用マーカとが設けられ、前記情報取得部は、前記プレーヤが装着する認識用部材を撮像する撮像部からの撮像情報に基づいて、前記プレーヤの左眼、右眼の前記位置情報を取得してもよい。
【0030】
このようにすれば、左眼用マーカと右眼用マーカを認識用部材に設けるだけで、プレーヤの左眼、右眼の位置情報を簡素な処理で取得できるようになる。
【0031】
また本発明の一態様では、前記情報取得部は、前記プレーヤの左眼と右眼の間の距離情報を取得し、前記視点制御部は、取得された前記距離情報に基づいて、前記第1視点と前記第2視点の間の視点間距離を設定して、前記第1視点用ビューボリューム、前記第2視点用ビューボリュームを設定してもよい。
【0032】
このようにすれば、プレーヤの左眼と右眼の間の距離情報に応じた距離に、第1視点と第2視点の間の視点間距離を設定できるようになり、プレーヤの両眼間隔(瞳孔間距離)の個人差を反映した立体視用画像の提供が可能になる。
【0033】
また本発明の一態様では、前記認識用部材は、左眼部分と右眼部分の間の距離を調整するための調整機構を有する眼鏡であり、前記情報取得部は、前記眼鏡の前記左眼部分に設けられた左眼用マーカと前記右眼部分に設けられた右眼用マーカの撮像情報に基づいて、前記プレーヤの左眼と右眼の間の距離情報を取得してもよい。
【0034】
このようにすれば、プレーヤが、認識用部材である眼鏡の調整機構を使って調整を行うだけで、プレーヤの左眼と右眼の間の距離情報を取得して、第1視点と第2視点の間の視点間距離を設定できるようになる。
【0035】
また本発明の他の態様は、複数のオブジェクトが配置されるオブジェクト空間の設定処理を行うオブジェクト空間設定部と、前記オブジェクト空間において立体視における第1視点から見える第1視点画像と、前記オブジェクト空間において立体視における第2視点から見える第2視点画像を生成する画像生成部とを含み、前記画像生成部は、オブジェクトが透視投影されるスクリーンの左右端辺側に近づくにつれて、オブジェクトの表示態様が変化する描画処理を行って、前記第1視点画像、前記第2視点画像を生成する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0036】
本発明の他の態様によれば、スクリーンの左右端辺側に近づくにつれて、オブジェクトの表示態様が変化するような第1視点画像、第2視点画像が生成される。このようにすれば、例えばスクリーンの左右端辺付近等でのオブジェクトの画像の見え方の異なり度合いを低減でき、立体視においてプレーヤが感じる不自然さを軽減することが可能になる。
【0037】
また本発明の他の態様では、前記画像生成部は、前記第1視点に対応する第1視点用ビューボリュームにおけるオブジェクトの頂点のスクリーン上での位置である第1視点側頂点スクリーン位置と、前記第2視点に対応する第2視点用ビューボリュームにおけるオブジェクトの頂点の前記スクリーン上での位置である第2視点側頂点スクリーン位置とを求め、求められた前記第1視点側頂点スクリーン位置、前記第2視点側頂点スクリーン位置に基づいて、オブジェクトの表示態様を変化させる描画処理を行って、前記第1視点画像、前記第2視点画像を生成してもよい。
【0038】
また本発明の一態様では、前記第1視点、前記第2視点は、二眼式立体視における左眼側仮想カメラ、右眼側仮想カメラの視点であってもよい。
【0039】
また本発明の一態様では、前記第1視点、前記第2視点は、多眼式立体視における視点群のうちの2つの視点、又は空間像方式立体視における設定観察範囲内の任意の2視点であってもよい。
【0040】
空間像方式立体視では、描画時には特定の視点が想定されないことも多いが、代表的な観察位置は設定される。そこで、この代表的な観察位置に基づく、プレーヤの両眼位置等を、上記の第1視点、第2視点としてもよい。或いは、観察範囲の両端に相当する位置を、上記の第1視点、第2視点としてもよい。
【0041】
また本発明の一態様では、表示部の画面とプレーヤとの位置関係情報を取得する情報取得部と、取得された前記位置関係情報に基づいて、前記多眼式立体視又は前記空間像方式立体視における前記第1視点と前記第2視点を選択する視点選択部を含んでもよい(情報取得部、視点選択部としてコンピュータを機能させてもよい)。
【0042】
このようにすれば、画面とプレーヤの位置関係情報に基づき選択された第1視点用ビューボリュームと第2視点用ビューボリュームとの共通領域の内側描画領域から外側へと向かう方向で、オブジェクトの表示態様が変化するような第1視点画像、第2視点画像を生成できるようになる。これにより、立体視においてプレーヤが感じる不自然さを軽減することが可能になり、多眼式立体視や空間像方式立体視に適切な態様での立体視表示が可能になる。
【図面の簡単な説明】
【0043】
【図1】本実施形態の画像生成システムの構成例。
【図2】左眼用ビューボリューム、右眼用ビューボリュームの設定手法の説明図。
【図3】左眼用ビューボリューム、右眼用ビューボリュームの設定手法の説明図。
【図4】本実施形態の手法の説明図。
【図5】本実施形態の手法の説明図。
【図6】本実施形態の手法を用いなかった場合に生成される左眼用画像、右眼用画像の例。
【図7】本実施形態の手法を用いた場合に生成される左眼用画像、右眼用画像の例。
【図8】ターゲット色の取得手法の説明図。
【図9】図9(A)、図9(B)は本実施形態の詳細な処理の説明図。
【図10】本実施形態の詳細な処理を説明するフローチャート。
【図11】本実施形態の詳細な処理を説明するフローチャート。
【図12】図12(A)、図12(B)は本実施形態の詳細な処理におけるα値の設定手法の説明図。
【図13】図13(A)、図13(B)は内側描画領域の設定手法の説明図。
【図14】図14(A)、図14(B)は内側描画領域の設定手法の説明図。
【図15】図15(A)、図15(B)はプレーヤの左眼、右眼の位置情報の取得手法の説明図。
【図16】図16(A)、図16(B)はプレーヤの左眼、右眼の位置情報に基づくビューボリュームの設定手法の説明図。
【図17】プレーヤの左眼、右眼の位置情報に基づくビューボリュームの設定手法の説明図。
【図18】左眼部分と右眼部分の間の距離を調整するための調整機構を有する眼鏡の例。
【図19】図19(A)、図19(B)はプレーヤの左眼、右眼の位置情報に基づくカメラ間距離の設定手法の説明図。
【図20】図20(A)、図20(B)は本実施形態の手法が適用される立体視用画像生成手法の説明図。
【図21】多眼式立体視等の場合の視点選択手法の説明図。
【図22】多眼式立体視等の場合の視点選択手法の説明図。
【発明を実施するための形態】
【0044】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0045】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)のブロック図の例を示す。なお、本実施形態の画像生成システムの構成は図1に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0046】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、方向指示キー、操作ボタン、アナログスティック、レバー、各種センサ(角速度センサ、加速度センサ等)、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【0047】
撮像部162は、被写体を撮像するものであり、CCDやCMOSセンサなどの撮像素子や、レンズ等の光学系により実現できる。撮像部162の撮像により取得された撮像情報(撮像画像データ)は、撮像情報記憶部174に記憶されて保存される。
【0048】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。
【0049】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0050】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、LCD、有機ELディスプレイ、CRT、各種プロジェクター型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。また、これらは、タッチパネル等と一体型であってもよい。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0051】
補助記憶装置194(補助メモリ、2次メモリ)は、記憶部170の容量を補うために使用される記憶装置であり、SDメモリーカード、マルチメディアカードなどのメモリーカードなどにより実現できる。
【0052】
通信部196は、有線や無線のネットワークを介して外部(例えば他の画像生成システム、サーバ、ホスト装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【0053】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170、補助記憶装置194)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0054】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部100は記憶部170をワーク領域として各種処理を行う。この処理部100の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0055】
処理部100は、ゲーム演算部102、オブジェクト空間設定部104、移動体演算部106、仮想カメラ制御部108、情報取得部110、領域設定部112、視点選択部114、画像生成部120、音生成部130を含む。
【0056】
ゲーム演算部102はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0057】
オブジェクト空間設定部104は、複数のオブジェクトが配置されるオブジェクト空間の設定処理を行う。例えば、キャラクタ(人、動物、ロボット、車、船舶、飛行機等)、マップ(地形)、建物、コース(道路)、樹木、壁などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクトデータ記憶部172には、オブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。オブジェクト空間設定部104は、例えば各フレーム毎にこのオブジェクトデータを更新する処理などを行う。
【0058】
移動体演算部106は、キャラクタ等の移動体を移動させるための演算を行う。また移動体(移動体オブジェクト)を動作させるための演算も行う。即ち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(オブジェクト、モデルオブジェクト)をオブジェクト空間内で移動させたり、移動体を動作(モーション、アニメーション)させる処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒等)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0059】
仮想カメラ制御部108(広義には視点制御部)は視点の制御処理を行う。具体的には、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラの制御処理(広義には視点の制御処理)を行う。例えば、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
【0060】
例えば仮想カメラによりキャラクタを後方から撮影する場合には、キャラクタの位置又は方向の変化に仮想カメラが追従するように、仮想カメラの位置(視点位置)や方向(視線方向)を制御する。この場合には、移動体演算部106で得られたキャラクタの位置、方向又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は方向を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【0061】
情報取得部110は、例えば撮像部162からの撮像情報等に基づいて種々の情報を取得する。例えば画像が表示される表示部190の画面の周囲の色情報(プレーヤから見た場合の周囲の色情報)を取得する。或いは、プレーヤ(観者)の左眼、右眼の位置情報(表示部190の画面に対する相対的な位置情報)を取得する。例えば情報取得部110は、表示部190の画面とプレーヤとの位置関係情報(画面に対するプレーヤの相対的な位置情報)を取得する。
【0062】
領域設定部112は、第1視点用ビューボリューム(狭義には左眼用ビューボリューム)と第2視点用ビューボリューム(狭義には右眼用ビューボリューム)との共通領域(重複する領域)の内側に内側描画領域を設定する処理などを行う。
【0063】
視点選択部114は、多眼式立体視や空間像方式立体視における視点の選択処理を行う。
【0064】
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0065】
例えば画像生成部120は、頂点処理部122、ピクセル処理部124を含むことができる。
【0066】
頂点処理部122(頂点シェーダ、ジオメトリーシェーダ)は頂点処理を行う。具体的には、オブジェクトの頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)に基づいて、頂点処理(頂点シェーダによるシェーディング)を行う。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0067】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。
【0068】
ピクセル処理部124(ピクセルシェーダ)はピクセル処理を行う。具体的には、ラスタライズ後に、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)を行う。
【0069】
ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読み出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ178に出力(描画)する。即ち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0070】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現できる。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0071】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0072】
そして本実施形態では、画像生成部120が、オブジェクト空間において立体視(二眼式、多眼式、空間像方式)における第1視点から見える第1視点画像と、オブジェクト空間において立体視における第2視点から見える第2視点画像を生成する。
【0073】
この場合に画像生成部120は、第1視点に対応する第1視点用ビューボリューム(第1視点用視錐台)と第2視点に対応する第2視点用ビューボリューム(第2視点用視錐台)との共通領域(重複領域)の内側描画領域(共通領域に内包される領域)から、内側描画領域の外側(左右クリッピング面側)へと向かう方向で、オブジェクトの表示態様(透明度、デフォーカス度又は色等)が変化する描画処理を行って、第1視点画像、第2視点画像を生成する。具体的には、共通領域の内側描画領域から、共通領域のクリッピング面(左側クリッピング面、右側クリッピング面)に近づくにつれて、オブジェクトの表示態様が徐々に変化する描画処理を行って、第1視点画像、第2視点画像を生成する。別の言い方をすれば、オブジェクトが透視投影されるスクリーンの左右端辺側(左端辺側、右端辺側)に近づくにつれて、オブジェクトの表示態様が変化する描画処理を行って、第1視点画像、第2視点画像を生成する。
【0074】
二眼式立体視を例にとれば、仮想カメラ制御部108が、左眼用仮想カメラ及び右眼用仮想カメラの設定を行い、画像生成部120は、オブジェクト空間において左眼用仮想カメラ(広義には第1視点)から見える左眼用画像(広義には第1視点画像)と、オブジェクト空間において右眼用仮想カメラ(広義には第2視点)から見える右眼用画像(広義には第2視点画像)を生成する。そして画像生成部120は、左眼用仮想カメラに対応する左眼用ビューボリューム(広義には第1視点用ビューボリューム)と右眼用仮想カメラに対応する右眼用ビューボリューム(広義には第2視点用ビューボリューム)との共通領域の内側描画領域から、内側描画領域の外側へと向かう方向で、オブジェクトの表示態様が変化する描画処理を行って、左眼用画像、右眼用画像を生成する。
【0075】
ここで、オブジェクトの表示態様を変化させる処理としては種々の処理を想定できる。例えば画像生成部120は、第1視点用ビューボリューム(左眼用ビューボリューム)と第2視点用ビューボリューム(右眼用ビューボリューム)の共通領域の内側描画領域から、内側描画領域の外側へと向かう方向で、オブジェクトが徐々に透明に近づく描画処理を行って、第1視点画像(左眼用画像)、第2視点画像(右眼用画像)を生成する。或いは、内側描画領域から外側へと向かう方向で、オブジェクトが徐々にデフォーカスされたり、オブジェクトの色が徐々にターゲット色に近づく描画処理を行って、第1視点画像(左眼用画像)、第2視点画像(右眼用画像)を生成する。なおオブジェクトの表示態様を変化させる処理は、これらには限定されず、例えば輝度を変化させて徐々に暗くするなどの処理であってもよい。
【0076】
また、オブジェクトの色を近づけるターゲット色の設定手法としては種々の手法を想定できる。例えば情報取得部110は、画像が表示される表示部190の画面の、プレーヤ側から見た場合の周囲の色情報を取得する。例えば表示部190の画面の縁部(枠部)の色情報を取得したり、表示部190の後ろ側の背景の色情報を取得する。そして画像生成部120は、取得された色情報に基づいて、ターゲット色を設定し、内側描画領域から外側へと向かう方向で、オブジェクトの色が徐々にターゲット色に近づく描画処理を行って、第1視点画像、第2視点画像を生成する。
【0077】
また例えば頂点シェーダやピクセルシェーダにより画像を生成する場合には、画像生成部120は、第1視点用ビューボリューム(左眼用ビューボリューム)におけるオブジェクトの頂点のスクリーン上での位置である第1視点側頂点スクリーン位置(左眼側頂点スクリーン位置)を求める。即ち、第1視点用ビューボリュームにおいてオブジェクトの頂点をスクリーンに透視投影した位置を、第1視点側頂点スクリーン位置として求める。また画像生成部120は、第2視点用ビューボリューム(右眼用ビューボリューム)におけるオブジェクトの頂点のスクリーン上での位置である第2視点側頂点スクリーン位置(右眼側頂点スクリーン位置)を求める。即ち、第2視点用ビューボリュームにおいてオブジェクトの頂点をスクリーンに透視投影した位置を、第2視点側頂点スクリーン位置として求める。
【0078】
そして画像生成部120は、求められた第1視点側頂点スクリーン位置(左眼側頂点スクリーン位置)、第2視点側頂点スクリーン位置(右眼側頂点スクリーン位置)に基づいて、オブジェクトの表示態様(透明度、デフォーカス度又は色等)を徐々に変化させる描画処理を行って、第1視点画像、第2視点画像を生成する。具体的には、第1視点側頂点スクリーン位置とスクリーンの左右端辺(左端辺、右端辺)との距離に応じて設定される第1のα値と、第2視点側頂点スクリーン位置とスクリーンの左右端辺との距離に応じて設定される第2のα値とを求める。そして、求められた第1、第2のα値に基づいて、オブジェクトの頂点のα値を設定して、第1視点画像、第2視点画像を生成する。具体的には、例えば第1、第2のα値のうちの小さい方の値を、オブジェクトの頂点のα値に設定して描画処理を行い、第1視点画像、第2視点画像を生成する。このようにすれば、内側描画領域から、第1視点用、第2視点用ビューボリュームの共通領域のクリッピング面に近づくにつれて、オブジェクトが徐々に透明に近づく第1視点画像、第2視点画像を生成できる。
【0079】
ここで内側描画領域は、領域設定部112が、第1視点用(左眼用)、第2視点用(右眼用)ビューボリュームとの共通領域の内側に設定するようにしてもよい。この場合には領域設定部112は、共通領域の形状に変化に応じて内側描画領域の形状を変化させる。即ち、第1視点、第2視点(左眼用、右眼用仮想カメラ)の位置や方向が変化すると、第1視点用、第2視点用ビューボリュームの位置や方向も変化し、これらのビューボリュームの共通領域の形状も変化する。この場合に領域設定部112は、共通領域の形状の変化に追従するように、共通領域の内側描画領域の形状を変化させる。例えば自由曲面(NURBS等)で形成された内側描画領域の形状を、共通領域の頂点を制御点として変形させる。即ち共通領域の頂点である制御点の位置の変化に追従するように、自由曲面で形成された内側描画領域の形状を変化させる。
【0080】
なお仮想カメラ制御部108(視点制御部)は、例えば第1視点、第2視点(左眼用、右眼用仮想カメラ)を設定するための基準となる基準視点(基準仮想カメラ、センターカメラ)の制御を行う。そして、得られた基準視点(基準仮想カメラ)の位置情報、方向情報と、設定された視点間距離(カメラ間距離)の情報に基づいて、第1視点、第2視点(左眼用、右眼用仮想カメラ)の位置情報(視点位置)、方向情報(視線方向)を求める。なお仮想カメラ制御部108が、第1視点、第2視点(左眼用、右眼用仮想カメラ)を直接制御するようにしてもよい。
【0081】
また立体視方式としては、2眼分離眼鏡方式や、パララックスバリアやレンティキュラーレンズや、その他、光線の方向を制御することができる光学素子を用いた裸眼方式などの様々な方式を想定できる。2眼分離眼鏡方式としては、例えば偏光眼鏡方式、継時分離方式、色分離方式などがある。偏光眼鏡方式では、例えば表示部190の奇数ラインと偶数ラインに左眼用画像と右眼用画像を交互に表示し、これを偏光眼鏡(例えば左眼に水平方向の偏光フィルタ、右眼に垂直方向の偏光フィルタを付けた眼鏡)で見ることで立体視を実現する。或いは左眼用画像と右眼用画像を特殊な偏光フィルタを有するプロジェクタで投影し、投影画像を偏光眼鏡で見ることで立体視を実現してもよい。また継時分離方式(ページ・フリップ方式)では、表示部190に左眼用画像、右眼用画像を所定期間毎(例えば1/120秒毎、1/60秒毎)に交互に表示する。そして、この表示の切り替えに連動して液晶シャッター付きの眼鏡の左眼、右眼の液晶シャッターを交互に開閉することで、立体視を実現する。色分離方式では、例えばアナグリフ画像を生成し、赤青眼鏡等で見ることで、立体視を実現する。
【0082】
また左眼用画像と右眼用画像から立体用視画像を生成する機能は、画像生成部120に持たせてもよいし、表示部190(テレビ等)に持たせてもよい。例えば画像生成部120が、サイドバイサイド方式の画像信号を出力する。すると表示部190が、このサイドバイサイドの画像信号に基づいて、奇数ラインと偶数ラインに左眼用画像と右眼用画像が交互に割り当てられるフィールドシーケンシャル方式の画像を表示する。或いは、左眼用画像と右眼用画像が所定期間毎に交互に切り替えられるフレームシーケンシャル方式の画像を表示する。或いは画像生成部120の方が、フィールドシーケンシャル方式やフレームシーケンシャル方式の画像を生成して、表示部190に出力するようにしてもよい。
【0083】
また情報取得部110は、プレーヤ(観者)の左眼、右眼の位置情報を取得する。例えば表示部190の画面に対する左眼、右眼の相対的な位置情報を取得する。そして仮想カメラ制御部108(画像生成部)は、取得された位置情報に基づいて、第1視点用ビューボリューム(左眼用ビューボリューム、左眼用仮想カメラ)、第2視点用ビューボリューム(右眼用ビューボリューム、右眼用仮想カメラ)を設定する。例えば第1視点用、第2視点用ビューボリュームの位置や方向を設定する。このようにすることで、プレーヤの左眼や右眼の位置の変化に応じて、第1視点用ビューボリュームや第2視点用ビューボリュームの位置や方向が変化するようになり、後述する両眼トラッキング画像を生成できるようになる。
【0084】
この場合に例えばプレーヤが装着する認識用部材に、プレーヤの左眼に対応する左眼用マーカと、プレーヤの右眼に対応する右眼用マーカを設けてもよい。そして情報取得部110は、プレーヤが装着する認識用部材を撮像する撮像部162からの撮像情報に基づいて、プレーヤの左眼、右眼の位置情報を取得する。即ち、プレーヤが装着する認識用部材を撮像部162により撮像し、得られた撮像情報に基づく画像認識処理により、認識用部材の左眼用マーカと右眼用マーカを画像認識する。そして、画像認識結果に基づいて左眼用マーカ、右眼用マーカの位置を検出して、プレーヤの左眼、右眼の位置情報を求める。このようにすれば、観者の左眼、右眼の位置情報を、撮像部162を有効活用した簡素な処理で検出できるようになる。このマーカーは、メガネ式立体視表示装置の場合には、メガネに取り付けても良い。また、顔認識等の技術により、特にマーカーをつけなくても左眼・右眼の位置を検出できる場合には、もちろんマーカーは不要である。
【0085】
また情報取得部110は、プレーヤの左眼と右眼の間の距離情報を取得してもよい。そして仮想カメラ制御部108は、取得された距離情報に基づいて、第1視点(左眼用仮想カメラ)と第2視点(右眼用仮想カメラ)の間の視点間距離(カメラ間距離)を設定して、第1視点用ビューボリューム(左眼用ビューボリューム、左眼用仮想カメラ)、第2視点用ビューボリューム(右眼用ビューボリューム、右眼用仮想カメラ)を設定する。具体的には、認識用部材として、左眼部分と右眼部分の間の距離を調整するための調整機構を有する眼鏡を用意する。そして情報取得部110は、眼鏡の左眼部分に設けられた左眼用マーカと右眼部分に設けられた右眼用マーカの撮像情報に基づいて、プレーヤの左眼と右眼の間の距離情報を取得する。このようにすれば、プレーヤが眼鏡の調整機構を用いて、左眼部分と右眼部分の間の距離を変化させた場合にも、これに対応して第1視点(左眼用仮想カメラ)と第2視点(右眼用仮想カメラ)の視点間距離(カメラ間距離)も変化するようになり、より適切な視点間距離での立体視用画像を生成できるようになる。また、両眼間隔の違いに合わせた眼鏡を、色や形状を変えて作っておき、その違いを、カメラ等で撮影して認識することで、それぞれの眼鏡に応じた両眼距離を設定するようにしてもよい。例えば子供用の眼鏡と大人用の眼鏡を異なる色や形状にしておき、この色や形状の違いを認識することで、子供用の視差設定を行う。なお、この手法は、眼鏡全体の色や形状を変えることで実現してもよいし、識別用部材だけの色や形状を変えることで実現してもよい。
【0086】
なお、第1視点画像、第2視点画像を生成する第1視点、第2視点は、例えば二眼式立体視における左眼側仮想カメラ、右眼側仮想カメラの視点である。或いは、第1視点、第2視点は、多眼式立体視又は空間像方式立体視における視点であってもよい。
【0087】
また情報取得部110は、表示部190の画面とプレーヤ(観者)との位置関係情報を取得する。この位置関係情報は、例えばプレーヤの左眼、右眼の位置情報等である。なお、位置関係情報は、表示部190の画面とプレーヤ(プレーヤの左眼、右眼)の相対的な位置関係を表す情報であれば十分であり、例えばプレーヤに対する表示部190の画面の動き情報を、位置関係情報として取得してもよい。例えば携帯型ゲーム装置において、内蔵するモーションセンサ(ジャイロセンサ、加速度センサ等)を用いて、プレーヤが携帯型ゲーム装置を動かすことによる画面等の動きを検出して、位置関係情報を取得してもよい。
【0088】
また視点選択部114は、取得された位置関係情報に基づいて、多眼式立体視又は空間像方式立体視における第1視点と第2視点を選択する。そして画像生成部120は、立体視における第1視点から見える第1視点画像と、第2視点から見える第2視点画像を、立体視用画像として生成する。例えばプレーヤの左眼に見えるべき画像を第1視点画像として生成し、右眼に見えるべき画像を第2視点画像として生成する。空間像方式の場合には、選択された第1視点と第2視点を含むように画像描画範囲を設定した上で、その範囲の画像を生成するようにすればよい。
【0089】
そして画像生成部120は、位置関係情報に基づき選択された第1視点用ビューボリュームと、位置関係情報に基づき選択された第2視点用ビューボリュームとの共通領域(非フレームバイオレーション領域)の内側描画領域から、内側描画領域の外側へと向かう方向で、オブジェクトの表示態様が変化する描画処理を行って、第1視点画像、第2視点画像を生成する。例えば、多眼式立体視又は空間像方式立体視において、第1視点画像、第2視点画像を生成するための第1視点、第2視点が選択された場合に、第1視点用ビューボリュームと第2視点用ビューボリュームの共通領域の内側描画領域から外側へと向かう方向で、オブジェクトの表示態様が変化する立体視用画像を生成する。このようにすれば、多眼式立体視又は空間像方式立体視において第1視点、第2視点が選択された場合にも、多眼式立体視や空間像方式立体視に適切な態様での立体視表示が可能になる。
【0090】
2.本実施形態の手法
次に本実施形態の手法について具体的に説明する。
【0091】
2.1 内側描画領域から外側に向かう方向での表示態様の変更
まず立体視におけるビューボリュームの設定について説明する。なお、以下では二眼式立体視の場合を主に例に取り説明する。この場合には例えば第1視点が左眼用仮想カメラの視点となり、第2視点が右眼用仮想カメラの視点になる。但し、本実施形態の手法は、このような二眼式立体視に限定されるものではなく、後述するように多眼式立体視、空間像方式立体視などの種々の立体視方式に適用可能である。
【0092】
例えば図2に示すように、立体視用画像を生成するためには、所与のカメラ間距離だけ離れた位置に設定される左眼用仮想カメラVCL(広義には第1視点カメラ)と右眼用仮想カメラVCR(広義には第2視点カメラ)を用いる。
【0093】
そして左眼用仮想カメラVCLに対応して左眼用ビューボリュームVVL(左眼用視錐台、第1視点用ビューボリューム、第1視点用視錐台)が設定され、右眼用仮想カメラVCRに対応して右眼用ビューボリュームVVR(右眼用視錐台、第2視点用ビューボリューム、第2視点用視錐台)が設定される。具体的には左眼用、右眼用仮想カメラVCL、VCRの位置や方向に基づいて、左眼用、右眼用ビューボリュームVVL、VVRの位置や方向が設定される。
【0094】
この場合に左眼用仮想カメラVCLから見える画像である左眼用画像は、左眼用ビューボリュームVVL内に存在するオブジェクトをスクリーンSCに透視投影して描画することで生成される。同様に右眼用仮想カメラVCRから見える画像である右眼用画像は、右眼用ビューボリュームVVR内に存在するオブジェクトをスクリーンSCに透視投影して描画することで生成される。従って、スクリーンSCに透視投影されない位置にあるオブジェクトは、描画対象にはならないため、これらのオブジェクトに対して透視投影変換処理を行うと、処理の無駄となる。
【0095】
このため、実際には、図3に示すように左眼用、右眼用ビューボリュームVVL、VVRを設定している。このようにすれば、スクリーンSCに透視投影されないオブジェクトについては、左眼用、右眼用ビューボリュームVVL、VVRを用いたクリッピング処理により描画対象から除外されるようになり、無駄な処理が行われるのが防止され、処理負荷の軽減を図れる。
【0096】
なお図3において、CNL、CFLは、各々、左眼用ビューボリュームVVLの前方クリッピング面、後方クリッピング面であり、CNR、CFRは、各々、右眼用ビューボリュームVVRの前方クリッピング面、後方クリッピング面である。
【0097】
さて、図3のようにビューボリュームを設定したとしても、例えばオブジェクトOB1、OB2は、左眼用ビューボリュームVVL内には存在するが、右眼用ビューボリュームVVR内には存在しない。従って、オブジェクトOB1、OB2については、左眼用画像の生成時にはスクリーンSCに描画されるが、右眼用画像の生成時にはスクリーンSCに描画されない。従って、オブジェクトOB1、OB2の画像は、左眼用画像を見るプレーヤの左眼には見えるが、右眼用画像を見るプレーヤの右眼には見えない画像になる。
【0098】
同様に、オブジェクトOB3、OB4は、右眼用ビューボリュームVVR内には存在するが、左眼用ビューボリュームVVL内には存在しない。従って、オブジェクトOB3、OB4の画像は、右眼用画像の生成時には描画されるが、左眼用画像の生成時には描画されないため、プレーヤの右眼には見えるが、プレーヤの左眼には見えない画像になる。このように左眼の右眼のいずれか一方のみにしか見えない領域は、フレームバイオレーション領域(ウィンドウ違反領域)と呼ばれる。
【0099】
そして、このようにプレーヤの左眼と右眼とで、見えるオブジェクトが異なってしまうと、プレーヤが立体視する際に不自然さを感じるおそれがある。特に、ビューボリュームのクリッピング面を横切るようなオブジェクトが存在すると、一方の眼からは、そのオブジェクトがクリッピング面により切れているように見えるのに、他方の眼からは、そのようには見えないため、不自然な立体視になってしまう可能性がある。
【0100】
そこで本実施形態では、このような問題を解決するために、図4に示す手法を採用している。図4において、内側描画領域RDは、左眼用ビューボリュームVVLと右眼用ビューボリュームVVRの共通領域の内側の領域(内包される領域)である。
【0101】
そして図4では、内側描画領域RDから内側描画領域RDの外側へと向かう方向で、オブジェクトの表示態様が変化する描画処理を行って、左眼用画像、右眼用画像を生成する。例えば、オブジェクトが徐々に透明に近づいたり、徐々にデフォーカスされたり、徐々にターゲット色に近づくような描画処理を行って、左眼用画像、右眼用画像を生成する。このようにすることで、不自然に見える立体視用画像が生成されてしまう事態を防止できる。
【0102】
例えば図5のように、ビューボリュームのクリッピング面を横切るようなオブジェクトOBが存在したとする。
【0103】
このような場合に、オブジェクトOBのA1に示す部分は、右眼用仮想カメラVVRにおいては視野内に入っている。これに対して、左眼用仮想カメラVVLからは、左側クリッピング面によりオブジェクトOBの一部が切れているように見え、A1に示す部分は視野内に入らなくなっている。またオブジェクトOBのA2に示す部分は、左眼用仮想カメラVVLにおいては視野内に入っている。これに対して、右眼用仮想カメラVVRからは、右側クリッピング面によりオブジェクトOBの一部が切れているように見え、A2に示す部分は視野内に入らなくなっている。従って、左眼用仮想カメラVVLと右眼用仮想カメラVVRとで、クリッピング面付近でのオブジェクトOBの見え方が異なってしまい、プレーヤが不自然さを感じるおそれがある。
【0104】
この点、本実施形態の手法によれば、内側描画領域RDから外側へと向かう方向で、オブジェクトが徐々に透明になるなど、その表示態様が変化する。従って、スクリーンSCの左右端辺付近でのオブジェクトOBの画像の見え方の異なり度合いが低減され、より自然に見える立体視用画像をプレーヤに提供できる。
【0105】
例えば図6は、本実施形態の手法を採用しなかった場合の左眼用画像IML、右眼用画像IMRの例である。図6のB1に示すように、左眼用画像IMLでは、ティーポットの注ぎ口の先端部が切れているように見えるのに対して、B2に示すように、右眼用画像IMRでは、注ぎ口のほぼ全体が視野に入っている。またB3に示すように、右眼用画像IMRでは、ティーポットの取っ手の後端部が切れているように見えるのに対して、B4に示すように、左眼用画像IMLでは、取っ手の後端部の全体が視野に入っている。
【0106】
一方、図7は、本実施形態の手法により生成された左眼用画像IML、右眼用画像IMRの例である。図7のC1、C2、C3、C4に示すように、スクリーン(画面)の左右端辺側に近づくにつれて、オブジェクトの表示態様が変化している。具体的には、C1、C2に示すように、スクリーンの左端辺に近づくにつれて、注ぎ口の先端部が徐々に透明(半透明)になっている。またC3、C4に示すように、スクリーンの右端辺に近づくにつれて、取っ手の後端部が徐々に透明になっている。従って、スクリーンの左右端辺での左眼用画像IML、右眼用画像IMRの見え方の違いが、図6に比べると、低減される。これにより、オブジェクトがクリッピング面により切り取られることなどによる画像の不自然さを軽減でき、より自然な立体視用画像の提供が可能になる。
【0107】
なお図7では、オブジェクトの表示態様を変化させる手法として、スクリーンの左右端辺側に近づくにつれて(左右クリッピング面に近づくにつれて)、オブジェクトを徐々に透明にする手法について説明したが、本実施形態はこれに限定されない。
【0108】
例えばスクリーンの左右端辺側(左右クリッピング面側)に近づくにつれてオブジェクトが徐々にデフォーカス(モーションブラー)される描画処理を行って、左眼用画像、右眼用画像を生成してもよい。このようにすれば、スクリーンの左右端辺側に近づくにつれて、オブジェクトがぼけて見えるようになるため、図7と同様の効果を得ることができる。この場合のデフォーカス処理は、例えばぼかしフィルタ(Blur Filter)などを用いることで実現できる。具体的には、バイリニアフィルタリングによるぼかし処理である線形テクスチャフィルタリングの手法や、何枚ものテクスチャを同時に使用するマルチテクスチャによるぼかし処理であるボックスフィルタサンプリングの手法などを採用できる。
【0109】
例えば、あるオブジェクトが、両眼から見えているが、その一部が画面外にはみ出しているため、一方の眼では見えている範囲が大きく、他方の眼では見えている範囲が小さいような場合を想定する。このように、あるオブジェクトが、両眼から見えているが、見えている範囲が違うような場合には、上述のようなデフォーカス処理を行うことで、見えている範囲の大きさの違いによる違和感を緩和できる。
【0110】
また、スクリーンの左右端辺側に近づくにつれてオブジェクトの色が徐々にターゲット色に近づく描画処理を行って、左眼用画像、右眼用画像を生成してもよい。このようにすることでも、図7と同様の効果を得ることができる。
【0111】
但し、多数のオブジェクトが配置される場合においても、より自然な画像の生成が可能であるという観点からは、図7のようにオブジェクトを徐々に透明にする半透明処理手法や、オブジェクトを徐々にデフォーカス(ブラー)するデフォーカス処理手法が望ましい。例えば背景オブジェクトなどの第1のオブジェクトOB1と、処理対象となる第2のオブジェクトOB2が画面端付近において重ねて表示される場合を想定する。この場合に、上述の半透明処理手法やデフォーカス処理手法では、画面端に近づくにつれてオブジェクトOB2が透明になったりデフォーカスされても、不自然な画像は生成されない。一方、オブジェクトの色をターゲット色に近づける手法では、オブジェクトOB1の領域のうち、オブジェクトOB2に対応する領域がターゲット色に設定されて、その領域がくりぬかれたような画像が生成されてしまうおそれがある。この意味においては、オブジェクトの色をターゲット色に近づける手法よりも、半透明処理手法やデフォーカス処理手法の方が、より望ましい。
【0112】
オブジェクトの色を徐々にターゲット色に近づける手法を採用した場合、ターゲット色としては、種々の色を採用できる。例えば、ターゲット色として、画像が表示される表示部190の画面の周囲の色(プレーヤ側から見た場合の周囲の色)を採用してもよい。このようにすることで、いわゆる光学迷彩を実現できる。
【0113】
具体的には図8に示すように、表示部190の後ろ側の背景色や、表示部190の画面周囲の縁部の色などを、ターゲット色として採用できる。このようにすれば、表示部190の画面の存在感を消すことができ、あたかも空間の中にオブジェクトが存在しているかのように見える画像表現を実現できる。
【0114】
図8の手法を採用する場合には、表示部190の画面の周囲の色情報を、情報取得部110が取得する。具体的には、例えばゲームコントローラ161等に設けられた撮像部162を用いて、表示部190やその周囲の画像を撮像する。そして、得られた撮像情報に基づいて、表示部190の画面周囲の縁部の色や表示部190の背景色の情報を検出する。そして、検出された色情報に基づいて、ターゲット色を設定する。例えば画面の縁部の色が、黒っぽい色であるある場合には、ターゲット色も黒っぽい色に設定する。また背景の色が青であった場合には、ターゲット色も青又は青に近い色に設定する。このようにすることで、画面に映るゲーム画像が、あたかも背景に溶け込んでいるかのように見える画像を生成できるようになり、これまでにない画像表現を実現できる。
【0115】
なお、ターゲット色を取得する撮像部の設置手法としては種々の手法を想定できる。携帯電話機や携帯型ゲーム装置を例にとれば、携帯電話機や携帯型ゲーム装置の表示部の裏側に設けられた撮像部を用いて、画像を撮像することで、後ろ側の背景色を取得して、ターゲット色を設定する。
【0116】
2.2 具体的な処理例
次に、本実施形態の具体的な処理例について説明する。ここでは頂点シェーダ、ピクセルシェーダや用いた場合の処理例を説明する。
【0117】
図9(A)にビューボリュームVVL、VVR及びスクリーンSCを示す。本実施形態では、下式(1)により、オブジェクト(モデル)の頂点をスクリーンSCに透視投影する。
【0118】
【数1】

【0119】
ここで、(X,Y,Z)は、オブジェクト形状を定義する頂点の位置である。Mは、オブジェクトをスクリーンに透視投影するための射影行列である。(X,Y,Z,W)は、オブジェクトの頂点のスクリーン上の位置である頂点スクリーン位置である。
【0120】
そして、この頂点スクリーン位置は、下式(2)により正規化される。
【0121】
【数2】

【0122】
ここで、(X,Y,Z)は、深度を含めて正規化された頂点スクリーン位置である。そして図9(A)に示すように、頂点スクリーン位置の座標Xの変域は、−1.0≦X≦1.0になる。本実施形態では、このような変域の座標Xを用いて、下式(3)のようにα値(透明度)を求める。
【0123】
【数3】

【0124】
ここで、tは、オブジェクトが透明になり始めるポイント(透明になり始めるビューボリュームの割合)を表すパラメータである。MAX(A,B)は、A、Bのうち大きい方の値をとる関数である。
【0125】
上式(3)により、図9(B)に示すように頂点スクリーン位置の座標Xに対してα値が設定されるようになる。具体的には−t≦X≦tでは、α=1.0(不透明)になる。またXが−tよりも小さくなると、αは徐々に小さくなって行き、最終的にはα=0(透明)になる。またXがtよりも大きくなると、αは徐々に小さくなって行き、最終的にはα=0(透明)になる。このようにα値を設定することで、スクリーンSCの左右端辺側に近づくにつれてオブジェクトが徐々に透明になる描画処理を実現できる。
【0126】
次に本実施形態の具体的な処理例について図10、図11のフローチャートを用いて説明する。
【0127】
図10に示すように、まずオブジェクト空間へのオブジェクトの配置設定処理を行う(ステップS1)。例えばプレーヤの操作情報に基づいて、ゲーム演算処理や移動体の移動演算処理を行い、各フレームでのオブジェクトの配置位置を決定して、オブジェクト空間に配置設定する。
【0128】
次に左眼用仮想カメラ、右眼用仮想カメラの設定を行う(ステップS2)。例えば仮想カメラの制御により求められた基準仮想カメラの位置、方向等に基づいて、左眼用仮想カメラ、右眼用仮想カメラの位置、方向を設定する。
【0129】
そして、左眼用ビューボリューム(視錐台)を視界に設定して、描画処理を行う(ステップS3、S4)。これにより左眼用仮想カメラから見える画像である左眼用画像が生成される。また右眼用ビューボリューム(視錐台)を視界に設定して、描画処理を行う(ステップS5、S6)。これにより右眼用仮想カメラから見える画像である右眼用画像が生成される。
【0130】
図11は、図10のステップS4、S5の描画処理の詳細例を示すフローチャートである。
【0131】
まず、左眼用ビューボリュームにおけるオブジェクトの頂点のスクリーン上での位置である左眼側頂点スクリーン位置を求める(ステップS11)。具体的には、左眼用ビューボリュームにおいて、上式(1)、(2)に示すような透視投影変換処理を行って、オブジェクトの頂点に対応する左眼側頂点スクリーン位置を求める。そして上式(3)や図9(B)に示すように、左眼側頂点スクリーン位置とスクリーンの左右端辺との距離に応じた第1のα値αLを算出する(ステップS12)。
【0132】
次に、右眼用ビューボリュームにおけるオブジェクトの頂点のスクリーン上での位置である右眼側頂点スクリーン位置を求める(ステップS13)。具体的には、右眼用ビューボリュームにおいて、上式(1)、(2)に示すような透視投影変換処理を行って、オブジェクトの頂点に対応する右眼側頂点スクリーン位置を求める。そして上式(3)や図9(B)に示すように、右眼側頂点スクリーン位置とスクリーンの左右端辺との距離に応じた第2のα値αRを算出する(ステップS14)。
【0133】
次に、αLとαRのうち、より透明(0.0)に近いほうのα値を、オブジェクトの頂点のα値αVとして設定する(ステップS15)。そして、視界に設定された方のビューボリュームでのスクリーン上での位置を、表示用の位置に設定する(ステップS16)。例えば左眼用ボリュームが視界に設定された図10のステップS4の描画処理の場合には、左眼用ボリュームでのスクリーン上での位置が、表示用の位置に設定される。一方、右眼用ボリュームが視界に設定された図10のステップS6の描画処理の場合には、右眼用ボリュームでのスクリーン上での位置が、表示用の位置に設定される。
【0134】
以上のステップS11〜S16の処理が、頂点シェーダによる頂点ごとの処理として実行されると、ラスタライズ処理が行われる(ステップS17)。そして、設定されたα値αVを用いて描画処理が行われる(ステップS18)。このステップS18の処理は、ピクセルシェーダによるピクセルごとの処理として実行される。
【0135】
次に、ステップS12〜S15の処理について、図12(A)、図12(B)を用いて更に詳細に説明する。
【0136】
図12(A)において、CL2、CL4は、各々、左眼用ビューボリュームVVLの左側クリッピング面、右側クリッピング面である。またCL1、CL3は、各々、右眼用ビューボリュームVVRの左側クリッピング面、右側クリッピング面である。
【0137】
この場合に上式(3)や図9(B)のようにα値を求めると、図11のステップS12、S14でα値αL、αRは、図12(B)に示すような値に設定される。
【0138】
例えばαLは、内側描画領域RDでは1.0(不透明)になり、左眼用ビューボリュームVVLの左側クリッピング面CL2に近づくにつれて徐々に減少して、0.0(透明)になる。そしてクリッピング面CL2とCL1の間ではαLは0.0に設定される。またαLは、左眼用ビューボリュームVVLの右側クリッピング面CL4に近づくにつれて徐々に減少して、0.0(透明)になる。
【0139】
一方、αRは、内側描画領域RDでは1.0になり、右眼用ビューボリュームVVRの左側クリッピング面CL1に近づくにつれて徐々に減少して、0.0になる。またαRは、右眼用ビューボリュームVVRの右側クリッピング面CL3に近づくにつれて徐々に減少して、0.0になる。そしてクリッピング面CL3とCL4の間ではαRは0.0に設定される。
【0140】
図11のステップS15に示すように、αLとαRのうち、より透明(0.0)に近い方のα値が、オブジェクトの頂点のα値αVとして設定される。従って、オブジェクトの頂点のα値αVは、図12(B)のように設定されることになる。具体的には、αVは、内側描画領域RDでは1.0になり、左眼用ビューボリュームVVLの左側クリッピング面CL2に近づくにつれて徐々に減少して、0.0になる。またαVは、右眼用ビューボリュームVVRの右側クリッピング面CL3に近づくにつれて徐々に減少して、0.0になる。
【0141】
以上のように求められたα値αVを用いて描画処理を行うことで、図7に示すような左眼用画像IML、右眼用画像IMRが生成される。
【0142】
例えば図7の左眼用画像IMLでは、C1に示すように、左眼用ビューボリュームVVLの左側クリッピング面CL2により注ぎ口の先端部はクリッピングされている。この時、図12(B)に示すようにクリッピング面CL2に近づくにつれてαVが徐々に小さくなるため、C1に示すように注ぎ口の画像は画面の左端辺側に近づくにつれて徐々に透明になる。
【0143】
また図12(B)に示すように右眼用ビューボリュームVVRの右側クリッピング面CL3に近づくにつれて、αVが徐々に小さくなる。このため、C4に示すように取っ手の画像は画面の右端辺側に近づくにつれて徐々に透明になる。
【0144】
また図7の右眼用画像IMRでは、C3に示すように、右眼用ビューボリュームVVRの右側クリッピング面CL3によりティーポットの取っ手の後端部はクリッピングされている。この時、図12(B)に示すようにクリッピング面CL3に近づくにつれてαVが徐々に小さくなるため、C3に示すように取っ手の画像は画面の右端辺側に近づくにつれて徐々に透明になる。
【0145】
また図12(B)に示すように左眼ビューボリュームVVLの左側クリッピング面CL2に近づくにつれて、αVが徐々に小さくなる。このため、C2に示すように注ぎ口の画像は画面の左端辺側に近づくにつれて徐々に透明になる。
【0146】
以上のような手法を採用することで、図7に示すように、左眼用画像IMLと右眼用画像IMRでのオブジェクトの見え方の異なり度合いが低減され、より自然に見える立体視用画像の提供が可能になる。
【0147】
2.3 内側描画領域の設定
後述するように本実施形態では、プレーヤの左眼、右眼の位置を検出し、左眼、右眼の位置に応じた画像を生成する手法(以下、適宜、両眼トラッキング手法と呼ぶ)を採用している。このような両眼トラッキング手法では、プレーヤの左眼、右眼の位置の変化に応じて、左眼用、右眼用仮想カメラの位置、方向が変化し、左眼用、右眼用ビューボリュームの位置、方向も変化する。このため左眼用、右眼用ビューボリュームの共通領域の形状も変化する。
【0148】
例えばプレーヤの両眼が表示部190の画面から標準的な位置にある場合には、図13(A)に示すように左眼用、右眼用ビューボリュームVVL、VVRが設定される。一方、プレーヤが表示部190に近づいて、両眼の位置が画面に近い場合には、図13(B)に示すように左眼用、右眼用ビューボリュームVVL、VVRが設定される。またプレーヤが表示部190から遠ざかって、両眼の位置が画面から遠い場合には、図14(A)に示すように左眼用、右眼用ビューボリュームVVL、VVRが設定される。従って、図13(A)、図13(B)、図14(A)に示すように、左眼用、右眼用ビューボリュームVVL、VVRの設定の変化に応じて、VVL、VVRの共通領域もその形状が変化する。
【0149】
またプレーヤが表示部190の斜め方向に位置する場合には、図14(B)に示すように左眼用、右眼用ビューボリュームVVL、VVRが設定され、VVL、VVRの共通領域の形状も変化する。
【0150】
そこで本実施形態では、このような両眼トラッキング手法等に基づくVVL、VVRの共通領域の形状の変化に応じて、図13(A)〜図14(B)に示すように、共通領域の内側描画領域RDの形状を変化させる。そして図4等で説明したように、このようにして形状が設定された内側描画領域RDから外側へと向かう方向において、オブジェクトの表示態様(透明度等)が変化する描画処理を行って、左眼用画像、右眼用画像を生成する。
【0151】
このようにすれば、両眼トラッキング手法等により、左眼用、右眼用ビューボリュームVVL、VVRの位置、方向がリアルタイムに変化した場合にも、その時のVVL、VVRの位置、方向に応じた最適な内側描画領域RDを設定し、図7に示すように画面の左右端においてオブジェクトの表示態様が変化するような左眼用画像、右眼用画像を生成できるようになる。従って、プレーヤの左眼、右眼の位置の変化に応じた左眼用画像、右眼用画像をリアルタイムに生成できると共に、プレーヤの左眼と右眼で画像の見え方が異なってしまうような不自然な画像が生成されるのも防止できるようになる。
【0152】
ビューボリュームの共通領域の形状の変化に応じて内側描画領域RDの形状を変化させる手法としては、例えば、ベジェ曲面、Bスプライン曲面、NURBS曲面などの自由曲面を利用した手法を想定できる。具体的には、内側描画領域RDを自由曲面で形成し、共通領域の頂点を、自由曲面の制御点に設定する。そして自由曲面で形成された内側描画領域RDの形状を、共通領域の頂点を制御点として変形させる。例えば特開2001−218977号公報等に開示されるように、共通領域の頂点である制御点のアフィン変換を行い、アフィン変換後の制御点と、自由曲面(NURBS)のオブジェクトデータが含む係数マトリクス(混ぜ合わせ関数の係数のマトリクス)に基づいて、自由曲面の各点を求める。このようにすれば、特開2001−218977号公報等の公知の自由曲面の手法を利用して、内側描画領域RDの形状を変形させて、左眼用画像、右眼用画像を生成できるようになる。
【0153】
なお、共通領域の形状の変化に応じた内側描画領域の形状の設定手法は、自由曲面を用いた手法には限定されない。例えば共通領域のスケーリング処理により、内側描画領域を設定してもよい。即ち、共通領域のサイズを小さくするスケーリング処理を行って、スケーリング処理後の領域を内側描画領域に設定する。このようにすれば、自由曲面に比べて簡素で負荷の軽い処理で、内側描画領域の設定処理を実現できるようになる。
【0154】
また図13(A)〜図14(B)等では、後述する両眼トラッキングにより左眼用、右眼用の仮想カメラの位置、方向が変化して、共通領域の形状が変化し、その共通領域の形状の変化に応じて内側描画領域RDの形状を変化させる場合について説明したが、本実施形態の手法はこれに限定されない。例えばプレーヤの操作情報やゲーム状況などに応じて共通領域の形状が変化した場合に、その共通領域の形状の変化に応じて内側描画領域RDの形状を変化させてもよい。
【0155】
例えばズームアウト操作やズームイン操作が行われて、図13(A)、図13(B)のように共通領域の形状が変化した場合に、その共通領域の形状の変化に応じて内側描画領域RDの形状を変化させて、図4等で説明したオブジェクトの表示態様の変化処理を行ってもよい。またプレーヤの操作等により変化するゲーム状況により、図14(A)、図14(B)のように共通領域の形状が変化した場合に、その共通領域の形状の変化に応じて内側描画領域RDの形状を変化させて、図4等で説明したオブジェクトの表示態様の変化処理を行ってもよい。なお、ズーミングを行う場合には、ズーミングに連動して左右カメラ間距離の調整を行うこともある。図13(A)、図13(B)では、このカメラ間距離の変更については省略して描いているが、実際にはカメラ間距離の調整を行った上で、それによる左右ビューボリューム(視錐台)の形状変化を反映させて、共通領域の形状を変化させてもよい。
【0156】
2.4 両眼トラッキング
次に本実施形態の両眼トラッキング手法について詳細に説明する。本実施形態では、プレーヤの左眼、右眼の位置情報を取得し、取得された位置情報に基づいて、左眼用、右眼用ビューボリュームを設定して、両眼トラッキングを実現する。例えば通常のヘッドトラッキングでは、頭の位置を検出して仮想カメラの位置、方向を設定するが、本実施形態では、プレーヤの左眼、右眼の位置を検出して、左眼用、右眼用の各ビューボリュームの位置、方向を設定する。
【0157】
この場合に、プレーヤの左眼、右眼の位置の検出手法としては、種々の手法を想定できる。例えば、撮像部(カメラ)によりアイトラッキングを行って、プレーヤの左眼、右眼の位置を検出してもよい。
【0158】
或いは、図15(A)に示すような眼鏡200(広義には装着用部材)を用意し、この眼鏡200に、プレーヤの左眼に対応する左眼用マーカMKLと、右眼に対応する右眼用マーカMKRを設ける。即ち眼鏡200の左眼部分に対応する位置に左眼用マーカMKLを設け、右眼部分に対応する位置に右眼用マーカMKRを設ける。これらの左眼用、右眼用マーカMKL、MKRは、その形状が互いに異なっている。
【0159】
次に、図15(B)に示すように、プレーヤが装着する眼鏡200(認識用部材)を撮像する撮像部162からの撮像情報に基づいて、プレーヤの左眼、右眼の位置情報を取得する。即ち表示部190側からプレーヤを撮像する撮像部162を設ける。そして、この撮像部162によりプレーヤを撮像し、得られた撮像情報に対して画像認識処理を行って、図15(A)の左眼用、右眼用マーカMKL、MKRの形状を認識する。そして、形状認識の結果により、例えば表示部190側から見た場合のプレーヤの左眼、右眼の位置を検出する。
【0160】
次に、検出されたプレーヤの左眼、右眼の位置に基づいて、図13(A)〜図14(B)に示すように左眼用、右眼用仮想カメラVCL、VCRを設定して、左眼用、右眼用ビューボリュームVVL、VVRを設定する。そして図4〜図12(B)等で説明した描画処理を行って、図7に示すような左眼画像、右眼用画像を生成する。このようにすれば、プレーヤの左眼、右眼の位置をトラッキングしてリアルタイムに画像が変化する立体視用画像をプレーヤに提供できるようになる。
【0161】
なお本実施形態の両眼トラッキング手法によれば、頭の位置を検出して画像を生成するヘッドトラッキング手法に比べて、より多様な画像の生成が可能になる。
【0162】
例えば、図14(B)はプレーヤが表示部190の斜め方向に位置する場合の例であるが、この場合の視線方向は、表示部190の画面に直交する方向になっている。
【0163】
これに対して本実施形態の両眼トラッキング手法によれば、図16(B)に示すようにプレーヤの視線方向が表示部190の画面に対して斜め方向である場合でも、それに応じた左眼用、右眼用ビューボリュームVVL、VVRを設定して、左眼用画像、右眼用画像を生成できる。従って、プレーヤが正面方向を向いている場合(図14(B))と斜め方向を向いている場合(図16(A))とで、生成される画像が異なるようになり、プレーヤの動きをよりリアルに反映させた立体視用画像を提供できる。
【0164】
また図16(B)に示すように、表示部190の画面に対して上下方向での視点のシフトについても反映させた画像の生成も可能になる。或いは図17に示すような、プレーヤの左眼と右眼の位置の3次元的なねじれ関係を反映させた画像の生成も可能になる。従って、従来のヘッドトラッキング手法に比べて、プレーヤの眼の動きをより忠実に反映させた立体視用画像の提供が可能になる。なお図17のD1は左眼用、右目用仮想カメラVCL、VCRを右側から見た図であり、D2は上側から見た図である。
【0165】
また本実施形態では、プレーヤの左眼と右眼の間の距離情報を取得し、取得された距離情報に基づいて、左眼用、右眼用仮想カメラの間のカメラ間距離を設定して、左眼用、右眼用ビューボリュームを設定してもよい。
【0166】
具体的には図18に示すように、眼鏡200に、左眼部分と右眼部分の間の距離を調整するための調整機構210を設ける。調整機構210としては、調整ネジを用いた機構や、スライド部材を用いた機構などを採用できる。このような調整機構210を用いた調整により、左眼部分と右眼部分の間の距離が変化すると、眼鏡200の左眼部分に設けられた左用マーカMKLと、右眼部分に設けられた右眼用マーカMKRの間の距離も変化する。このため、図15(B)の撮像部162の撮像画像においても、左眼用マーカMKLと右眼用マーカMKRの間の距離が変化する。従って、左眼用マーカMKLと右眼用マーカMKRの撮像情報に基づいて、プレーヤの左眼と右眼の間の距離情報を取得できる。
【0167】
そして図19(A)、図19(B)に示すように、取得された距離情報に基づいて、左眼用、右眼用仮想カメラVCL、VCRの間のカメラ間距離DCを設定して、左眼用、右眼用ビューボリュームVVL、VVRを設定する。例えば図19(A)では、プレーヤの左眼と右眼の間の距離が狭いことが検知されたため、左眼用、右眼用仮想カメラVCL、VCRのカメラ間距離DCも狭い距離に設定される。また図19(B)では、プレーヤの左眼と右眼の間の距離が広いことが検知されたため、左眼用、右眼用仮想カメラVCL、VCRのカメラ間距離DCも広い距離に設定される。
【0168】
このようにすれば、例えば両眼間隔が狭いと考えられる子供がプレイしている場合には、例えば図19(A)に示すように左眼用、右眼用ビューボリュームVVL、VVRが設定されて、立体視用画像が生成される。一方、両眼間隔が子供よりも広いと考えられる大人がプレイしている場合には、例えば図19(B)に示すように左眼用、右眼用ビューボリュームVVL、VVRが設定されて、立体視用画像が生成される。従って、両眼間隔についてのプレーヤの個人差を反映させることが可能になり、各個人に適したカメラ間距離での立体視用画像を提供できるようになる。
【0169】
なお、図15(A)、図18では、プレーヤが装着する認識用部材が眼鏡200である場合を例にとり説明したが、本実施形態の認識用部材はこれに限定されず、少なくともプレーヤの左眼と右眼の位置を認識できるような部材であれば、種々の変形実施が可能である。但し、眼鏡タイプのものであれば、立体視を実現するための前述の液晶シャッター付きの眼鏡により併用できるという利点がある。また、図15(A)、図18に示すような左眼用、右眼用マーカMKL、MKRを使用せずに、プレーヤの左眼、右眼の位置情報を、撮像部162等を用いたアイトラッキングにより直接に検出するようにしてもよい。
【0170】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(認識用部材、第1視点画像、第2視点画像、第1視点用ビューボリューム、第2視点用ビューボリューム、第1視点、第2視点等)と共に記載された用語(眼鏡、左眼用画像、右眼用画像、左眼用ビューボリューム、右眼用ビューボリューム、左眼用仮想カメラ、右眼用仮想カメラ等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、ビューボリュームの設定処理、オブジェクトの描画処理、内側描画領域の設定処理等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【0171】
また本実施形態の手法は、例えば特開2004−178581号公報に記載されるような立体視用画像生成手法にも適用可能である。この画像生成手法では、例えば、図20(A)に示すように、左眼用仮想カメラVCLからのビューボリュームVVLによって左眼用画像を作成し、右眼用仮想カメラVCRからのビューボリュームVVRによって右眼用画像を作成する。そしてこれらの左眼用画像と右目用画像により立体視が実現され、プレーヤは、図20(B)に示すような左眼視点VPL、右眼視点VPRで立体視用画像を鑑賞する。これにより、ピント調整や奥行き感の矛盾が少なく、より自然な立体視を実現できるようになる。
【0172】
図20(A)のような立体視用画像生成手法においても、本実施形態の手法を適用して、左眼用、右眼用ビューボリュームVVL、VVRの共通領域の内側描画領域から外側に向かう方向で、オブジェクトの表示態様が変化するように左眼用画像、右目用画像を生成すればよい。この場合に、図13(A)の通常の手法と図20(A)の手法を動的に切り替えるようにしてもよい。例えばプレーヤの視線が画面に対して垂直になるようなモードでは、図13(A)の手法で立体視用画像を生成し、プレーヤの視線が図20(B)に示すように画面に対して斜め方向になるようなモードでは、図20(A)の手法で立体視用画像を生成すればよい。これらは、瞬時に切り替えてもよいし、カメラが徐々に移動するように、連続的に変化させていってもよい。
【0173】
また以上では、二眼式立体視への適用例について説明したが、本実施形態の手法は、多眼式立体視や空間像方式立体視等にも適用可能である。多眼式立体視は、離散的な多視点の立体視方式であり、プレーヤ(観者)の任意の視点での立体視を可能にする。例えば複数の視点画像(視差画像)を用意し、これらの複数の視点画像のうちプレーヤの視点位置に対応する視点画像がプレーヤの左眼、右眼に見えるようにすることとで、任意の視点での立体視を可能にする。このような多眼式立体視としては、例えばパララックスバリアやレンティキュラーレンズなどの光学素子を用いた立体視方式などがある。また空間像方式立体視は、特定の視点を想定しない、すなわち、離散的ではない連続的な視点での立体視を可能にする立体視方式である。空間像方式立体視としては、例えばフラクショナル・ビュー方式、インテグラルイメージング方式、超多眼方式などの立体視方式が知られている。
【0174】
例えば図21は、多眼式立体視等に本実施形態の手法を適用した場合の例である。例えば多眼式立体視の場合には、想定される複数の視点V1〜VNのうち、最も左側の視点V1を第1視点とし、最も右側の視点VNを第2視点とすることができる。従って、第1視点V1用のビューボリュームVV1と第2視点V2用のビューボリュームVV2の共通領域(共通フレーム領域)は、図21で太線で囲まれた領域RC(非フレームバイオレーション領域)になる。
【0175】
従って、この場合には、ビューボリュームVV1とVV2の共通領域RCの内側描画領域RDから外側へと向かう方向で、オブジェクトの表示態様が変化する描画処理を行って、立体視用画像(第1視点画像、第2視点画像)を生成する。こうすることで、多眼式立体視を採用した場合にも、立体視においてプレーヤが感じる不自然さを軽減することが可能になる。これは、多眼式立体視のみならず空間像方式立体視の場合も同様である。ただし、これらの方式で、同時に表示される観察領域(回り込み範囲)が広い場合、共通領域(非フレームバイオレーション領域)が非常に狭くなってしまうことが懸念される。その場合にはもちろん、より内側の2つの視点(例えば、画面の真正面にプレーヤが位置したと仮定した場合の両眼の位置等)を第1、第2視点V1、V2としてもよい。
【0176】
或いは、前述のようにアイトラッキング等によりプレーヤの視点と画面との位置関係情報を検出できる場合には、この位置関係情報に基づいて視点を選択し、オブジェクトの表示態様を変化させる描画処理を行ってもよい。
【0177】
例えば図22では、表示部の画面とプレーヤ(観者)との位置関係情報が取得され、取得された位置関係情報に基づいて、多眼式立体視や空間像方式立体視においてプレーヤの左眼、右眼に対応する第1視点Vi、第2視点Vjが選択されている。この第1視点Viから見える第1視点画像と第2視点Vjから見える第2視点画像が、プレーヤの両眼に見えるべき立体視用画像として生成される。
【0178】
そして図22では、このような位置関係情報に基づき選択された第1視点Vi用ビューボリュームVV1と、位置関係情報に基づき選択された第2視点Vj用ビューボリュームVV2との共通領域RCの内側描画領域RDから外側へと向かう方向で、オブジェクトの表示態様が変化する描画処理を行って、立体視用画像を生成する。
【0179】
こうすることで、多眼式立体視や空間像方式立体視において、プレーヤの視点位置に対応した最適な共通領域RCを設定し、共通領域RCの内側描画領域RDから外側へと向かう方向で、オブジェクトの表示態様が変化する立体視用画像を生成することが可能になる。従って、多眼式立体視や空間像方式立体視において最適なオブジェクトの立体視表示が可能になる。
【0180】
なお、多眼式立体視や空間像方式立体視での視点選択のためのアイトラッキングとして、図18〜図20(B)では、プレーヤの左眼、右眼の位置情報を取得する手法を説明したが、本実施形態はこれに限定されるものではない。例えば通常のヘッドトラッキングにより頭の位置を検出して、視点選択を行ってもよい。また、アイトラッキングの手法も図18〜図20(B)の手法には限定されず、例えば、撮像部(カメラ)により通常のアイトラッキングを行って、プレーヤの左眼、右眼の位置を検出してもよい。
【符号の説明】
【0181】
VCL 左眼用仮想カメラ、VCR 右眼用仮想カメラ、SC スクリーン、
VVL 左眼用ビューボリューム、VVR 右眼用ビューボリューム、
CNL、CNR、CFL、CFR、CL1〜CL4 クリッピング面、
OB、OB1〜OB4 オブジェクト、IML 左眼用画像、IMR 右眼用画像、
MKL 左眼用マーカ、MKR 右眼用マーカ、
100 処理部、102 ゲーム演算部、104 オブジェクト空間設定部、
106 移動体演算部、108 仮想カメラ制御部(視点制御部)、
110 情報取得部、112 領域設定部、114 視点選択部、120 画像生成部、
122 頂点処理部、124 ピクセル処理部、130 音生成部、
160 操作部、161 ゲームコントローラ、162 撮像部、
170 記憶部、172 オブジェクトデータ記憶部、174 撮像情報記憶部、
178 描画バッファ、180 情報記憶媒体、190 表示部、192 音出力部、
194 補助記憶装置、196 通信部、
200 眼鏡(認識用部材)、210 調整機構

【特許請求の範囲】
【請求項1】
複数のオブジェクトが配置されるオブジェクト空間の設定処理を行うオブジェクト空間設定部と、
前記オブジェクト空間において立体視における第1視点から見える第1視点画像と、前記オブジェクト空間において立体視における第2視点から見える第2視点画像を生成する画像生成部として、
コンピュータを機能させ、
前記画像生成部は、
前記第1視点に対応する第1視点用ビューボリュームと前記第2視点に対応する第2視点用ビューボリュームとの共通領域の内側描画領域から、前記内側描画領域の外側へと向かう方向で、オブジェクトの表示態様が変化する描画処理を行って、前記第1視点画像、前記第2視点画像を生成することを特徴とするプログラム。
【請求項2】
請求項1において、
前記画像生成部は、
前記内側描画領域から前記内側描画領域の外側へと向かう方向で、オブジェクトが徐々に透明に近づく描画処理を行って、前記第1視点画像、前記第2視点画像を生成することを特徴とするプログラム。
【請求項3】
請求項1において、
前記画像生成部は、
前記内側描画領域から前記内側描画領域の外側へと向かう方向で、オブジェクトが徐々にデフォーカスされる描画処理を行って、前記第1視点画像、前記第2視点画像を生成することを特徴とするプログラム。
【請求項4】
請求項1において、
前記画像生成部は、
前記内側描画領域から前記内側描画領域の外側へと向かう方向で、オブジェクトの色が徐々にターゲット色に近づく描画処理を行って、前記第1視点画像、前記第2視点画像を生成することを特徴とするプログラム。
【請求項5】
請求項4において、
画像が表示される表示部の画面の、プレーヤ側から見た場合の周囲の色情報を取得する情報取得部として、
コンピュータを機能させ、
前記画像生成部は、
取得された前記色情報に基づいて、前記ターゲット色を設定することを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記画像生成部は、
前記共通領域の前記内側描画領域から、前記共通領域のクリッピング面に近づくにつれて、オブジェクトの表示態様が徐々に変化する描画処理を行って、前記第1視点画像、前記第2視点画像を生成することを特徴とするプログラム。
【請求項7】
請求項1において、
前記画像生成部は、
前記第1視点用ビューボリュームにおけるオブジェクトの頂点のスクリーン上での位置である第1視点側頂点スクリーン位置と、前記第2視点用ビューボリュームにおけるオブジェクトの頂点の前記スクリーン上での位置である第2視点側頂点スクリーン位置とを求め、求められた前記第1視点側頂点スクリーン位置、前記第2視点側頂点スクリーン位置に基づいて、オブジェクトの表示態様を変化させる描画処理を行って、前記第1視点画像、前記第2視点画像を生成することを特徴とするプログラム。
【請求項8】
請求項7において、
前記画像生成部は、
前記第1視点側頂点スクリーン位置と前記スクリーンの前記左右端辺との距離に応じて設定される第1のα値と、前記第2視点側頂点スクリーン位置と前記スクリーンの前記左右端辺との距離に応じて設定される第2のα値とを求め、前記第1、第2のα値に基づいて、オブジェクトの頂点のα値を設定して、前記第1視点画像、前記第2視点画像を生成することを特徴とするプログラム。
【請求項9】
請求項1において、
前記第1視点用ビューボリュームと前記第2視点用ビューボリュームとの前記共通領域の内側に前記内側描画領域を設定する領域設定部として、
コンピュータを機能させ、
前記領域設定部は、
前記共通領域の形状に変化に応じて前記内側描画領域の形状を変化させることを特徴とするプログラム。
【請求項10】
請求項9において、
前記領域設定部は、
自由曲面で形成された前記内側描画領域の形状を、前記共通領域の頂点を制御点として変形させることを特徴とするプログラム。
【請求項11】
請求項1乃至10のいずれかにおいて、
プレーヤの左眼、右眼の位置情報を取得する情報取得部と、
視点制御部として、
コンピュータを機能させ、
前記視点制御部は、
取得された前記位置情報に基づいて、前記第1視点用ビューボリューム、前記第2視点用ビューボリュームを設定することを特徴とするプログラム。
【請求項12】
請求項11において、
前記プレーヤが装着する認識用部材には、前記プレーヤの左眼に対応する左眼用マーカと、前記プレーヤの右眼に対応する右眼用マーカとが設けられ、
前記情報取得部は、
前記プレーヤが装着する認識用部材を撮像する撮像部からの撮像情報に基づいて、前記プレーヤの左眼、右眼の前記位置情報を取得することを特徴とするプログラム。
【請求項13】
請求項11又は12において、
前記情報取得部は、
前記プレーヤの左眼と右眼の間の距離情報を取得し、
前記視点制御部は、
取得された前記距離情報に基づいて、前記第1視点と前記第2視点の間の視点間距離を設定して、前記第1視点用ビューボリューム、前記第2視点用ビューボリュームを設定することを特徴とするプログラム。
【請求項14】
請求項13において、
前記認識用部材は、左眼部分と右眼部分の間の距離を調整するための調整機構を有する眼鏡であり、
前記情報取得部は、
前記眼鏡の前記左眼部分に設けられた左眼用マーカと前記右眼部分に設けられた右眼用マーカの撮像情報に基づいて、前記プレーヤの左眼と右眼の間の距離情報を取得することを特徴とするプログラム。
【請求項15】
複数のオブジェクトが配置されるオブジェクト空間の設定処理を行うオブジェクト空間設定部と、
前記オブジェクト空間において立体視における第1視点から見える第1視点画像と、前記オブジェクト空間において立体視における第2視点から見える第2視点画像を生成する画像生成部として、
コンピュータを機能させ、
前記画像生成部は、
オブジェクトが透視投影されるスクリーンの左右端辺側に近づくにつれて、オブジェクトの表示態様が変化する描画処理を行って、前記第1視点画像、前記第2視点画像を生成することを特徴とするプログラム。
【請求項16】
請求項15において、
前記画像生成部は、
前記第1視点に対応する第1視点用ビューボリュームにおけるオブジェクトの頂点のスクリーン上での位置である第1視点側頂点スクリーン位置と、前記第2視点に対応する第2視点用ビューボリュームにおけるオブジェクトの頂点の前記スクリーン上での位置である第2視点側頂点スクリーン位置とを求め、求められた前記第1視点側頂点スクリーン位置、前記第2視点側頂点スクリーン位置に基づいて、オブジェクトの表示態様を変化させる描画処理を行って、前記第1視点画像、前記第2視点画像を生成することを特徴とするプログラム。
【請求項17】
請求項1乃至16のいずれかにおいて、
前記第1視点、前記第2視点は、二眼式立体視における左眼側仮想カメラ、右眼側仮想カメラの視点であることを特徴とするプログラム。
【請求項18】
請求項1乃至16のいずれかにおいて、
前記第1視点、前記第2視点は、多眼式立体視における視点群のうちの2つの視点、又は空間像方式立体視における設定観察範囲内の任意の2視点であることを特徴とするプログラム。
【請求項19】
請求項18において、
表示部の画面とプレーヤとの位置関係情報を取得する情報取得部と、
取得された前記位置関係情報に基づいて、前記多眼式立体視又は前記空間像方式立体視における前記第1視点と前記第2視点を選択する視点選択部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項20】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至19のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項21】
複数のオブジェクトが配置されるオブジェクト空間の設定処理を行うオブジェクト空間設定部と、
前記オブジェクト空間において立体視における第1視点から見える第1視点画像と、前記オブジェクト空間において立体視における第2視点から見える第2視点画像を生成する画像生成部とを含み、
前記画像生成部は、
前記第1視点に対応する第1視点用ビューボリュームと前記第2視点に対応する第2視点用ビューボリュームとの共通領域の内側描画領域から、前記内側描画領域の外側へと向かう方向で、オブジェクトの表示態様が変化する描画処理を行って、前記第1視点画像、前記第2視点画像を生成することを特徴とする画像生成システム。
【請求項22】
複数のオブジェクトが配置されるオブジェクト空間の設定処理を行うオブジェクト空間設定部と、
前記オブジェクト空間において立体視における第1視点から見える第1視点画像と、前記オブジェクト空間において立体視における第2視点から見える第2視点画像を生成する画像生成部とを含み、
前記画像生成部は、
オブジェクトが透視投影されるスクリーンの左右端辺側に近づくにつれて、オブジェクトの表示態様が変化する描画処理を行って、前記第1視点画像、前記第2視点画像を生成することを特徴とする画像生成システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−79291(P2012−79291A)
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願番号】特願2011−170080(P2011−170080)
【出願日】平成23年8月3日(2011.8.3)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】