(57)【特許請求の範囲】
【請求項１】
曲面上の各点の法線ベクター（以下主法線という）と各点への光源からの光入
射角とを、
視点座標軸に対する水平および垂直角で定義する第一の手段と、
曲面上に凹凸表現を与えるためのバンプマップ処理においてバンプ法線は３次元座標軸成分で定義する第二の手段と、
バンプ法線を主法線の傾きで回転する手段として、バンプ法線成分、主法線およびバンプ法線アップベクトルとをそれぞれ入力変数とする三角関数テーブルを構成する記憶素子、乗算器および加減算器からなる演算回路を設ける第三の手段と、
この演算回路において前記バンプ法線の回転後の３軸の成分を求めた後、この回転された３軸成分と光源法線とをシェーディング回路に与える第四の手段を併せ持つことによって、拡散および鏡面反射成分を含む面上の輝度を求めることを特徴とするバンプマップシェーディング回路。
【請求項２】
請求項１に記載のバンプマップシェーディング回路を用いたコンピュータグラフィックス映像の生成装置。
【発明の詳細な説明】
この発明は物体表面の凹凸感をコンピュータ・グラフィックスで表現するバンプマップ処理のハードウェア化に関し、物体表面の凹凸情報を法線ベクトル成分で定義するとともに、これを２次元配列のパターンとしてＲＡＭ（ＲａｎｄｏｍＡｃｃｅｓｓ  Ｍｅｍｏｒｙ）にあらかじめ登録し、テキスチャーマッピングアドレスを用いてこれを読みだして任意の傾きをもつ面にマッピングすることにより物体の表面荒さを表現することである。この発明に示すバンプマップのハードウェア化により、リアリティのある映像をリアルタイムで表示可能となる。
この技術はコンピュータ・グラフィックス装置（アミューズメント、シュミレータなど）に適用される。
【０００１】
［従来の技術］
コンピュータ・グラフィックスにおけるバンプマップ効果はバンプ（隆起）状態を法線ベクトルで定義し、これを物体表面にマッピングした後、これらの面に入射する光源からの光と、その反射角から拡散や鏡面反射光を計算することで得ることができる。テキスチャーパターンのカラー情報のマッピングはすでに一般にハードウェア化されているが、バンプマップのような微小面の不連続な傾きと、光源を設定した上での各点の反射計算を対象とする具体的なハードウェア化は現在ほとんど見られない。曲面およびバンプ法線の角度補間を用いた方式では特願平８−２２３０１１に示されるようにバンプマップ法線も面法線同様に水平および垂直の角度表現としている。これに対してベクトルと回転マトリックスを用いたアルゴリズムは回路の簡略化が角度補間に比べて可能であるが全てを法線ベクトル成分で処理すると正規化が必要となる。一方、特願平８−２２３０１１ではバンプ法線を曲面にマッピングする場合、水平垂直角が変化をしない曲面の法線を中心軸とする回転に関しては、一意にそのバンプ法線の回転角を決定することができなかった。
【０００２】
［課題を解決するための手段］
この発明は、各点でそれぞれ異なる法線ベクトル（主法線という）をもつ多角形面に対して、その面の傾きとは独立に２次元配列された不連続な法線ベクトル（バンプ法線という）を定義し、これを曲面にマッピング（回転処理）した後、シェーディングするための回路である。多角形面内の各点での主法線は座標値同様に多角形を内挿（塗りつぶし）処理する際、面内のすべての点について、非線形あるいは線形ＤＤＡ（Ｄｉｇｉｔａｌ  Ｄｉｆｆｅｒｅｎｃｉａｌ  Ａｎａｌｉｚｅｒ）によって求めるこができる。これは多角形頂点に法線を属性として与え、これをまずアウトライン、次に内部で水平補間するものである。一方、バンプ法線はテキスチャーマッピングのためのパターン定義と同様にテキスチャー座標形にて平面配列状に各点の傾きとして定義し、これをＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に記憶する。本発明では曲面法線を水平Ｎｈおよび垂直Ｎｖ方向成分で定義する。一方、バンプ法線パターン列はテキスチャーパターン座標系で配列されるが、主法線が水平と垂直の２角で与えられるため、主法線を軸とする回転においてはバンプ法線の実際の回転角を決定することができない。このため本発明では特願平７−１０２９０７あるいは特願平８−２２３０１１とは異なり、バンプ法線アップベクトル角Ｎｐをあらたに定義し、バンプパターンのマッピング方向を指定する。またバンプ法線は３軸ｘ，ｙ，ｚのベクトル成分としてＢｘ，Ｂｙ，Ｂｚで定義する。以上からバンプ法線アップベクトルによる回転後のバンプ法線は（１）式となる。
0003733502.tif 000002
またバンプマップされた曲面法線とは、バンプ法線ベクトルをＮｈおよびＮｖの回転角でそれぞれ回転することを意味する。即ち、回転法線はバンプベクトルと主法線回転マトリックスで表現される。法線のベクトル成分と水平、垂直角の関係は（２）式となる。ここでＢｈ，Ｂｖ，およびＬｈ，Ｌｖはバンプおよび光源の水平垂直角である。
0003733502.tif 000003
バンプ法線のＲＡＭには（２）式のＢｘ，Ｂｙ，Ｂｚが記憶される。これらを用いて回転後の曲面上の法線Ｎｘ′，Ｎｙ′，Ｎｚ′および拡散反射成分ｃｏｓθと，鏡面反射成分ｃｏｓαは（３）式で与えられる。
0003733502.tif 000004
ここで（Ｎｈ，Ｎｖ），（Ｂｘ′，Ｂｙ′，Ｂｚ′）および（Ｌｘ，Ｌｙ，Ｌｚ）はそれぞれバンプマップ前の主法線の水平角、垂直角、バンプ法線のｘ，ｙ，ｚ成分、および光源法線のｘ，ｙ，ｚ成分を表す。光源法線は（２）式で得られたものである。以上から（３）式により、拡散および鏡面反射成分が得られる。この結果バンプマップされたシェーディング輝度は拡散および鏡面反射成分にそれぞれ所定の係数を掛け、これらを加算したものとなる。ここで法線の変数の取りうる範囲はそれぞれ−π＜Ｌｈ≦π，−π１２＜Ｌｖ≦π１２，−π１２＜Ｎｈ，Ｎｖ≦π１２，−π１２＜Ｂｈ，Ｂｖ≦π１２，−π＜Ｎｐ≦πで与えられる。（１）式から明らかなようにバンプ法線は光源の法線同様にＢｈ，Ｂｖで与え、これを三角関数テーブルによってＢｘ，Ｂｙ，Ｂｚをはじめから求めることもできる。しかし、バンプ法線はあらかじめ定義され、ＲＡＭに記憶する値であるため、三角関数テーブルは、Ｂｘ，Ｂｙ，Ｂｚを記憶することによって不用となる。バンプ法線に関しては水平垂直角表現であっても、ベクトル表現であっても本発明の本質的な問題ではなく、主法線とバンプ法線との回転には、バンプ法線アップベクトルを含むベクトル成分と水平垂直成分とのマトリックスベクトル計算で処理されることが重要である。この意味で主法線とバンプ法線が数式上入れ替わることも可能である。
【０００３】
［実施例］図１はこの発明に関するバンプマップシェーディング回路である。図１では曲面法線ＮｈおよびＮｖ，バンプ法線アップベクトル角Ｎｐ，光源法線Ｌｈ，Ｌｖおよびバンプ法線Ｂｘ，Ｂｙ，Ｂｚが入力として加えられる。回路ではそれぞれＮｐ，ＮｖおよびＮｈを回転角とする３つの回転マトリックス乗算器１，２，３がバンプ法線Ｘｂ，ＹｂおよびＺｂをそれぞれの軸で回転しその結果をｃ０，ｃ１に出力する。図１の光源法線Ｌｈ，ＬｖはそれぞれＳｉｎ  Ｃｏｓの三角関数ＲＯＭ（Ｒｅａｄ  ＯｎｌｙＭｅｍｏｒｙ）テーブル４，５および６，７に与えられ、前記（２）式の関係から、乗算器８ａ、８ｂにおいてＬｘ，Ｌｙ，Ｌｚ成分を生成する。これらのデータは（３）式の拡散反射成分Ｃｏｓθと，鏡面反射成分ｃｏｓαを得るためにシェーディング演算部に与えられ、マトリックス回路２および３の出力信号と乗算回路８ｃ，８ｄ，８ｃにおいてそれぞれ乗算される。拡散反射成分ｃｏｓθは加算器９ａを経て９ｂに出力され、また、鏡面反射成分ｃｏｓαは乗算器１０を経て減算器１１の出力で得られる。拡散成分は乗算器８ｆにおいて拡散係数Ｉｄ、テキスチャーパターン色データＴ、および光源の色Ｌとそれぞれ乗算される一方、鏡面反射成分は鏡面指数ＲＡＭテーブル１２を経て、鏡面反射係数Ｉｒ、鏡面カラーＳおよび光源の色Ｌとそれぞれ乗算８ｇにおいて乗算され、拡散鏡面反射成分は加算器９ｃにて最終的な輝度Ｉｐを得る。図１においてＮｖの入力にある−１記号は符号反転を意味する。図２には図１に示した回転マトリックス乗算器１、２、３の内部回路を示す。回転マトリックス乗算器はＳｉｎ，Ｃｏｓ三角関数ＲＯＭテーブル２１、２２と４つの乗算器２３ａ，２３ｂ，２３ｃ，２３ｄおよび減算器２４と加算器２５で構成される。
【図面の簡単な説明】
【図１】本発明のバンプマップシェーディング回路
【図２】本発明のバンプマップシェーディング回路
【符号の説明】
１−３  回転マトリックス回路
４、６  Ｓｉｎ関数テーブルＲＯＭ回路
５、７  Ｃｏｓ関数テーブルＲＯＭ回路
８ａ−８ｇ乗算器
９ａ−９ｃ加算器
１０  乗算器
１１  減算器
１２  鏡面反射指数テーブル
２１  Ｓｉｎ  ＲＯＭテーブル
２２  Ｃｏｓ  ＲＯＭテーブル
２３ａ−２３ｄ  乗算器
２４  減算器
２５  加算器
【図１】
0003733502.tif 000005
【図２】
0003733502.tif 000006