(57)【要約】【課題】反射又は屈折する物体の表面における画像を、インタラクティブ性と正確性とを両立させながら生成することが可能な方法及び装置を提供する。【解決手段】視点２から、パッチ５におけるサンプル頂点７へ向けて延びる視線８がパッチ５で反射又は屈折した後に延びて行く方向を、視線ベクトル９として求める。ついで、視線ベクトル９又はそれを延長して得られる直線どうしがほぼ収束している点を、仮想視点Ｐとして求める。ついで、視線ベクトル９の方向を実質的に全て含むように仮想視野Ｖを求める。ついで、仮想視点Ｐから見た、仮想視野における投影画像を求める。ついで、投影画像をテクスチャ画像としてパッチに貼り付けることによってテクスチャマッピングを行う。【選択図】図８
2007299080.tif 000002
【特許請求の範囲】
【請求項１】
頂点を有する複数のポリゴンで構成されたパッチで反射又は屈折された画像を生成する方法であって、さらに、以下のステップを備えた方法：
（１）視点から前記頂点の全部又は一部へ向けて延びる視線が前記パッチで反射又は屈折した後に延びて行く方向を、視線ベクトルとして求めるステップ；
（２）前記視線ベクトル又はそれを延長して得られる直線どうしがほぼ収束している点を、仮想視点として求めるステップ；
（３）前記視線ベクトルの方向を実質的に全て含むように仮想視野を求めるステップ； 
（４）前記仮想視点から見た、前記仮想視野における投影画像を求めるステップ； 
（５）前記投影画像をテクスチャ画像として前記パッチに貼り付けることによってテクスチャマッピングを行うステップ。
【請求項２】
前記ステップ（５）は、以下のステップを含んでいる、請求項１に記載の画像生成方法：
（５ａ）前記視点から前記頂点へ延び、その後に前記頂点で反射又は屈折された視線と、前記視野内での物体の交点を求めるステップ；
（５ｂ）前記交点に対応する、前記投影画像上の位置を求めるステップ；
（５ｃ）前記投影画像上の位置を前記テクスチャ画像上の位置として割り当てて、前記テクスチャマッピングを行うステップ。
【請求項３】
前記ステップ（５）の後に、さらに以下のステップを備えることを特徴とする、請求項１又は２に記載の画像生成方法：
（６）前記視点から見た、前記パッチ上のテクスチャ画像を含む全景の画像を生成して表示するステップ。
【請求項４】
前記パッチは、反射体表面の全部又は一部を構成している、請求項１〜３のいずれか１項に記載の画像生成方法。
【請求項５】
前記パッチは、レンズ表面の全部又は一部を構成している、請求項１〜３のいずれか１項に記載の画像生成方法。
【請求項６】
頂点を有する複数のポリゴンで構成されたパッチで反射又は屈折された画像を生成する装置であって、さらに、
視線ベクトル生成部と、仮想視点生成部と、視野生成部と、仮想視点画像生成部と、表示画像生成部とを備えており、
前記視線ベクトル生成部は、視点から前記頂点の全部又は一部へ向けて延びる視線が前記パッチで反射又は屈折した後に延びて行く方向を、視線ベクトルとして求めるものであり、
前記仮想視点生成部は、前記視線ベクトル又はそれを延長して得られる直線どうしがほぼ収束している点を、仮想視点として求めるものであり、
前記視野生成部は、前記視線ベクトルの方向を実質的に全て含むように仮想視野を求めるものであり、
前記仮想視点画像生成部は、前記仮想視点から見た、前記仮想視野における投影画像を求めるものであり、
前記表示画像生成部は、前記投影画像をテクスチャ画像として前記パッチに貼り付けることによってテクスチャマッピングを行うものである
ことを特徴とする画像生成装置。
【請求項７】
頂点を有する複数のポリゴンで構成されたパッチで反射又は屈折された画像を生成する方法であって、さらに、以下のステップを備えた方法を、コンピュータにより実行させることを特徴とするコンピュータプログラム：
（１）視点から前記頂点の全部又は一部へ向けて延びる視線が前記パッチで反射又は屈折した後に延びて行く方向を、視線ベクトルとして求めるステップ；
（２）前記視線ベクトル又はそれを延長して得られる直線どうしがほぼ収束している点を、仮想視点として求めるステップ；
（３）前記視線ベクトルの方向を実質的に全て含むように仮想視野を求めるステップ； 
（４）前記仮想視点から見た、前記仮想視野における投影画像を求めるステップ； 
（５）前記投影画像をテクスチャ画像として前記パッチに貼り付けることによってテクスチャマッピングを行うステップ。
【請求項８】
請求項１に記載の方法により得られた前記投影画像が、テクスチャ画像として前記パッチの領域に貼り付けられていることを特徴とする画像データ。
【請求項９】
請求項２に記載の方法により得られた前記投影画像が、テクスチャ画像として前記パッチの領域に貼り付けられており、さらに、前記交点に対応する、前記投影画像上の位置の画素値が、前記テクスチャ画像における交点の画素値として割り当てられていることを特徴とする画像データ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成方法及び画像生成装置に関するものである。特に、本発明は、光線の反射や屈折を生じる物体の表面における画像を、コンピュータグラフィックスによって生成するための方法及び装置に関するものである。
【背景技術】
【０００２】
コンピュータグラフィックスにおいて、反射や屈折の表現は、リアルな画像の生成のための重要な要素である。レイトレーシング[非特許文献１]は、反射・屈折を正確にシミュレートする手法である。
【０００３】
レイトレーシングの高速化はさまざまな観点から提案されている。しかしながら、実用的な規模のシーンを、リアルタイムな、あるいはインタラクティブ操作可能なフレームレートで表示することは、依然困難である。
【０００４】
一方で、映りこみの効果を高速に表示するためには環境マッピングとその派生的な手法が使われている。環境マッピング[非特許文献2]は、グラフィックスハードウェアに実装することができるため[非特許文献3]、リアルタイム処理が可能である。リアルタイムグラフィックスで設定する通常の光源のかわりに、光源位置を反映した環境マップを作成し、光源マップ(light map) として使用することにより、大域照明の効果を出すのにも、この技術が用いられている。ただし、環境マッピングでは、反射や屈折を正確にシミュレートすることが難しい。
【０００５】
通常、環境マッピングでは、静的な画像を環境マップとして用いるが、これを動的に生成するのがキューブマッピングである。キューブマッピング[非特許文献4] では、反射物体の中心付近の代表点から6 方向に向けて6 回描画を行い環境マップを作成し、それを使って反射物体の描画を行う。
【０００６】
一般に環境マッピングでは、視線方向が違う場合には異なるマップを用意する必要がある。これを解決するために、Cabral らは複数視線方向の環境マップを用意し、実行時の視線方向に応じて最近傍の3 つのマップを重み付けして合成する手法を発表した[非特許文献5]。同様に、Hakura ら[非特許文献6] は、反射物体の周りの多数の視点から見た場合の環境マップを別々にレイトレーシングで前計算しておくことにより、実行時にレイトレーシングと同等の描画を行った。これらの方法は止まった物体あるいは移動の少ない物体を周りから見るのには適しているが、物体がシーンの中を動き回るような場合、膨大な前処理が必要になってしまう。
【０００７】
レイトレーシングの高速化の一手法として、光束追跡法[非特許文献7] [非特許文献8] も存在するが、これでもリアルタイムでの画像生成は、現状のＣＰＵ性能を前提とすれば困難である。
【０００８】
曲面での反射画像の生成を、インタラクティブな操作可能な速さで実現するための別のアプローチとして、Ofek らによるExplosion Map がある[非特許文献9]。彼らは、映りこむ物体を反射曲面の形状に応じて変形させた物体を虚像の位置に置いて描画を行う手法を提案した。この手法では、ＣＰＵの演算によって形状の変形とテセレーションを行うため、大規模なデータの扱いに難点がある。映りこむ物体の数が多いか、あるいは、異なる反射面が複数あってそれぞれ別の変形が必要な場合は、それらの数に応じて前処理時間がかかるため、インタラクティブ性に問題が出てくる。
【非特許文献１】[1] T. Whitted. An Improved Illumination Model for Shaded Display. Communications of the ACM, Vol. 23, No. 6, pp. 343-349, 1980.
【非特許文献２】[2] J. F. Blinn and M. E. Newell. Texture and reflection in computer generated images. Communications of the ACM, Vol. 19, No. 10, pp. 542-547, 1976.
【非特許文献３】[3] Paul Haeberli and Kurt Akeley. The accumulation buffer: hardware support for high-quality rendering. Proc. SIGGRAPH ’90, pp. 309-318, 1990.
【非特許文献４】[4] Douglas Voorhies and Jim Foran. Reflection vector shading hardware. Proc. SIGGRAPH '94, pp. 163-166, 1994.
【非特許文献５】[5] Brian Cabral, Marc Olano, and Philip Nemec. Reflection space image based rendering. Proc. SIGGRAPH '99, pp. 165-170, 1999.
【非特許文献６】[6] Ziyad S. Hakura, John M. Snyder, and Jerome E. Lengyel. Parameterized environment maps. SI3D '01: Proceedings of the 2001 symposium on Interactive 3D graphics, pp. 203-208, 2001.
【非特許文献７】[7] Mikio Shinya, T. Takahashi, and Seiichiro Naito. Principles and applications of pencil tracing. Proc. SIGGRAPH ’98, pp. 45-54, 1987.
【非特許文献８】[8] 新谷幹夫, 高橋時市郎. 光束追跡の理論と誤差解析. 電子情報通信学会論文誌., Vol. Vol. J72-D-II, No. 12, pp. 2000-2011, 1989.
【非特許文献９】[9] Eyal Ofek and Ari Rappoport. Interactive reflections on curved objects. Proc. SIGGRAPH '98, pp. 333-342, 1998.
【非特許文献１０】[10] Scott Vallance and Paul Calder. Inward looking projections. Proc. GRAPHITE '03, pp. 219-222, 2003.
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、前記した事情に鑑みてなされたものである。本発明は、反射又は屈折する物体の表面における画像を、リアルタイム性ないしインタラクティブ性と正確性ないし画質とを両立させながら生成することが可能な方法及び装置を提供することを目的としている。
【課題を解決するための手段】
【００１０】
請求項１に記載の方法は、頂点を有する複数のポリゴンで構成されたパッチで反射又は屈折された画像を生成する方法であって、さらに、以下のステップを備えている：
（１）視点から前記頂点の全部又は一部へ向けて延びる視線が前記パッチで反射又は屈折した後に延びて行く方向を、視線ベクトルとして求めるステップ；
（２）前記視線ベクトル又はそれを延長して得られる直線どうしがほぼ収束している点を、仮想視点として求めるステップ；
（３）前記視線ベクトルの方向を実質的に全て含むように仮想視野を求めるステップ； 
（４）前記仮想視点から見た、前記仮想視野における投影画像を求めるステップ； 
（５）前記投影画像をテクスチャ画像として前記パッチに貼り付けることによってテクスチャマッピングを行うステップ。
【００１１】
請求項２に記載の方法は、請求項１に記載の方法における前記ステップ（５）が、以下のステップを含んでいるものである：
（５ａ）前記視点から前記頂点へ延び、その後に前記頂点で反射又は屈折された視線と、前記視野内での物体の交点を求めるステップ；
（５ｂ）前記交点に対応する、前記投影画像上の位置を求めるステップ；
（５ｃ）前記投影画像上の位置を前記テクスチャ画像上の位置として割り当てて、前記テクスチャマッピングを行うステップ。
【００１２】
請求項３に記載の方法は、請求項１又は２に記載の方法において、前記ステップ（５）の後に、さらに以下のステップを備えたものである：
（６）前記視点から見た、前記パッチ上のテクスチャ画像を含む全景の画像を生成して表示するステップ。
【００１３】
請求項４に記載の方法は、請求項１〜３のいずれか１項に記載の方法において、前記パッチが、反射体表面の全部又は一部を構成しているものである。
【００１４】
請求項５に記載の方法は、請求項１〜３のいずれか１項に記載の方法において、前記パッチが、レンズ表面の全部又は一部を構成しているものである。
【００１５】
請求項６に記載の装置は、頂点を有する複数のポリゴンで構成されたパッチで反射又は屈折された画像を生成する装置であって、さらに、視線ベクトル生成部と、仮想視点生成部と、視野生成部と、仮想視点画像生成部と、表示画像生成部とを備えている。前記視線ベクトル生成部は、視点から前記頂点の全部又は一部へ向けて延びる視線が前記パッチで反射又は屈折した後に延びて行く方向を、視線ベクトルとして求めるものである。前記仮想視点生成部は、前記視線ベクトル又はそれを延長して得られる直線どうしがほぼ収束している点を、仮想視点として求めるものである。前記視野生成部は、前記視線ベクトルの方向を実質的に全て含むように仮想視野を求めるものであある。前記仮想視点画像生成部は、前記仮想視点から見た、前記仮想視野における投影画像を求めるものである。前記表示画像生成部は、前記投影画像をテクスチャ画像として前記パッチに貼り付けることによってテクスチャマッピングを行うものである。
【００１６】
請求項７に記載のコンピュータプログラムは、頂点を有する複数のポリゴンで構成されたパッチで反射又は屈折された画像を生成する方法であって、さらに、以下のステップを備えた方法を、コンピュータにより実行させるものである：
（１）視点から前記頂点の全部又は一部へ向けて延びる視線が前記パッチで反射又は屈折した後に延びて行く方向を、視線ベクトルとして求めるステップ；
（２）前記視線ベクトル又はそれを延長して得られる直線どうしがほぼ収束している点を、仮想視点として求めるステップ；
（３）前記視線ベクトルの方向を実質的に全て含むように仮想視野を求めるステップ； 
（４）前記仮想視点から見た、前記仮想視野における投影画像を求めるステップ； 
（５）前記投影画像をテクスチャ画像として前記パッチに貼り付けることによってテクスチャマッピングを行うステップ。
【００１７】
請求項８に記載の画像データは、請求項１に記載の方法により得られた前記投影画像が、テクスチャ画像として前記パッチの領域に貼り付けられているものである。
【００１８】
請求項９に記載の画像データは、請求項２に記載の方法により得られた前記投影画像が、テクスチャ画像として前記パッチの領域に貼り付けられており、さらに、前記交点に対応する、前記投影画像上の位置の画素値が、前記テクスチャ画像における交点の画素値として割り当てられているものである。
【発明の効果】
【００１９】
本発明によれば、反射又は屈折する物体の表面における画像を、リアルタイム性ないしインタラクティブ性と正確性ないし画質とを両立させながら生成することが可能な方法及び装置を提供することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の一実施形態を、添付図面を参照して説明する。この実施形態の説明では、理解を容易とするために、まずは反射面を前提とする。屈折については後述する。
【００２１】
（前提の説明）
まず、本実施形態で生成される画像の前提を、図１〜図３を参照しながら説明する。
【００２２】
本実施形態における基本的な考え方はキューブマッピングと同様である。まず、３Ｄモデリング空間内に、様々な物体（人間や動物を含んでもよい）が存在すると仮定する。さらに、この空間内に、反射面１が存在すると仮定する。
【００２３】
この反射面１を、３Ｄモデリング空間に存在する（と仮定される）観察者の視点２から見る。すると、反射面１には、物体３の像４のように、反射面１で反射された光線によって得られた画像が見えるはずである。したがって、コンピュータグラフィックスを行うソフトウエア又はハードウエアは、この画像を生成して描画する必要がある。
【００２４】
ここで、前提として、反射面１における領域をパッチ５と称する。図２は、反射面１に一つのパッチ５が存在する例を示している。ただし、図３に示すように、反射面１において複数のパッチ５ａ及び５ｂが存在してもよい。パッチの数は使用者が適宜に設定できる。
【００２５】
各パッチ５には、図２に示すように、複数のポリゴン６が存在する。すなわち、３Ｄモデリング空間においては、パッチ５の表面形状は、ポリゴン６の集合により表現される。各ポリゴン６は、複数の頂点７を有する。図示の例では、各ポリゴンが三つの頂点を持っている。頂点の数は４以上であってもよい。物体の形状をポリゴンで表す方法は従来から知られているので説明を省略する。
【００２６】
（画像生成装置）
つぎに、本実施形態にかかる画像生成装置を、図４に基づいて説明する。この画像生成装置は、入力部１０と、入力インタフェース１１と、表示部２０と、出力インタフェース２１と、記憶部３０と、画像生成部４０と、バス５０とを備えている。これらの構成要素は、ワークステーションやコンピュータなどのハードウエア自体、又は、ハードウエアにコンピュータプログラムを組み込むことによって構成することができる。
【００２７】
入力部１０は、入力インタフェース１１を介してバス５０に接続されている。入力部１０は、例えばキーボードやマウスやタッチパッドなどの適宜な入力機器であり、これを用いて操作者からの指令を入力できるようになっている。
【００２８】
表示部２０は、出力インタフェース２１を介してバス５０に接続されている。出力部２０は、例えばディスプレイやプリンタなどの適宜な出力機器であり、これを用いて利用者に画像を提示できるようになっている。
【００２９】
記憶部３０は、データ（コンピュータプログラムを含む）の記憶や読み出しができる機器である。記憶部３０としては、磁気的記憶装置（例えばハードディスク）、半導体記憶装置（例えばメモリボード）、光学的記憶装置（例えば光ディスクを用いた記憶装置）など、適宜の装置を用いることができる。記憶部３０は、ワークステーションやコンピュータに内蔵されているものでも、インターフェース機器を介して外部に接続されるものでもよい。さらに、記憶部３０としては、ネットワークを介して利用できる記憶装置であってもよい。記憶部３０は、物理的には複数存在する記憶装置によって構成されていてもよい。
【００３０】
本実施形態に係る記憶部３０には、ワークステーションやコンピュータを用いて画像生成部４０を構成するためのコンピュータプログラムや、本実施形態の方法の実施に用いるデータが予め格納されている。また、記憶部３０は、本実施形態の方法の実施に伴って生成されるデータを格納できるようになっている。
【００３１】
画像生成部４０は、図５に示すように、視線ベクトル生成部４１と、仮想視点生成部４２と、視野生成部４３と、仮想視点画像生成部４４と、表示画像生成部４５とを備えている。画像生成部４０は、ワークステーションやコンピュータ上で、コンピュータプログラムを実行することにより、機能要素として構成されるものである。
【００３２】
視線ベクトル生成部４１は、視点２から頂点７の全部又は一部へ向けて延びる視線８（図１参照）がパッチ５で反射又は屈折した後に延びて行く方向を、視線ベクトルとして求めるものである。
【００３３】
仮想視点生成部４２は、視線ベクトル又はそれを延長して得られる直線どうしがほぼ収束している点を、仮想視点として求めるものである。
【００３４】
視野生成部４３は、視線ベクトル（ないしその角度）を実質的に全て含むように仮想視野を求めるものである。
【００３５】
仮想視点画像生成部４４は、仮想視点から見た、仮想視野における投影画像を求めるものである。
【００３６】
表示画像生成部４５は、投影画像をテクスチャ画像としてパッチ５に貼り付けることによってテクスチャマッピングを行うものである。表示画像生成部４５としては、専用のグラフィックスハードウエアを用いることが高速化のために好適であるが、ソフトウエアによりこの機能を実現することもできる。
【００３７】
前記した各部の詳しい動作は、本実施形態に係る画像生成方法の説明（後述）において述べる。
【００３８】
バス５０は、前記した各部間でのデータのやりとりを可能にする伝送路である。バス５０としては、一本のバスを共用する構成に限らず、専用のバスを別途用いる構成であってもよい。
【００３９】
（本実施形態に係る画像生成方法）
つぎに、本実施形態に係る画像生成方法を、図６に示されるフローチャートを主に参照しながら説明する。
【００４０】
（図６のステップＳＡ−１）
前提として、パッチ５（図２参照）が複数のポリゴン６で構成されているものとする。また、ポリゴン６の全頂点７のうち、以降の処理の対象とするべきサンプル頂点を選んでおくものとする。サンプル頂点の選び方は、操作者が任意に指定してもよいし、何らかのルールで自動的に選択しても良い。また、全頂点をサンプル頂点としてもよい。描画精度を上げるためにはサンプル頂点の数を増すことが好ましく、描画高速化のためにはサンプル頂点の数を減らすことが好ましい。処理結果として生成された画像を見てから操作者がサンプル頂点の数を調整することもできる。以下の説明ではサンプル頂点にも符号７を付して参照する。
【００４１】
このステップＳＡ−１では、視点８（図１参照）から、ポリゴン６におけるサンプル頂点７へ向けて延びる視線が、反射面１におけるパッチ５（より具体的には、そのサンプル頂点７）で反射した後に延びて行く方向を、視線ベクトル９として求める（図７参照）。この操作は視線ベクトル生成部４１で行われる。
【００４２】
（図６のステップＳＡ−２）
ついで、仮想視点生成部４２は、視線ベクトル９又はそれを延長して得られる複数の直線どうし（図８参照）がほぼ収束している点を、仮想視点Ｐとして求める。仮想視点Ｐは、視線ベクトル９又はそれを延長して得られる直線からの距離がほぼ最小となる点であることが好ましい。このような点は、例えば最小自乗法を用いて求めることができる。
【００４３】
仮想視点Ｐを求める方法の一例を図９を用いて説明する。
（１）まず、二本の直線に対して、それらへの距離が最小となる点Ｐ１を求める。
（２）つぎに、別の新たな直線が存在すれば、それに対して、点Ｐ１から垂線をおろす。（３）垂線の線分上で新たな直線に対して近づけながら、これまで計算に用いた各直線までの距離の２乗を評価し、合計が最小となる点Ｐ２を見つける。
（４）上記（２）及び（３）を逐次行う。Ｎ本の直線が存在すれば、Ｎ−１回繰り返す。これによって点ＰＮ−１を得ることができる。この点ＰＮ−１を仮想視点Ｐとして用いることができる。
【００４４】
（図６のステップＳＡ−３）
ついで、視野生成部４３は、視線ベクトル９の方向を実質的に全て含むように仮想視野Ｖを求める（図７及び図８参照）。仮想視野Ｖは、ニアクリッピング面ＮＣとファークリッピング面ＦＣとを備えている。仮想視野Ｖはビューボリュームとも呼ばれ、透視変換する領域を画定するためのものである。ニアクリッピング面ＮＣは、投影面ないしスクリーンとも呼ばれ、透視変換された画像（投影画像）が映し出されると仮定される面である。ファークリッピング面ＦＣは、仮想視野Ｖの後側（視点から離間した側）の領域を区切っている。
【００４５】
（図６のステップＳＡ−４）
ついで、仮想視点画像生成部４４は、仮想視点Ｐから見た、仮想視野Ｖにおける投影画像を求める。投影画像は、前記した通り、透視変換によってニアクリッピング面ＮＣに映し出されるべき画像である。これにより、仮想視野Ｖの中に存在する物体を仮想視点Ｐから見たときの２Ｄ画像を得ることができる。透視変換を行う仮想視点画像生成部４４としては、専用のハードウエアを用いたいわゆるジオメトリエンジンを用いることが高速化のためには好適である。ただし、ソフトウエアによって透視変換を行うことも可能である。
【００４６】
（図６のステップＳＡ−５）
ついで、表示画像生成部４５は、投影画像をテクスチャ画像としてパッチ５に貼り付けることによってテクスチャマッピングを行う。さらに、表示生成部４５は、本来の視点２から見た全景の画像（図１の視点２から見たときの視野内の透視画像）を生成する。この全景の画像における反射面１の画像として、前記したパッチ５に貼り付けられた画像が用いられる。表示画像生成部４５は、生成した画像を、従来と同様の方法で表示部２０に送って表示することができる。
【００４７】
本実施形態では、前記のようにして、視線ベクトルから得られた仮想視点から見た画像をパッチ５に貼り付けているので、反射面１に映し出される反射画像の正確性を高めることができる。
【００４８】
また、本実施形態では、レイトレーシングと異なり、全ての画素についての視線追跡を行う必要がない。このため、画像生成のための処理時間が短く、インタラクティブ操作可能な速さでの画像生成が可能となる。例えば、移動する反射面１に映り込む画像を、反射面１の移動に伴って次々に作成して、直ちに表示することができる。ここで、インタラクティブ操作可能な速さとは、一般的には、１秒間あたり６フレーム程度、好ましくは１０フレーム程度の速さをいう。もちろん、この速さは、扱うシーンのデータ量によって変動する。本実施形態においても、扱うデータ量が過大になれば、画像生成速度は低下する。ただし、本実施形態によれば、扱うデータ量が同じと仮定すれば、レイトレーシングよりも高速に画像生成を行うことができる。このため、本実施形態により、インタラクティブ操作可能な速さでの画像生成が十分に期待できる。また、データ量や用いるハードウエアの能力によっては、リアルタイムでの画像生成（１秒間あたり３０フレーム程度、好ましくは６０フレーム程度の画像生成）も期待できる。
【００４９】
（テクスチャ画像生成の具体例）
以下、前記したステップＳＡ−５におけるテクスチャ画像の生成手法の具体例を、図１０に示すフローチャートを参照しながら説明する。図１０に示す方法は、要するに、投影画像をそのままテクスチャ画像に用いるのではなく、より精度を高めた上でテクスチャマッピングを行う方法である。
【００５０】
（図１０のステップＳＢ−１）
まず、図１１に示すように、視点２からサンプル頂点７へ延び、その後にサンプル頂点７で反射された視線８の視線ベクトル９と、仮想視野Ｖ（図８参照）内での物体３との交点Ｓを求める。この交点Ｓとしては、最初の交点（すなわち反射面１に最も近い交点）を選ぶことが望ましい。交点Ｓの座標としては、世界座標を用いる。
【００５１】
（図１０のステップＳＢ−２）
つぎに、交点Ｓと仮想視点Ｐとの直線とニアクリッピング面ＮＣとが交差する点を求める。これにより、交点Ｓに対応する、投影画像上の位置Ｑを求める。すなわち、表示画像生成部４５は、交点Ｓを表す画素が、ニアクリッピング面ＮＣの上に投影される画像において、どの位置に存在するかを算出する。例えば、この位置は、ニアクリッピング面ＮＣにおけるローカル座標系において（０．６５，０．６５）のような数値で表される。
【００５２】
（図１０のステップＳＢ−３）
つぎに、投影画像上の位置（ローカル座標系での位置）を、テクスチャ画像の位置として割り当てて、テクスチャマッピングを行う。すなわち、投影画像上の位置が例えば（０．６５，０．６５）であれば、元のサンプル頂点７に割り当てられるべきテクスチャ座標（すなわちテクスチャ画像上の位置）としても（０．６５，０．６５）を割り当てて、テクスチャマッピングを行う。このように位置を割り当てれば、実際のテクスチャマッピングは、従来から用いられているテクスチャマッピング用エンジンを用いて高速に行うことができる。特にハードウエアのエンジンを用いれば、描画速度を向上させることができる。
【００５３】
以上の操作を各サンプル頂点７について行う。これにより、各サンプル頂点７においては、視点２から反射面１を見たときに見えるべき画素（交点Ｓの画素）を割り当てることができる。したがって、各サンプル頂点７においては、精度の高い画像形成が行われる。
【００５４】
サンプル頂点７の間に、サンプル頂点でない頂点（これを以下「非サンプル頂点」という）が存在する場合は、非サンプル頂点におけるテクスチャ座標の割り当てを、補間により行うことができる。例えば、簡単のために一次元で説明すると、あるサンプル頂点に割り当てた、投影画像上の位置（テクスチャ座標）が０．２であり、それに隣接するサンプル頂点に割り当てた位置が０．４であれば、その中間に存在する非サンプル頂点のために、投影画像上の０．３の位置を割り当てて、テクスチャマッピングを行う。サンプル頂点から非サンプル頂点への距離に応じて重みづけを行うこともできる。また、２次元の場合は、非サンプル頂点を囲む三つのサンプル頂点からの距離に応じて重みづけ補間を行う、いわゆるバリセントリック・インターポレーション（barycentric interpolation）などの、適宜な補間方法を用いることができる。サンプル頂点７として全ての頂点を選んだ場合は、この補間を行う必要はない。
【００５５】
各頂点７どうしの間の画素については、従来から行われているテクスチャマッピングにおける補間処理によって、そのテクスチャ座標（すなわちテクスチャ画像上の位置）が割り当てられる。
【００５６】
以上から判るように、本実施形態で生成される画像データは、投影画像が、テクスチャ画像としてパッチ５の領域に貼り付けられている。さらに、交点Ｓに対応する、投影画像上の位置の画素値が、テクスチャ画像における交点Ｓの画素値として割り当てられているものとなっている。
【００５７】
（図６のステップＳＡ−６）
さらに、表示画像生成部４５は、視点２から見た、パッチ５上のテクスチャ画像を含む全景の画像を生成する。生成された画像データは、動画データであれば、画像表示用のフレームバッファ（図示せず）に格納される。ついで、画像データは、出力インタフェース２１を介して表示部２０で表示される。フレームバッファは、記憶部３０の一部として構成することもできるし、別途の専用ハードウエアとして構成することもできる。動画を生成する場合は、以上の処理を１フレーム内で行う。
【００５８】
（多数のパッチが存在する場合）
なお、前記実施形態では、一つのパッチ５について説明したが、反射面１が複数回湾曲されている場合や、曲率が数カ所で変化している場合は、反射面１を複数のパッチ５に仮想的に分割することが好ましい。この場合は、各パッチ５ａ、５ｂ、…についてそれぞれ仮想視点Ｐａ、Ｐｂ、…を求める（図１２参照）。他の処理は前記と同様なので詳しい説明は省略する。
【００５９】
ここで、反射面１が複数のパッチ５で構成される場合、パッチ５どうしの隣接部分においては、複数のサンプル頂点が共有されていることが好ましい。サンプル頂点の間においては、座標値が補間により生成されるため、サンプル頂点が共有されていないと、貼り付けたテクスチャ画像どうしがずれるおそれがあるからである。これに対して、なるべく多数の頂点を共有するようにすると、パッチ５どうしの間で、画像の連続性を高めることができ、得られた全景画像の精度を高くすることができる。具体的には、共有される辺の中間部分において、サンプル頂点を共有することが好ましい。もちろん、共有するサンプル頂点の数や、共有するか否かについては、目的とする画像の精度やパッチの大きさに応じて変更することができる。
【００６０】
また、反射面１を複数のパッチ５に分割する場合、それぞれのパッチ５に応じて仮想視点Ｐからの投影画像を取得する。一般に、投影画像の画素数はソフトウエアあるいはシステム側で既定となっている（例えば５１２×５１２画素）。このため、複数のパッチ５に分割して投影画像を取得し、それに基づいて反射面１の描画を行うことにより、結果として、得られる画像の解像度を高めることができる。
【００６１】
（凹面鏡の場合）
反射面が凹面で、かつ、視線ベクトル９が視野内で交差する場合でも、本実施形態の方法は有効である。この場合の処理の一例を、図１３に基づいて説明する。
【００６２】
この例でも前記と同様の方法で、仮想視点Ｐを設定する。ついで、仮想視点から、視線ベクトル９の延長方向への仮想視野Ｖ１について、前記と同様の方法で投影画像を求める。このとき、仮想視野Ｖ１における投影画像については、天地が反転する。これは、視線ベクトルが互いに交差しているために生じるものである。
【００６３】
一方、反射面１への方向への仮想視野Ｖ２も設定し、これについて、前記と同様の方法で投影画像を求める。ただし、仮想視野Ｖ２内に物体３が存在する場合、仮想視点Ｐに近い側の、物体３の面は、反射面１上に現れる画像では見えないはずである。そこで、通常の処理とは逆に、仮想視点Ｐから遠い面を優先して描画し、近い面の画素が遠い面の画素に隠蔽される処理とする。このような処理は、Ｚバッファ処理の評価関数を変更することで実装可能である（非特許文献１０参照）。
【００６４】
このように仮想視野Ｖ１及びＶ２から得られた二つの投影画像を、この順番で重ね合わせる。すなわち、仮想視野Ｖ１から得られた画像の上に、仮想視野Ｖ２から得られた画像を上書きするようにして重ね合わせる。これにより、反射面１のパッチ５に貼り付けるべきテクスチャ画像を得ることができる。他の処理は前記と同様で良いので、詳しい説明を省略する。
【００６５】
（凹レンズの場合）
前記した実施形態の説明では、物体３の表面に反射面１が存在すると仮定した。しかしながら、本実施形態の方法は、物体３がレンズである場合、あるいは、物体３がレンズを含む場合にも適用できる。この場合の処理方法の一例を、図１４に基づいて説明する。
【００６６】
この例でも、前記と同様の方法で、仮想視点Ｐを設定することができる。すなわち、視線ベクトル９を延長し、それに最も近い点を選ぶことで、仮想視点Ｐを得ることができる。その後の処理は前記と同様なので詳しい説明を省略する。
【００６７】
（凸レンズの場合）
物体３が凸レンズである場合は、反射面が凹面である場合と基本的に同様に処理することができる。
【００６８】
（複合反射の場合）
例えば、反射面１に、他の反射面が映り込む画像も、本実施形態の方法で生成できる。この場合、まず、他の反射面の画像を、前記した実施形態の方法で描画する。ついで、その反射面の画像を、反射面１に、前記実施形態の方法で描画する。
【００６９】
（隠蔽処理）
前記したステップＳＢ−１〜ＳＢ−３を実行した場合、オクルージョンによって画像の正確性が悪くなることが考えられる。その例を図１６により説明する。
【００７０】
この例では、物体３における交点Ｓと、仮想視点Ｐとの間に、他の物体３ａが存在している。この場合は、仮想視点Ｐから見ることで得られた投影画像上では、物体３ａを表示するための画素が存在する。すると、パッチ５へのテクスチャマッピングの座標として、投影画像上の位置を割り当てても、正確な表現はできない。本来は、その位置には、物体３が表示されるべきであり、物体３ａは表示されるべきでないからである。
【００７１】
このような問題が生じる場合は、パッチ５をより細かく分割し、仮想視点を増やすことで対応することができる。このようにすれば、隠蔽が少なくなり、画像の精度を向上させることができる。操作者は、隠蔽の程度に応じて、パッチ５の分割数を調整することも可能である。
【００７２】
なお、本発明の範囲は、前記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることはもちろんである。
【００７３】
例えば、前記した各構成要素は、機能ブロックとして存在していればよく、独立したハードウエアとして存在しなくても良い。また、実装方法としては、ハードウエアを用いてもコンピュータソフトウエアを用いても良い。さらに、本発明における一つの機能要素が複数の機能要素の集合によって実現されても良い。本発明における複数の機能要素が一つの機能要素により実現されても良い。
【００７４】
また、機能要素は、物理的に離間した位置に配置されていてもよい。この場合、機能要素どうしがネットワークにより接続されていても良い。
【図面の簡単な説明】
【００７５】
【図１】反射面とそれに映り込む物体との関係を説明するための説明図である。
【図２】反射面（パッチ）を形成するポリゴンを説明するための説明図である。
【図３】反射面が複数のパッチで形成された例を説明するための説明図である。
【図４】本実施形態に係る画像生成装置の、概略的な機能ブロック図である。
【図５】画像生成部についての、概略的な機能ブロック図である。
【図６】本実施形態に係る画像生成方法を説明するためのフローチャートである。
【図７】視線ベクトルを含む仮想視野を説明するための説明図である。
【図８】視線ベクトルを含む仮想視野を説明するための説明図である。
【図９】仮想視点を決める方法を説明するための説明図であって、図（ａ）は直線が二本の場合、図（ｂ）は直線が三本の場合である。
【図１０】投影画像を用いたテクスチャマッピングを説明するためのフローチャートである。
【図１１】投影画像を用いたテクスチャマッピングの具体例を説明するための説明図である。
【図１２】反射面を複数のパッチに分けた場合の仮想視点を示す説明図である。
【図１３】反射面として凹面鏡を用いた例を説明するための説明図である。
【図１４】物体として凹レンズを用いた例を説明するための説明図である。
【図１５】物体として凸レンズを用いた例を説明するための説明図である。
【図１６】隠蔽の処理方法を説明するための説明図である。
【符号の説明】
【００７６】
Ｐ  仮想視点
Ｑ  ニアクリッピング面上の位置
Ｓ  交点
Ｖ・Ｖ１・Ｖ２  仮想視野
ＮＣ  ニアクリッピング面
ＦＣ  ファークリッピング面
１  反射面
２  視点
３・３ａ  物体
４  像
５・５ａ・５ｂ・…  パッチ
６  ポリゴン
７  頂点
８  視線
９  視線ベクトル
１０  入力部
１１  入力インタフェース
２０  表示部
２１  出力インタフェース
３０  記憶部
４０  画像生成部
４１  視線ベクトル生成部
４２  仮想視点生成部
４３  視野生成部
４４  仮想視点画像生成部
４５  表示画像生成部
５０  バス
【図１】
2007299080.tif 000003
【図２】
2007299080.tif 000004
【図３】
2007299080.tif 000005
【図４】
2007299080.tif 000006
【図５】
2007299080.tif 000007
【図６】
2007299080.tif 000008
【図７】
2007299080.tif 000009
【図８】
2007299080.tif 000010
【図９】
2007299080.tif 000011
【図１０】
2007299080.tif 000012
【図１１】
2007299080.tif 000013
【図１２】
2007299080.tif 000014
【図１３】
2007299080.tif 000015
【図１４】
2007299080.tif 000016
【図１５】
2007299080.tif 000017
【図１６】
2007299080.tif 000018