(57)【要約】【課題】  現実の光源の位置姿勢に応じて、仮想空間中の仮想光源や、仮想物体に対する周辺環境の映りこみを制御することで、現実空間と仮想空間との間の光学的整合性を実現する為の技術を提供すること。【解決手段】  照明装置３０２の位置姿勢に応じて、環境マッピング画像上に照明装置３０２からの光の写り込みを示す画像を描画することで、環境マッピング画像を更新し、更新した環境マッピング画像を仮想物体に対してマッピングし、マッピング済み仮想物体が配置された仮想空間を観察者の視点から見た場合に見える画像を生成し、出力する。【選択図】  図１
2007018173.tif 000002
【特許請求の範囲】
【請求項１】
仮想物体に対して環境マッピングを行うために用いる環境マッピング画像を保持する保持工程と、
観察者の視点の位置姿勢を取得する第１の取得工程と、
現実物体としての光源の位置姿勢を取得する第２の取得工程と、
前記光源の位置姿勢に応じて、前記環境マッピング画像を更新する更新工程と、
前記仮想物体が配置された仮想空間を前記視点から見た場合に見える画像を生成する際に、前記更新工程で更新した更新済み環境マッピング画像を前記仮想物体にマッピングする生成工程と、
前記生成工程で生成した画像を出力する出力工程と
を備えることを特徴とする画像処理方法。
【請求項２】
更に、前記現実物体としての光源による光の明るさ、色を取得する第３の取得工程を備え
前記更新工程では、前記第３の取得工程で取得した色、明るさに基づいて前記環境マッピング画像を更新することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記更新工程では、
前記光源の位置姿勢でもって、前記光源を示すオブジェクトを配置し、
前記保持工程で保持する環境マッピング画像を取得するために行った現実空間撮像における撮像面上に、当該環境マッピング画像を配置した場合に、当該配置した環境マッピング画像を構成する各画素位置から前記現実空間撮像における焦点を通る直線のうち、前記オブジェクトと交差する直線群について、当該直線群の始点位置である画素位置群で構成される領域に、前記光源からの光の写り込みを示す画像を描画することで、前記環境マッピング画像を更新することを特徴とする請求項１に記載の画像処理方法。
【請求項４】
更に、前記現実物体としての光源による光の明るさ、色を取得する第３の取得工程を備え
前記更新工程では、前記画素位置群で構成される領域に、前記光源からの光の写り込みを示す画像を、前記第３の取得工程で取得した色、明るさでもって描画することで、前記環境マッピング画像を更新することを特徴とする請求項３に記載の画像処理方法。
【請求項５】
前記更新工程では、
前記保持工程で保持する環境マッピング画像を取得するために行った現実空間撮像における撮像面上に、当該環境マッピング画像を配置した場合に、当該配置した環境マッピング画像を構成する各画素位置から前記現実空間撮像における焦点を通る直線のうち、前記光源の位置に最も近い位置を通る直線の始点位置である画素位置における画素の近傍画素群で構成される領域に、前記光源からの光の写り込みを示す画像を描画することで、前記環境マッピング画像を更新することを特徴とする請求項１に記載の画像処理方法。
【請求項６】
更に、前記現実物体としての光源による光の明るさ、色を取得する第３の取得工程を備え
前記更新工程では、前記近傍画素群で構成される領域に、前記光源からの光の写り込みを示す画像を、前記第３の取得工程で取得した色、明るさに基づいて描画することで、前記環境マッピング画像を更新することを特徴とする請求項５に記載の画像処理方法。
【請求項７】
更に、
前記光源のオン／オフを示す指示を取得する工程を備え、
前記生成工程では、
前記光源がオンである場合には、前記仮想物体に対して前記更新済み環境マッピング画像をマッピングすることで仮想物体を生成し、
前記光源がオフである場合には、前記仮想物体に対して前記保持工程で保持している環境マッピング画像をマッピングすることで仮想物体を生成する
ことを特徴とする請求項１乃至６の何れか１項に記載の画像処理方法。
【請求項８】
更に、
前記視点から見える現実空間の画像を取得する工程を備え、
前記出力工程では、前記生成工程で生成した画像を、前記現実空間の画像上に重畳させて出力することを特徴とする請求項１乃至７の何れか１項に記載の画像処理方法。
【請求項９】
仮想物体に対して環境マッピングを行うために用いる環境マッピング画像を保持する保持手段と、
観察者の視点の位置姿勢を取得する第１の取得手段と、
現実物体としての光源の位置姿勢を取得する第２の取得手段と、
前記光源の位置姿勢に応じて、前記環境マッピング画像を更新する更新手段と、
前記仮想物体が配置された仮想空間を前記視点から見た場合に見える画像を生成する際に、前記更新手段で更新した更新済み環境マッピング画像を前記仮想物体にマッピングする生成手段と、
前記生成手段によって生成した画像を出力する出力手段と
を備えることを特徴とする画像処理装置。
【請求項１０】
コンピュータに請求項１乃至８の何れか１項に記載の画像処理方法を実行させる為のプログラム。
【請求項１１】
請求項１０に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間の画像を生成するための技術に関するものである。
【背景技術】
【０００２】
仮想空間中において、仮想物体を操作することで、様々なシミュレーションを行う仮想現実感システムが、バーチャル・リアリティの分野において盛んに提案されている。例えば、非特許文献１では、ユーザ（使用者）が、仮想のシステムキッチン内に存在する扉の開閉や、蛇口の操作を体験することができると開示されている。これらの仮想現実感システムでは、ユーザの頭部の動きに合わせてコンピュータグラフィックス（ＣＧ：Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）で描画した仮想空間の映像を生成し、ヘッドマウントディスプレイ（ＨＭＤ：Ｈｅａｄ−Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）などの表示装置に表示することで、仮想現実感映像をシステムのユーザ（使用者）に提示するものである。
【０００３】
また、現実空間と仮想空間とを違和感なく自然に合成する複合現実感（ＭＲ：Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）の技術を応用したシステムも盛んに提案されている。これらの複合現実感システムでは、カメラなどの撮像装置によって撮影した現実空間の映像に対し、ユーザの頭部の動きに合わせてコンピュータグラフィックス（ＣＧ：Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）で描画した仮想空間の映像を合成し、ヘッドマウントディスプレイ（ＨＭＤ：Ｈｅａｄ−Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）などの表示装置に表示することで、複合現実感映像をシステムのユーザ（使用者）に提示するものである。複合現実感技術、およびヘッドマウントディスプレイに関する詳細説明については、例えば非特許文献２に開示されている。
【０００４】
一方、仮想現実空間もしくは複合現実空間中に存在する仮想物体に対して、周辺環境の映りこみを簡易的に実現するＣＧ技術が、非特許文献３に開示されている。この文献には、環境マッピング技術の説明として、「物体の存在する３次元空間内に半径無限大の仮想球を考え、その内面にあらかじめ環境のテクスチャを貼り付け、金属などの物体表面にそのテクスチャが反射しているように表示を行うこと」、「反射方向ベクトルは視点の位置と物体表面の点の座標で決まり、このベクトルからテクスチャ上の座標が決定できる」、「環境テクスチャを貼り付ける形状は、球のほかに円柱や立方体なども用いられることがある」と記載されている。
【非特許文献１】今村，野村，大畑：仮想空間意思決定支援システムＶＳＤＳＳとそのショウルームへの応用，ヒューマンインタフェースシンポジウム（１９９１．１０），ｐｐ．２０３−２０８
【非特許文献２】大島登志一，佐藤清秀，山本裕之，田村秀行：“ＡＲ２ホッケー：協調型複合現実感システムの実現”，日本バーチャルリアリティ学会論文誌，Ｖｏｌ．３，Ｎｏ．２，ｐｐ．５５−６０（１９９８．８）
【非特許文献３】技術編  ＣＧ標準テキストブック，財団法人画像情報教育振興協会，ｐｐ．１７０−１７１
【発明の開示】
【発明が解決しようとする課題】
【０００５】
近年、複合現実感技術を応用したデザイン検証システムの開発へ期待が高まりつつある。このデザイン検証システムでは、仮想物体の色や質感、模様などの特性に関する様々なパラメータを、ユーザがインタラクティブに、かつ自由に変更することができる。ここで、よりリアルなデザイン検証を行う機能の一つとして、現実の光源環境を仮想物体に反映する光学的整合性に関する機能が求められている。
【０００６】
論文「神原，横矢：光源環境マップの実時間推定による光学的整合性を考慮したビジョンベース拡張現実感，情報科学技術フォーラム（２００２．０９），ｐｐ．１２７−１２８」には、光学的整合性に関する技術として、球状のミラーをカメラで撮影することで周辺の光源環境を推定し、推定した光源環境を仮想物体であるポットの陰影（ポット自身のＳｈａｄｅ、および机に落ちるＳｈａｄｏｗ）に反映する手法が開示されている。しかし、この論文の手法では、光沢感のある反射素材からなる仮想物体のデザイン検証を行うことができなかった。すなわち、検証対象のコンテンツの幅が制限されるため、改善が求められていた。また、仮想物体に対して、推定した光源環境の映りこみを実現できなかった。すなわち、リアルなデザイン検証を行うことができず、改善が求められていた。
【０００７】
本発明は、以上の問題に鑑みてなされたものであり、現実の光源の位置姿勢に応じて、仮想空間中の仮想光源や、仮想物体に対する周辺環境の映りこみを制御することで、現実空間と仮想空間との間の光学的整合性を実現する為の技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【０００９】
即ち、仮想物体に対して環境マッピングを行うために用いる環境マッピング画像を保持する保持工程と、
観察者の視点の位置姿勢を取得する第１の取得工程と、
現実物体としての光源の位置姿勢を取得する第２の取得工程と、
前記光源の位置姿勢に応じて、前記環境マッピング画像を更新する更新工程と、
前記仮想物体が配置された仮想空間を前記視点から見た場合に見える画像を生成する際に、前記更新工程で更新した更新済み環境マッピング画像を前記仮想物体にマッピングする生成工程と、
前記生成工程で生成した画像を出力する出力工程と
を備えることを特徴とする。
【００１０】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００１１】
即ち、仮想物体に対して環境マッピングを行うために用いる環境マッピング画像を保持する保持手段と、
観察者の視点の位置姿勢を取得する第１の取得手段と、
現実物体としての光源の位置姿勢を取得する第２の取得手段と、
前記光源の位置姿勢に応じて、前記環境マッピング画像を更新する更新手段と、
前記仮想物体が配置された仮想空間を前記視点から見た場合に見える画像を生成する際に、前記更新手段で更新した更新済み環境マッピング画像を前記仮想物体にマッピングする生成手段と、
前記生成手段によって生成した画像を出力する出力手段と
を備えることを特徴とする。
【発明の効果】
【００１２】
本発明の構成により、現実の光源の位置姿勢に応じて、仮想空間中の仮想光源や、仮想物体に対する周辺環境の映りこみを制御することで、現実空間と仮想空間との間の光学的整合性を実現することができる。
【発明を実施するための最良の形態】
【００１３】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１４】
［第１の実施形態］
図１は、仮想空間と現実空間とを合成した複合現実空間の画像を観察者に対して提示する為の、本実施形態に係るシステムのハードウェア構成を示すブロック図である。同図に示す如く、本実施形態に係るシステムは、コンピュータ１００，頭部装着部２００、照明装置３０２、センサ制御装置３０３により構成される。
【００１５】
先ず、頭部装着部２００について説明する。頭部装着部２００は、複合現実空間を観察する観察者が自身の頭部に装着する、所謂ＨＭＤ（ヘッドマウントディスプレイ）であって、同図に示す如く、表示装置２０１、撮像装置２０２、センサ３０１により構成されている。
【００１６】
このように、頭部装着部２００には撮像装置２０２が備わっているので、この頭部装着部２００は所謂ビデオシースルー型ＨＭＤである。また、本実施形態では、頭部装着部２００を観察者の頭部に装着する形態となっているが、観察者が複合現実空間を体感することができるのであれば、頭部装着部２００は必ずしも観察者が装着する必要はない。
【００１７】
表示装置２０１は、観察者が頭部装着部２００を自身の頭部に装着した際に眼前に位置するように頭部装着部２００に取り付けられている。また、表示装置２０１は、コンピュータ１００が有する画像出力装置１０３から出力される画像情報を受け、これに基づく画像を表示する。従って、頭部装着部２００を頭部に装着した観察者の眼前には、コンピュータ１００から出力された画像情報に従った画像が表示されることになる。
【００１８】
なお、本実施形態では、表示装置２０１は頭部装着部２００を構成する装置であるが、必ずしも観察者が装着する必要はない。即ち、観察者が映像を確認することができる手段であれば、例えば、表示装置２０１として据え置き型のディスプレイ装置を用いてもよいし、手持ち型のディスプレイを用いてもよい。
【００１９】
撮像装置２０２は、ＣＣＤカメラなどの１つ以上の撮像装置によって実現される。撮像装置２０２は観察者の視点（目）から見た現実空間の動画像を撮像するために用いられる。そのため、撮像装置２０２は、観察者の視点位置に近い場所に装着することが望ましいが、観察者の視点から見た現実空間の画像が取得できる手段であれば、これに限定されない。また、ハーフミラーやプリズムなどを用いて撮像装置２０２の光軸と、表示装置２０１の中心軸とを一致させてもよい。
【００２０】
撮像装置２０２が撮像した各フレームの画像（現実空間の画像）は、アナログ信号、若しくはＩＥＥＥ１３９４規格のディジタル信号信号等から成る画像信号としてコンピュータ１００が有する画像入力装置１０７に送出される。なお、表示装置２０１に光学シースルー型の表示装置を用いる場合には、観察者は表示装置２０１を通して現実世界を直接観察することになるため、撮像装置２０２を具備しなくてよい。また、頭部装着部２００に現実空間の画像を必要としない没入型の装置を用いる場合にも、撮像装置２０２を具備しなくてよい。
【００２１】
センサ３０１は、センサ制御装置３０３による制御に従って自身の位置姿勢を計測し、その計測結果をセンサ制御装置３０３に送出する。ここで、センサ３０１は、本来は、観察者の視点の位置姿勢を計測するためのものであるが、センサ３０１と観察者の視点とはその位置がずれており、センサ３０１が計測した位置姿勢は観察者の視点の位置姿勢ではない。しかし、この位置ずれ量（オフセット量）は固定である為、センサ３０１による計測値にこのオフセット量を加算すれば、観察者の視点の位置姿勢が得られる。この位置ずれ量（オフセット量）は予め測定しておき、データとしてコンピュータ１００側に保持させておく。
【００２２】
センサ制御装置３０３は、センサ３０１から計測結果（視点の位置姿勢情報）を受けると、これをデータとしてコンピュータ１００が有する入力装置１０６に送出する。
【００２３】
次に、コンピュータ１００について説明する。コンピュータ１００には一般のＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）等が適用可能であり、同図に示す如く、ＣＰＵ１０１、ＲＡＭ１０２、画像出力装置１０３、システムバス１０４、ディスク装置１０５、入力装置１０６、画像入力装置１０７、操作部１０８により構成されている。
【００２４】
ＣＰＵ１０１はＲＡＭ１０２にロードされたプログラムやデータを用いてコンピュータ１００全体の制御を行うと共に、コンピュータ１００が行う後述の各処理を実行する。
【００２５】
ＲＡＭ１０２は、ディスク装置１０５からロードされたプログラムやデータを一時的に記憶する為のエリア、画像入力装置１０７を介して頭部装着部２００が有する撮像装置２０２から入力した現実空間の画像のデータを一時的に記憶するためのエリア、入力装置１０６を介してセンサ制御装置３０３から入力した各種の情報を一時的に記憶するためのエリア、ＣＰＵ１０１が各種の処理を実行する際に用いるワークエリア、周知のビデオバッファ等、各種のエリアを適宜提供することができる。
【００２６】
画像出力装置１０３は、グラフィックスカードなどの機器によって実現される。一般的に、画像出力装置１０３は図示しないグラフィックスメモリを保持している。ＣＰＵ１０１による処理でもって生成される画像情報は、システムバス１０４を介して、画像出力装置１０３が保持するグラフィックスメモリに書き込まれる。画像出力装置１０３は、グラフィックスメモリに書き込まれた画像情報を適切な画像信号に変換して、頭部装着部２００が有する表示装置２０１に送出する。グラフィックスメモリは必ずしも画像出力装置１０３が保持する必要はなく、ＲＡＭ１０２がグラフィックスメモリの機能を実現してもよい。
【００２７】
ディスク装置１０５は、ハードディスクドライブ装置に代表される大容量情報記憶装置であって、ここにＯＳ（オペレーティングシステム）や、コンピュータ１００が行う後述の各処理をＣＰＵ１０１に実行させるためのプログラムやデータが保存されており、これらはＣＰＵ１０１による制御に従ってＲＡＭ１０２にロードされ、ＣＰＵ１０１による処理対象となる。
【００２８】
なお、ディスク装置１０５に保存されているデータの中には、仮想空間を構成する各仮想物体に係るデータ、仮想空間中に配置される光源に係るデータ、上記オフセット量のデータ、仮想物体に対して環境マッピングを行うために用いる環境マッピング画像（環境マップ）データ等が含まれる。
【００２９】
入力装置１０６は、各種インタフェース機器によって実現され、外部機器からの信号をデータとして入力し、システムバス１０４を介して、ＲＡＭ１０２、若しくはディスク装置１０５に出力する。
【００３０】
画像入力装置１０７は、キャプチャカードなどの機器によって実現される。画像入力装置１０７は、撮像装置２０２から順次送出される現実空間の画像を受け、これをシステムバス１０４を介して、ＲＡＭ１０２、若しくはディスク装置１０５に出力する。なお、表示装置２０１に光学シースルー型の表示装置を用いる場合や、頭部装着部２００に現実空間の画像を必要としない没入型の装置を用いる場合には、画像入力装置１０７は具備しなくてもよい。
【００３１】
操作部１０８は、マウスやキーボードなどにより構成されており、コンピュータ１００の操作者（観察者）が操作することで、各種の指示をＣＰＵ１０１に対して入力することができる。
【００３２】
１０４は上述の各部を繋ぐバスである。
【００３３】
次に、照明装置３０２について説明する。
【００３４】
照明装置３０２は、懐中電灯を元にした現実物体としての光源デバイスであり、本実施形態では観察者が手に持って使用する。また、照明装置３０２の内部にはセンサ３０１と同様のセンサが備わっており、センサ３０１と同様に、自身の位置姿勢を計測する。
【００３５】
図２は、照明装置３０２の外観、及びその構成の例を示す図である。同図に示す如く、照明装置３０２には、光を照射する光源として機能する照明部３０８、押しボタンスイッチ３０４，３０５、スライダ３０６が設けられている。また、照明装置３０２の内部には、センサ３０７が備わっている。
【００３６】
センサ３０７は、センサ３０１と同様のものであり、センサ制御装置３０３による制御に従って自身の位置姿勢を計測し、計測結果をセンサ制御装置３０３に送出する。ここで、センサ３０７は、照明装置３０２の重心位置に取り付けられることが好ましい。また、以下では、センサ３０７が計測する位置姿勢を照明装置３０２の位置姿勢として用いる。また、センサ３０７が計測する姿勢成分の何れかが、照明装置３０２の軸３９９が向いている方向であることが好ましいが、軸３９９の向いている方向が得られるのであれば、これに限定するものではない。センサ制御装置３０３は、このセンサ３０７から受けた位置姿勢情報をデータとしてコンピュータ１００が有する入力装置１０６に対して送出する。
【００３７】
押しボタンスイッチ３０４は、１度押下されると、その操作情報がセンサ制御装置３０３に送出されると共に、センサ制御装置３０３による制御に従って照明部３０８がＯＮ状態となり、照明部３０８から光が照射される。ここで、更に押しボタンスイッチ３０４がもう１度押下されると、その操作情報がセンサ制御装置３０３に送出されると共に、センサ制御装置３０３による制御に従って照明部３０８がＯＦＦ状態となり、照明部３０８は光の照射を止める。
【００３８】
ここで、照明装置３０２の照明部３０８がＯＮ状態であるとき、押しボタンスイッチ３０５を押下する毎にセンサ制御装置３０３による制御に従って照明部３０８から照射される光の色が変わるし、スライダー３０６を動かすことでセンサ制御装置３０３による制御に従って照明部３０８から照射される光の明るさを調節することができる。
【００３９】
なお、押しボタンスイッチ３０４，３０５，スライダ３０６を操作すると、この操作情報はセンサ制御装置３０３に送出され、センサ制御装置３０３は、この受けた操作情報をデータとしてコンピュータ１００が有する入力装置１０６に送出する。この操作情報には、現在照明部３０８がＯＮ状態であるのかＯＦＦ状態であるのかを示す情報や、照明部３０８から照射する光の色や明るさといった光に係る情報も含まれている。
【００４０】
ここで、本実施形態では、仮想空間と現実空間とでそれぞれの座標系を一致させておく。即ち、現実空間中に配置された現実物体の位置姿勢と同じ位置姿勢でもって仮想空間中に仮想物体を配置した場合に、この現実物体にこの仮想物体が一致して配置されるよう、それぞれの空間における座標系を一致させておく。また、現実物体と仮想物体との関係が逆の場合でも同じことである。仮想空間の座標系と現実空間の座標系とを合わせる技術については、従来から多くの取り組みが行われており、例えば特開２００２−２２９７３０号公報、特開２００３−２６９９１３号公報などに開示されている方法を用いて、現実空間と仮想空間とを正確に整合させるための位置合わせを実現することができる。
【００４１】
次に、上記構成を有するシステム中のコンピュータ１００が行う処理について、同処理のフローチャートを示す図３を用いて説明する。なお、同図のフローチャートに従った処理をＣＰＵ１０１に実行させるためのプログラムやデータはディスク装置１０５に保存されており、これらは必要に応じて適宜ＣＰＵ１０１による制御に従ってＲＡＭ１０２にロードされ、ＣＰＵ１０１がこれを用いて処理を実行することで、コンピュータ１００は以下説明する各処理を実行することになる。
【００４２】
まず、ステップＳ１０００では、コンピュータ１００を初期化する処理を行う。
【００４３】
次に、ステップＳ１０１０では、環境マッピングに用いる環境マッピング画像をディスク装置１０５からＲＡＭ１０２にロードする。ここで、環境マッピング技術、及び環境マッピング画像の作成方法について説明する。
【００４４】
環境マッピング技術は、「物体の存在する３次元空間内に半径無限大の仮想球を考え、その内面にあらかじめ環境のテクスチャを貼り付け、金属などの物体表面にそのテクスチャが反射しているように表示を行うこと」、「反射方向ベクトルは視点の位置と物体表面の点の座標で決まり、このベクトルからテクスチャ上の座標が決定できる」、「環境テクスチャを貼り付ける形状は、球のほかに円柱や立方体なども用いられることがある」という内容によって特徴付けられる。環境マッピング技術に関する詳細な説明は、文献「技術編  ＣＧ標準テキストブック，財団法人画像情報教育振興協会，ｐｐ．１７０−１７１」に開示されている。
【００４５】
環境マッピング画像の作成方法については、図４を用いて説明する。図４は、環境マッピング画像の取得に係る処理、及びこの処理でもって取得した環境マッピング画像を説明する図である。
【００４６】
図４（ａ）では、撮影者４０１がカメラ４０２を利用して球状ミラー４０３を撮影している。図４（ａ）中の点線は、カメラ４０２の撮影画角範囲を示している。こうしてカメラ４０２で撮影した画像から球状ミラー４０３の部分を切り抜き、撮影者４０１およびカメラ４０２の画像部分を消去した画像が、図４（ｂ）に示す環境マッピング画像４０４である。
【００４７】
環境マップ画像４０４は、球状ミラー４０３を撮影した画像なので、周囲の環境（点線で囲まれた天井の光源群４０５、地面４０６など）が映りこんでいるのが分かる。作成された環境マッピング画像４０４は、ディスク装置１０５に保持される。場合によっては、環境マッピング画像４０４に対して、輝度調整・色調整・編集処理を施してもよい。また、環境マッピング画像４０４に映りこんだ撮影者４０１およびカメラ４０２を消去せずにそのまま残してもよい。また、時や場所を変えて、環境マップ画像を複数作成してもよい。
【００４８】
従ってステップＳ１０１０では、ディスク装置１０５に保持されている環境マッピング画像のうちの１枚を、以降の処理で用いるものとしてＲＡＭ１０２内の環境マッピング用テクスチャメモリにロードする。本実施形態では、以降の処理で用いる環境マッピング画像として、図４（ｂ）に示す環境マッピング画像４０４を用いるものとする。
【００４９】
ステップＳ１０２０では、頭部装着部２００が有する撮像装置２０２により撮像された各フレームの現実空間の画像が順次コンピュータ１００に送出されるので、送出されたそれぞれの画像を画像入力装置１０７、システムバス１０４を介して順次ビデオバッファ等のメモリに取得する。
【００５０】
なお、表示装置２０１に光学シースルー型の表示装置を用いる場合や、頭部装着部２００に現実空間の画像を必要としない没入型の装置を用いる場合には、本ステップを無視する。
【００５１】
ステップＳ１０３０では、頭部装着部２００が有するセンサ３０１により計測された位置姿勢情報、及び照明装置３０２が有するセンサ３０７により計測された照明装置３０２の位置姿勢情報がセンサ制御装置３０３からコンピュータ１００に送出されるので、送出されたこれらの位置姿勢情報を、入力装置１０６、システムバス１０４を介してＲＡＭ１０２内、若しくはディスク装置１０５内に取得する。
【００５２】
ステップＳ１０４０では、仮想空間を構成する各仮想物体についてのデータは予めディスク装置１０５からＲＡＭ１０２にロードされているので、このデータを用いて仮想物体を生成すると共に、仮想空間中に配置することで、仮想空間を形成する。また、ステップＳ１０３０で取得したセンサ３０１の位置姿勢に上記オフセット量を加算して、視点の位置姿勢を求める。そして、求めた位置姿勢を有する視点から見た仮想空間の画像を生成する。なお、仮想空間の画像を生成する際には周知の通り、仮想空間中に仮想の光源を設ける必要があるが、この光源は以下に登場する光源とは別個のものである。
【００５３】
なお、本実施形態では、仮想物体に対して環境マッピングを行うので、先にＲＡＭ１０２内の環境マッピング用テクスチャメモリにロードされている環境マッピング画像を、この仮想物体に対してマッピングする。本実施形態では、環境マッピング画像を貼り付ける形状として半径無限大の球を利用する。ただし、環境マッピング画像を貼り付ける形状として半径無限大の球を利用することで、観察者の視点位置が図４のカメラ４０２の位置と大きくずれると、適切な環境マッピング処理を行うことが出来ない場合がある。このような場合は、撮影した環境マッピング画像に対してワーピング変換処理を施すことで対処できる。
【００５４】
また、生成した仮想空間の画像において仮想物体の領域以外については、この画像の背景画像となる現実空間の画像が見えるように、透過率１００％で描画する。若しくは、同等の目的を達成するために、背景画像となる現実空間の画像を透過させるように予め定めたカラーバッファ値（例えば（Ｒ、Ｇ、Ｂ）＝（０、０、０））を入力してもよい。
【００５５】
なお、表示装置２０１に光学シースルー型の表示装置を用いる場合には、仮想物体が存在しない画面領域を背景が透過する色で描画してもよい。また、頭部装着部２００に現実映像を必要としない没入型の装置を用いる場合には、仮想物体が存在しない画面領域に何を表示してもよい。
【００５６】
ステップＳ１０５０では、ステップＳ１０２０で現実空間の画像を描画したビデオバッファ上に、ステップＳ１０４０で生成した仮想空間の画像を重畳させることで、合成画像、即ち、複合現実空間の画像をビデオバッファ上に生成する。そして、生成した画像を画像出力装置１０３により、頭部装着部２００が有する表示装置２０１に対して出力する。これにより、観察者の眼前には、以上の処理でもって生成した複合現実空間の画像が表示されることになる。
【００５７】
ここで、ステップＳ１０４０における説明で述べたように、仮想物体を描画する際に、仮想物体が存在しない画面領域を背景透過率１００％で描画したり、背景画像となる現実画像を透過させるようにあらかじめ定めたカラーバッファ値（例えば（Ｒ、Ｇ、Ｂ）＝（０、０、０））を入力しているため、現実空間と仮想空間とを合成した映像を表示することができる。
【００５８】
なお、表示装置２０１に光学シースルー型の表示装置を用いる場合や、頭部装着部２００に現実映像を必要としない没入型の装置を用いる場合には、単にステップＳ１０４０で描画した仮想空間画像を表示装置２０１に表示すればよい。
【００５９】
ステップＳ１０６０では、センサ制御装置３０３から受けた操作情報を参照し、照明部３０８がＯＮ状態であるのか否かを判断する。照明部３０８がＯＮ状態になっていれば処理をステップＳ１０７０へ進め、照明部３０８がＯＦＦ状態になっていれば処理をステップＳ１０２０に戻す。
【００６０】
ステップＳ１０７０では、ステップＳ１０３０で取得した照明装置３０２の位置姿勢に仮想の光源を配置する。上述のとおり、現実空間と仮想空間とで座標系を一致させているので、仮想の光源は、現実物体としての照明装置３０２に一致して配置されることになる。即ち、仮想の光源は、照明装置３０２の位置姿勢でもって配置されるので、観察者が照明装置の位置姿勢を変更すると、仮想光源の位置姿勢もそれに連動して変更されることになる。すなわち、照明装置３０２を現実空間中で動かすと、ステップＳ１０５０で生成される合成画像では、照明装置３０２の動きに合わせてあたかも現実の照明装置３０２から仮想の光が出て、仮想物体の陰影（ＳｈａｄｅおよびＳｈａｄｏｗ）が変化するように見える。もちろん、現実の照明装置３０２の照明部３０８がＯＮ状態になっているので、現実空間の陰影も変化する。
【００６１】
なお、仮想光源については周知の通り、ＣＧ技術分野において、仮想空間に存在する仮想物体を直接的に照明する光源のことであり、一般的に「スポットライト光源」「点光源」「線光源」「面光源」などに区分される。本実施形態では、これらの光源のうち、スポットライト光源を使用した場合について説明する。
【００６２】
図５は、ステップＳ１０７０における処理により、光源が設定された仮想空間の画像を示す図である。同図では、図４（ｂ）に示した環境マッピング画像をマッピングしたポットの仮想物体５０１を用いている。また、同図において５０２はステップＳ１０７０で配置した仮想の光源を示す。なお、同図では説明上、仮想光源５０２を示す仮想物体を配置しているが、この仮想物体は実際には配置しない。
【００６３】
しかし、仮想光源５０２の仮想物体を配置する場合には、仮想空間の座標系と現実空間の座標系とが位置合わせ処理により合っているので、現実空間と仮想空間の合成画像では、現実物体としての照明装置３０２の上に仮想光源５０２が重なっていることになる。なお、この仮想光源５０２は、照明装置３０２の押しボタンスイッチ３０５の操作によって照明の色が変化し、またスライダー３０６の操作によって明るさが変化する。ここで、仮想光源５０２の照明の色および明るさのパラメータは、現実の照明部３０８の色および明るさと同じ、もしくはほぼ同じになるように設定されていることが望ましい。なお、現実の照明部３０８の色および明るさは、センサ制御装置３０３から送出される操作情報に含まれている光に係る情報でもって取得することができる。
【００６４】
図５（ａ）は、仮想空間中に配置されているポットの仮想物体５０１の右上手前からポットの仮想物体５０１を照らすように仮想光源５０２が配置された場合の仮想空間画像を示す。また、図５（ｂ）は、ポットの仮想物体５０１の左上奥からポットの仮想物体５０１を照らすように仮想光源５０２が配置された場合の仮想空間画像を示す。
【００６５】
それぞれを見比べると、ポットの仮想物体５０１の陰影（ＳｈａｄｅおよびＳｈａｄｏｗ）が変化しているのが分かる。
【００６６】
図３に戻って、次に、ステップＳ１０８０では、ステップＳ１０３０で取得した照明装置３０２の位置姿勢に基づいて、環境マッピング画像上に、仮想光源による光の写り込みを描画すべく、環境マッピング画像を更新する処理を行う。
【００６７】
図６（ａ）は図４において説明した環境マップ画像４０４を示す。図６（ｂ）は、ステップＳ１０８０にて、環境マッピング画像４０４上に、仮想光源による光の写り込みを描画すべく、環境マッピング画像４０４を更新した結果の環境マッピング画像６０１を示す。図６（ｂ）において領域６０２が、この写り込みの部分を示すものである。領域６０２の位置、形、色、明るさなどは、仮想光源５０２の位置姿勢の変化や、照明装置３０２の押しボタンスイッチ３０５、スライダー３０６の操作によって変化する。
【００６８】
ここで、ステップＳ１０８０における処理、即ち、図６の場合、写り込みの部分６０２を追加描画するための処理について、図７を用いて説明する。
【００６９】
図７は、ステップＳ１０８０における処理の詳細を示す図である。先ず、同図に示した各部は仮想空間内におけるものであることに注意されたい。
【００７０】
同図において７５０はステップＳ１０７０で配置した仮想光源であり、７０３は、仮想光源７５０の位置姿勢（若しくは仮想光源７５０の位置から軸３９９方向に所定距離だけずれた位置）でもって配置された仮想光源オブジェクトである。この仮想光源オブジェクト７０３は、平面の円形オブジェクトであり、その色や明るさは、仮想光源７５０の色や明るさと同じである。
【００７１】
また、図４に示したカメラ４０２、球状ミラー４０３と同じ位置姿勢でもってそれぞれ、仮想空間中に仮想のカメラ４１２、仮想の球体４１３を配置する。ここで、仮想のカメラ４１２のカメラパラメータ（焦点距離やフォーカスなど）は、現実のカメラ４０２と同じにするので、仮想のカメラ４１２における撮像面（仮想ＣＣＤ面）、焦点はそれぞれ７０１，７０２であって、現実のカメラ４０２のそれと同じ配置関係となる。
【００７２】
ここで、仮想ＣＣＤ面７０１上に環境マッピング画像４０４を１８０度回転させて配置する。この配置した画像を環境マッピング画像７６０とする。そして、この環境マッピング画像７６０を構成する各画素位置から焦点７０２を通る直線を計算する。なお、計算した直線が仮想の球体４１３の表面に衝突した場合には、入射角と反射角とが一致するように、球体面で反射させる。その結果、反射した直線が仮想光源オブジェクト７０３と交差した（若しくは接した）場合、この直線の始点となる環境マッピング画像７６０上の画素の色や明るさを、仮想光源オブジェクト７０３（仮想光源７５０）の色、明るさにに基づいて更新する。
【００７３】
ここで、更新前の環境マッピング画像７６０上の画素（Ｘ，Ｙ）の色をＣＥ（Ｘ，Ｙ）とし、対応する仮想光源オブジェクト７０３（仮想光源７５０）の色をＣＬとすると、更新後の環境マッピング画像７６０上の画素（Ｘ，Ｙ）の色であるＣＥ（Ｘ，Ｙ）’は、αブレンドの式である式（１）によって求めることができる。
【００７４】
ＣＥ（Ｘ，Ｙ）’＝α×ＣＥ（Ｘ，Ｙ）＋（１−α）×ＣＬ    ・・・（１）
ただし、αは、０≦α≦１を満たす値であり、あらかじめ観察者が定めておくことができる。
【００７５】
一方、式（１）のようなαブレンディング処理を行わずに、環境マッピング画像７６０上の画素の色や明るさを、ただ単に仮想光源オブジェクト７０３（仮想光源７５０）の色、明るさに置き換えてもよいことは言うまでもない。
また、ここでは色について説明を行ったが、明るさについても同様に求めることが出来るのは言うまでもない。
【００７６】
即ち、環境マッピング画像７６０を構成する各画素のうち第１の画素から焦点７０２を通り、仮想の球体４１３の面上を反射して仮想光源オブジェクト７０３と交差する場合、この第１の画素の色や明るさを、仮想光源オブジェクト７０３（仮想光源７５０）の色や明るさにに基づいて更新する。一方、環境マッピング画像７６０を構成する各画素のうち第２の画素から焦点７０２を通り、仮想の球体４１３の面上を反射しない、若しくは反射して仮想光源オブジェクト７０３と交差しない場合、この第２の画素の色や明るさは変更しない。
【００７７】
このようにして、第１の画素に相当する画素群で構成される領域に、仮想光源７５０からの光の写り込みを示す画像を描画する。なお、第１の画素に相当する画素群で構成される領域の周辺部分に関しては、適宜その色や明るさを暈かすような処理を行うことが好ましい。
【００７８】
更に、仮想光源オブジェクト７０３だけでなく、仮想光源７５０の仮想物体をも、環境マッピング画像７６０上に写り混ませるように、この環境マッピング画像７６０を更新するようにしても良い。すなわち、あらかじめ仮想光源７５０の仮想物体のモデルをディスク装置１０５に用意しておき、本実施例のステップＳ１０１０などにおいて、ＲＡＭ１０２に読み込んでおく。そして、仮想光源７５０の仮想物体モデルが環境マッピング画像７６０に反映されるよう環境マッピング画像７６０を更新するが、その場合の処理は仮想光源オブジェクト７０３を写り混ませる場合と基本的には同じである。
【００７９】
図８は、図５に示したポットの仮想物体に用いる環境マッピング画像を、以上の処理でもって更新し、更新後の環境マッピング画像を用いて環境マッピングを行ったポットの仮想物体を含む仮想空間の画像を示す図である。図８（ａ）では仮想光源５０２の位置姿勢が図５（ａ）と対応し、図８（ｂ）では仮想光源５０２の位置姿勢が図５（ｂ）と対応する。図８と図５との違いは、仮想物体に対する仮想光源５０２の映りこみがあるかないかである。すなわち、図８（ａ）では、ポットの仮想物体５０１に対して仮想光源５０２の映りこみ８５０が反映されていることが分かる。しかし、図８（ｂ）のような位置姿勢関係の場合は、仮想光源５０２の映りこみはポットの仮想物体５０１の向こう側に反映されるべきであり、実際、手前には映りこみが見えないことが分かる。
【００８０】
図３に戻って、次に、ステップＳ１０９０では、ステップＳ１０８０で更新した環境マッピング画像をＲＡＭ１０２内の環境マッピング用テクスチャメモリ上に上書きし、以降の処理で用いる環境マッピング画像を、ステップＳ１０８０で作成した環境マッピング画像に更新する。
【００８１】
ステップＳ１１００では、操作部１０８を介して本処理の終了指示が入力されたか、若しくは所定の終了条件が満たされたのか等、本処理を終了する指示を検知した場合には本処理を終了するのであるが、検知していない限りは処理をステップＳ１０２０に戻し、以降の処理を繰り返す。なお、本実施形態においては、ステップＳ１０５０の後にも本ステップと同等の処理を行ってもよい。
【００８２】
図９は、以上の処理でもって生成される複合現実空間の画像の表示例を示す図である。  図９（ａ）、（ｂ）は、現実の机９０１の上に、ポットの仮想物体５０１が乗っており、観察者の手９０２でもって現実物体としての照明装置３０２をポットの仮想物体５０１の方に向けている様子を示している。図９（ａ）では、ポットの仮想物体５０１に対して、仮想的に存在する仮想光源の映りこみが反映されていることが分かる。すなわち、図９（ａ）では、ポットの仮想物体５０１に対して仮想光源５０２の映りこみ９５０が反映されていることが分かる。
【００８３】
しかし、図９（ｂ）のような位置姿勢関係の場合は、仮想光源の映りこみはポットの仮想物体５０１の向こう側に反映されるべきであり、実際、手前には映りこみが見えないことが分かる。
【００８４】
以上の説明により、本実施形態によって、現実の光源の位置姿勢に応じて、仮想空間中の仮想光源、および仮想物体に対する周辺環境の映りこみを制御することで、現実空間と仮想空間との間の光学的整合性を実現することができる。
【００８５】
なお、本実施形態では、センサによる位置姿勢計測方法については説明上、趣旨とするところではないので、特に説明していないが、磁気式センサや光学式センサなど、何れのタイプのセンサを用いても良いことはいうまでもない。また、位置姿勢の計測方法についてはセンサを用いることに限定するものではなく、画像計測など様々な方法が考えられる。
【００８６】
また、本実施形態では、環境マッピング画像を貼り付ける形状として半径無限大の球を例に説明したが、これに限定するものではなく、その形状として円筒や立方体を利用してもよいことは言うまでもない。
【００８７】
また、上述の通り、本実施形態では、仮想光源としてスポットライト光源を用いているが、「点光源」、「線光源」、「面光源」、等の光源を用いても良いことはいうまでもない。
【００８８】
また、本実施形態では、照明装置３０２が１つしかない場合について説明したが、デザイン検証の内容によっては、照明装置が複数必要になることも考えられる。本実施形態では、照明装置が複数あったとしても、それぞれの照明装置に対応した仮想光源を用意し、またそれぞれの照明装置に対応した写り込みの部分を環境マッピング画像に追加することで実現することができる。
【００８９】
また、本実施形態では、仮想光源オブジェクト７０３として平面の円形オブジェクトを用いているが、その他の形状（例えば球状）のオブジェクトを用いても良いことはいうまでもない。
【００９０】
［第２の実施形態］
本実施形態では、図３に示したステップＳ１０８０における処理をステップＳ１０８１に置き換える点のみが第１の実施形態とは異なる。以下、このステップＳ１０８１における処理について説明する。
【００９１】
図１０は、ステップＳ１０８１における処理の詳細を示す図である。図１０は、図７に示した構成から、仮想光源オブジェクト７０３を省いた構成となっている。
【００９２】
先ず、第１の実施形態と同様に、仮想ＣＣＤ面７０１上に環境マッピング画像４０４を１８０度回転させて配置する。この配置した画像を環境マッピング画像１００１とする。そして、この環境マッピング画像１００１を構成する各画素位置から焦点７０２を通る直線を計算する。なお、計算した直線が仮想の球体４１３の表面に衝突した場合には、入射角と反射角とが一致するように、球体面で反射させる。そして、反射した直線のうち、仮想光源７５０の位置に最も近い位置（同図７５０で示すオブジェクトの中心位置に最も近い位置）を通る直線を決定し、決定した直線の始点となる環境マッピング画像１００１上の画素を中心として所定サイズの円形領域内の画素の色や明るさを、仮想光源７５０の色、明るさに基づいて更新する。
【００９３】
即ち、環境マッピング画像１００１を構成する各画素のうち第１の画素から焦点７０２を通り、仮想の球体４１３の面上を反射した直線が、どの直線よりも仮想光源７５０の位置に最も近い位置を通る場合には、環境マッピング画像１００１上でこの第１の画素を中心とする所定サイズの円形領域（以下、写り込み領域）内の画素の色や明るさを、仮想光源７５０の色や明るさに基づいて更新する。図１０において、１０５０は、更新後の環境マッピング画像であり、写り込み領域を１００２で示す。なお、写り込み領域は完全な円形に限定するものではなく、第１の画素の近傍画素群で構成された領域であれば良い。
【００９４】
このようにして、写り込み領域に、仮想光源７５０からの光の写り込みを示す画像を描画する。なお、写り込み領域の周辺部分に関しては、適宜その色や明るさを暈かすような処理を行うことが好ましい。
【００９５】
写り込み領域は、仮想光源７５０が移動する度にその位置が変化する。また、写り込み領域１００２の大きさを、環境マッピング画像１００１から仮想光源７５０までの光線の距離によって変化させてもよい。
【００９６】
更には、仮想光源７５０の姿勢によって、写り込み領域１００２の形状を円から楕円などに変化させてもよい。写り込み領域１００２を追加する際には、仮想光源７５０の色、明るさと同じ色、明るさ情報を写り込み領域１００２に用いる。更に、仮想光源７５０の仮想物体を用意し、環境マップ画像１００１に仮想光源７５０の存在を追加修正してもよいことは言うまでもない。
【００９７】
［第３の実施形態］
本実施形態では、仮想空間中の仮想光源だけではなく、仮想空間中に存在する他の仮想物体の映りこみを実現する。本実施形態では、図３に示したステップＳ１０４０における処理をステップＳ１０４１に置き換える点のみが第１の実施形態とは異なる。以下、このステップＳ１０４１における処理について説明する。
【００９８】
ステップＳ１０４１では、その都度、環境マッピング用テクスチャメモリに保持されている環境マッピング画像を読み出し、仮想物体に対して環境マッピング処理を施す。本実施形態においては、環境マッピング画像を貼り付ける形状として半径無限大の球を利用する。
【００９９】
ただし、環境マッピング画像を貼り付ける形状として半径無限大の球を利用することで、観察者の視点位置がカメラ４０２の位置と大きくずれると、適切な環境マッピング処理を行うことが出来ない場合がある。このような場合は、撮影した環境マップ画像に対してワーピング変換処理を施すことで対処できる。
【０１００】
なお、ステップＳ１０４１では、仮想物体に対して環境マッピング処理を施す前に、読み出した環境マップ画像を修正する。この修正は、ステップＳ１０８０の処理を変形することで実現できる。すなわち、ステップＳ１０８０および図７で説明した仮想光源オブジェクト７０３を本実施形態における他の仮想物体に置き換え、さらに、図６で説明した領域６０２を、他の仮想物体の映りこみに置き換えればよい。
【０１０１】
［その他の実施形態］
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１０２】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０３】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０４】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１０５】
【図１】仮想空間と現実空間とを合成した複合現実空間の画像を観察者に対して提示する為の、本発明の第１の実施形態に係るシステムのハードウェア構成を示すブロック図である。
【図２】照明装置３０２の外観、及びその構成の例を示す図である。
【図３】コンピュータ１００が行う処理のフローチャートである。
【図４】環境マッピング画像の取得に係る処理、及びこの処理でもって取得した環境マッピング画像を説明する図である。
【図５】ステップＳ１０７０における処理により、光源が設定された仮想空間の画像を示す図である。
【図６】更新前、更新後の環境マッピング画像を示す図である。
【図７】ステップＳ１０８０における処理の詳細を示す図である。
【図８】図５に示したポットの仮想物体に用いる環境マッピング画像を、以上の処理でもって更新し、更新後の環境マッピング画像を用いて環境マッピングを行ったポットの仮想物体を含む仮想空間の画像を示す図である。
【図９】複合現実空間の画像の表示例を示す図である。
【図１０】ステップＳ１０８１における処理の詳細を示す図である。
【図１】
2007018173.tif 000003
【図２】
2007018173.tif 000004
【図３】
2007018173.tif 000005
【図７】
2007018173.tif 000006
【図４】
2007018173.tif 000007
【図５】
2007018173.tif 000008
【図６】
2007018173.tif 000009
【図８】
2007018173.tif 000010
【図９】
2007018173.tif 000011
【図１０】
2007018173.tif 000012