(57)【特許請求の範囲】
【請求項１】
コンピュータグラフィックスのレンダリング技法として、ミラー反射特性をもつ物体表面に、周辺の映像を映し込む環境マッピング方式として、その物体を取り囲む投影体を設定し、この投影体に周辺の映像を投影した後、これをテキスチャーパターンとして記憶し、このパターンをミラー反射物体面にマッピングする手段に関して、第一のミラー反射物体にマッピングされる周辺の物体がさらにミラー反射特性をもっていた場合、この第二のミラー反射物体に設定された第二の投影体の映像を、第一のミラー反射物体のマッピング映像とする手段と、マッピングされる第二の投影体の映像が再びミラー反射特性をもつ場合は、第三となるそのミラー反射物体の投影体の映像を第一のミラー反射物体のマッピング映像とする手段をもち、以下同様にマッピングされる映像が反射特性をもつ物体である場合、前記手段を繰り返す多次反射環境マッピングを行うと共に、それぞれのミラー反射物体に設定される投影体に周辺の環境映像をレンダリングする際に、投影体には、周辺物体のカラーだけでなく面法線、反射率、投影体識別子およびミラー反射の有無を示すフラグを同時に記憶する第一の手段と、第一のミラー反射物体を描画する際、視線ベクトルと第一のミラー反射物体の法線から、反射ベクトル計算回路において、第一のミラー反射物体上での視線反射ベクトルを求め、この反射ベクトルから、第一のミラー反射物体がもつ投影体に記憶された周辺映像の色と前記フラグを読みだし、読み出した点の画素がミラー反射物体で無い場合は、第一のミラー反射物体のカラーと読み出した前記第一の投影体のカラーとを、第一の反射物体の反射率を用いて合成する手段と、前記フラグが、読み出し点の画素が第二のミラー反射物体であることを示す場合、その点に記憶された第二の反射物体の面法線、反射率および識別子を読み出すと共に、前記第一の物体上の視線反射ベクトルと、前記第二の反射物体の面法線とから、反射ベクトル計算回路で第二の視線反射ベクトルを求め、このベクトルと読み出した前記識別子を用いて、第二のミラー反射物体がもつ第二の投影体を選択すると共に、第二の投影体からカラーとフラグを読み出す手段と、読み出した点の画素が再びミラー反射物体である場合は、前記の手段を繰り返し、また読み出した前記フラグがミラー反射物体で無いことを示す場合は、投影体から読み出したカラーと、ミラー反射物体のカラーとを、ミラー反射物体の反射率を用いて順次合成し、このカラーを第一の反射ベクトルを求めた物体のレンダリング点のカラーとする手段をもつ多次反射環境マッピング回路。
【請求項２】
請求項１の回路において、視線反射ベクトルによる投影体の読み出し点を中心に、少なくとも３×３の画素領域に含まれるカラー、面法線、および反射率をそれぞれフィルタリングする手段において、前記画素領域の読み出し中心点と同一識別子を持つ法線および反射率のみを用いてフィルタリングし、フィルタリングされた面法線は反射ベクトル計算回路に、またカラーおよび反射率は、反射物体のカラーとの合成に用いる多次反射環境マッピング回路。
【発明の詳細な説明】
【０１】
［発明の属する技術分野］
この発明はコンピュータグラフィックスのレンダリングに関し、ミラー反射面をもつ物体に周辺の景色を映す環境マッピングにおいて、さらにこの物体を、ミラー反射面をもつ物体に映し出す多次反射をポリゴンレンダリング法において行うもので、この発明の回路のＬＳＩ化により、幾重にも重なる反射物体の表示を可能とするため実時間フォトリアリズム効果を重視するＣＧ映像分野に適用される。
【０２】
［従来の技術］
環境マッピングは３次元コンピュータグラフィックスの中でフォトリアリズムを得る重要な技術である。実世界ではミラー特性をもつ面に、さらにミラー反射をもつ物体が投影される場合がある。このような２次反射環境マッピングに関しては、ミラー平面に任意形状物体のミラー反射面が投影される場合の環境マッピングについて特願２００１−２５２１２５で示された。しかしそれぞれのミラー反射がすべて任意形状からなる物体で生じる多次反射を伴う環境マッピングは、レイトレーシング法で実現されてはいるものの、実時間性を重視するポリゴンレンダリング法の中では実現されていない。本発明はポリゴンレンダリング法に適用される、より汎用性をもつ任意形状物体の多重反射を伴う環境マッピングの方式と回路に関するものである。
【００３】
［問題を解決するための手段］
環境マッピングではマッピングする映像を予めミラー反射面をもつ物体を取り囲む投影体（以下、環境投影体という）を設定し、これに周辺の映像を描画して、これをテキスチャーパターンとして用いる。この際、環境投影体は立方体や球体が設定され、これに投影される周辺映像は投影体の中心を投影中心として、６面あるいは球面にそれぞれ投影される。従来の方式ではこれら環境投影体には投影される物体のカラー値だけが記憶されるが、本発明では（１）カラー、（２）投影された物体がミラー反射特性をもち、その物体固有の環境投影体をもつか否かを示すフラグ、（３）投影された物体の面法線、（４）投影映像（物体）が環境投影体を持つ場合、投影体の識別子、および（５）反射率をそれぞれ同時に記憶する。これらは環境投影体に周辺物体を投影する時点で予め処理され、環境マッピングパターンの属性として記憶される。
ポリゴン塗りつぶしにおいて多角形の頂点に定義された視点ベクトルと面法線は、極座標としてその水平および垂直成分が線形に補間され、その後、直交座標変換を行い、補間点での視点ベクトルＶと面法線Ｎ０を得る。式（１）によって反射ベクトルＲ０を求め、このベクトル成分をアドレスとして第一の環境投影体を読み出す。特願２００１−２５２１２５では反射ベクトルを再び極座標に変換した値をアドレスとしているが、本発明では３軸のベクトル成分を直接アドレスとしてもよい。
Ｒ０＝Ｖ−２Ｎ０（Ｎ０・Ｖ）                  （１）
Ｒ０によって環境投影体から読み出したフラグから、投影された物体がミラー特性をもち、さらにその物体固有の環境投影体をもっていると検出されると、読み出した点（第二の反射物体）における面法線Ｎ１と（１）式のＲ０を用いて再び反射ベクトルＲ１を求める。これは（１）式においてＶをＲ０に、Ｎ０をＮ１に置き換えて計算できる。また同時に読み出したその物体がもつ識別子を読み、この識別子が示す第二の環境投影体から式（２）の反射ベクトルを用いて前記（１）から（５）までのデータを読み出す。その中でフラグにより再びミラー反射面、すなわち環境投影体をもつ物体（第三の反射物体）が検出されると、前記と同様に読み出した面法線と、読み出しに用いた反射ベクトルとから次の反射ベクトルを求める。以下同様な処理を繰り返す。すなわちｉ番目の反射ベクトルは式（２）で示す漸化式の関係となる。ここでｉ＝０のときは（１）式となる。
Ｒｉ＝Ｒｉ−１−２Ｎｉ（Ｎｉ・Ｒｉ−１）        （２）
このようにして、ミラー反射物体に当たると、最初の反射から次々と反射ベクトルが求められる。一方、それぞれの環境投影体で読み出されたカラーＣｉ＋１と、反射物体がもつカラーＣｉおよび反射率αｉは、それぞれカラーブレンディグが行われ、ブレンディング結果Ｃｍｉをｉ番目の反射点から順次ｉ＝０まで求めることにより最初の反射点の色Ｃｍ０を決定する。この関係は（３）となる。ここでカラーが最後の反射物体の場合はＣｍｉ＋１＝Ｃｉ＋１となる。
Ｃｍｉ＝αｉ・Ｃｉ＋（１−αｉ）・Ｃｍｉ＋１    （３）
このようにして本発明では環境投影体に単に周辺の投影物体のカラーだけを記憶するのではなく、その物体の法線、またその物体がミラー反射面をもつ場合にはその固有の環境投影体の名前を示す識別反射率、ミラー反射面であることを示すフラグを同時に記憶して多次の反射ベクトル（レイ）を求め、それぞれの反射点のカラーを合成して、第一の物体の反射点（ポリゴン内挿点）の輝度を決定するものである。一方、それぞれの環境投影体から読み出す色および法線についてはフィルタリングが必要である。これは反射ベクトルによって指定されたアドレスを中心に近接する所定の領域に含まれる複数の画素や法線を読みだし、これをバイリニアあるいは平均化等をそれぞれに加えることで得られる。フィルタリングにおいては、法線と反射率については、読み出す環境投影体の領域に含まれる中心点がもつ識別子と同一の識別子を、この識別子を持つもののみで行わなければならない。これはフィルタリング領域に含まれる可能性のある別の物体の法線や反射率を巻き込まないためである。
【００４】
［実施例］
図１に本発明の多次反射環境マッピング回路を示す。ミラー反射特性を持つ第一の物体のレンダリングが発生すると、図１において反射ベクトル計算回路１にて、視点ベクトルＶおよび反射物体の内挿補間点の法線Ｎ０とから前節「００３」項における式（１）により反射ベクトルＲ０を計算する。求めた反射ベクトルＲ０はミラー反射物体の環境投影体４のアドレスとして与えられる。反射ベクトルＲ０で、その点に記憶された投影物体４のカラー値Ｃ１とフラグを読み出す。このフラグをテストし、環境投影体に投影された物体（画素）が再びミラー反射特性をもつことを示した場合、さらに法線Ｎ１、反射率α１およびその物体がもつ環境投影体を示す識別子Ｉｄ１を読み出す。フラグは０／１で表し、例えば、０のときは反射特性をもたず、１のときその投影物体はミラー反射体とする。これら情報は、例えば６面の立方体の環境投影体に周辺物体を投影する場合、そのなかにミラー反射物体がある場合は、その物体のカラーを６面体に描画すると同時に、フラグ、描画点の法線、反射率、および識別子を記憶すれば良い。もし環境投影体に描画する物体がミラー反射特性を持たない場合は、カラーＣ１だけを記憶する。
環境投影体から読み出された投影物体が第二のミラー反射物体である場合、Ｒ０およびＮ１を用いて前節「００３」の式（２）により反射ベクトル計算回路２にてＲ１を求める。このベクトルは第二の物体がもつ環境投影体５を、識別子Ｉｄ１をもちいて選択した後、アドレスとして与え、環境投影体５に記憶された第二のフラグとカラー値Ｃ２を読み出す。もし第二のフラグが読み出した投影物体がミラー反射特性をもち、第三の環境投影体をもつことを示した場合、環境投影体５からは法線Ｎ２、反射率α２およびその物体がもつ環境投影体識別子Ｉｄ２を読み出す。以下同様に反射ベクトル計算回路３にてＲ２を求め、これをアドレスとして環境投影体Ｉｄ２のフラグとカラーＣ３を読み出す。第三のフラグをテストし、読み出し物体がミラー反射特性をもたない場合、環境投影体６に記憶されたカラー値Ｃ３と反射物体（すなわちＲ２を反射した環境投影体５に記憶された物体）のカラー値Ｃ２をその反射物体がもつ反射率α２を用いて式（３）に示す関係で線形に合成する。合成されたカラーＣｍ２はさらに環境投影体４に記憶された反射物体のカラー値Ｃ１とその物体がもつ反射率α１によりＣｍ１を求める。次に最初の視点が反射する物体のカラーＣ０と反射率α０を用いて、その反射点のカラー値を決定する。図１ではＣ３とＣ２との合成が乗算器１２、１３および加算器１５で、またＣｍ２とＣ１との合成が乗算器１０、１１と加算器１４で行われる。図１では視点が反射する第一の物体とのカラーの合成は、合成方法が前記と同様に行われるため示されていない。
一方、反射物体に投影される周辺物体は環境投影体に投影された映像に対して、反射物体上では縮小あるいは拡大されている。このため前記の反射ベクトルが環境投影体と交差する１点だけの情報をもとに次の情報を得ようとすると、ジャギーが発生する。このため本発明では環境投影体から法線、カラーおよび反射率を読み出す場合、交差点を中心とするｎ×ｎの領域に含まれるこれらの値を用いてフィルタ７，８および９でフィルタリングを行い、この結果を反射ベクトルの交差する法線、カラーおよび反射率とする。このフィルタは３×３領域とする双線形フィルタや４×４領域とするＳｉｎｃフィルタを一般に用いることができる。フィルタ領域内では法線および反射率は同一の識別子のみが選択され、フィルタリングされる。図１では３次の反射までを示しているが、それ以上の次数の回路も同様な構成でパイプライン化して拡張できる。
以上のように本発明ではミラー反射物体を囲む環境投影体のメモリ回路に周辺映像を記憶するだけでなく、周辺映像をレンダリングして環境投影体に記憶する際、レンダリングする物体のカラー、法線、反射率およびその物体のもつ環境投影体の名前（識別子）を同時に記憶し、これらをそれぞれの反射ベクトルで読み出し、最初の視線の、反射点のカラーを決定する。この結果、高次の環境マッピングがポリゴンレンダリング法であるにもかかわらず実現できる。
【０５】
［発明の効果］
本発明によりポリゴンレンダリング法では困難とされた、多次反射を可能とすることでレイレーシング法に匹敵する品質の映像がリアルタイムに得られる。
【図面の簡単な説明】
【図１】本発明の多次反射環境マッピング回路
【符号の説明】
１−３  反射ベクトル計算回路
４−６  環境投影体
７−９  フィルタ
１０−１３  乗算器
１４−１５  加算器
【図１】
0003998493.tif 000002