(57)【要約】【課題】  仮想空間の画像を生成するために用いる光源をユーザの視点の位置に応じて好適な光源に切り替える為の技術を提供すること。【解決手段】  現実空間を複数の領域に分割した場合に、視点の位置が何れの分割領域に属するのかを判定し（Ｓ１０４０）、仮想空間に対して設定可能な複数種の光源のうち、視点の位置が属すると判定された分割領域に応じた光源に係るデータを用いて、観察者の視点から見える仮想空間の画像を生成し（Ｓ１０６０）、生成した画像を外部に出力する。【選択図】  図４
2006227913.tif 000002
【特許請求の範囲】
【請求項１】
観察者の視点の位置姿勢を取得する取得工程と、
現実空間を複数の領域に分割した場合に、前記視点の位置が何れの分割領域に属するのかを判定する判定工程と、
仮想空間に対して設定可能な複数種の光源のうち、前記視点の位置が属すると判定された分割領域に応じた光源に係るデータを用いて、前記取得工程で取得した位置姿勢を有する視点から見える仮想空間の画像を生成する生成工程と
を備えることを特徴とする画像処理方法。
【請求項２】
更に前記現実空間の画像を取得する第２の取得工程を備え、
前記出力工程では、前記生成工程で生成した画像を前記第２の取得工程で取得した画像に重畳させた状態で外部に出力することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記生成工程では、前記分割領域毎に設定された光源のうち、前記視点の位置が属すると判定された分割領域について設定された光源に係るデータを用いて、前記取得工程で取得した位置姿勢を有する視点から見える仮想空間の画像を生成することを特徴とする請求項１又は２に記載の画像処理方法。
【請求項４】
前記生成工程では、前記視点の位置が属すると判定された分割領域近傍のそれぞれの領域について設定された光源の照度を、前記視点の位置に応じて重み付けし、照度が重み付けされたそれぞれの光源に係るデータを用いて、前記取得工程で取得した位置姿勢を有する視点から見える仮想空間の画像を生成することを特徴とする請求項１又は２に記載の画像処理方法。
【請求項５】
観察者の視点の位置姿勢を取得する取得手段と、
現実空間領域と光源情報を対応づけて管理する管理手段と、
前記視点の位置が属する現実空間領域を判定する判定手段と、
前記管理手段によって管理されている情報に基づき、前記判定された視点の位置が属する現実空間領域に対応する光源情報を用いて、前記取得手段が取得した位置姿勢を有する視点から見える仮想空間の画像を生成する生成手段と
を備えることを特徴とする画像処理装置。
【請求項６】
コンピュータに請求項１乃至４の何れか１項に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項７】
請求項６に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現実空間に仮想空間の画像を重畳させて観察者に提示するための技術に関するものである。
【背景技術】
【０００２】
現実世界と仮想世界とを違和感なく自然に結合する複合現実感（MR: Mixed Reality）の技術を応用した提示装置が盛んに提案されている。これらの複合現実感提示装置は、カメラなどの撮像装置によって撮影した現実世界の画像に対し、コンピュータグラフィックス（CG: Computer Graphics）で描画した仮想世界の画像を結合し、ヘッドマウントディスプレイ（HMD: Head-Mounted Display）などの表示装置に表示することで、複合現実感提示装置の使用者に提示している。
【０００３】
これらの複合現実感提示装置は、現実世界の画像の変化に追従させるかたちで仮想世界の画像を生成するために、装置のユーザの視点位置・姿勢をリアルタイムで取得する必要がある。この視点位置・姿勢の取得には、６自由度センサ装置が広く用いられている。複合現実感提示装置は、センサ装置によって計測した使用者の視点位置・姿勢を仮想世界での仮想の視点位置・姿勢として設定し、ＣＧによって仮想世界の画像を描画して、現実世界の画像と結合する。このことにより、複合現実感装置の使用者は、あたかも現実世界の中に仮想の物体が存在しているかのような画像を観察することができる。
【０００４】
複合現実感提示装置を用いて、工業製品の設計段階で検証を行うという応用が考えられている。これは、設計対象をＣＧによって仮想化し、実際に使用される環境を想定した現実世界の画像と重ねて検証を行うというものである。従来は、製品を実際に試作することによって検証を行っていたが、期間やコストの面から何度も試作を繰り返すことは容易ではない。
【０００５】
そのため、設計者がＣＡＤなどのツールを用いて設計した製品をＣＧで描画し、その描画結果をディスプレイ装置などで確認するという方法と併用されてきた。しかし、ディスプレイ装置に表示されるＣＧを観察するだけでは、現実のものとの比較が難しく、実際の大きさや、部品間の干渉などが実感として把握しにくいため、最終的な検証は試作や製作によって行い、試作や製作の回数を削減するためにＣＧによる検証で補完することが一般的であった。複合現実感提示装置を用いることによって、検証対象の製品を仮想化し、実物と同じ大きさで現実の空間中に存在するかのように観察することができるため、試作や製作による検証を代替するものとして期待されている。
【０００６】
このような複合現実感提示装置には、撮像装置によって取得される現実の画像と、ＣＧによって描画される仮想の画像とを整合させるということが要求される。
【０００７】
特に、ＣＧで描画される仮想の画像の陰影や色合いを、現実のものに近づけるためには、ＣＧを描画する際に、複合現実感提示装置が使用される現実の環境と同一の照明を設定する必要がある。非特許文献１には、現実空間の光源環境を推定し、それをもとにＣＧによって描画される仮想の画像の陰影をより正確に表現する手法が述べられている。
【非特許文献１】I. Sato, Y. Sato, and K. Ikeuchi, “Acquiring a radiance distribution to superimpose virtual objects onto a real scene,” IEEE Transactions on Visualization and Computer Graphics, Vol. 5, No. 1, pp. 1-12, January-March 1999.
【発明の開示】
【発明が解決しようとする課題】
【０００８】
自動車や航空機、建造物といった大型の物品・製品を対象とする場合、これらの物品をＣＧによって仮想化した仮想オブジェクトの外部から外観を検証するだけではなく、仮想オブジェクトの内部に入り、内観についても検証を行う状況が発生する。
【０００９】
仮想オブジェクトがＣＧではなく現実のものであれば、オブジェクトの内部では、屋根や壁面等、オブジェクトの外部と内部との境界物によって、オブジェクト外部からの光源が遮られ、オブジェクト内部には、外部光源が減衰して到達する。すなわち、オブジェクトの内部は、外部よりも暗い光で照光される。しかし、一般的にＣＧで（仮想）オブジェクトを描画した場合には、光源から照光された光は間に存在するオブジェクトによって遮蔽されないため、（仮想）オブジェクト内部は（仮想）オブジェクト外部と同じ強さの光源で照光される。
【００１０】
すなわち、現実環境の光源を推定し、ＣＧを描画する際にその光源のパラメータで照光しても、仮想オブジェクトの内部を観察するような場合には、完全に対処することができない。
【００１１】
そのため、従来は、仮想オブジェクト外部を観察するための光源と、仮想オブジェクト内部を観察するための光源の２種類をあらかじめ用意し、ユーザがオペレータに指示し、オペレータはユーザからの指示を受けて、光源を手動で切り換えるという方法が採られていた。
【００１２】
本発明は以上の問題に鑑みてなされたものであり、仮想空間の画像を生成するために用いる光源をユーザの視点の位置に応じて好適な光源に切り替える為の技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下構成を備える。
【００１４】
即ち、観察者の視点の位置姿勢を取得する取得工程と、
現実空間を複数の領域に分割した場合に、前記視点の位置が何れの分割領域に属するのかを判定する判定工程と、
仮想空間に対して設定可能な複数種の光源のうち、前記視点の位置が属すると判定された分割領域に応じた光源に係るデータを用いて、前記取得工程で取得した位置姿勢を有する視点から見える仮想空間の画像を生成する生成工程と
を備えることを特徴とする。
【００１５】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下構成を備える。
【００１６】
即ち、観察者の視点の位置姿勢を取得する取得手段と、
現実空間領域と光源情報を対応づけて管理する管理手段と、
前記視点の位置が属する現実空間領域を判定する判定手段と、
前記管理手段によって管理されている情報に基づき、前記判定された視点の位置が属する現実空間領域に対応する光源情報を用いて、前記取得手段が取得した位置姿勢を有する視点から見える仮想空間の画像を生成する生成手段と
を備えることを特徴とする。
【発明の効果】
【００１７】
本発明の構成により、仮想空間の画像を生成するために用いる光源を、ユーザの視点の位置に応じた好適な光源に切り替えることで、視点の位置近傍の仮想空間の状態に応じた光源を用いて仮想空間の画像を生成することができる。
【発明を実施するための最良の形態】
【００１８】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１９】
［第１実施形態］
本実施形態では現実空間と仮想空間とが融合した複合現実空間を観察する観察者の視点の位置に応じて、仮想空間の画像を生成するために用いる光源を適宜切り替える。
【００２０】
先ず、観察者が移動可能な現実空間について説明する。
【００２１】
図２は、観察者が移動可能な現実空間の鳥瞰図である。観察者が移動可能な現実空間は、後述するセンサの構成や配置に依存して定められる。同図に示す如く、観察者の移動可能な空間４０の中央部分には現実物体の一例として車が配置されており、この車を基準としてこの空間４０は３つの領域に分割される。即ち、車の内部領域２０、車の外部領域１０、そしてその境界部分の領域３０の３つに分割されている。
【００２２】
外部領域１０は、車の外側を構成する領域であり、観察者が主として車の外観を観察すると想定される領域を外部領域１０とする。
【００２３】
内部領域２０は、車の内側を構成する領域であり、観察者が主として車の内観を観察すると想定される領域を内部領域２０とする。
【００２４】
境界領域３０は、外部領域１０と内部領域２０との境界付近を構成する領域であり、観察者が車の外観と内観を同時に観察する可能性があるとされる領域を境界領域３０とする。
【００２５】
このように、空間４０は３つの領域（外部領域１０、内部領域２０、境界領域３０）に分割されているので、それぞれの分割領域は排他的に存在することになり、且つそれぞれの領域は重なって存在するものではないので、その結果、観察者は常に何れか１つの領域内に位置していることになる。
【００２６】
図３は、空間４０と観察者の視点位置５０との関係を示す図で、同図の場合、視点の位置５０は、空間４０の外部に位置しているため、以降の処理は行えない、以下の説明では、このように、観察者は、空間４０からは出ないものとして説明する。即ち、観察者は常に何れかの領域内に位置しているものとする。
【００２７】
次に、本実施形態に係るシステムについて説明する。
【００２８】
＜本実施形態に係るシステムについて＞
図１は、本実施形態に係るシステムのハードウェア構成を示すブロック図である。本実施形態に係るシステムは上述の通り、現実空間と仮想空間とが融合した複合現実空間を観察者に提供する際に、仮想空間の画像を生成するために用いる光源を適宜切り替える為の構成を有する。
【００２９】
同図に示す如く、本実施形態に係るシステムは、コンピュータ１００、ＨＭＤ２００、センサ制御装置３００、操作入力部４００により構成されている。
【００３０】
先ずＨＭＤ２００について説明する。ＨＭＤ２００は表示装置２０１、撮像装置２０２、センサ計測部２０３により構成されている。
【００３１】
表示装置２０１は観察者がＨＭＤ２００を自身の頭部に装着した際に、観察者の眼前に位置するようにＨＭＤ２００に取り付けられたものであり、コンピュータ１００から送信された画像信号に基づく画像を表示する。これにより、ＨＭＤ２００を頭部に装着した観察者はコンピュータ１００から送出された画像信号に基づいた画像を眼前に見ることができる。
【００３２】
撮像装置２０２は１以上のＣＣＤ等により構成されており、現実空間の動画像を撮像する。撮像した各フレームの画像は画像信号として逐次コンピュータ１００に送出される。
【００３３】
センサ計測部２０３は、自身の位置姿勢を計測するためのものであり、本実施形態では磁気センサであるとする。よって、現実空間中の所定の位置には磁界の発生源が設置されている。発生源からは磁界が発生され、センサ計測部２０３は自身の位置姿勢に応じた磁気の変化を検知する。検知した結果を示す信号はセンサ制御装置３００に出力する。センサ制御装置３００は受けた信号に基づいて「センサ座標系（上記発生源の位置を原点とし、この原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系）におけるセンサ計測部２０３の位置姿勢を示すデータ」を生成し、コンピュータ１００に出力する。
【００３４】
なお、本実施形態では観察者に複合現実空間の画像を提示するためにＨＭＤ２００を用いているが、同様の目的が達成されるのであれば、ＨＭＤ２００を用いることに限定しない。
【００３５】
次に、コンピュータ１００について説明する。コンピュータ１００は同図に示す如く、ＣＰＵ１０１、ＲＡＭ１０２、画像出力装置１０３、ディスク装置１０６、入力装置１０７、画像入力装置１０８、システムバス１０５により構成されている。
【００３６】
ＣＰＵ１０１は、ＲＡＭ１０２に格納されているプログラムやデータを用いてコンピュータ１００全体の制御を行うと共に、コンピュータ１００が行う後述の各処理を実行する。
【００３７】
ＲＡＭ１０２は、ディスク装置１０６からロードされたプログラムやデータを一時的に記憶するためのエリア、入力装置１０７を介して操作入力部４００、センサ制御装置３００から受信した各種の情報を一時的に記憶するためのエリア、画像入力装置１０８を介して撮像装置２０２から受信した現実空間の画像データを一時的に記憶するためのエリア、そして、ＣＰＵ１０１が各種の処理を実行する際に用いるワークエリアなど、各種のエリアを適宜提供することができる。
【００３８】
画像出力装置１０３は、グラフィックスカードなどの機器により構成されており、その内部にグラフィックスメモリを有している。よってＣＰＵ１０１がこのグラフィックスメモリに生成した画像、即ち、複合現実空間の画像のデータを書き込むことで、このデータを画像信号に変換し、ＨＭＤ２００に備わっている表示装置２０１に出力する。なお、グラフィックスメモリは必ずしも画像出力装置１０３が保持する必要はなく、ＲＡＭ１０２によってグラフィックスメモリの機能を実現してもよい。
【００３９】
ディスク装置１０６はハードディスクドライブ装置に代表される大容量情報記憶装置で、ここにはＯＳ（オペレーティングシステム）や、コンピュータ１００が行う後述の各処理をＣＰＵ１０１に実行させるためのプログラムやデータが保存されている。
【００４０】
このデータには、仮想空間を構成する各仮想物体の描画データも含まれている。描画データとは、例えば仮想物体がポリゴンでもって構成されている場合には、各ポリゴンの法線ベクトルデータ、各ポリゴンのカラーデータ、ポリゴンを構成する各頂点の座標値データ、そして仮想物体にテクスチャマッピングを施す場合にはテクスチャのデータ等により構成されている。
【００４１】
また、ディスク装置１０６には、シーングラフのデータなど、仮想空間（シーン）全体に関するデータなども保存されている。シーングラフとは、シーンの構成要素である仮想物体を階層化・構造化してシーンに配置することによって、シーン全体を記述するためのデータ構造であり、一般的には多分木または有向グラフで表現されるデータである。
【００４２】
また、仮想物体の配置位置姿勢についても、シーングラフによって記述される。例えばSGI社のグラフィックス・ライブラリであるOpen Inventor TMでは、シーングラフを走査する過程において描画処理を行うことによって、シーン全体を効率的に描画している。
【００４３】
また、本実施形態では、シーングラフのデータには、観察者の視点位置が外部領域１０に属する場合に用いられる光源に係るデータ（外部領域用光源データ）、観察者の視点位置が内部領域２０に属する場合に用いられる光源に係るデータ（内部領域用光源データ）、観察者の視点位置が境界領域３０に属する場合に用いられる光源に係るデータ（境界領域用光源データ）が含まれているものとする。それぞれの光源データには、光源の位置や明るさ、光の色などのパラメータが含まれている。
【００４４】
また、ディスク装置１０６には、上記外部領域１０、内部領域２０、境界領域３０を規定するためのデータ（領域規定データ）も保存されている。このようなデータについては後述する。
【００４５】
以上のようなデータ、及びプログラムはＣＰＵ１０１の制御に従って適宜ＲＡＭ１０２にロードされ、ＣＰＵ１０１による処理対象となる。
【００４６】
入力装置１０７は、操作入力部４００から受けた指示情報をＣＰＵ１０１に送出したり、センサ制御装置３００から受けたセンサ計測部２０３のセンサ座標系における位置姿勢データをＲＡＭ１０２に送出したりする。
【００４７】
画像入力装置１０８は、キャプチャーボードなどにより構成されており、撮像装置２０２から受けた各フレームの画像データを順次ＲＡＭ１０２に転送する。なお、ＨＭＤ２００が光学シースルー型のものである場合（即ち撮像装置２０２を省略した場合）、画像入力装置１０８は省略することができる。
【００４８】
システムバス１０５は、コンピュータ１００を構成する上記各部を繋ぐものであり、それぞれはこのシステムバス１０５を介して互いにデータ通信を行っている。
【００４９】
操作入力部４００は、キーボードやマウスなどにより構成されており、コンピュータ１００の操作者が操作することで、各種の指示をＣＰＵ１０１に対して入力することができる。
【００５０】
＜複合現実空間の画像生成処理＞
次に、以上の構成を有するシステムによって複合現実空間を生成し、これを観察者に提示する為の一連の処理について説明する。
【００５１】
図４は、複合現実空間の画像を生成し、ＨＭＤ２００に出力するための処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ１０１に実行させるためのプログラムやデータはディスク装置１０６に保存されており、これらはＣＰＵ１０１の制御に従って適宜ＲＡＭ１０２にロードされ、ＣＰＵ１０１がこれを用いて処理を実行することで、コンピュータ１００は同図のフローチャートに従った処理を実行することになる。
【００５２】
先ず、コンピュータ１００は以下説明する処理の前段で、各種の初期化処理を行う（ステップＳ１０１０）。この初期化処理には例えば以下の処理のために用いるプログラムやデータをディスク装置１０６からＲＡＭ１０２にロードしたり、センサ制御装置３００やセンサ計測部２０３が計測する座標系の設定や計測範囲の設定などの初期化も行う。
【００５３】
次に、センサ計測部２０３は自身の位置姿勢に応じた磁気の変化を検知し、検知結果を示す信号をセンサ制御装置３００に出力するので、センサ制御装置３００はこの信号に基づいて「センサ制御装置３００におけるセンサ計測部２０３の位置姿勢を示すデータ」を生成し、コンピュータ１００に入力する。
【００５４】
よってＣＰＵ１０１はこのデータが入力装置１０７に入力されたことを検知すると、これを一端ＲＡＭ１０２に格納する。一方、予め表示装置２０１（以下「（観察者の）視点」と呼称する場合がある）とセンサ計測部２０３との位置姿勢関係を計測し、これをバイアスデータとしてディスク装置１０６に保存している。よってＣＰＵ１０１は、センサ制御装置３００から取得した「センサ制御装置３００におけるセンサ計測部２０３の位置姿勢を示すデータ」にこのバイアスデータを加えることで、「センサ座標系における視点の位置姿勢を示すデータ」を得る（ステップＳ１０２０）。
【００５５】
また、撮像装置２０２からは撮像された現実空間の各フレームの画像が順次コンピュータ１００に入力されるので、ＣＰＵ１０１は画像入力装置１０８を介して入力された各フレームの画像データを順次ＲＡＭ１０２（ディスク装置１０６でも良い）に取得するのであるが、ＣＰＵ１０１は取得した画像を一端読み出して、必要に応じてレンズ歪み等の補正処理を行い、その後、処理済みの画像データを画像出力装置１０３のグラフィックスメモリ上のフレームバッファに書き込む（ステップＳ１０３０）。なお、入力した画像をＲＡＭ１０２を介さず画像出力装置１０３のグラフィックスメモリ上のフレームバッファに直接書き込んでもよい。なお、ＨＭＤ２００が光学シースルー型のものである場合には、ステップＳ１０３０の処理は省略する。
【００５６】
なお、ステップＳ１０２０，１０３０のそれぞれの処理は独立して行っているために、この順に実行されることには限定しない。
【００５７】
次に、ＣＰＵ１０１は、ディスク装置１０６に保存されているそれぞれの領域（外部領域１０、内部領域２０、境界領域３０）を規定する為のデータを読み出し、ステップＳ１０２０で求めた視点の位置が何れの領域に属しているのかを判定（特定）する（ステップＳ１０４０）。
【００５８】
ステップＳ１０４０における判定処理の一例を以下に示す。先ず、各領域の境界を構成する点群はすべて地平面上に存在する点群であるとし、その座標は２次元であるものとする。
【００５９】
まず、二次元平面上の１点Ｐが、特定の領域の内部に含まれるか否かを判定する方法について説明する。
【００６０】
対象とする領域の境界を構成する点群をＱとする。Ｑを構成する各点を順に線で結んでいくことによって、ある閉領域の輪郭線を構成することができる。点群Ｑから三角形メッシュで各領域を分割し、点Ｐがこれらの三角形メッシュ群Ｔのいずれかに含まれていれば、点Ｐは領域の内部に含まれていると判定することができる。
【００６１】
点群から三角形メッシュを構成して領域を分割するための手段には、デローニ(Delaunay)の領域分割法が広く知られている。デローニの分割法は、与えられた点群中の任意の３点を頂点とし、外接円の内側に点群中の他のいずれの頂点をも含まない三角形を、点群中のすべての点について構成する方法である。
【００６２】
点群Ｑについて、デローニの領域分割法などの領域を分割する手段を適用して、三角形メッシュＴを構成する。
【００６３】
三角形メッシュＴを構成する各三角形について、ステップＳ１０２０において取得した視点位置Ｖを地平面上の点Ｖ’に射影し、この点Ｖ’が三角形の内部に存在するか否かを調べる。Ｖ’が三角形メッシュを構成する三角形のうち、いずれかの内部にあれば、Ｖは対象とする領域の内側に存在すると判定する。
【００６４】
すなわち、ステップＳ１０４０では、外部領域１０に対応する点群Ｑ１、内部領域２０に対応する点群Ｑ２、境界領域３０に対応する点群Ｑ３について、それぞれデローニの領域分割法などの手段で、三角形メッシュＴ１、Ｔ２、Ｔ３をそれぞれ算出する。そして視点位置を地平面に投影した点Ｖ’が三角形メッシュＴ１、Ｔ２、Ｔ３を構成する三角形の内部に存在するか否かについて、それぞれ判定する。
【００６５】
そしてＶ’が三角形メッシュＴ１を構成する三角形の内部に存在すれば、視点位置は外部領域１０の内部に存在すると判定する。同様にＴ２を構成する三角形の内部に存在すれば、視点は内部領域２０の内部に存在すると判定する。Ｔ３を構成する三角形の内部に存在すれば、視点は境界領域３０の内部に存在すると判定する。
【００６６】
よって、この場合、領域規定データは、外部領域１０に対応する点群Ｑ１の位置データ、内部領域２０に対応する点群Ｑ２の位置データ、境界領域３０に対応する点群Ｑ３の位置データとしても良いし、それぞれの領域を三角メッシュで分割した場合に、それぞれの三角メッシュの領域を示すデータであっても良い。
【００６７】
なお、本実施形態では、領域の境界を構成する点群は地平面上に存在する２次元の点であると仮定したが、これらの点群を３次元の点として扱うことも可能である。その場合、外部領域１０、内部領域２０、境界領域３０は３次元閉領域となり、観察者の視点位置Ｖが３次元閉領域の内部に存在するか否かを判定することになる。すなわち、点群から閉領域の面をなす三角形メッシュを求め、この三角形メッシュの内部に視点位置Ｖが存在するか否かを判定すればよい。この場合、三角形メッシュを求める手順は、３次元コンピュータ・グラフィックスの分野において、３次元の点群からCGモデルのポリゴンを構成する手順と同等であり、デローニの領域分割法以外にもフリー・メッシュ法やバブル・メッシュ法など、数多くの方法が提案されており、それらを適用することが可能である。
【００６８】
本実施形態では、観察者の視点位置Ｖが特定の領域の内部に存在するか否かを判定するために領域の境界を構成する点群から三角形メッシュを構成しているが、この方法に限られるものではない。即ち、視点位置Ｖが外部領域１０、内部領域２０、境界領域３０のうちいずれの領域中に存在するかということを判定できる手段であれば、どのような方法を用いてもよい。
【００６９】
図４に戻って、次に、ステップＳ１０４０で視点の位置が属すると判定された領域に応じて、外部領域用光源データ、内部領域用光源データ、境界領域用光源データのうち何れを用いるのかを決定し、決定したした光源データを用いて仮想空間の画像を生成するよう、シーングラフデータを更新する（ステップＳ１０５０）。
【００７０】
即ち、ステップＳ１０４０で視点の位置が外部領域１０に属すると判定された場合には、外部領域用光源データのみを使用すると設定し、内部領域用光源データ、境界領域用光源データについては使用しないと設定することで、シーングラフデータを更新する。
【００７１】
また、ステップＳ１０４０で視点の位置が内部領域２０に属すると判定された場合には、内部領域用光源データのみを使用すると設定し、外部領域用光源データ、境界領域用光源データについては使用しないと設定することで、シーングラフデータを更新する。
【００７２】
また、ステップＳ１０４０で視点の位置が境界領域３０に属すると判定された場合には、境界領域用光源データのみを使用すると設定し、外部領域用光源データ、内部領域用光源データについては使用しないと設定することで、シーングラフデータを更新する。
【００７３】
これにより、予め用意された光源データのうち、視点の位置が属する分割領域に応じた光源データを選択することができる。
【００７４】
ここで外部領域１０は車の外であるが故に、内部領域２０よりも明るい。そこで外部領域用光源データは、内部領域用光源データよりも明るい光を照射する光源のデータである。逆に内部領域２０は車の内部であるが故に、外部領域１０よりも暗い。そこで内部領域用光源データは、外部領域用光源データよりも暗い光を照射する光源のデータである。また、境界領域用光源データは、例えば外部領域１０における明るさと内部領域２０における明るさとの中間の明るさを有する光源のデータである。
【００７５】
よって、視点の位置が属する領域に応じて生成する仮想空間の明るさを適宜変更することができる。なお、変更させるのは明るさに限定するものではなく、様々なものが考えられる。その場合、変更させたいものを光源データに含めさせておく必要がある。
【００７６】
次に、ＣＰＵ１０１は、ステップＳ１０５０で更新したシーングラフデータに従った仮想空間、即ち、ステップＳ１０５０で選択した光源によって光が照射された仮想空間を、ステップＳ１０２０で求めた位置姿勢を有する視点から見た場合に見える画像（仮想空間の画像）を生成する（ステップＳ１０６０）。尚、シーングラフデータに従った仮想空間を、所定の位置姿勢を有する視点から見た場合に見える画像を生成する処理については周知であるので、これに関する説明は省略する。
【００７７】
なお、生成した画像のデータは画像出力装置１０３のグラフィックスメモリ上のフレームバッファに書き込む。画像出力装置１０３のグラフィックスメモリ上のフレームバッファにはステップＳ１０３０で現実空間の画像が描画されているので、ステップＳ１０６０でこのフレームバッファに仮想空間の画像を描画することで、結果としてこのフレームバッファには複合現実空間の画像が描画されることになる。
【００７８】
その結果、画像出力装置１０３はこのフレームバッファに描画された複合現実空間の画像をＨＭＤ２００の表示装置２０１に出力するので、ＨＭＤ２００を頭部に装着した観察者の眼前には自身の視点の位置姿勢に応じた複合現実空間の画像が表示される。また、表示される画像のうち、仮想物体については、視点の位置が属する領域に応じた光源によって光が照射されたものとなっている。
【００７９】
次に、コンピュータ１００の操作者が操作入力部４００を用いて本処理を終了する旨の指示を入力すれば、ＣＰＵ１０１はこれを検知し、本処理を終了するのであるが、検知していない場合には処理をステップＳ１０７０を介してステップＳ１０２０に戻し、以降の処理を繰り返す。
【００８０】
なお、本実施形態ではセンサとして磁気センサを用いているが、センサとしてはこれ以外にも考えられ、例えば超音波センサ、光学式センサなど、その他のセンサを用いるようにしても良い。
【００８１】
また、本実施形態ではＨＭＤ２００の位置姿勢はセンサを用いて取得しているが、取得形態についてはこれに限定するものではない。例えば、現実空間中にマーカを配置し、この配置位置、及びマーカを撮像装置２０２でもって撮像した画像上における座標位置を用いてＨＭＤ２００の位置姿勢を取得する方法を用いるようにしても良い。
【００８２】
また、本実施形態では観察者の移動可能な空間を図２に示すような空間で、且つこの空間を同図に示すような境界線で３つの領域に分割したが、分割領域の数や形状についてはこれに限定するものではない。これは以下の実施形態についても同様である。
【００８３】
また、図２に示したような空間内で視点の位置が属する分割領域を求める方法には以下のような方法もある。
【００８４】
例えば、空間４０において，地平面の鉛直方向をＺ軸、地平面に平行かつ互いに直交する軸をＸ軸、Ｙ軸とし、空間４０内の座標値（ｘ、ｙ，ｚ）をセンサ座標系で表現する場合に、内部領域２０の存在範囲Ｒ２が［Ｘ２ｍｉｎ，Ｘ２ｍａｘ］、［Ｙ２ｍｉｎ，Ｙ２ｍａｘ］で、内部領域２０を含む境界領域３０の存在範囲Ｒ３が［Ｘ３ｍｉｎ，Ｘ３ｍａｘ］、［Ｙ３ｍｉｎ，Ｙ３ｍａｘ］で、内部領域２０、境界領域３０を含む外部領域１０（即ち空間４０）の存在範囲Ｒ１が［Ｘ１ｍｉｎ，Ｘ１ｍａｘ］、［Ｙ１ｍｉｎ，Ｙ１ｍａｘ］であるとすると、センサ座標系における視点の位置（ｘ、ｙ、ｚ）がＸ２ｍｉｎ≦ｘ≦Ｘ２ｍａｘ且つＹ２ｍｉｎ≦ｙ≦Ｙ２ｍａｘであれば、「視点の位置は内部領域２０に属している」と判定することができ、Ｘ２ｍｉｎ≦ｘ≦Ｘ２ｍａｘを満たさず且つＸ３ｍｉｎ≦ｘ≦Ｘ３ｍａｘを満たし、且つＹ２ｍｉｎ≦ｙ≦Ｙ２ｍａｘを満たさず且つＹ３ｍｉｎ≦ｙ≦Ｙ３ｍａｘを満たす場合には、「視点の位置は境界領域３０に属している」と判定することができ、Ｘ３ｍｉｎ≦ｘ≦Ｘ３ｍａｘを満たさず且つＸ１ｍｉｎ≦ｘ≦Ｘ１ｍａｘを満たし、且つＹ３ｍｉｎ≦ｙ≦Ｙ３ｍａｘを満たさず且つＹ１ｍｉｎ≦ｙ≦Ｙ１ｍａｘを満たす場合には、「視点の位置は外部領域１０に属している」と判定することができる。
【００８５】
また、本実施形態では、仮想空間の画像を生成して上記フレームバッファに格納する処理はＣＰＵ１０１が行っているが、コンピュータ１００に更にグラフィックス・プロセッサを設ければ、このような処理はグラフィックス・プロセッサが行った方が、全体の処理としてはより高速に行うことができ、好適である。
【００８６】
［第２の実施形態］
第１の実施形態では視点が外部領域１０に属している場合には外部領域用光源でもって仮想空間の画像を生成するし、視点が内部領域２０に属している場合には内部領域用光源でもって仮想空間の画像を生成するし、視点が境界領域３０に属している場合には境界領域用光源でもって仮想空間の画像を生成する。本実施形態では視点が境界領域３０に属している場合には境界領域用光源は用いずに、外部領域用光源、内部領域用光源のそれぞれの照度を視点の位置に応じた比率で用いる。
【００８７】
なお、本実施形態では、シーングラフデータには境界領域用光源データが含まれておらず、更に、視点が境界領域３０に属している場合には外部領域用光源、内部領域用光源のそれぞれを用いること以外は、第１の実施形態と同じである。
【００８８】
よって、本実施形態に係る複合現実空間画像生成処理は、図４のフローチャートに従った処理を以下のように変更したものとなる。
【００８９】
先ず、ステップＳ１０５０では、ステップＳ１０４０で視点の位置が属すると判定された領域に応じて、外部領域用光源データ、内部領域用光源データのうち何れか一方、若しくは両方を用いるのかを決定し、決定した光源データを用いて仮想空間の画像を生成するよう、シーングラフデータを更新する。
【００９０】
より詳しくは、ステップＳ１０４０で視点の位置が外部領域１０に属すると判定された場合には、外部領域用光源データのみを使用すると設定し、内部領域用光源データについては使用しないと設定することで、シーングラフデータを更新する。
【００９１】
また、ステップＳ１０４０で視点の位置が内部領域２０に属すると判定された場合には、内部領域用光源データのみを使用すると設定し、外部領域用光源データについては使用しないと設定することで、シーングラフデータを更新する。
【００９２】
また、ステップＳ１０４０で視点の位置が境界領域３０に属すると判定された場合には、外部領域用光源データ、内部領域用光源データの両方を使用すると設定するのであるが、それぞれの光源による照度を以下説明する比率でもって用いるように設定する。これにより、シーングラフデータを更新する。
【００９３】
外部領域用光源の照度（視点の位置が外部領域１０に属する場合に用いられる光源の照度）をＩ１、内部領域用光源の照度（視点の位置が内部領域２０に属する場合に用いられる光源の照度）をＩ２とすると、視点の位置が境界領域３０に属する場合の外部領域用光源の照度Ｉ’１、内部領域用光源の照度Ｉ’２は以下の式に従って求めることができる。
【００９４】
Ｉ’１＝ｋ×Ｉ１
Ｉ’２＝（１−ｋ）×Ｉ２
ここでｋは０≦ｋ≦１を満たす実数である。この実数ｋは視点の位置に応じて決まる。以下ではこの実数ｋの決定方法について説明する。
【００９５】
外部領域１０と境界領域３０との境界を構成している点群をＲ、内部領域２０と境界領域３０との境界を構成している点群をＳとする。観察者の視点位置Ｖを地平面に射影した点Ｖ’が境界領域３０の内部に存在するとき、Ｒに含まれる各点とＶ’との距離、Ｓに含まれる各点とＶ’との距離を算出する。このとき、距離を最小にする点をそれぞれｒ、ｓとし、そのときの距離をそれぞれｄ１，ｄ２とする。このとき、以下の式が成り立つ。
【００９６】
ｄ１＝｜ＲＶ’｜
ｄ２＝｜ＳＶ’｜
よって求めるべき実数ｋは以下の式に従って求める。
【００９７】
ｋ＝ｄ２／（ｄ１＋ｄ２）
よって、ステップＳ１０５０ではこのようにして実数ｋを求め、求めたｋを用いてＩ’１、Ｉ’２を求め、シーングラフデータにおいて、外部領域用光源の照度データをＩ’１に更新すると共に、内部領域用光源の照度データをＩ’２に更新する。
【００９８】
これにより、視点が境界領域３０に位置する場合には、外部領域用光源と内部領域用光源とが実数ｋで決まる比率で配合された光源に従って、仮想空間の画像を生成することになる。よって、視点位置が外部領域１０により近いときには、外部領域用光源による影響が強くなる。また逆に、視点位置が内部領域２０により近いときには、内部領域用光源による影響が強くなる。
【００９９】
本実施形態では、視点位置が境界領域３０の内部に存在する場合に、視点位置と、外部領域１０と境界領域３０との境界点、及び内部領域２０と境界領域３０との境界点との距離の逆数の比によって重みづけし、外部領域用光源と内部領域用光源とを混合するようにしているが、混合するための手法はこれに限るものではない。
【０１００】
なお、以上の説明したような処理は図２に示した領域構成に限定するものではなく、ある領域Ｘの近傍に２つの領域Ｙ、Ｚが存在し、視点位置が領域Ｘに属している場合には、領域Ｙ用の光源による照度に対する重み値、領域Ｚ用の光源による照度に対する重み値を上記処理により求め、求めた重み値でもって重み付けされた領域Ｙ用の光源、領域Ｚ用の光源を用いて仮想空間の画像を生成すれば良い。
【０１０１】
［第３の実施形態］
第１，２の実施形態では空間４０は外部領域１０、内部領域２０、境界領域３０の３つの領域に分割されていたが、外部領域１０、内部領域２０の２つに分割しても良い。その場合、シーングラフデータには境界領域用光源データは含まれておらず、更に、ステップＳ１０５０では、ステップＳ１０４０で視点の位置が外部領域１０に属すると判定された場合には、外部領域用光源データのみを使用すると設定し、内部領域用光源データについては使用しないと設定することで、シーングラフデータを更新するし、ステップＳ１０４０で視点の位置が内部領域２０に属すると判定された場合には、内部領域用光源データのみを使用すると設定し、外部領域用光源データについては使用しないと設定することで、シーングラフデータを更新する。
【０１０２】
これ以外の処理については第１の実施形態と同じである。
【０１０３】
［第４の実施形態］
本実施形態では、観察者が移動可能な領域を任意に分割する。図５は、観察者が移動可能な領域５００の鳥瞰図である。同図に示す如く、領域５００は５つの領域（領域Ａ、領域Ｂ、領域Ｃ、領域Ｄ、領域Ｅ）に分割されている。その場合、シーングラフデータには領域Ａ用光源データ、領域Ｂ用光源データ、領域Ｃ用光源データ、領域Ｄ用光源データ、領域Ｅ用光源データが含まれている。
【０１０４】
よって、本実施形態に係る複合現実空間画像生成処理は、図４のフローチャートに従った処理を以下のように変更したものとなる。
【０１０５】
ステップＳ１０４０では、視点の位置が上記５つの領域の何れに属しているのかを判定する。そしてステップＳ１０５０では、ステップＳ１０４０で属していると判定された領域用の光源データのみを用いるように、シーングラフデータを更新する。
【０１０６】
即ち、第１の実施形態でも説明したが、領域の数や形状が変わろうとも、それぞれの領域毎に光源データを設け、それぞれの光源データのうち、視点の位置が属する領域の光源データを用いて仮想空間データを生成するという処理の本質は第１の実施形態と同じである。
【０１０７】
［第５の実施形態］
第４の実施形態では５つの領域それぞれに光源データを設けていたが、第２の実施形態のように、それぞれの領域毎に光源データを設けずに、ある領域についてはその他の領域のための光源データを用いるというようにしても良い。
【０１０８】
本実施形態ではシーングラフデータには領域Ａ用光源データ、領域Ｂ用光源データ、領域Ｄ用光源データ、領域Ｅ用光源データを含め、領域Ｃ用の光源データは含めない。このような場合に、視点の位置が領域Ｃに属している場合の仮想空間画像生成処理について説明する。なお、以下の説明の本質は、領域Ｃ用の光源データの代わりに他の光源データをシーングラフデータに含めないようにしても変わらない。
【０１０９】
よって、本実施形態に係る複合現実空間画像生成処理は、図４のフローチャートに従った処理を以下のように変更したものとなる。
【０１１０】
ステップＳ１０５０では、ステップＳ１０４０で視点の位置が領域Ａ、領域Ｂ、領域Ｄ、領域Ｅの何れかに属すると判定された場合には、判定された領域用の光源データのみを使用すると設定し、それ以外の光源データについては使用しないと設定することで、シーングラフデータを更新するし、ステップＳ１０４０で視点の位置が領域Ｃに属すると判定された場合には、領域Ａ、領域Ｂ、領域Ｅのそれぞれの領域用の光源による照度を以下説明する比率でもって用いるように設定する。これにより、シーングラフデータを更新する。
【０１１１】
領域Ａ用光源の照度（視点の位置が領域Ａに属する場合に用いられる光源の照度）をＩ１、領域Ｂ用光源の照度（視点の位置が領域Ｂに属する場合に用いられる光源の照度）をＩ２、領域Ｅ用光源の照度（視点の位置が領域Ｅに属する場合に用いられる光源の照度）をＩ３とすると、視点の位置が領域Ｃに属する場合の領域Ａ用光源の照度Ｉ’１、領域Ｂ用光源の照度Ｉ’２、領域Ｅ用光源の照度Ｉ’３は以下の式に従って求めることができる。
【０１１２】
Ｉ’１＝ｋ１×Ｉ１
Ｉ’２＝ｋ２×Ｉ２
Ｉ’３＝ｋ３×Ｉ３
但し、ｋ１＋ｋ２＋ｋ３＝１
この実数ｋ１、ｋ２、ｋ３は視点の位置に応じて決まる。以下ではこの実数ｋ１、ｋ２、ｋ３の決定方法について説明する。
【０１１３】
領域Ａと領域Ｃとの境界を構成している点群をＲ１、領域Ｂと領域Ｃとの境界を構成している点群をＲ２、領域Ｅと領域Ｃとの境界を構成している点群をＲ３とする。観察者の視点位置Ｖを地平面に射影した点Ｖ’が領域Ｃの内部に存在するとき、Ｒ１に含まれる各点とＶ’との距離、Ｒ２に含まれる各点とＶ’との距離、Ｒ３に含まれる各点とＶ’との距離を算出する。このとき、この距離を最小にする点をそれぞれｒ１、ｒ２、ｒ３とし、そのときの距離をそれぞれｄ１，ｄ２，ｄ３とする。このとき、以下の式が成り立つ。
【０１１４】
ｄ１＝｜Ｒ１Ｖ’｜
ｄ２＝｜Ｒ２Ｖ’｜
ｄ３＝｜Ｒ３Ｖ’｜
よって求めるべき実数ｋ１、ｋ２、ｋ３は以下の式に従って求める。
【０１１５】
ｋ１＝１／ｄ１×１／（１／ｄ１＋１／ｄ２＋１／ｄ３）
ｋ２＝１／ｄ２×１／（１／ｄ１＋１／ｄ２＋１／ｄ３）
ｋ３＝１／ｄ３×１／（１／ｄ１＋１／ｄ２＋１／ｄ３）
よって、ステップＳ１０５０ではこのようにして実数ｋ１、ｋ２、ｋ３を求め、求めたｋ１、ｋ２、ｋ３を用いてＩ’１、Ｉ’２、Ｉ’３を求め、シーングラフデータにおいて、領域Ａ用光源の照度データをＩ’１に更新し、領域Ｂ用光源の照度データをＩ’２に更新し、領域Ｅ用光源の照度データをＩ’３に更新する。
【０１１６】
これにより、視点が領域Ｃに属する場合には、照度がＩ’１の領域Ａ用光源と照度がＩ’２の領域Ｂ用光源と照度がＩ’３の領域Ｃ用光源とが配合された光源に従って、仮想空間の画像を生成することになる。よって、視点位置がより近い領域の光源による影響が強くなる。
【０１１７】
なお、重み付けするための手法はこれに限られない。例えば、距離の逆数以外のパラメータによって重み付けを行ってもよい。
【０１１８】
なお、以上の説明したような処理は図５に示した領域構成に限定するものではなく、より一般的な状況下においても適用することが可能である。
【０１１９】
［その他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１２０】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２１】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２２】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１２３】
【図１】本発明の第１の実施形態に係るシステムのハードウェア構成を示すブロック図である。
【図２】観察者が移動可能な現実空間の鳥瞰図である。
【図３】空間４０と観察者の視点位置５０との関係を示す図である。
【図４】複合現実空間の画像を生成し、ＨＭＤ２００に出力するための処理のフローチャートである。
【図５】観察者が移動可能な領域５００の鳥瞰図である。
【図１】
2006227913.tif 000003
【図２】
2006227913.tif 000004
【図３】
2006227913.tif 000005
【図４】
2006227913.tif 000006
【図５】
2006227913.tif 000007