(57)【要約】【課題】  仮想空間中に設定する光源に係る情報を簡便に設定するための技術を提供すること。【解決手段】  仮想空間中に設けられた平面上に仮想物体２０３、ポインタ２０５を配置し、ポインタ２０５の位置を平面内で操作し、仮想物体２０３の先端部分の位置からポインタ２０５の位置に向かうベクトルを、光源からの光の照射方向ベクトルとして求める。【選択図】  図３
2006252469.tif 000002
【特許請求の範囲】
【請求項１】
仮想オブジェクトと当該仮想オブジェクトの影を表す影オブジェクトを仮想空間に配置する配置工程と、
前記仮想空間に配置された影オブジェクトを移動する移動工程と、
前記仮想オブジェクトの位置と前記影オブジェクトの位置とに基づき、前記仮想空間における光源を設定する光源設定工程と
を備えることを特徴とする画像処理方法。
【請求項２】
前記配置工程は、前記仮想空間に少なくとも２つの仮想オブジェクトと、それぞれに対応する影オブジェクトを配置し、
前記光源設定工程は、前記移動工程で移動された影オブジェクトと、それぞれに対応する仮想オブジェクトの位置とに基づき、前記光源を設定することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記少なくとも２つの仮想オブジェクトの１つに対応する影オブジェクトは、移動可能な領域が制限されることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記配置工程で配置される前記影オブジェクトは、仮の光源の位置と前記仮想オブジェクトの位置とに基づいた位置に配置されることを特徴とする請求項１に記載の画像処理方法。
【請求項５】
仮想空間中に設けられた平面上に仮想物体を配置する仮想物体配置工程と、
前記平面上にポインタを配置するポインタ配置工程と、
前記ポインタの位置を前記平面内で操作する操作工程と、
前記仮想物体において前記平面から最も遠い部分の位置から前記ポインタの位置に向かうベクトルを、光源からの光の照射方向ベクトルとして求める計算工程と
を備えることを特徴とする画像処理方法。
【請求項６】
仮想空間中に設けられた仮想平面上に第１の仮想物体、第２の仮想物体を配置する仮想物体配置工程と、
前記仮想平面上に第１のポインタを配置する第１のポインタ配置工程と、
前記第１のポインタの位置を前記仮想平面内で操作する第１のポインタ操作工程と、
前記第１の仮想物体において前記仮想平面から最も遠い部分の位置と前記第１のポインタの位置とを通る第１の直線を求める第１の直線計算工程と、
前記第２の仮想物体において前記仮想平面から最も遠い部分の位置と、前記第１の直線とを同一平面内に含む平面が、前記仮想平面と交差する第２の直線上に第２のポインタを配置する第２のポインタ配置工程と、
前記第２のポインタの位置を前記第２の直線上で操作する第２のポインタ操作工程と、
前記第２の仮想物体において前記仮想平面から最も遠い部分の位置と前記第２のポインタの位置とを通る第３の直線を求める第３の直線計算工程と、
前記第１の直線と前記第３の直線との交点位置を光源の配置位置として求める光源配置位置計算工程と
を備えることを特徴とする画像処理方法。
【請求項７】
前記第２のポインタ操作工程では、前記第１のポインタの位置と前記第２のポインタの位置との距離が、前記第１の仮想物体の位置と前記第２の仮想物体の位置との距離以上となる範囲で、前記第２のポインタの位置を前記第２の直線上で操作することを特徴とする請求項６に記載の画像処理方法。
【請求項８】
仮想空間中に設けられた平面上に第１の仮想物体、第２の仮想物体を配置する仮想物体配置工程と、
前記第１の仮想物体の位置と前記第２の仮想物体の位置とを通る直線上に第１のポインタ、第２のポインタを配置するポインタ配置工程と、
前記第１のポインタ、及び／又は前記第２のポインタの位置を前記直線上で操作するポインタ操作工程と、
前記第１のポインタの位置と、前記第１の仮想物体において前記平面から最も遠い部分の第１の位置とを通る第１の直線を計算する第１の直線計算工程と、
前記第２のポインタの位置と、前記第２の仮想物体において前記平面から最も遠い部分の第２の位置とを通る第２の直線を計算する第２の直線計算工程と、
前記第１の直線と前記第２の直線との交点位置を光源の位置として求める光源位置計算工程と、
前記交点の位置から、前記第１のポインタの位置と前記第２のポインタの位置との中点位置に向かうベクトルを、前記光源の照射方向として求める照射方向計算工程と、
前記第１の位置から第１のポインタの位置に向かうベクトルと、前記第２の位置から第２のポインタの位置に向かうベクトルとが成す角度を前記光源の照射角度として求める照射角度計算工程と
を備えることを特徴とする画像処理方法。
【請求項９】
更に、前記光源の光の強さ、色を含む属性を設定する設定工程を備えることを特徴とする請求項５乃至８の何れか１項に記載の画像処理方法。
【請求項１０】
仮想オブジェクトと当該仮想オブジェクトの影を表す影オブジェクトを仮想空間に配置する配置手段と、
前記仮想空間に配置された影オブジェクトを移動する移動手段と、
前記仮想オブジェクトの位置と前記影オブジェクトの位置とに基づき、前記仮想空間における光源を設定する光源設定手段と
を備えることを特徴とする画像処理装置。
【請求項１１】
仮想空間中に設けられた平面上に仮想物体を配置する仮想物体配置手段と、
前記平面上にポインタを配置するポインタ配置手段と、
前記ポインタの位置を前記平面内で操作する操作手段と、
前記仮想物体において前記平面から最も遠い部分の位置から前記ポインタの位置に向かうベクトルを、光源からの光の照射方向ベクトルとして求める計算手段と
を備えることを特徴とする画像処理装置。
【請求項１２】
仮想空間中に設けられた仮想平面上に第１の仮想物体、第２の仮想物体を配置する仮想物体配置手段と、
前記仮想平面上に第１のポインタを配置する第１のポインタ配置手段と、
前記第１のポインタの位置を前記仮想平面内で操作する第１のポインタ操作手段と、
前記第１の仮想物体において前記仮想平面から最も遠い部分の位置と前記第１のポインタの位置とを通る第１の直線を求める第１の直線計算手段と、
前記第２の仮想物体において前記仮想平面から最も遠い部分の位置と、前記第１の直線とを同一平面内に含む平面が、前記仮想平面と交差する第２の直線上に第２のポインタを配置する第２のポインタ配置手段と、
前記第２のポインタの位置を前記第２の直線上で操作する第２のポインタ操作手段と、
前記第２の仮想物体において前記仮想平面から最も遠い部分の位置と前記第２のポインタの位置とを通る第３の直線を求める第３の直線計算手段と、
前記第１の直線と前記第３の直線との交点位置を光源の配置位置として求める光源配置位置計算手段と
を備えることを特徴とする画像処理装置。
【請求項１３】
仮想空間中に設けられた平面上に第１の仮想物体、第２の仮想物体を配置する仮想物体配置手段と、
前記第１の仮想物体の位置と前記第２の仮想物体の位置とを通る直線上に第１のポインタ、第２のポインタを配置するポインタ配置手段と、
前記第１のポインタ、及び／又は前記第２のポインタの位置を前記直線上で操作するポインタ操作手段と、
前記第１のポインタの位置と、前記第１の仮想物体において前記平面から最も遠い部分の第１の位置とを通る第１の直線を計算する第１の直線計算手段と、
前記第２のポインタの位置と、前記第２の仮想物体において前記平面から最も遠い部分の第２の位置とを通る第２の直線を計算する第２の直線計算手段と、
前記第１の直線と前記第２の直線との交点位置を光源の位置として求める光源位置計算手段と、
前記交点の位置から、前記第１のポインタの位置と前記第２のポインタの位置との中点位置に向かうベクトルを、前記光源の照射方向として求める照射方向計算手段と、
前記第１の位置から第１のポインタの位置に向かうベクトルと、前記第２の位置から第２のポインタの位置に向かうベクトルとが成す角度を前記光源の照射角度として求める照射角度計算手段と
を備えることを特徴とする画像処理装置。
【請求項１４】
コンピュータに請求項１乃至９の何れか１項に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項１５】
請求項１４に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間の画像生成技術に関するものである。
【背景技術】
【０００２】
３次元ＣＧ（コンピュータグラフィックス）は、コンピュータを用いて仮想空間を描画する技術であり、ゲームやシミュレーション、ＣＡＤ等の分野で用いられている。３次元ＣＧにおいては、仮想空間を照らす光源を設定することにより、仮想空間に存在するオブジェクトのシェーディングやシャドーイングを行うことができる。ここで、シェーディングとは、あるオブジェクトの光の当たらない側が暗くなる陰を描画することを指し、シャドーイングとは、あるオブジェクトによって光がさえぎられることによって地面などにできる影を描画することを指す。
【０００３】
３次元ＣＧの世界においては、影をつくり出す光源の種類として平行光源、点光源、スポットライトがある。
【０００４】
平行光源とは、太陽光のように遠方から平行に到達する光の光源である。平行光源がつくり出す影は平行になる。平行光源は、その属性として光線の方向を表すベクトルを持つ。また、点光源とは、周囲へ放射状に光を発する光源である。点光源は、その属性として光源の位置を表す三次元位置を持つ。また、スポットライトとは、特定方向の特定照射角度に光を発する光源である。スポットライトは、その属性として光源の位置を表す３次元位置、光線の方向を表すベクトル、光の照射角度を持つ。
【０００５】
ＶＲ（バーチャルリアリティ）システムは、コンピュータの作り出す３次元ＣＧをユーザに提示することで、仮想の空間をあたかも現実であるかのように感じさせるシステムである。また、近年、現実空間の映像に３次元ＣＧを合成することで、現実空間にはない情報をユーザに提示する技術の開発もなされており、それらはＭＲ（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ、複合現実感）システムと呼ばれている。従来、３次元ＣＧにおいて、光源の設定は、光源を表すオブジェクトを表示し、その光源オブジェクトを操作することによってなされていた（例えば、特許文献１参照）。
【０００６】
ＭＲシステムは従来、現実空間と切り離された状況でのみ体験可能であったバーチャルリアリティ（ＶＲ）の世界と現実空間との共存を目的とし、ＶＲを増強する技術として注目されている。
【０００７】
ＶＲ／ＭＲシステムを実現する装置として代表的なものが、ヘッドマウントディスプレイ（ＨＭＤ）である。ＶＲ／ＭＲシステムでは、ＨＭＤに仮想空間や現実空間を表示することにより、ＨＭＤを装着したユーザに仮想空間や複合現実空間を提示する。
【特許文献１】特開平５−２９０１４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述の特許文献１に記載の方法では、光源オブジェクトを画面の中に表示する必要がある。
【０００９】
そのため、仮想空間に存在するオブジェクトとその影を見ながら光源オブジェクトを設定するためには、仮想空間を捉えて画面に表示する仮想カメラを、仮想空間を俯瞰できる離れた位置に持っていく必要があった。その結果、仮想空間に存在するオブジェクトは画面上では小さく表示されることになり、ユーザにとっては見づらいものとなっていた。
【００１０】
また、ＶＲシステムやＭＲシステムにおいては、仮想空間を捉えて画面に表示する仮想カメラは、ＨＭＤに固定されるため、ＨＭＤを装着しているユーザは仮想空間を俯瞰することはできない。
【００１１】
したがって、ＨＭＤを装着しているユーザが仮想空間の光源を設定するためには、仮想空間に存在するオブジェクトとその影を見る方向、光源オブジェクトを見る方向とを交互に見なければならず、ユーザに不便を強いていた。
【００１２】
本発明は以上の問題に鑑みてなされたものであり、仮想空間中に設定する光源に係る情報を簡便に設定するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１４】
即ち、仮想オブジェクトと当該仮想オブジェクトの影を表す影オブジェクトを仮想空間に配置する配置工程と、
前記仮想空間に配置された影オブジェクトを移動する移動工程と、
前記仮想オブジェクトの位置と前記影オブジェクトの位置とに基づき、前記仮想空間における光源を設定する光源設定工程と
を備えることを特徴とする。
【００１５】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１６】
即ち、仮想空間中に設けられた平面上に仮想物体を配置する仮想物体配置工程と、
前記平面上にポインタを配置するポインタ配置工程と、
前記ポインタの位置を前記平面内で操作する操作工程と、
前記仮想物体において前記平面から最も遠い部分の位置から前記ポインタの位置に向かうベクトルを、光源からの光の照射方向ベクトルとして求める計算工程と
を備えることを特徴とする。
【００１７】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１８】
即ち、仮想空間中に設けられた仮想平面上に第１の仮想物体、第２の仮想物体を配置する仮想物体配置工程と、
前記仮想平面上に第１のポインタを配置する第１のポインタ配置工程と、
前記第１のポインタの位置を前記仮想平面内で操作する第１のポインタ操作工程と、
前記第１の仮想物体において前記仮想平面から最も遠い部分の位置と前記第１のポインタの位置とを通る第１の直線を求める第１の直線計算工程と、
前記第２の仮想物体において前記仮想平面から最も遠い部分の位置と、前記第１の直線とを同一平面内に含む平面が、前記仮想平面と交差する第２の直線上に第２のポインタを配置する第２のポインタ配置工程と、
前記第２のポインタの位置を前記第２の直線上で操作する第２のポインタ操作工程と、
前記第２の仮想物体において前記仮想平面から最も遠い部分の位置と前記第２のポインタの位置とを通る第３の直線を求める第３の直線計算工程と、
前記第１の直線と前記第３の直線との交点位置を光源の配置位置として求める光源配置位置計算工程と
を備えることを特徴とする。
【００１９】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００２０】
即ち、仮想空間中に設けられた平面上に第１の仮想物体、第２の仮想物体を配置する仮想物体配置工程と、
前記第１の仮想物体の位置と前記第２の仮想物体の位置とを通る直線上に第１のポインタ、第２のポインタを配置するポインタ配置工程と、
前記第１のポインタ、及び／又は前記第２のポインタの位置を前記直線上で操作するポインタ操作工程と、
前記第１のポインタの位置と、前記第１の仮想物体において前記平面から最も遠い部分の第１の位置とを通る第１の直線を計算する第１の直線計算工程と、
前記第２のポインタの位置と、前記第２の仮想物体において前記平面から最も遠い部分の第２の位置とを通る第２の直線を計算する第２の直線計算工程と、
前記第１の直線と前記第２の直線との交点位置を光源の位置として求める光源位置計算工程と、
前記交点の位置から、前記第１のポインタの位置と前記第２のポインタの位置との中点位置に向かうベクトルを、前記光源の照射方向として求める照射方向計算工程と、
前記第１の位置から第１のポインタの位置に向かうベクトルと、前記第２の位置から第２のポインタの位置に向かうベクトルとが成す角度を前記光源の照射角度として求める照射角度計算工程と
を備えることを特徴とする。
【００２１】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００２２】
即ち、仮想オブジェクトと当該仮想オブジェクトの影を表す影オブジェクトを仮想空間に配置する配置手段と、
前記仮想空間に配置された影オブジェクトを移動する移動手段と、
前記仮想オブジェクトの位置と前記影オブジェクトの位置とに基づき、前記仮想空間における光源を設定する光源設定手段と
を備えることを特徴とする。
【００２３】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００２４】
即ち、仮想空間中に設けられた平面上に仮想物体を配置する仮想物体配置手段と、
前記平面上にポインタを配置するポインタ配置手段と、
前記ポインタの位置を前記平面内で操作する操作手段と、
前記仮想物体において前記平面から最も遠い部分の位置から前記ポインタの位置に向かうベクトルを、光源からの光の照射方向ベクトルとして求める計算手段と
を備えることを特徴とする。
【００２５】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００２６】
即ち、仮想空間中に設けられた仮想平面上に第１の仮想物体、第２の仮想物体を配置する仮想物体配置手段と、
前記仮想平面上に第１のポインタを配置する第１のポインタ配置手段と、
前記第１のポインタの位置を前記仮想平面内で操作する第１のポインタ操作手段と、
前記第１の仮想物体において前記仮想平面から最も遠い部分の位置と前記第１のポインタの位置とを通る第１の直線を求める第１の直線計算手段と、
前記第２の仮想物体において前記仮想平面から最も遠い部分の位置と、前記第１の直線とを同一平面内に含む平面が、前記仮想平面と交差する第２の直線上に第２のポインタを配置する第２のポインタ配置手段と、
前記第２のポインタの位置を前記第２の直線上で操作する第２のポインタ操作手段と、
前記第２の仮想物体において前記仮想平面から最も遠い部分の位置と前記第２のポインタの位置とを通る第３の直線を求める第３の直線計算手段と、
前記第１の直線と前記第３の直線との交点位置を光源の配置位置として求める光源配置位置計算手段と
を備えることを特徴とする。
【００２７】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００２８】
即ち、仮想空間中に設けられた平面上に第１の仮想物体、第２の仮想物体を配置する仮想物体配置手段と、
前記第１の仮想物体の位置と前記第２の仮想物体の位置とを通る直線上に第１のポインタ、第２のポインタを配置するポインタ配置手段と、
前記第１のポインタ、及び／又は前記第２のポインタの位置を前記直線上で操作するポインタ操作手段と、
前記第１のポインタの位置と、前記第１の仮想物体において前記平面から最も遠い部分の第１の位置とを通る第１の直線を計算する第１の直線計算手段と、
前記第２のポインタの位置と、前記第２の仮想物体において前記平面から最も遠い部分の第２の位置とを通る第２の直線を計算する第２の直線計算手段と、
前記第１の直線と前記第２の直線との交点位置を光源の位置として求める光源位置計算手段と、
前記交点の位置から、前記第１のポインタの位置と前記第２のポインタの位置との中点位置に向かうベクトルを、前記光源の照射方向として求める照射方向計算手段と、
前記第１の位置から第１のポインタの位置に向かうベクトルと、前記第２の位置から第２のポインタの位置に向かうベクトルとが成す角度を前記光源の照射角度として求める照射角度計算手段と
を備えることを特徴とする。
【発明の効果】
【００２９】
本発明の構成により、仮想空間中に設定する光源に係る情報を簡便に設定することができる。
【発明を実施するための最良の形態】
【００３０】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００３１】
［第１の実施形態］
本実施形態では、仮想空間中に配置する光源に係る情報を設定するための技術について説明する。
【００３２】
図７は、本実施形態に係る画像処理装置に適用可能なコンピュータのハードウェア構成を示すブロック図である。
【００３３】
７０１はＣＰＵで、ＲＡＭ７０２やＲＯＭ７０３に格納されているプログラムやデータを用いてコンピュータ全体の制御を行うと共に、以下説明する各処理を実行する。
【００３４】
７０２はＲＡＭで、外部記憶装置７０６からロードされたプログラムやデータを一時的に記憶するためのエリア、Ｉ／Ｆ７０７を介して外部から受信したプログラムやデータを一時的に記憶するためのエリア、ＣＰＵ７０１が各種の処理を実行する際に用いるワークエリアなど、各種のエリアを適宜提供することができる。
【００３５】
７０３はＲＯＭで、本コンピュータの設定データや、ブートプログラムなどを格納する。
【００３６】
７０４は操作部で、キーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで、各種の指示をＣＰＵ７０１に対して入力することができる。
【００３７】
７０５は表示部で、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ７０１による処理結果を画像や文字などでもって表示することができる。
【００３８】
７０６は外部記憶装置で、ハードディスクドライブ装置に代表される大容量情報記憶装置であって、ここにＯＳ（オペレーティングシステム）や、後述する各処理をＣＰＵ７０１に実行させるためのプログラムやデータなどが保存されており、これらはＣＰＵ７０１による制御に従って適宜ＲＡＭ７０２にロードされ、ＣＰＵ７０１による処理対象となる。
【００３９】
７０７はＩ／Ｆで、外部装置とのデータ通信を行うためのインターフェースとして機能する。
【００４０】
７０８は上述の各部を繋ぐバスである。
【００４１】
図５は、上記コンピュータの機能構成を示すブロック図である。
【００４２】
５０１は影操作部で、仮想空間中に配置する仮想物体の影に係る操作を行う。影操作部５０１による操作内容を示す操作情報は、光源情報計算部５０２に通知される。光源情報計算部５０２は、仮想空間管理部５０３が管理している「仮想空間中に配置されている仮想物体に関する情報」と、影操作部５０１から通知された操作情報とを用いて、仮想空間中に配置する光源に関する情報（光源情報）を計算する。
【００４３】
計算された光源情報は、仮想空間管理部５０３に通知され、ここで管理される。仮想空間描画部５０４は、仮想空間管理部５０３が管理している情報を用いて、仮想空間中に仮想物体、及び光源を配置し、そしてこのような仮想空間を所望の視点から見た画像を生成する処理を行う。
【００４４】
以上のような構成は専用のハードウェアでもって構成することも可能であるし、外部記憶装置７０６に保存されているプログラムの構成とすることもできる。
【００４５】
次に、光源情報を求めるための処理について説明する。
【００４６】
図６は、平行光源、点光源の何れかに係る光源情報を求めるための処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ７０１に実行させるためのプログラムやデータは、外部記憶装置７０６に保存されており、ＣＰＵ７０１による制御に従って適宜ＲＡＭ７０２にロードし、ＣＰＵ７０１がこれを用いて処理を実行することで、上記コンピュータは以下説明する各処理を実行することになる。
【００４７】
先ず、ＣＰＵ７０１は、表示部７０５の表示画面上に、光源作成ボタンの画像を表示する（ステップＳ６０１）。本コンピュータの操作者が操作部５０１を用いてこのボタン画像を指示すると、ＣＰＵ７０１はこれを検知して処理をステップＳ６０２に進め、仮想空間中に設けられた仮想平面上に、２つの基準仮想物体（基準オブジェクト）と２つのポインタを配置すると共に、この仮想空間中に平行光源を設定する（ステップＳ６０２）。このとき設定した平行光源による光の照射方向は任意であり、以下の処理では、この照射方向を設定する。
【００４８】
そして次に、ＣＰＵ７０１は、図２に例示するようなＧＵＩ（グラフィカルユーザインターフェース）を表示部７０５の表示画面上に表示する（ステップＳ６０３）。
【００４９】
図２は、平行光源による光の照射方向を設定するためのＧＵＩの表示例を示す図である。同図に示すＧＵＩは、仮想空間を所定の位置姿勢を有する視点から見た場合に見える画像（仮想空間画像）を表示するものであり、この画像内で操作者は平行光源による光の照射方向を設定するための操作を行う。
【００５０】
同図において２０１，２０３は基準仮想物体で、ステップＳ６０２で不図示の仮想平面上に配置されたものである。この基準仮想物体の形状については特に限定するものではないが、以下説明する説明のために、簡単な形状であることが望ましい。
【００５１】
２０２，２０４はそれぞれ基準仮想物体２０１，２０３の影としての仮想物体で、平行光源を設定すれば周知の技術でもって一意に生成可能なものである。よってＧＵＩが表示された時点では、ステップＳ６０２で設定された平行光源に基づいた影のオブジェクト２０２，２０４が生成され、表示される。
【００５２】
なお、基準仮想物体２０１についてはこの時点では必要なものではないので、基準仮想物体２０１、影の仮想物体２０２については本ステップでは表示しなくても良い。
【００５３】
２０５は、基準仮想物体２０３において仮想平面から最も遠い部分（以下、基準仮想物体２０３の先端部分と呼称する。なお、基準仮想物体２０３において仮想平面と接している部分を基準仮想物体２０３の後段部分と呼称する）を仮想平面上に投影した位置に配置する第１のポインタ（第１のコントロールポイント）で、要するに、影の仮想物体２０４において、基準仮想物体２０３の先端部分に対応する部分に配置されるものである。
【００５４】
２０６はカーソルで、本コンピュータの操作者が操作部５０１を用いて操作することで、表示画面上における表示位置を変更することができる。例えば、操作者がマウスを用いてカーソル２０６を第１のポインタ２０５の表示位置にあわせ、そこでマウスボタンをドラッグしたままマウスを移動させると、それに伴って第１のポインタ２０５の表示位置も移動する。なお、カーソル２０６の移動は表示部７０５の表示画面上におけるものであるので、ＣＰＵ７０１はカーソル２０６の表示画面上における位置を仮想平面上における位置に変換し、変換後の位置に第１のポインタ２０５を配置する処理を行う。これにより、仮想平面上における第１のポインタ２０５の位置をカーソル２０６でもって操作することができる。
【００５５】
２０７は、第１のポインタ２０５の位置と、基準仮想物体２０３の先端部分とを通る直線であり、ＧＵＩには表示されない。２０８は平行光源による光の照射方向を示すものであり、ＧＵＩには表示されない。
【００５６】
図６に戻って次に、上記ＧＵＩにおいて、カーソル２０６の移動を検知すると、処理をステップＳ６０４に進め、移動先のカーソル２０６の位置（表示部７０５の表示画面上における位置）に対応する仮想平面上における位置を求める（ステップＳ６０４）。
【００５７】
そして、基準仮想物体２０３の先端部分の位置から、ステップＳ６０４で求めた位置へと向かうベクトル（図２では２０７で示す直線の方向ベクトル）を、平行光源による光の照射方向を示すベクトルとして求める（ステップＳ６０５）。
【００５８】
以上の処理により、平行光源による光の照射方向を設定することができる。次に、ＣＰＵ７０１は表示部７０５の表示画面上に光源作成終了ボタンの画像を表示する（ステップＳ６０６）。
【００５９】
ここで、仮想空間中に設定しようとする光源が平行光源であれば、同図のフローチャートに従った処理を終了すべく、このボタン画像を操作部５０１を用いて指示すれば良いのであるが、仮想空間中に設定しようとする光源が点光源の場合にはその光源の位置を求める必要があるために、処理をステップＳ６０７に進め、図３に例示するようなＧＵＩを表示部７０５の表示画面上に表示する（ステップＳ６０７）。なお、ステップＳ６０３でＧＵＩを表示する際に、基準仮想物体２０１、影の仮想物体２０２の表示を行わなかった場合には、ステップＳ６０７でこれらを表示する処理を行う。
【００６０】
図３は、点光源の配置位置を設定するためのＧＵＩの表示例を示す図である。なお、同図において図２と同じ部分には同じ番号を付けており、その説明は省略する。
【００６１】
同図に示すＧＵＩには、上記ＧＵＩに表示されたものに加え、第２のポインタ３０１（第２のコントロールポイント）を表示している。この第２のポインタ３０１は、基準仮想物体２０１において仮想平面から最も遠い部分（以下、基準仮想物体２０１の先端部分と呼称する。なお、基準仮想物体２０１において仮想平面と接している部分を基準仮想物体２０１の後段部分と呼称する）を仮想平面上に投影した位置に配置するものであり、ステップＳ６０７でＧＵＩの表示前に配置する。即ち、第２のポインタ３０１は、影の仮想物体２０２において、基準仮想物体２０１の先端部分に対応する部分に配置される。
【００６２】
また、同図のＧＵＩに示す如く、第２のポインタ３０１が配置されると、この第２のポインタ３０１の位置を通り、且つ、基準仮想物体２０１の位置と基準仮想物体２０３の位置とを通る直線に平行な直線３０２が表示される。この直線３０２は、第２のポインタ３０１の移動可能な経路を示すものである。即ち、第２のポインタ３０１は第１のポインタ２０５と同様に、カーソル２０６でもってその位置を移動させることができるのであるが、第２のポインタ３０１は、この直線３０２上しか移動することができない。その理由については後述する。
【００６３】
図６に戻って次に、カーソル２０６でもって第２のポインタ３０１の位置が移動したことを検知すると、処理をステップＳ６０８に進め、移動先のカーソル２０６の位置（表示部７０５の表示画面上における位置）に対応する仮想平面上における位置を求める（ステップＳ６０８）。
【００６４】
そして次に、ステップＳ６０２で設定した平行光源を削除する（ステップＳ６０９）。そして、次に、光源の位置を求める（ステップＳ６１０）。光源の位置を求めるための処理について、図４に示すＧＵＩを用いて説明する。図４は、第１のポインタ２０５、第２のポインタ３０１を設定した場合のＧＵＩの表示例を示す図である。なお、同図において図２，３と同じ部分については同じ番号を付けており、その説明は省略する。
【００６５】
同図において４０１は、基準仮想物体２０１の先端部分と第２のポインタ３０１の位置とを結ぶ直線で、４０２は、基準仮想物体２０３の先端部分と第１のポインタ２０５の位置とを結ぶ直線である。４０３は、それぞれの直線４０１，４０２の交点であり、この交点の位置が点光源の位置となる。よって、ステップＳ６１０では、これら２つの直線を求め、それぞれの直線の交点を光源の位置として求める処理を行う。
【００６６】
ここで、第２のポインタ３０１の移動可能な経路が直線３０２上のみである理由について説明する。図４の場合、直線４０１と直線４０２との交点が光源の配置位置４０３となる。このように、それぞれの直線が１つの交点を有する為には、それぞれの直線は同一平面上に存在する必要がある。そこで、このような条件を満たすためには、第２のポインタ３０１は、直線４０２と、基準仮想物体２０１の先端部分とを同一平面に含む平面が仮想平面と交差する直線、即ち、直線３０２上のみに位置する必要がある。
【００６７】
従って、第２のポインタ３０１は、このような直線３０２上のみで移動させる。また、物理上、第１のポインタ２０５の位置と第２のポインタ３０１の位置との距離が、第１の基準仮想物体２０３の位置と第２の基準仮想物体２０１の位置との距離以下となることはない。よって、第２のポインタ３０１は、第１のポインタ２０５の位置と第２のポインタ３０１の位置との距離が、第１の基準仮想物体２０３の位置と第２の基準仮想物体２０１の位置との距離以上となる範囲で、直線３０２上を移動することになる。
【００６８】
これにより、直線４０１と直線４０２とは常に１つの交点を有することになるので、結果として光源の位置を一意に求めることができる。
【００６９】
以上の説明により、本実施形態によれば、平行光源による光の照射方向や、点光源の位置を、仮想平面上に配置したポインタの移動操作でもって設定するので、表示部７０５の表示画面上には、基準仮想物体とポインタさえ表示すればよいことになるし、従来よりも簡便な操作でもって光源に係る情報を設定することができる。
【００７０】
なお、光源について設定する情報についてはこれに限定するものではなく、光の強さや光の色なども設定することができる。例えば、カーソル２０６をポインタの表示位置に移動させ、そこでマウスの右ボタンをクリックしたときに、設定する光源が発する光の強さや光の色などの設定項目を表示し、そのうち１つを指示することで、設定画面を表示するようにしても良い。
【００７１】
また、本実施形態では、ステップＳ６０２で光源を設定し、設定した光源に基づいて影の仮想物体を生成するようにしたが、光源を設定しなくても良く、仮想平面上には１つの基準仮想物体と１つのポインタのみを表示し、ポインタの位置を設定した時点で操作部５０１を用いて設定終了の旨の指示を入力すると、ＣＰＵ７０１はこれを検知し、基準仮想物体の先端部分からポインタの平面上の位置へのベクトルを、平行光源による光の照射方向ベクトルとして求めるようにしても良い。この処理によれば、図６に示した処理よりも、より簡単なＧＵＩ表示となり、且つ、より簡単な処理でもって平行光源による光の照射方向ベクトルを求めることができる。
【００７２】
また、点光源の設定については、仮想平面上には２つの基準仮想物体と２つのポインタのみを表示し、第１のポインタの位置を設定した後に操作部５０１を用いて設定終了の旨の指示を入力すると、ＣＰＵ７０１はこれを検知し、第１の基準仮想物体の先端部分と第１のポインタの位置とを通る第１の直線を求める。そして、この第１の直線と、第２の基準仮想物体の先端部分とを同一平面内に含む平面が、仮想平面と交差する第２の直線上で第２のポインタの移動操作を許容する。
【００７３】
そして、第２のポインタの位置を設定した後に操作部５０１を用いて設定終了の旨の指示を入力すると、ＣＰＵ７０１はこれを検知し、第２の基準仮想物体の先端部分と第２のポインタの位置とを通る第３の直線を求める。そして、第１の直線と第３の直線との交点を、点光源の位置として求める。この処理によれば、図６に示した処理よりも、より簡単なＧＵＩ表示となり、且つ、より簡単な処理でもって点光源の位置を求めることができる。
【００７４】
また、本実施形態では、平行光源に係る設定処理と点光源に係る設定処理とは一連の処理の中で行われていたが、それぞれ別個の処理であっても良い。例えば、表示部７０５の表示画面上に平行光源に係る設定処理を行うためのアイコン、点光源に係る設定処理を行うためのアイコンを表示し、操作部５０１でもって指示された方の設定処理を行う。
【００７５】
［第２の実施形態］
本実施形態では、スポットライトに係る設定処理について説明する。なお、本実施形態では、表示部７０５の表示画面上にスポットライトに係る設定処理を行うためのアイコンを表示し、このアイコンが指示された場合に以下説明する処理を開始するとするが、これに限定するものではない。
【００７６】
図８は、スポットライトに係る設定処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ７０１に実行させるためのプログラムやデータは、外部記憶装置７０６に保存されており、ＣＰＵ７０１による制御に従って適宜ＲＡＭ７０２にロードし、ＣＰＵ７０１がこれを用いて処理を実行することで、上記コンピュータは以下説明する各処理を実行することになる。
【００７７】
先ず、仮想平面上に２つの基準仮想物体（第１の基準仮想物体、第２の基準仮想物体）を配置する（ステップＳ８０１）。次に、それぞれの基準仮想物体の位置を通る直線上に２つのポインタ（第１のポインタ、第２のポインタ）を配置する（ステップＳ８０２）。このとき、第１のポインタの配置位置と第２のポインタの配置位置との距離が、第１の基準仮想物体の配置位置と第２の基準仮想物体の配置位置との距離以上となるように、第１のポインタ、第２のポインタを配置する。
【００７８】
そして、操作者は操作部５０１を用いて第１の実施形態と同様に、第１のポインタ、及び／又は第２のポインタの位置をカーソル２０６でもって操作するのであるが、それぞれのポインタの移動はこの直線上で拘束する。
【００７９】
そして、ＣＰＵ７０１が何れかのポインタの位置の移動を検知すると、処理をステップＳ８０３を介してステップＳ８０４に進め、それぞれのポインタの仮想平面上の位置を第１の実施形態と同様にして取得する（ステップＳ８０４）。
【００８０】
そして、第１の基準仮想物体の先端部分と第１のポインタの位置とを通る第１の直線を求めると共に、第２の基準仮想物体の先端部分と第２のポインタの位置とを通る第２の直線を求め、それぞれの直線の交点をスポットライトの配置位置として求める（ステップＳ８０５）。
【００８１】
また、スポットライトの配置位置から第１のポインタに向かう第１のベクトル、スポットライトの配置位置から第２のポインタに向かう第２のベクトルを求め、それぞれのベクトルの成す角度を照射角度として求める（ステップＳ８０６）。
【００８２】
また、スポットライトの配置位置から、第１の基準仮想物体の位置と第２の基準仮想物体の位置との中点位置に向かうベクトルを、照射方向を示すベクトルとして求める（ステップＳ８０７）。
【００８３】
以上のようにしてスポットライトの配置位置、照射方向、照射角度を求めることができるので、仮想空間中にスポットライトを設定することができる。なお、第１の実施形態と同様に、これ以外の情報を光源に対して設定するようにしても良い。
【００８４】
［第３の実施形態］
本実施形態では、上記各実施形態をＭＲシステムに適用する。ＭＲシステムでは、ユーザが自身の頭部に装着するＨＭＤの画面に、図１に示すような画像を表示する。
【００８５】
図１は、ＨＭＤの表示画面に表示される画像の一例を示す図である。同図において１０１は現実物体、１０２は現実物体１０１の影を示す。一方、１０３は基準仮想物体、１０４は現在設定されている光源１０６に基づいて生成される基準仮想物体１０３の影を示す仮想物体、１０５はポインタを示す。このように、ＭＲシステムでは、現実空間と仮想空間とを重畳させた状態でもって表示画面上に観察することができる。
【００８６】
よって、このように、現実の影１０２が見える状態でポインタ１０５を移動させて仮想の影１０４を操作すれば、仮想空間と現実空間とで光源が一致したかのように仮想空間中に配置する光源１０６を設定することができる。
【００８７】
なお、同図では、現実物体１０１と基準仮想物体１０３とはそれぞれ異なる形状を有し、且つ異なる配置位置に配置しているのであるが、これに限定するものではなく、それぞれを同じ形状にし、且つそれぞれを同じ配置位置に配置するようにしても良い。
【００８８】
また、以上説明した光源の設定に係る処理は、ＣＡＤ等のデザイン装置、ゲームやアミューズメント設備などのエンタテインメント装置、建築や医療などのシミュレーション装置、メンテナンス作業のアシスタント等の業務用アプリケーションに用いることが可能である。
【００８９】
［その他の実施形態］
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００９０】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９１】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９２】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００９３】
【図１】ＨＭＤの表示画面に表示される画像の一例を示す図である。
【図２】平行光源による光の照射方向を設定するためのＧＵＩの表示例を示す図である。
【図３】点光源の配置位置を設定するためのＧＵＩの表示例を示す図である。
【図４】第１のポインタ２０５、第２のポインタ３０１を設定した場合のＧＵＩの表示例を示す図である。
【図５】コンピュータの機能構成を示すブロック図である。
【図６】平行光源、点光源の何れかに係る光源情報を求めるための処理のフローチャートである。
【図７】本発明の第１の実施形態に係る画像処理装置に適用可能なコンピュータのハードウェア構成を示すブロック図である。
【図８】スポットライトに係る設定処理のフローチャートである。
【図１】
2006252469.tif 000003
【図２】
2006252469.tif 000004
【図３】
2006252469.tif 000005
【図４】
2006252469.tif 000006
【図５】
2006252469.tif 000007
【図６】
2006252469.tif 000008
【図７】
2006252469.tif 000009
【図８】
2006252469.tif 000010