(57)【特許請求の範囲】
【請求項１】
オブジェクトが配置された仮想現実空間を立体的に表示するための方法をコンピュータに実行させるプログラムであって、前記方法は、
仮想現実空間における右眼及び左眼のうちの一方及び他方にそれぞれ対応する第１の仮想カメラ及び第２の仮想カメラとオブジェクトとの間の距離を求めるステップと、
前記仮想現実空間における前記第１の仮想カメラから見た前記オブジェクトの第一眼用画像を生成するステップと、
前記距離が所定の閾値以下である場合、前記第２の仮想カメラから見た前記オブジェクトの第二眼用画像を生成するステップと、
前記距離が前記所定の閾値を超える場合、前記第一眼用画像をコピーして第二眼用画像を生成するステップと、
前記第一眼用画像を第一眼用表示部に出力し、前記第二眼用画像を第二眼用表示部に出力するステップと
を含むプログラム。
【請求項２】
オブジェクトが配置された仮想現実空間を立体的に表示するための方法をコンピュータに実行させるプログラムであって、前記方法は、
仮想現実空間における右眼及び左眼のうちの一方及び他方にそれぞれ対応する第１の仮想カメラ及び第２の仮想カメラから見たオブジェクトの輻輳角を求めるステップと、
前記仮想現実空間における前記第１の仮想カメラから見た前記オブジェクトの第一眼用画像を生成するステップと、
前記輻輳角が所定の閾値を超える場合、前記第２の仮想カメラから見た前記オブジェクトの第二眼用画像を生成するステップと、
前記輻輳角が前記所定の閾値以下である場合、前記第一眼用画像をコピーして第二眼用画像を生成するステップと、
前記第一眼用画像を第一眼用表示部に出力し、前記第二眼用画像を第二眼用表示部に出力するステップと
を含むプログラム。
【請求項３】
オブジェクトが配置された仮想現実空間を立体的に表示するための方法をコンピュータに実行させるプログラムであって、前記方法は、
仮想現実空間における右眼及び左眼のうちの一方及び他方にそれぞれ対応する第１の仮想カメラ及び第２の仮想カメラから見たオブジェクトの視差を求めるステップと、
前記仮想現実空間における前記第１の仮想カメラから見た前記オブジェクトの第一眼用画像を生成するステップと、
前記視差が所定の閾値を超える場合、前記第２の仮想カメラから見た前記オブジェクトの第二眼用画像を生成するステップと、
前記視差が前記所定の閾値以下である場合、前記第一眼用画像をコピーして第二眼用画像を生成するステップと、
前記第一眼用画像を第一眼用表示部に出力し、前記第二眼用画像を第二眼用表示部に出力するステップと
を含むプログラム。
【請求項４】
前記方法は、前記コンピュータのプロセッサの使用率に応じて前記所定の閾値を決定するステップをさらに含む請求項１乃至３のいずれか１項に記載のプログラム。
【請求項５】
前記方法は、前記第一眼用表示部及び前記第二眼用表示部における画像表示のフレームレートに応じて前記所定の閾値を決定するステップをさらに含む請求項１乃至３のいずれか１項に記載のプログラム。
【請求項６】
複数のオブジェクトが前記仮想現実空間に配置され、
前記複数のオブジェクトについて生成された複数の第一眼用画像が１つの画像として前記第一眼用表示部に表示され、
前記複数のオブジェクトについて生成された複数の第二眼用画像が１つの画像として前記第二眼用表示部に表示される請求項１乃至５のいずれか１項に記載のプログラム。
【請求項７】
前記コンピュータはヘッドマウントディスプレイシステムを構成する請求項１乃至６のいずれか１項に記載のプログラム。
【請求項８】
プロセッサを含み、請求項１乃至７のいずれか１項に記載のプログラムが前記プロセッサに実行されることにより、前記方法が実行されるコンピュータ。
【請求項９】
請求項８に記載のコンピュータを備えるヘッドマウントディスプレイシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想現実空間を立体的に表示するためのプログラム、コンピュータ及びヘッドマウントディスプレイシステムに関する。
【背景技術】
【０００２】
従来、三次元（ｔｈｒｅｅ−ｄｉｍｅｎｓｉｏｎａｌ、以下「３Ｄ」と称する）画像を立体的に表示するために、視差を有する別々の画像を左右の眼に見せる画像表示装置が提案されている。
例えば、特許文献１には、両眼の視線がなす角度、すなわち輻輳角の相違による立体視機能を使用することにより、物体の奥行きを視覚的に感じさせる画像表示装置が開示されている。  しかしながら、特許文献１に記載の技術によれば、左眼及び右眼に見せるための画像を常に生成する必要がある。したがって、描画のためにコンピュータにかかる負荷が大きい。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−０９５０１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、仮想現実空間を立体的に表示する際にコンピュータにかかる負荷を低減することを目的とする。
【課題を解決するための手段】
【０００５】
上記の課題を解決するために、本発明の実施形態は、オブジェクトが配置された仮想現実空間を立体的に表示するための方法をコンピュータに実行させるプログラムであって、前記方法は、仮想現実空間における右眼及び左眼のうちの一方及び他方にそれぞれ対応する第１の仮想カメラ及び第２の仮想カメラとオブジェクトとの間の距離を求めるステップと、前記仮想現実空間における前記第１の仮想カメラから見た前記オブジェクトの第一眼用画像を生成するステップと、前記距離が所定の閾値以下である場合、前記第２の仮想カメラから見た前記オブジェクトの第二眼用画像を生成するステップと、前記距離が前記所定の閾値を超える場合、前記第一眼用画像をコピーして第二眼用画像を生成するステップと、前記第一眼用画像を第一眼用表示部に出力し、前記第二眼用画像を第二眼用表示部に出力するステップとを含むプログラムを提供する。
【発明の効果】
【０００６】
本発明によれば、仮想現実空間を立体的に表示する際にコンピュータにかかる負荷を低減することができる。
本発明のその他の特徴及び利点は、後述する実施形態の説明、添付の図面及び特許請求の範囲の記載から明らかなものとなる。
【図面の簡単な説明】
【０００７】
【図１】図１は、立体視を得る原理を説明する図である。
【図２】図２は、立体視を得る原理を説明する図である。
【図３】図３は、本発明の一実施形態による、仮想現実空間を立体的に表示するためのコンピュータを備えるシステムのハードウェア構成を示す。
【図４】図４は、本発明の一実施形態によるコンピュータの構成を詳細に示すブロック図である。
【図５】図５は、本発明の実施形態のプログラムにより実現される、仮想現実空間を立体的に表示する処理のフロー図である。
【図６】図６は、仮想現実空間内の視野の一例を示す。
【図７】図７は、仮想現実空間内の視野の一例を示す。
【図８】図８は、本発明の実施形態のプログラムにより実現される、仮想現実空間を立体的に表示する処理のフロー図である。
【図９】図９は、本発明の実施形態のプログラムにより実現される、仮想現実空間を立体的に表示する処理のフロー図である。
【発明を実施するための形態】
【０００８】
［本発明の実施形態の説明］
最初に、本発明の実施形態の内容を列記して説明する。本発明の実施形態によるコンピュータ・プログラムは、以下のような構成を備える。
【０００９】
（項目１）
オブジェクトが配置された仮想現実空間を立体的に表示するための方法をコンピュータに実行させるプログラムであって、前記方法は、
仮想現実空間における右眼及び左眼のうちの一方及び他方にそれぞれ対応する第１の仮想カメラ及び第２の仮想カメラとオブジェクトとの間の距離を求めるステップと、
前記仮想現実空間における前記第１の仮想カメラから見た前記オブジェクトの第一眼用画像を生成するステップと、
前記距離が所定の閾値以下である場合、前記第２の仮想カメラから見た前記オブジェクトの第二眼用画像を生成するステップと、
前記距離が前記所定の閾値を超える場合、前記第一眼用画像をコピーして第二眼用画像を生成するステップと、
前記第一眼用画像を第一眼用表示部に出力し、前記第二眼用画像を第二眼用表示部に出力するステップと
を含むプログラム。
【００１０】
本項目のプログラムによれば、仮想現実空間を立体的に表示する際にコンピュータにかかる負荷を低減することができる。
（項目２）
オブジェクトが配置された仮想現実空間を立体的に表示するための方法をコンピュータに実行させるプログラムであって、前記方法は、
仮想現実空間における右眼及び左眼のうちの一方及び他方にそれぞれ対応する第１の仮想カメラ及び第２の仮想カメラから見たオブジェクトの輻輳角を求めるステップと、
前記仮想現実空間における前記第１の仮想カメラから見た前記オブジェクトの第一眼用画像を生成するステップと、
前記輻輳角が所定の閾値を超える場合、前記第２の仮想カメラから見た前記オブジェクトの第二眼用画像を生成するステップと、
前記輻輳角が前記所定の閾値以下である場合、前記第一眼用画像をコピーして第二眼用画像を生成するステップと、
前記第一眼用画像を第一眼用表示部に出力し、前記第二眼用画像を第二眼用表示部に出力するステップと
を含むプログラム。
【００１１】
本項目のプログラムによれば、仮想現実空間を立体的に表示する際にコンピュータにかかる負荷を低減することができる。
（項目３）
オブジェクトが配置された仮想現実空間を立体的に表示するための方法をコンピュータに実行させるプログラムであって、前記方法は、
仮想現実空間における右眼及び左眼のうちの一方及び他方にそれぞれ対応する第１の仮想カメラ及び第２の仮想カメラから見たオブジェクトの視差を求めるステップと、
前記仮想現実空間における前記第１の仮想カメラから見た前記オブジェクトの第一眼用画像を生成するステップと、
前記視差が所定の閾値を超える場合、前記第２の仮想カメラから見た前記オブジェクトの第二眼用画像を生成するステップと、
前記視差が前記所定の閾値以下である場合、前記第一眼用画像をコピーして第二眼用画像を生成するステップと、
前記第一眼用画像を第一眼用表示部に出力し、前記第二眼用画像を第二眼用表示部に出力するステップと
を含むプログラム。
【００１２】
本項目のプログラムによれば、仮想現実空間を立体的に表示する際にコンピュータにかかる負荷を低減することができる。
（項目４）
前記方法は、前記コンピュータのプロセッサの使用率に応じて前記所定の閾値を決定するステップをさらに含む項目１乃至３のいずれか１項に記載のプログラム。
【００１３】
本項目のプログラムによれば、プロセッサの使用率を考慮して前記所定の閾値を変化させることができる。
（項目５）
前記方法は、前記第一眼用表示部及び前記第二眼用表示部における画像表示のフレームレートに応じて前記所定の閾値を決定するステップをさらに含む項目１乃至３のいずれか１項に記載のプログラム。
【００１４】
本項目のプログラムによれば、画像表示のフレームレートを考慮して前記所定の閾値を変化させることができる。
（項目６）
複数のオブジェクトが前記仮想現実空間に配置され、
前記複数のオブジェクトについて生成された複数の第一眼用画像が１つの画像として前記第一眼用表示部に表示され、
前記複数のオブジェクトについて生成された複数の第二眼用画像が１つの画像として前記第二眼用表示部に表示される項目１乃至５のいずれか１項に記載のプログラム。
【００１５】
本項目のプログラムによれば、複数のオブジェクトが配置された仮想現実空間を立体的に表示する際にコンピュータにかかる負荷を低減することができる。
（項目７）
前記コンピュータはヘッドマウントディスプレイシステムを構成する項目１乃至６のいずれか１項に記載のプログラム。
【００１６】
本項目のプログラムによれば、仮想現実空間を立体的に表示する際にコンピュータにかかる負荷を低減することができるヘッドマウントディスプレイシステムを実現できる。
（項目８）
プロセッサを含み、項目１乃至７のいずれか１項に記載のプログラムが前記プロセッサに実行されることにより、前記方法が実行されるコンピュータ。
【００１７】
本項目のコンピュータによれば、仮想現実空間を立体的に表示する際にコンピュータにかかる負荷を低減することができる。
（項目９）
項目８に記載のコンピュータを備えるヘッドマウントディスプレイシステム。
【００１８】
本項目によれば、仮想現実空間を立体的に表示する際にコンピュータにかかる負荷を低減することができるヘッドマウントディスプレイシステムを実現できる。
［本発明の実施形態の詳細］
以下、図面を参照して、本発明の実施形態について説明する。
【００１９】
図１は、立体視を得る原理を説明する図である。右眼１０２及び左眼１０３が、正面に配置された物体１０１を見ている。右眼１０２及び左眼１０３は、物体１０１を見るために、それぞれ角度θ１及びθ２だけ内側に回転する。物体１０１までの距離が近くなるにつれて、θ１及びθ２の和であるθは大きくなる。物体１０１までの距離が遠くなるにつれて、θは小さくなる。このθは輻輳角（ｂｉｎｏｃｕｌａｒ  ｐａｒａｌｌａｘ）と呼ばれる。
【００２０】
図２もまた、立体視を得る原理を説明する図である。図１と同様に、右眼１０２及び左眼１０３が物体１０１を見ている。物体１０１と右眼１０２との間の位置関係と、物体１０１と左眼１０３との間の位置関係は異なる。したがって、図示されるように、右眼１０２が見ている物体１０１の画像２０１は、左眼１０３が見ている画像２０２とは異なる。このような右眼及び左眼が見ている画像の相違は、両眼視差（ｂｉｎｏｃｕｌａｒ  ｄｉｓｐａｒｉｔｙ）と呼ばれる。物体１０１までの距離が近くなるにつれて、両眼視差は大きくなる。物体１０１までの距離が遠くなるにつれて、両眼視差は小さくなる。
【００２１】
現実空間において、人間は、主にこれら２つの原理によって立体視を得ているといわれている。
これに対し、立体テレビなどの３Ｄ表示装置には、右眼用のディスプレイと左眼用のディスプレイが設けられている。このような装置は、それぞれのディスプレイに表示される画像に対して輻輳角や両眼視差に相当する相違を与えることにより、立体視の効果を得る。
【００２２】
図３は、本発明の一実施形態による、仮想現実空間を立体的に表示するためのコンピュータを備えるヘッドマウントディスプレイ（Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ、以下「ＨＭＤ」と称する）システム３００のハードウェア構成を示す。ＨＭＤシステム３００は、ＨＭＤ３０２と、画像生成装置として機能するコンピュータ３０４とを備える。ＨＭＤ３０２及びコンピュータ３０４は、例えば、有線ケーブル３０６によって電気的に接続され、相互に通信可能である。有線ケーブル３０６に代えて無線接続が用いられてもよい。
【００２３】
ＨＭＤ３０２は、ユーザ３０８の頭に装着されて利用される表示デバイスである。ＨＭＤ３０２は、表示部３１０と、アイトラッキングデバイス（Ｅｙｅ  Ｔｒａｃｋｉｎｇ  Ｄｅｖｉｃｅ、以下「ＥＴＤ」と称する）３１２と、センサ３１４とを備える。ＥＴＤ３１２及びセンサ３１４は、どちらか一方だけが択一的に設けられてもよい。図示しないが、ＨＭＤ３０２は、スピーカ、ヘッドホン、カメラなどをさらに備えてもよい。
【００２４】
表示部３１０は、右眼及び左眼のうちの一方及び他方にそれぞれ対応する第一眼用表示部及び第二眼用表示部を含む。図３には左眼に対応する表示部のみが示されている。右眼及び左眼に対応する表示部をそれぞれ第一眼用表示部及び第二眼用表示部と呼んでもよいし、その逆であってもよい。表示部３１０は、ＨＭＤ３０２を装着したユーザ３０８の視界に画像を提示するように構成される。例えば、表示部３１０は、非透過型ディスプレイとして構成することができる。この場合、ＨＭＤ３０２の外界の光景はユーザ３０８の視界から遮断され、ユーザ３０８の目には表示部３１０に映し出された画像だけが届けられる。表示部３１０には、例えば、コンピュータグラフィックスを用いて生成した画像が表示される。コンピュータグラフィックスによる画像の一例は、仮想現実空間（例えばコンピュータゲームで作り出される世界）を画像化した仮想現実画像である。
【００２５】
ＥＴＤ３１２は、ユーザ３０８の眼球の動きを追跡して、ユーザ３０８の視線がどちらの方向に向けられているかを検出するように構成される。例えば、ＥＴＤ３１２は、赤外線光源と赤外線カメラとを備える。赤外線光源は、ＨＭＤ３０２を装着したユーザ３０８の目に向けて赤外線を照射する。赤外線カメラは、赤外線で照射されたユーザ３０８の目の画像を撮像する。赤外線はユーザ３０８の目の表面で反射されるが、瞳と瞳以外の部分とで赤外線の反射率が異なる。赤外線カメラで撮像されたユーザ３０８の目の画像には、赤外線の反射率の違いが画像の明暗となって現れる。この明暗に基づいて、ユーザ３０８の目の画像において瞳が識別される。更に、識別された瞳の位置に基づいて、ユーザ３０８の視線の方向が検出される。
【００２６】
センサ３１４は、ＨＭＤ３０２を装着したユーザ３０８の頭がどちらの方向を向いているかを検知するように構成される。センサ３１４の例は、例えば、磁気センサ、角速度センサ、若しくは加速度センサのいずれか、又はこれらの組み合わせを含んでもよい。センサ３１４が磁気センサ、角速度センサ又は加速度センサである場合、センサ３１４はＨＭＤ３０２に内蔵されて、ＨＭＤ３０２の向きや動きに応じた値（磁気、角速度、又は加速度の値）を出力する。センサ３１４からの出力値を適宜の方法で加工することで、ＨＭＤ３０２を装着したユーザ３０８の頭の向きが算出される。ユーザ３０８の頭の向きは、ユーザ３０８が頭を動かした際にその動きに追従するように表示部３１０の表示画像を変化させるのに利用することができる。例えば、ユーザ３０８が頭を右（又は左、上、下）に向けると、表示部３１０には、仮想現実空間においてユーザの右（又は左、上、下）方向にある仮想的光景が映し出される。
【００２７】
なお、センサ３１４は、ＨＭＤ３０２の外部に設けられたセンサであってもよい。例えば、センサ３１４は、ＨＭＤ３０２とは別個の赤外線センサであってもよい。この赤外線センサを用いてＨＭＤ３０２の表面に設けられた赤外線反射マーカーを検知することにより、ＨＭＤ３０２を装着したユーザ３０８の頭の向きを特定することができる。
【００２８】
コンピュータ３０４は、ＨＭＤ３０２に表示される画像を生成するための画像生成装置として機能し得る。コンピュータ３０４は、少なくとも、処理部３１６と、記憶部３１８と、ユーザ入力インターフェイス３２０とを備える。コンピュータ３０４はまた、その他のコンポーネントとして、例えば、ネットワークを介して他のコンピュータと通信するためのネットワークインターフェイス（図示せず）を備えてもよい。コンピュータ３０４の例は、パーソナルコンピュータ、ゲームコンソール、スマートフォン、タブレット端末などを含むが、これらに限定されない。
【００２９】
記憶部３１８は、少なくとも、仮想現実空間データ及び本発明の実施例によるプログラムを格納する。当該プログラムの動作については後述する。記憶部３１８はまた、コンピュータ３０４の動作によって生成されるデータを一時的又は永続的に格納することができる。記憶部３１８の例は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ハードディスク、フラッシュメモリ、光ディスクなどを含むが、これらに限定されない。
【００３０】
処理部３１６は、記憶部３１８に格納されているプログラムを読み出して、それに従った処理を実行するように構成されるプロセッサである。処理部３１６が当該プログラムを実行することによって、後述する画像生成処理が実現される。処理部３１６は、中央演算処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、以下「ＣＰＵ」と称する）及びグラフィックス処理ユニット（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、以下「ＧＰＵ」と称する）を含んでもよい。
【００３１】
ユーザ入力インターフェイス３２０は、ＨＭＤシステム３００のユーザ３０８から入力を受け取るように構成される。ユーザ入力インターフェイス３２０の例は、ゲームコントローラ、タッチパッド、マウス、キーボードなどを含むが、これらに限定されない。
【００３２】
図４は、本発明の一実施形態によるコンピュータ３０４の構成を詳細に示すブロック図である。図３に関して説明したように、コンピュータ３０４は記憶部３１８及び処理部３１６を備える。記憶部３１８は、仮想現実空間データ３２２及びフレームバッファ３２４を有する。仮想現実空間データ３２２は、仮想現実空間中のオブジェクトの位置や形状などの様々な情報を含む。本明細書及び特許請求の範囲において、「オブジェクト」とは、仮想現実空間内に現れるキャラクタ、建物、壁、家具、風景、地面に落ちているアイテム、ユーザが操作しているアバターの体の一部、アバターが持っている物体（銃や剣）などを含む。フレームバッファ３２４は、表示部３１０に表示されるべき画像に関する描画単位の情報を格納する。処理部３１６は、表示対象オブジェクト決定部３２６、閾値決定部３２８、距離決定部３３０、輻輳角決定部３３２、視差決定部３３４、判定部３３６、第一眼用画像生成部３３８、第二眼用画像生成部３４０及び画像出力部３４２を含む。これらのコンポーネントによって実行される具体的な処理については後述する。
【００３３】
コンピュータ３０４は、仮想現実空間を立体的に表示するための画像を生成し、当該画像を表示部３１０の第一眼用表示部３１０Ａ及び第二眼用表示部３１０Ｂに提供する。
図５は、本発明の実施形態のプログラムにより実現される、仮想現実空間を立体的に表示する処理のフロー図である。本発明の実施形態に係るプログラムは、図５に示す各ステップをコンピュータ３０４（又は、処理部３１６）に実行させることができる。また、本発明は、コンピュータ３０４（又は、処理部３１６）として実施することができる。
【００３４】
処理はステップ５０２において開始する。処理部３１６は、ＥＴＤ３１２により検出されたユーザ３０８の視線の方向、センサ３１４により検出されたユーザ３０８の頭の向き、ユーザ入力インターフェイス３２０が受け取ったユーザ入力などに基づいて、仮想現実空間データ３２２から仮想現実空間内での視野を決定することができる。例えば、処理部３１６は、これらの情報に基づいて、右眼及び左眼のうちの一方及び他方にそれぞれ対応する第１の仮想カメラ及び第２の仮想カメラの仮想現実空間における位置及び向きを決定することができる。処理部３１６は、第１の仮想カメラ及び第２の仮想カメラから見た仮想現実空間内の視野を決定することができる。
【００３５】
ステップ５０４において、表示対象オブジェクト決定部３２６は、視野内に含まれるオブジェクトを、表示部３１０に表示するべきオブジェクトとして決定する。図６は、上述のようにして決定された仮想現実空間内の視野６００の一例を示す。図６には、右眼及び左眼にそれぞれ対応する第１の仮想カメラ６０４Ａ及び第２の仮想カメラ６０６Ｂが示されている。図６にはまた、視野６００内に含まれるオブジェクト６０２ａ乃至６０２ｉが示されている。表現を簡略化しているため、視野６００は平面的であるように見える。しかしながら、通常、仮想現実空間内での視野は立体的である。
【００３６】
ステップ５０６において、閾値決定部３２８は、仮想現実空間における第１の仮想カメラ６０４Ａ及び第２の仮想カメラ６０４Ｂとオブジェクトとの間の距離の閾値を決定する。当該距離は、例えば、第１の仮想カメラ６０４Ａと第２の仮想カメラ６０４Ｂとの間の中間点からオブジェクトまでの距離であってもよいし、他の方法で定義されてもよい。ここでは、距離の閾値として値ｄＴが決定されるものとする。閾値決定部３２８は、予め定義されて記憶部３１８に格納されている値を閾値ｄＴとして使用してもよい。閾値決定部３２８はまた、コンピュータ３０４のプロセッサの使用率に応じて閾値を決定してもよい。例えば、ＣＰＵの使用率と閾値との間の関係式が予め定められていてもよい。この場合、閾値決定部３２８は、現在のＣＰＵ使用率と当該関係式とに基づいて、閾値を決定してもよい。閾値決定部３２８はまた、閾値を適用して視野６００を立体的に表示してもコンピュータ３０４のプロセッサの使用率が所定の値以下に留まるよう、閾値を決定してもよい。また、閾値決定部３２８は、表示部３１０（第一眼用表示部３１０Ａ及び第二眼用表示部３１０Ｂ）における画像表示のフレームレートに応じて閾値を決定してもよい。例えば、閾値決定部３２８は、フレームレートが高くなるほど閾値を小さくし、フレームレートが低くなるほど閾値を大きくしてもよい。
【００３７】
以降のステップ５０８乃至５１６はオブジェクト６０２ａ乃至６０２ｉの各々について実行される。ステップ５０８において、距離決定部３３０は、第１の仮想カメラ６０４Ａ及び第２の仮想カメラ６０４Ｂとオブジェクト（例えば、オブジェクト６０２ａ）との間の距離を求める。
【００３８】
ステップ５１０において、第一眼用画像生成部３３８は、第１の仮想カメラ６０４Ａから見たオブジェクト６０２ａの画像（第一眼用画像）を生成する。
ステップ５１２において、判定部３３６は、ステップ５０８において求められた距離が所定の閾値ｄＴ以下であるか否かを判定する。図７は、図６の視野６００に関して、オブジェクト６０２ｅ、６０２ｇ、６０２ｈ及び６０２ｉが第１の仮想カメラ６０４Ａ及び第２の仮想カメラ６０４Ｂから距離の閾値ｄＴ内にある状態を模式的に示す。理解を容易にするため、距離ｄＴ内に位置するオブジェクト６０２ｅ、６０２ｇ、６０２ｈ及び６０２ｉだけが黒塗りされ、他のオブジェクトと区別されている。
【００３９】
距離が閾値ｄＴ以下である場合（ステップ５１２の「はい」）、処理はステップ５１４に進む。ステップ５１４において、第二眼用画像生成部３４０は、第２の仮想カメラ６０４Ｂから見たオブジェクト６０２ａの画像（第二眼用画像）を生成する。距離が閾値ｄＴを超える場合（ステップ５１２の「いいえ」）、処理はステップ５１６に進む。ステップ５１６において、第二眼用画像生成部３４０は、ステップ５１０において生成された第一眼用画像を第二眼用画像として用いる。例えば、第二眼用画像生成部３４０は、第一眼用画像をコピーして第二眼用画像を生成してもよい。
【００４０】
ステップ５１８において、オブジェクト６０２ａ乃至６０２ｉのすべてについて画像が生成されたか否かが判定される。画像が生成されていないオブジェクトが残っている場合（ステップ５１８の「いいえ」）、処理はステップ５０８に戻り、残りのオブジェクトについて上述の処理が繰り返される。すべてのオブジェクトについて画像が生成された場合（ステップ５１８の「はい」）、処理はステップ５２０に進む。
【００４１】
ステップ５２０において、画像出力部３４２は、第一眼用画像を第一眼用表示部３１０Ａに出力し、第二眼用画像を第二眼用表示部３１０Ｂに出力する。例えば、画像出力部３４２は、オブジェクト６０２ａ乃至６０２ｉについて生成された複数の第一眼用画像を１つの画像へと合成して、合成された第一眼用画像を第一眼用表示部３１０Ａに出力してもよい。あるいは、画像出力部３４２は、各オブジェクトについて第一眼用画像が生成されるたびに、当該第一眼用画像をフレームバッファ３２４に格納してもよい。この場合、複数のオブジェクトについて生成された複数の第一眼用画像は、フレームバッファ３２４において１つの画像として格納される。すべてのオブジェクトについて第一眼用画像が生成された後、当該１つの画像は第一眼用表示部３１０Ａに出力される。第二眼用画像についても同様の処理が行われる。ステップ５２２において処理は終了する。
【００４２】
図５において、ステップ５０６の処理は各オブジェクトについて行われてもよい。この場合、各オブジェクトの画像を生成する際に、プロセッサの使用率やフレームレートを考慮して、コンピュータにかかる負荷が大きくなり過ぎないように閾値が調整されることになる。
【００４３】
図５乃至図７で説明した実施形態によれば、仮想現実空間を立体的に表示する際にコンピュータにかかる負荷を低減することができる。
図５乃至図７で説明した実施形態においては、第１の仮想カメラ及び第２の仮想カメラとオブジェクトとの間の距離を閾値と比較することによって、第二眼用画像を新たに生成するべきか否かが判断された。しかし、オブジェクトが同じ距離に位置していても、オブジェクトが第１の仮想カメラ及び第２の仮想カメラの正面から左右にずれた位置にあると、第一眼用画像と第二眼用画像との間の差異は小さくなることがある。
【００４４】
したがって、別の実施形態において、第二眼用画像を新たに生成するべきか否かの判断を、第１の仮想カメラ及び第２の仮想カメラから見たオブジェクトの輻輳角を所定の閾値と比較することによって行ってもよい。例示的な処理の流れを以下に説明する。
【００４５】
図８は、本発明の実施形態のプログラムにより実現される、仮想現実空間を立体的に表示する処理のフロー図である。
処理はステップ８０２において開始する。ステップ８０４の処理は図５のステップ５０４と同様である。
【００４６】
ステップ８０６において、閾値決定部３２８は、仮想現実空間における第１の仮想カメラ６０４Ａ及び第２の仮想カメラ６０４Ｂから見たオブジェクトの輻輳角の閾値を決定する。ここでは、輻輳角の閾値として値θＴが決定されるものとする。閾値決定部３２８は、予め定義されて記憶部３１８に格納されている値を当該閾値として使用してもよい。閾値決定部３２８は、コンピュータ３０４のプロセッサの使用率に応じて当該閾値を決定してもよい。例えば、ＣＰＵの使用率と閾値との間の関係式が予め定められていてもよい。この場合、閾値決定部３２８は、現在のＣＰＵ使用率と当該関係式とに基づいて、閾値を決定してもよい。閾値決定部３２８は、閾値を適用して視野６００を立体的に表示してもコンピュータ３０４のプロセッサの使用率が所定の値以下に留まるよう、閾値を決定してもよい。また、閾値決定部３２８は、表示部３１０（第一眼用表示部３１０Ａ及び第二眼用表示部３１０Ｂ）における画像表示のフレームレートに応じて閾値を決定してもよい。例えば、閾値決定部３２８は、フレームレートが高くなるほど閾値を大きくし、フレームレートが低くなるほど閾値を小さくしてもよい。ステップ８０６の処理は各オブジェクトについて行われてもよい。
【００４７】
以降のステップ８０８乃至８１６はオブジェクト６０２ａ乃至６０２ｉの各々について実行される。ステップ８０８において、輻輳角決定部３３２は、第１の仮想カメラ６０４Ａ及び第２の仮想カメラ６０４Ｂから見たオブジェクト（例えば、オブジェクト６０２ａ）の輻輳角を求める。
【００４８】
ステップ８１０の処理は図５のステップ５１０と同様である。
ステップ８１２において、判定部３３６は、ステップ８０８において求められた輻輳角が所定の閾値θＴを超えるか否かを判定する。輻輳角が閾値θＴを超える場合（ステップ８１２の「はい」）、処理はステップ８１４に進む。ステップ８１４の処理はステップ５１４と同様である。輻輳角が閾値θＴ以下である場合（ステップ８１２の「いいえ」）、処理はステップ８１６に進む。ステップ８１６の処理はステップ５１６と同様である。
【００４９】
ステップ８１８及び８２０の処理は、それぞれステップ５１８及び５２０の処理と同様である。ステップ５２２において処理は終了する。
図８で説明した実施形態によれば、仮想現実空間を立体的に表示する際にコンピュータにかかる負荷を低減することができる。
【００５０】
別の実施形態において、第二眼用画像を新たに生成するべきか否かの判断を、第１の仮想カメラ及び第２の仮想カメラから見たオブジェクトの視差を所定の閾値と比較することによって行ってもよい。例示的な処理の流れを以下に説明する。
【００５１】
図９は、本発明の実施形態のプログラムにより実現される、仮想現実空間を立体的に表示する処理のフロー図である。
処理はステップ９０２において開始する。ステップ９０４の処理は図５のステップ５０４と同様である。
【００５２】
ステップ９０６において、閾値決定部３２８は、仮想現実空間における第１の仮想カメラ６０４Ａ及び第２の仮想カメラ６０４Ｂから見たオブジェクトの視差の閾値を決定する。視差は、第１の仮想カメラ６０４Ａから見たオブジェクトの画像と第２の仮想カメラ６０４Ｂから見たオブジェクトの画像との間の相関値（面積相関値など）を用いて定義されてもよい。ここでは、視差の閾値として値ｐＴが決定されるものとする。閾値決定部３２８は、予め定義されて記憶部３１８に格納されている値を当該閾値として使用してもよい。閾値決定部３２８は、コンピュータ３０４のプロセッサの使用率に応じて当該閾値を決定してもよい。例えば、ＣＰＵの使用率と閾値との間の関係式が予め定められていてもよい。この場合、閾値決定部３２８は、現在のＣＰＵ使用率と当該関係式とに基づいて、閾値を決定してもよい。閾値決定部３２８は、閾値を適用して視野６００を立体的に表示してもコンピュータ３０４のプロセッサの使用率が所定の値以下に留まるよう、閾値を決定してもよい。また、閾値決定部３２８は、表示部３１０（第一眼用表示部３１０Ａ及び第二眼用表示部３１０Ｂ）における画像表示のフレームレートに応じて閾値を決定してもよい。例えば、閾値決定部３２８は、フレームレートが高くなるほど閾値を大きくし、フレームレートが低くなるほど閾値を小さくしてもよい。ステップ９０６の処理は各オブジェクトについて行われてもよい。
【００５３】
以降のステップ９０８乃至９１６はオブジェクト６０２ａ乃至６０２ｉの各々について実行される。ステップ９０８において、視差決定部３３４は、第１の仮想カメラ６０４Ａ及び第２の仮想カメラ６０４Ｂから見たオブジェクト（例えば、オブジェクト６０２ａ）の視差を求める。
【００５４】
ステップ９１０の処理は図５のステップ５１０と同様である。
ステップ９１２において、判定部３３６は、ステップ９０８において求められた視差が所定の閾値ｐＴを超えるか否かを判定する。視差が閾値ｐＴを超える場合（ステップ９１２の「はい」）、処理はステップ９１４に進む。ステップ９１４の処理はステップ５１４と同様である。視差が閾値ｐＴ以下である場合（ステップ９１２の「いいえ」）、処理はステップ９１６に進む。ステップ９１６の処理はステップ５１６と同様である。
【００５５】
ステップ９１８及び９２０の処理は、それぞれステップ９１８及び９２０の処理と同様である。ステップ９２２において処理は終了する。
図９で説明した実施形態によれば、仮想現実空間を立体的に表示する際にコンピュータにかかる負荷を低減することができる。
【００５６】
以上、本発明の実施形態によるプログラム及びコンピュータについて具体的に説明したが、上述の実施形態は例示に過ぎず、本発明の範囲を限定するものではない。本発明の技術的思想は、プログラム及びコンピュータのほか、説明した実施形態のステップを含むコンピュータにより実施される方法を含む様々な態様で実施することが可能であることが理解されよう。また、本発明の趣旨及び範囲から逸脱することなく、実施形態の変更、追加、改良などを適宜行うことができることが理解されるべきである。本発明の範囲は、特許請求の範囲の記載に基づいて解釈されるべきであり、さらにその均等物を含むものと理解されるべきである。
【符号の説明】
【００５７】
１０１    物体
１０２    右眼
１０３    左眼
２０１    右眼画像
２０２    左眼画像
３００    ヘッドマウントディスプレイシステム
３０２    ヘッドマウントディスプレイ
３０４  コンピュータ
３０６    有線ケーブル
３０８    ユーザ
３１０    表示部
３１０Ａ  第一眼用表示部
３１０Ｂ  第二眼用表示部
３１２    アイトラッキングデバイス
３１４    センサ
３１６    処理部
３１８    記憶部
３２０    ユーザ入力インターフェイス
３２２    仮想現実空間データ
３２４    フレームバッファ
３２６    表示対象オブジェクト決定部
３２８    閾値決定部
３３０    距離決定部
３３２    輻輳角決定部
３３４    視差決定部
３３６    判定部
３３８    第一眼用画像生成部
３４０    第二眼用画像生成部
３４２    画像出力部
６００    視野
６０２ａ〜６０２ｉ  オブジェクト
６０４Ａ、６０４Ｂ  仮想カメラ
【図１】
0006613099.tif 000002
【図２】
0006613099.tif 000003
【図３】
0006613099.tif 000004
【図４】
0006613099.tif 000005
【図５】
0006613099.tif 000006
【図６】
0006613099.tif 000007
【図７】
0006613099.tif 000008
【図８】
0006613099.tif 000009
【図９】
0006613099.tif 000010