(57)【特許請求の範囲】
【請求項１】
複数のポリゴンにより画像表示されるオブジェクトに光源による照明効果を与える画像処理方法において、
画像シーンの中で使用する複数の光源の情報をメモリに書き込むステップと、
ポリゴン毎に，影響を受ける光源の識別記号を前記ポリゴンに付与するステップと、
前記ポリゴンデータに対し，座標変換を行うステップと，
各ポリゴンについて，ポリゴンを構成するピクセルに前記付与された識別記号を書き込むステップと，
前記ピクセルのデータに基づき，テクスチャ生成を行うステップと、
前記識別記号に対応するポリゴン毎に影響を受ける光源の情報を前記メモリから読み出すステップと、
前記ピクセルに，前記メモリから読み出された光源の情報に基づきシェーディングを行うステップと、
前記ピクセルのデータをフレームバッファに書き込むステップとからなることを特徴とする画像処理方法。
【請求項２】
請求項１において、
複数のポリゴンにより構成されるオブジェクトに対し、前記座標変換を行うステップと，前記ポリゴンを構成するピクセルに前記付与された識別記号を書き込むステップを前記複数のポリゴンの数分繰り返すこと
を特徴とする画像処理方法。
【請求項３】
請求項２において，
更に，複数のピクセルにより構成されるポリゴンに対し，前記テクスチャを生成するステップからフレームバッファにピクセルデータを書き込むステップまでを前記複数のピクセルの数分数分繰り返すこと
を特徴とする画像処理方法。
【請求項４】
請求項１において，
前記識別記号は、
ポリゴン毎に影響を受ける複数の光源の組を特定するものであること
を特徴とする画像処理方法。
【請求項５】
請求項１おいて、
前記ポリゴン毎に影響を受ける光源は、前記ポリゴンと前記光源との距離に基づいて決定される
ことを特徴とする画像処理方法。
【請求項６】
複数のポリゴンにより画像表示されるオブジェクトに光源による照明効果を与える画像処理装置において、
複数の光源についての情報を保存する第１のメモリと、
前記ポリゴンに付与された識別記号により特定される，前記複数の光源の内の所定数の光源に関し，いずれの光源によって各ポリゴンが影響を受けるかの情報に基づきシェーディングを実行する第１の手段と，
各ポリゴンについて，ポリゴンを構成するピクセルに前記付与された識別記号を書き込み，これにより，各ポリゴンに対応して前記所定数の光源に関する情報を前記第１のメモリから読み出し可能とし，更に読み出した情報を前記第１の手段に供給する第２の手段を有する
ことを特徴とする画像処理装置。
【請求項７】
請求項６において，
前記所定数の光源は，前記ポリゴンと前記光源との距離に基づいて決定されることを特徴とする画像処理装置。
【請求項８】
請求項６において、
前記所定数の光源は、異なるポリゴンに対して少なくとも一部重複していることを特徴とする画像処理装置。
【請求項９】
請求項６乃至８のいずれかにおいて，
さらに，複数の光源の組についての複数の情報を保存する第２のメモリを有し，前記第１の手段が前記第１のメモリから前記識別記号に対応する複数の光源の組に関する情報を読み出し，前記第２のメモリに格納することを特徴とする画像処理装置。
【請求項１０】
請求項９において，
前記複数の光源の組は，前記ポリゴンと前記光源との距離に基づいて決定されることを特徴とする画像処理装置。
【請求項１１】
請求項９又は１０において，
前記複数の光源の組における光源は、異なるポリゴンに対して少なくとも一部重複していることを特徴とする画像処理装置。
【発明の詳細な説明】
発明の属する技術分野
本発明は、コンピュータグラフィック技術により画像表示されるオブジェクトにスポットライト効果を与えるためのスポットライト特性を形成する方法及び、この方法を用いた画像処理装置に関する。
従来の技術
近年、コンピュータグラフィック技術を用い、仮想３次元空間内に配置されたオブジェクトを複数のポリゴンで画像表示する画像処理装置が普及している。さらに、表示されるオブジェクトをより現実に近いものとすべく研究開発が進められている。
かかるコンピュータグラフィック技術において、表示されるオブジェクトの表面に光の照明効果を与えるシェーディング処理の技術がある。オブジェクトにスポットライトが当てられたような特殊効果を与えることは、かかるシェーディング処理に含まれる一つの方法である。
従来のスポットライト特性を与える技術として、シリコングラフィックス社により開発されたＯｐｅｎＧＬ（商標）の方法がある。図１に示すように、スポット光源Ｏから所定の点Ｐ方向への光のベクトルＬ及び、スポット光源Ｏからオブジェクトに向かう光源の軸ベクトルＤを考える時、ＯｐｅｎＧＬ（商標）の方法は、スポットライトの特性を“ｓｐｏｔｅｘｐ”及び“ｃｕｔｏｆｆ”というパラメータを指定して、次の式（１）を用いて算出するものである。この時のスポット効果特性は、図２に示すごとくである。
0004060375.tif 000002
図２示すように、“ｓｐｏｔｅｘｐ”を大きい値にすると、スポットを絞った形状のものになる。しかし、実際に使用する際は、スポットの特性はスポットの広がり角で考える場合が殆どである。したがって、指定したスポットの広がり角度で“ｓｐｏｔＥｆｆｅｃｔ”が一定値以下になる“ｓｐｏｔｅｘｐ”の値を逆算して求めることが必要であるが、かかる逆算は、簡単な計算処理ではない。
また、たとえ逆算により“ｓｐｏｔｅｘｐ”の値が求められたとしても、図２に示すように“ｓｐｏｔｅｘｐ”の値によりスポット特性曲線の形状が変わってしまう。このために、実際に描画像を見た時の観察者の感覚とは異なってしまう恐れがある。
さらに、“ｓｐｏｔｅｘｐ”の値によりスポット特性曲線の形状が一意に決まってしまうので、スポットの開きと強度分布を独立して指定することができない。その結果として、サーチライトのようにスポットの開きが狭く、且つ強度分布が略一定の特性を得ることができず、ぼんやりとしたスポット光になってしまう。
一方、“ｃｕｔｏｆｆ”パラメータは、ある角度を境にこれを超えると、“ｓｐｏｔＥｆｆｅｃｔ”の値を０とする。即ち、したがって、“ｓｐｏｔｅｘｐ”と異なり角度を指定するパラメータであるので制御がし易い。しかし、強度分布が不連続になるのでスポットのエッジが尖鋭で強度分布が一定のスポット特性しか得られないという欠点を有する。
即ち、“ｃｕｔｏｆｆ”は、これを超えるとスポット照明効果がゼロとなる光の広がりの限界値である。“ｃｕｔｏｆｆ”を設定すると、この限界領域が目立ってしまうという問題がある。
一方、マイクロソフト社により開発されたｓｏｆｔｉｍａｇｅをはじめとする方法として、図３に示すように、スポットの暈け初めの角度（coneangle）と暈け終わりの角度（spread angle）を指定する方法がある。
この方法では、次の式（２）によりスポット特性が算出される。この第２の方法の場合、特性は角度で指定するので制御がし易く、演算が簡単であるという特徴がある。
0004060375.tif 000003
しかし、図４に示されるごときスポット特性であって、特性値の変化が直線的であり、ＯｐｅｎＧＬ（商標）のような正規曲線に似たスポット特性を得ることができない。
したがって、図３に示すように暈け初めの角度（cone-angle）の位置で不自然なエッジ強調が生じるという問題がある。ここで、エッジ強調とは、境界領域に隣接する領域で明るさの変化が連続的でないと、境界の明るさが強調されてしまうという視覚効果である。
ここで、従来の画像処理装置の一例のブロック図を図５に示す。図５おいて、ＣＰＵ１は、ポリゴンを使用した画像を処理するためのプログラムの実行を制御するものである。ＣＰＵ１は、ポリゴンバッファ１１からポリゴンデータを読み出し、座標変換部２に出力する。
座標変換部２は、ポリゴンの３次元データを、ＣＲＴディスプレイ装置７上に表示するために２次元座標に変換する。２次元座標に座標変換されたポリゴンデータは、塗りつぶし回路３０、テクスチャ生成回路３１に送られる。
塗りつぶし回路３０は、ポリゴンの各頂点で囲まれた範囲にある画素（ピクセル）の情報を計算する。上記塗りつぶしのための計算は、ポリゴンの各頂点間にあるピクセルの情報を対応の両頂点の情報を基に、例えば線形補間を行うものである。テクスチャ生成回路３１は、ピクセルに対応したテクスチャを内部にあるテクスチャバッファから読み出し、ピクセル毎にカラーを計算して求める回路である。テクスチャ生成回路３１の出力は、ピクセルデータとして、シェーディング回路３２に与えられる。
シェーディング回路３２は、ピクセルデータに基づき各ピクセルに与えられる、例えば上記したスポットライトによる照明効果を求める回路であり、シェーディング回路３２の出力は、色変調回路１２及び混合回路３３に導かれる。色変調回路１２は、シェーディング回路３２の求めた結果等に基づきピクセル毎にカラー変調する回路であり、混合回路３３は、ポリゴンのピクセルのカラー情報を先に描かれたカラー情報と混合し、１画面のデータとしてフレームバッファ５に書き込む。このフレームバッファ５の情報がＣＲＴディスプレイ装置７に表示される。
次に、上記のような構成の画像処理装置のシェーディング回路３２おいて従来実施された光源特性形成方法を説明する。図５に示す従来例では、シェーディング回路３２中に例えば、４個の光源レジスタ３２９とこれに対応する図示しない４個の光源演算器があり、４個の光源の情報を一度に処理できる場合である。
例えば、１画像シーンの中で光源ａ，ｂ，ｃ，ｄを使用する場合は、予め光源ａ，ｂ，ｃ，ｄの情報を光源レジスタＡ，Ｂ，Ｃ，Ｄに記憶させておく。シェーディング回路３２、光源レジスタ３２９に記憶された光源ａ，ｂ，ｃ，ｄの情報に基づき、各ピクセルが光源ａ，ｂ，ｃ，ｄによりどのような影響を受けるかを計算する。
光源情報には、例えば、図１若しくは図３により説明した様に、スポット軸の向きベクトル（Dx,Dy,Dz）、カットオフ角（Cutoff）、ぼけ幅の正規化係数（Penumbra-scale）等があり、シェーディング回路６はそれらの光源情報によりシェーディング計算を行い、その結果をたし合わせて各ピクセルに対する４個の光源からの影響を計算していた。
このように、従来の技術では、１画像シーンで使用できる光源数に対応する個数分だけ光源レジスタ３２９及び光源演算器を持っており、一般に１画像シーン中の光源の個数は、光源レジスタ３２９及び光源演算器の個数と同じであった。したがって、１画像シーンの中に例えば１００個の光源を使用する場合は、光源レジスタ３２９及び光源演算器をそれぞれ１００個持ち、１００個の光源からのシェーディング計算を行い、その結果をたし合わせて各ピクセルの１００個の光源からの影響を計算することになるが、ハードウエアの規模として現実的ではなかった。
これに対し、ステートマシン型のシステムであれば逐次光源パラメータを書き換えることによって、見かけ上の光源数を増やすことは可能であるが、管理が大変である。また、Ｚ−ｓｏｒｔなどを含むような、ポリゴンの描画順序が保存されないシステムでは、見かけ上の光源数を増やすことはできない。
発明の概要
上記のように従来提案されているスポットライトの効果を与えるいずれの方法にも問題がある。したがって、本発明の目的は、かかる問題を解決するスポットライト特性形成方法及びこれを用いた画像処理装置を提供することにある。
さらに、本発明の目的は、従来の方法では複雑な演算を演算器による計算処理により実現していたのをテーブルにより実現するスポットライト特性形成方法及びこれを用いた画像処理装置を提供することにある。
さらに、上記したように従来の画像処理装置においては、１画像シーンの中で多数の光源を使用する場合は、各ピクセルのシェーディング計算をその光源数分だけ行い、その結果をたし合わせなければならなかった。また、１画像シーン中で使用する光源数分の光源レジスタ及び光源演算器を持つのは、ハードウエア量が膨大なものになる。
しかし、実際にゲームストーリーの１つのシーンの中で、１つのポリゴンが光源の影響を強く受けるのは、そのポリゴンに近い位置にある光源や、光の強い光源に限られる。例えば、画像シーンの中に１００個の光源があったとしても、１つのポリゴンが強く影響を受けるのは、そのポリゴンの近くにある４個とか５個の光源に限られる。この場合、画像シーン中にあるすべての光源の影響を計算する必要はなく、強く影響を受ける光源に対してだけシェーディング計算を行えばよい場合も多い。
したがって、本発明の目的は、シェーディング回路で処理できる光源数をそのままで、１画像シーン中に使用できる光源数を増やすことを可能とする画像処理方法及び、画像処理装置を提供することにある。
上記本発明の目的を達成するスポットライト特性形成方法及びこの方法を適用する画像処理装置は、基本的構成として、所定のスポットライト特性曲線に対応する複数の特性値をテーブルに格納し、このテーブルから読み出される特性値若しくは、テーブルから読み出される互いに隣接する特性値間を補間して求められる補間値により該スポットライト特性曲線を形成することを特徴とする。
本発明は、予めスポットライト特性曲線に対応するに複数の特性値を予めテーブルに格納している。さらに、テーブルから読み出される特性値若しくは、テーブルから読み出される互いに隣接する特性値間を補間して求められるを補間値を用いる構成である。したがって、複数の特性値をスポットライト特性曲線に対応させることができるので、任意のスポットライト特性を形成することができる。
さらに、予めテーブルに格納されている特性値を使用するので、複雑な計算を必要としない。
具体的構成として、スポットライトの光軸ベクトルと光源から各ピクセルに向かう若しくは各ピクセルから光源に向かうライトベクトルとの内積に応じたテーブルのアドレスから特性値を読み出す様にしている。
さらに、スポットライトの光軸ベクトルとこのスポットライトの光軸ベクトルに垂直な少なくとも二つの軸を定義し、スポットライトの光軸ベクトルとこれに垂直な少なくとも二つの軸によってそれぞれ定義される少なくとも二つの平面と、光源から各ピクセルに向かう若しくは各ピクセルから光源に向かうライトベクトルの少なくとも二つの平面に対する正射影とが成す角度に対応して、テーブルから特性値を読み出し、この読み出された特性値若しくはこのテーブルから読み出された互いに隣接する特性値間の補間値によりスポットライト特性曲線を形成する構成とすることにより、非円形のスポット効果を与えることも容易に可能である。
さらに、本発明によれば、複数のポリゴンにより画像表示されるオブジェクトに光源による照明効果を与える画像処理装置において、複数の光源の情報を保存するメモリと、一のポリゴンに対し所定数の光源の情報によりシェーディングを行う手段と、所定数の光源の情報をポリゴンに対応してメモリから読み出し、シェーディングを行う手段に供給する手段とを有することによって達成することができる。
したがって、各ポリゴンが光源からどのような影響を受けるかを計算する場合に、画像シーンにあるすべての光源からの影響を計算する必要はなく、各ポリゴンに付けられた光源識別記号で特定される所定数の光源の情報だけを読み出し、その光源に対してだけシェーディング処理をすれば、見かけ上同時に使用できる光源数以上の光源を画像シーンの中に使うことができる。
また、上記の目的は、複数のポリゴンにより画像表示されるオブジェクトに光源による照明効果を与える画像処理装置において、複数の光源の情報の組を複数保存するメモリと、一のポリゴンに対し複数の光源の情報の組によりシェーディングを行う手段と、複数の光源の情報の組をポリゴンに対応してメモリから読み出し、シェーディングを行う手段に供給する手段とを有することによっても達成することができる。
したがって、画像処理装置が同時に使用できる光源数が複数個の場合、その複数個の光源情報を１グループとしてバッファに複数保存し、各ポリゴンに付された光源識別記号はバッファからグループとして光源情報を読み出すことができる。このため、ポリゴン毎に光源情報を選択する処理が省略でき、処理速度の向上を図ることができる。
また、上記の目的は、複数のポリゴンにより画像表示されるオブジェクトに光源による照明効果を与える画像処理方法において、画像シーンの中で使用する光源の情報をメモリに書き込む第１のステップと、各ポリゴン毎に影響を受ける光源の識別記号を付ける第２のステップと、ポリゴンのデータに対し座標変換を行う第３のステップと、ポリゴンのピクセル毎に識別記号を書き込む第４のステップと、ピクセルのデータをもとにテクスチャ生成を行う第５のステップと、識別記号に対応する光源の情報をメモリから読み出す第６のステップと、ピクセルにシェーディングを行う第７のステップと、ピクセルのデータをフレームバッファに書き込む第８のステップとからなることを特徴とする画像処理方法によっても達成することができる。
したがって、ポリゴン内の各ピクセルは光源識別記号で特定される光源に対してだけその影響を計算すればよいため、シェーディング処理速度の向上を図ることができる。
また、本発明によれば、光源の組を構成する光源は、各ポリゴンに対して少なくとも一部重複して使用することができる。したがって、光源を一部重複して使用することにより、同時に使用できる光源数をそのままで、その光源数以上の光源をシーン中に使用することができる。
本発明の更なる目的及び、特徴は以下の図面を参照しての実施の形態の説明から明らかとなる。
【図面の簡単な説明】
図１は、ｏｐｅｎＧＬの方法を説明する図である。
図２は、ｏｐｅｎＧＬの方法によるスポット特性を示す図である。
図３は、スポットの暈け初めの角度（cone angle）と暈け終わりの角度（spread angle）を指定する方法を説明する図である。
図４は、図３の方法によるスポット特性を示す図である。
図５は、従来の画像処理装置の構成例ブロック図である。
図６は、本発明のスポットライト特性形成方法が適用される画像処理装置の構成例ブロック図である。
図７は、本発明を適用するシェーディング回路の実施例構成のブロック図である。
図８は、シェーディング回路において適用されるスポット特性生成回路の本発明に従う構成例ブロック図である。
図９は、図８の回路の特徴を明確にするために比較される従来構成例である。
図１０は、アドレスジェネレータの構成例を示すブロック図である。
図１１は、軸ベクトルを有するスポット光源による照明効果を説明する図である。
図１２は、軸ベクトルを有するスポット光源による一例として示すスポット効果特性を説明するための図である。
図１３は、本発明の別の実施の形態を説明する図である。
図１４は、本発明の画像処理装置の第１の構成例ブロック図である。
図１５は、本発明の画像処理装置の第２の構成例ブロック図である。
図１６は、本発明の画像処理装置の第３の構成例ブロック図である。
図１７は、本図１６の構成例におけるの光源バッファの内容を示す図である。
図１８は、本発明を適用するシェーディング回路の実施例構成のブロック図である。
図１９は、スポット特性生成回路と光源レジスタの本発明に従う構成例ブロック図である。
図２０は、軸ベクトルを有するスポット光源による照明効果の説明図である。
図２０は、本発明の実施例の１画像シーンの説明図である。
図２１は、本実施の形態例の処理フローチャートである。
発明の実施の形態
以下、本発明の実施の形態を図面に従い説明する。尚、図において、同一又は類似のものには同一の参照番号又は、参照記号を付して説明する。
図６は、本発明のスポットライト特性形成方法が適用される画像処理装置の構成例ブロック図である。
図６において、ＣＰＵ１は、ポリゴンを使用した画像を処理するためのプログラムの実行を制御するものである。ＣＰＵ１にはプログラムの進行に伴いディスプレー装置１２上に表示するポリゴンの頂点データやレジスタセットファンクションをポリゴンバッファメモリ１１に一次的に蓄える。
このポリゴンバッファメモリ１１から読み出されるデータが、ジオメトリ処理部２に入力される。ジオメトリ処理部２は入力されたデータを、ＣＰＵ１のプログラムの実行に従い３次元空間内に配置されるポリゴンをディスプレー装置７上に表示するために２次元座標系に変換する。
さらに、表示する各ポリゴンに対し、着色、シェーディング、テクスチャの貼り付けを行うレンダリング処理部３が接続されている。レンダリング処理部３の出力側には、フレームバッファ５が接続され、表示される一画面分のデータが格納される。
フレームバッファ５にＤ／Ａ変換回路６を通して、ＣＲＴ等のディスプレー装置７が接続され、フレームバッファ５の内容が順次表示される。
ここで、上記ジオメトリ処理部２は、ＣＰＵ１によるプログラムの進行及び処理速度に対応して、ポリゴンバッファメモリ１１からポリゴンの頂点データ（頂点座標、頂点カラー、テクスチャマップ座標、頂点透明度及び頂点の法線ベクトル等を有する）やレジスタセットファンクションを読み出す。
ジオメトリ処理部２は、頂点座標データに基づき３次元空間にポリゴンを配置し、３次元空間のどの領域まで表示対象とするかのビューポートの決定等を行う。また、ビューポートよりはみ出すポリゴンの頂点除去即ち、クリッピングを行う。さらに、ビューポートに配置されたポリゴンを所定の視点を基準に２次平面に投影して３次元から２次元への座標変換を行う。
２次元座標に座標変換されたポリゴンデータは、レンダリング処理部３に送られる。レンダリング処理部３は、塗り潰し回路３０、テクスチャ貼り付け回路３１、シェーディング回路３２、ブレンディング回路３３を有している。
塗り潰し回路３０は、ポリゴンの各頂点で囲まれた範囲にある画素（ピクセル）の情報を計算し、他のレンダリング処理部３内の各回路に渡す機能を有する。上記塗り潰しのための計算は、ポリゴンの各頂点間にあるピクセルの情報を対応の両頂点の情報を基に、例えば線形補間を行うものである。
テクスチャや貼り付け回路３１は、ピクセルに対応したテクスチャをテクスチャバッファ３０から読み出し、ピクセル毎にカラーを計算して求める回路である。シェーディング回路３２は、ポリゴンの頂点データに基づきポリゴンに照明効果を与える回路であり、かかる回路において、本発明に従うスポットライト特性形成の方法が実現される。したがって、シェーディング回路３２の詳細および機能については後に説明する。
シェーディング回路３２の出力は、ブレンディング回路３３に導かれる。ブレンディング回路３３は、必要に応じ、フレームバッファ５から読み込んだ、先に描かれているポリゴンのピクセルのカラー情報と、新しく処理するポリゴンのピクセルのカラー情報とを混合し、フレームバッファ５に書き込む。このフレームバッファ５の情報が１画面分ずつディスプレー装置７に、Ｄ／Ａ変換回路６を通して送られ表示される。
ここで、図６において図示省略されているが、レンダリング処理部３内には更に、デプステスト機能部が備えられる。このデプステスト機能部は、複数のポリゴンの前後関係を比較して、最も手前に配置されたポリゴンのデータを図示しないデプスバッファに記憶させる機能である。
即ち、デプスバッファには、先に描いた図形（ポリゴン）のピクセルのＺ値が記憶されている。そして、画面上の先に描かれたポリゴンと重なる位置に、新しくポリゴンを表示する場合、新しいポリゴンを構成する各ピクセルのＺ値と、デプスバッファから読み出される先に描かれたポリゴンのピクセルのＺ値とを比較する。比較の結果、新しいポリゴンのピクセルが手前の場合は、デプスバッファに当該ピクセルのＺ値が書き込まれる。
次に、上記のような構成の画像処理装置のシェーディング部３２において実施される本発明を適用するスポットライト特性形成方法及び、シェーディング回路の実施例構成を説明する。
図７は、本発明を適用するシェーディング回路３２の実施例構成のブロック図である。
座標逆算回路３２０は、入力される２次元座標ポリゴンデータを３次元座標ポリゴンデータに変換する回路である。座標逆算回路３２０により３次元座標に変換された各ピクセルのデータは分岐され、一方は、ライトベクトル回路３２１、他方は、反射ベクトル回路３２７に入力される。
ライトベクトル回路３２１は、仮想３次元空間中のスポット光源の位置とピクセルの３次元座標に基づき、スポット光源から当該ピクセルに向かうライトベクトルを求める。さらに、光源と当該ピクセル間の距離データを求める。
求められたライトベクトルは、スポット特性生成回路３２２に入力される。さらに、求められた光源と当該ピクセル間の距離データは、減衰処理回路３２３に入力される。
スポット特性生成回路３２２の本発明に従う構成例について後に説明するが、この回路において、図１１に示す様に、軸ベクトル７０を有するスポット光源Ｏによる図１２に一例として示すスポット効果特性が求められる。
スポット特性生成回路３２２において、各ピクセルに対する入力されるライトベクトルとスポット光源の軸ベクトル７０との内積６０即ち、余弦値を求め、スポット光源によるピクセル方向の光の強度として出力する。
一方、減衰処理回路３２３は、スポット光源Ｏと該当ピクセルの距離による、光の減衰量を計算する。次いで、スポット特性生成回路３２２からのスポット光源によるピクセル方向の光の強度及び、減衰処理回路３２３からのスポット光源から当該ピクセルまでの距離による光の減衰量に基づき、光強度合成回路３２４から該当ピクセルに対する光強度が求められる。即ち、各ピクセルに対する光強度は、スポット光源の軸ベクトル７０と、該当ピクセルのライトベクトルとのなす角度による減衰量及び、スポット光源から該当ピクセル位置までの距離による減衰量により求められる。
光強度合成回路３２４により求められた各ピクセルに対する光強度に基づき、次いで、各ピクセルに対してシェーディング効果が与えられる。シェーディング効果として、拡散反射効果、鏡面反射効果がある。
拡散反射効果は、いわゆる乱反射であり、物体表面の中に入り込み、吸収されそして再び放射される光である。この拡散反射光は、どの方向にも均等に放射する。
そのため観察者の視点とは関係がない。重要なのは光源からの該当ピクセルに向かう方向と、該当ピクセルの表面の法線方向とのなす角度であり、この角度がπ／２より大きくなると、光源は物体の陰になり、拡散光反射は、生じない。
したがって、光強度合成回路３２４により求められた各ピクセルに対する光強度を入力し、これに拡散回路３２５において、一定の拡散反射係数を掛けることにより拡散反射光の大きさが求められる。
一方、鏡面反射効果は、完全反射面において、入射光に対し反射光の角度が法線に対し、同じになるような効果を与えるものである。したがって、反射光の角度に一致する角度にいる観察者にのみ鏡面反射効果を観察することができる。このために、反射光の大きさを求めるには、観察者の視線ベクトルが必要である。
鏡面反射回路３２６は、光強度合成回路３２４により求められた各ピクセルに対する光強度を入力し、該当ピクセルにおける入射角と、反射ベクトル回路３２７から得られる視線ベクトルから反射量を求め、出力する。
さらに、上記拡散回路３２５からの拡散光量と、鏡面反射回路３２６からの鏡面反射光量が、変調回路３２８で合成されて出力される。
上記のごとく構成されるシェーディング回路において適用されるスポット特性生成回路３２２の本発明に従う構成例ブロック図が図８に示される。図９は、図８の回路の特徴を明確にするために比較される従来構成例である。
図９における構成では、演算器４０により、ピクセルデータと、係数データから直接演算によりスポット特性を求めるものである。かかる場合は、先に図１乃至図４について説明したように、計算が複雑であるとともに、任意のスポット特性を形成することが困難である。
これに対し、本発明では、以下に説明するようにテーブルを用いる方法であり、複雑な計算を必要とせず、テーブルに格納するデータにより任意のスポット特性の形成が可能である。
なお、スポット特性生成回路３２２により生成するスポット特性は、一例として図１２に示すごとく、暈け領域（penumbra scale）の範囲で特性点ａ〜ｐまでの特性点の光強度特性値を結んで特性曲線が形成される。ここで暈け領域（penumbra scale）は、図１１に示す角度６２の範囲でスポット特性の減衰の始まる点からスポット照明効果がゼロとなる点（カットオフ）までの領域である。
図１２において、スポット光源Ｏの光軸ベクトル方向の光強度を１として、特性点ａ〜ｐの各点に対応するピクセルに向かうベクトルＬと光軸ベクトルＤとがなす角を横軸に、スポット特性値を縦軸にとり、且つ各点の１の光強度に対する正規化した値をプロットして示される。
本発明に従うスポット特性生成回路３２２は、図８に示されるように、上記スポット特性の特性点ａ〜ｐの光強度値を格納するテーブル８と、テーブル８から各特性点ａ〜ｐの光強度値を読み出すアドレスを発生するアドレスジェネレータ９及び、特性点間を一次補間する補間器１０を有して構成される。
さらに、図８のスポット特性生成回路３２２のスポット特性テーブル８は、実施例として第１のバンク８０、第２のバンク８１を有して構成される。アドレスジェネレータ９の構成例が図１０に示される。
アドレスジェネレータ９には、ピクセル情報Ｌ（光源ベクトルLx,Ly,Lz）と、係数データ（スポット軸の向きベクトルDx,Dy,Dz、カットオフ角Cutoff、暈け幅の正規化係数Penumbra-scale及び、特性テーブル８を選択するインデックスtable-id）が入力される。
図１０において、内積計算部９０により光源ベクトルLx,Ly,Lzと、スポット軸の向きベクトルDx,Dy,Dzの内積６０（図１１参照）を求め、これら二つのベクトルのなす余弦値を求める。さらに、減算器９１でカットオフ部６１（図１１参照）を超える部分を削除する。
次いで、カットオフ部６１を超える部分を削除した減算器９１の出力に対し、乗算器９２により暈け幅の正規化係数Penumbra-scale例えば、係数１０を乗算し、半影部（暈け部）６２（図１１参照）に適用する部分を０．０〜１．０に正規化する。したがって、クリップ演算器９３により、入力が１．０以上の時は１．０に、０．０以下のときは、０．０にクリップする。
クリップ演算器９３の出力が特性テーブル８のアクセス及び、特性点間の補間に使用される。今、クリップ演算器９３の出力が１６ビットであると考えると、その内、特性テーブル８のアクセスに４ビット、バンク切り替えフラグＳＦに１ビット、そして特性点間の補間に１１ビットが使用される。
ここで、図８の実施例において、特性テーブル８は、第１、第２のメモリバンク８０，８１で構成されている。したがって、図１２の特性図において、特性点ａ〜ｐの隣接する特性値データは第１のメモリバンク８０と第２のメモリバンク８１にそれぞれ交互に格納されている。この様に構成することにより、隣接する特性値データを同時に読み出すことができるので、メモリへのアクセス時間を短縮することが可能である。
さらに、バンク切り替えフラグＳＦが０である時、第１のメモリバンク８０に対する読み出しアドレス（odd address）ＯＡと、第２のメモリバンク８１の読み出しアドレス（even address）ＥＡは、同一である。一方、バンク切り替えフラグＳＦが１である時、インクリメント回路９４により第２のメモリバンク８１に対する読み出しアドレス（even address）ＥＡを、第１のメモリバンク８０の読み出しアドレス（odd address）ＯＡに対し、１だけ歩進する。
具体例で説明すると、バンク読み出し切り替えフラグＳＦが０であり、アドレスが００００である時、第１のメモリバンク８０に対する読み出しアドレスＥＡは、第２のメモリバンク８１に対する読み出しアドレスＯＡと同一であり、第１のメモリバンク８０から特性点ａのデータが、第２のメモリバンク８１から特性点ｂのデータが読み出される。
かかる場合、図８の補間器１０には、補間パラメータｔと論理０のバンク読み出し切り替えフラグＳＦが入力される。さらに、特性テーブル８０，８１から読み出される特性点ａ，ｂのデータが入力される。
したがって、補間器１０は、特性点ａ，ｂ間の値を次の式（３）の関係から一次補間により求める。
Ｄta-b＝ｔＡ＋（１−ｔ）Ｂ・・・（３）
但し、Ｄta-bは特性点ａ−ｂ間の補間パラメータｔ点のスポット効果値、Ａは特性点ａのスポット効果値及び、Ｂは特性点ｂのスポット効果値である。
さらに、上記具体例で、バンク読み出し切り替えフラグＳＦの論理が１になると、インクリメント回路９４により、第１の特性テーブル８０の読み出しアドレスが１歩進し、アドレス０００１となる。このアドレスには、特性点ｃのデータが記憶されている。
かかる場合、補間器１０では、バンク読み出し切り替えフラグＳＦの論理が１であるので、特性テーブル８１から読み出される特性点ｂを優先して、特性点ｂ−ｃ間の補間データＤtb-cを次の式（４）に従い求める。
Ｄtb-c＝ｔＢ＋（１−ｔ）Ｃ・・・（４）
上記のようにして、本発明により、簡単な演算によりスポット特性を形成することが可能である。
さらに、、特性テーブル８に格納する特性点データを任意に構成することにより任意のスポット特性を形成することができる。即ち、特性点データをべき乗に構成することによりＯｐｅｎＧＬ（商標）のスポット特性を、更に線形に構成することによりｓｏｆｔｉｍａｇｅのスポット特性と同様になる。
図１３、更に本発明の別の実施の形態を説明する図である。上記の実施の形態では、スポットの特性をある軸との角度で求めていたので必ず円形のスポットになる。即ち、図１２の例では同心円状のスポットライト特性に基づくスポットライト効果しか表現し得ない。換言すると、１次元的なスポットライト特性しか生成できない。
そこで図１３の実施の形態では、更に軸を増やし、特性テーブル８に２次元で特性点データを持つ様にしている。これにより、スポット特性は、２次元的な特性を持ったスポットになる。
図１３に示す具体例では、スポットライトの軸Ｏに垂直な軸Ａ，Ｂを定義し、スポットライトの軸と軸Ａ，Ｂによって定義されるＯＡ平面及びＯＢ平面を考える。そして、ライトベクトルＯＢのＯＡ平面及びＯＢ平面に対する正射影Ｃ，Ｄが軸Ａ，Ｂとなす角ψ、θを用いて２次元のテーブルを参照する。これにより２次元的な特性のスポット特性を得ることができる。さらに、スポットの軸Ｏに垂直な複数の軸を定義することも同様に可能である。
次に、上記に説明した本発明のスポット光源特性形成方法を適用する画像処理装置の実施の形態について、説明する。本発明の実施例では、光源のグループを複数持ち、ポリゴン毎にどの光源グループを使用するかを示す光源識別記号（以下、Ｌｉｇｈｔ−ＩＤと呼ぶ。）を持つ。シェーディング回路は、Ｌｉｇｈｔ−ＩＤをもとに有効な光源情報を読み出し、それにしたがって、シェーディングを行う。図１４は、本発明の光源特性形成方法が適用される画像処理装置の第１の構成例ブロック図である。
ＣＰＵ１は、ポリゴンを使用した画像を処理するためのプログラムの実行を制御するものである。ＣＰＵ１はプログラムの進行に伴いＣＲＴディスプレイ装置７に表示するポリゴンの頂点データやレジスタセットファンクションをポリゴンバッファ１１に一時的に蓄える。さらに、ＣＰＵ１は、各ポリゴンがどの光源の影響を受けるかという情報として、各ポリゴン毎にＬｉｇｈｔ−ＩＤを付加する。
ポリゴンバッファ１１から読み出されるデータが、座標変換部２に入力される。座標変換部２は、入力されたデータを、ＣＰＵ１のプログラムの実行に従い３次元空間内に配置されるポリゴンをＣＲＴディスプレイ装置７上に表示するために２次元座標に変換する。２次元座標に座標変換されたポリゴンデータは、塗りつぶし回路３０、テクスチャ生成回路３１に送られる。
塗りつぶし回路３０は、ポリゴンの各頂点で囲まれた範囲にある画素（ピクセル）の情報を計算する。上記塗りつぶしのための計算は、ポリゴンの各頂点間にあるピクセルの情報を対応の両頂点の情報を基に、例えば線形補間を行うものである。さらに、塗りつぶし回路３０は、ポリゴン毎に付加されたＬｉｇｈｔ−ＩＤをポリゴンを構成する各ピクセルに書き込み、この書き込みをポリゴン数分繰り返す。
テクスチャ生成回路３１は、ピクセルに対応したテクスチャを図示しないテクスチャバッファから読み出し、ピクセル毎にカラーを計算して求める回路である。テクスチャ生成回路３１の出力は、ピクセルデータとして、シェーディング回路３２に与えられるとともに、各ポリゴンを構成するピクセルには、塗りつぶし回路３０により対応するポリゴンのＬｉｇｈｔ−ＩＤが付加されており、シェーディング回路３２はこのＬｉｇｈｔ−ＩＤをもとに各ポリゴンを構成するピクセルの各々が影響を受ける光源についてシェーディング処理を行う。
図１４に示す構成例では、シェーディング回路３２内の光源レジスタ３２９はＡ，Ｂ，Ｃ，Ｄの４個あり、１画像シーンの中でシェーディング回路３２が処理できる光源数が４個の場合である。この４個の光源レジスタ３２９の中に、各ポリゴンが影響を受ける光源の情報が格納されている。
一方、光源バッファ１７には、すべての光源の情報が記憶されており、この光源情報がＬｉｇｈｔ−ＩＤにより４個指定され、シェーディング回路３２内の光源レジスタ３２９に格納される。この場合は画像シーンの中の各ピクセルにはそれぞれＬｉｇｈｔ−ＩＤが付加されているので、各ピクセルのシェーディング処理はそのＬｉｇｈｔ−ＩＤで指定された４個の光源に対してだけ行えばよい。そして、シェーディング回路３２は、光源レジスタ３２９の光源情報に基づき、ポリゴンの頂点データに基づきピクセルの照明効果を計算する。なお、シェーディング回路３２の詳細および機能については後に説明する。
シェーディング回路３２の出力は、色変調回路１２及び混合回路３３に導かれる。色変調回路１２は、シェーディング回路３２の出力に基づきピクセル毎にカラー変調する回路である。
混合回路３３は、フレームバファ５から読み込んだ、先に描かれているポリゴンのピクセルのカラー情報と、新しく処理するポリゴンのピクセルのカラー情報とを混合し、１画面のデータとしてフレームバファ５に書き込む。このフレームバッファ５の情報がＣＲＴディスプレイ装置７に表示される。
また、図１５は本発明を適用する画像処理装置の第２の構成例ブロック図を示す。図１５の光源バッファ１７には、１画像シーンで処理できる光源数、即ち、光源レジスタ３２９の数を１グループとした光源情報が複数記憶されている。この場合は、各ピクセルには１個のＬｉｇｈｔ−ＩＤが付加されており、シェーディング回路３２はこのＬｉｇｈｔ−ＩＤをもとに光源バッファ１７から、実施例として４個の光源を１グループとした光源情報を読み出すことができる。
また、図１６は本発明を適用する画像処理装置の第３の構成例ブロック図である。この構成例では、使用するすべての光源情報は光源メモリ８に記憶されており、光源バッファ１７には各ピクセルが影響を受ける光源の組の情報が記憶されている。各ピクセルには１個のＬｉｇｈｔ−ＩＤが付加されており、シェーディング回路３２はそのＬｉｇｈｔ−ＩＤをもとに光源バッファ１７から各ピクセルが影響を受ける光源の組を認識し、光源メモリ１８から光源情報を読み出すことができる。
図１７は、図１６に示す第３の画像処理装置構成例の光源バッファ１７の内容の一例である。この場合は、各ピクセルのＬｉｇｈｔ−ＩＤは６ビットのアドレスデータとして与えられ、光源バッファ１７のそのアドレスには、各ピクセルが影響を受ける光源として光源レジスタの数だけの光源数、例えば４個を１グループとした光源グループの情報が記憶されている。
なお、Ｌｉｇｈｔ−ＩＤはゲームプログラムに従い、あるポリゴンはどの４個の光源の影響を受けるかという情報としてＣＰＵ１により与えられ、通常は、そのポリゴンに近い位置にある光源や、強度の強い光源が指定される。
このため、図１７に示すように、あるポリゴンにＬｉｇｈｔ−ＩＤ（０００００１）が付属している場合、そのポリゴン及びそのポリゴンに含まれる各ピクセルは光源ｃ，ｄ，ｅ，ｆの影響を受けるものとしてシェーディング処理される。
したがって、６ビットのアドレスであれば、６４の光源グループの組合わせが可能であり、ハードウエア的に処理できる光源の個数が４個であっても、見かけ上の光源の個数を増やすことができる。
次に、上記のような構成の画像処理装置のシェーディング回路３２において実施される光源特性形成方法及び、シェーディング回路３２の実施例を説明する。図１８は、本発明を適用するシェーディング回路３２の実施例のブロック図である。
シェーディング回路３２は、各ポリゴンに含まれるピクセルが光源からどのような影響を受けるかを計算する回路で、本実施の形態例では、ベクトル演算器３３１と光源演算器３３０と光源レジスタ３２９と累算器３２８の４つのブロックからなる。本実施の形態例では４つの光源からの影響を一度に処理できるように、光源の情報を格納する光源レジスタ３２９と、ピクセルに対しシェーディングの計算をする光源演算器３３０はそれぞれ４組設けられている。４つの光源のデータは、先に図１４乃至図１７において説明したように、光源レジスタ３２９Ａ，Ｂ，Ｃ，Ｄにそれぞれ格納される。
したがって、各ピクセルの４つの光源からの影響が、それぞれ光源対応に光源演算器３３０Ａ，Ｂ，Ｃ，Ｄで計算され、累算器３２８で各ピクセルの４つの光源からの影響が合成される。尚、光源レジスタ３２９に格納された光源データは、光源演算器３３０の中でスポット特性を生成したり、光源の減衰を処理したりするときに使用される。
次ぎにシェーディング回路３２に含まれる各回路の動作を説明する。ベクトル演算器３３１は、座標逆算器３２０と反射ベクトル回路３２７から構成される。座標逆算器３２０は、入力される２次元座標ピクセルデータを３次元座標ピクセルデータに変換する回路である。座標逆算回路３２０の出力は、本実施の形態例では４個の光源演算器３３０（Ａ，Ｂ，Ｃ，Ｄ）に入力され、４個の光源からの影響を一度に計算する。座標逆算回路３２０の他の出力は、反射ベクトル回路３２７に入力される。座標逆算回路３２０により３次元座標に変換され、各光源演算器３３０の例えばＡに入力される各ピクセルのデータは、ライトベクトル回路３２１に入力される。
ライトベクトル回路３２１は、仮想３次元空間中の光源の位置とピクセルの３次元座標に基づき、光源から当該ピクセルに向かうライトベクトルを求める。さらに、光源と当該ピクセル間の距離データを求める。
求められたライトベクトルは、スポット特性生成回路３２２に入力される。さらに、求められた光源と当該ピクセル間の距離データは、減衰処理回路３２３に入力される。このスポット特性生成回路３２２において、図１１に示した様に、軸ベクトル７０を有するスポット光源Ｏにより、図１２に一例として示すスポット効果特性が求められる。スポット特性生成回路３２２は、各ピクセルに対する入力されるライトベクトルとスポット光源の軸ベクトル７０との内積６０即ち、余弦値を求め、スポット光源によるピクセル方向の光の強度を出力する。
一方、減衰処理回路３２３は、スポット光源Ｏと該当ピクセルの距離による、光の減衰量を計算する。次いで、スポット特性生成回路３２２からのスポット光源によるピクセル方向の光の強度及び、減衰処理回路３２３からのスポット光源から当該ピクセルまでの距離による光の減衰量に基づき、光強度合成回路３２４から該当ピクセルに対する光強度が求められる。
即ち、各ピクセルに対する光強度は、光源自身の持つ強度、及びスポット光源の軸ベクトル７０と、該当ピクセルのライトベクトルとのなす角度による減衰量及び、スポット光源から該当ピクセル位置までの距離による減衰量により求められる。
光強度合成回路３２４により求められた各ピクセルに対する光強度に基づき、次いで、各ピクセルに対してシェーディング効果が与えられる。シェーディング効果として、拡散反射効果、鏡面反射効果がある。
拡散反射効果は、いわゆる乱反射であり、物体表面の中に入り込み、吸収されそして再び放射される光である。この拡散反射光は、どの方向にも均等に放射する。そのため観察者の視点とは関係がない。重要なのは光源からの該当ピクセルに向かう方向と、該当ピクセルの表面の法線方向とのなす角度であり、この角度がπ／２より大きくなると、光線は物体の蔭になり、拡散光反射は、生じない。
一方、鏡面反射効果は、完全反射面において、入射光に対し反射光の角度が法線に対し、同じになるような効果を与えるものである。
したがって、反射光の角度に一致する角度にいる観察者にのみ鏡面反射効果を観察することができる。このため、反射光の大きさを求めるには、観察者の視線の反射ベクトルが必要である。
鏡面反射回路３２６は、光強度合成回路３２４により求められた各ピクセルに対する光強度を入力し、該当ピクセルにおける入射角と、反射ベクトル回路３２７から得られる視線ベクトルから反射量を求め、出力する。
さらに、上記拡散回路３２５からの拡散光量と、鏡面反射回路３２６からの鏡面反射光量が、他の光源演算器３３０Ｂ，Ｃ，Ｄの出力と共に、累算器３２８で合成されて出力される。
上記のごとく構成されるシェーディング回路３２において適用されるスポット特性生成回路３２２の構成例ブロック図が図１９に示される。本構成例では、以下に説明するようにテーブルを用いる方法により、複雑な計算を必要とせず、テーブルに格納するデータにより任意のスポット特性の形成が可能である。尚、スポット特性生成回路Ａ，Ｂ，Ｃ，Ｄは同様の構成を有するのでスポット特性生成回路Ａを中心に説明する。
スポット特性生成回路３２２により生成するスポット特性は、一例として図１２に示すごとく、ぼけ領域（penumbra scale）６２（図１２参照）の範囲で特性点ａ〜ｐまでの特性点の光強度特性値を結んで特性曲線が形成される。
即ち、図１２において、スポット光線Ｏの光軸ベクトル方向の光強度を１として、特性点ａ〜ｐの各点に対応するピクセルに向かうベクトルＬと光軸ベクトルＤとなす角を横軸にとり、且つ各点の１の光強度に対する正規化した値をプロットして示される。
本構成例のスポット特性生成回路３２２は、図１９に示されるように、上記スポット特性の特性点ａ〜ｐの光強度値を格納するテーブル８０と、テーブル８０から各特性点ａ〜ｐの光強度値を読み出すアドレスを発生するアドレスジェネレータ９０及び、特性点間を一次補間する補間器１００を有して構成される。
アドレスジェネレータ９０には、ピクセル情報としてピクセルデータ（LX,Ly,Lz）が、また光源情報としてスポット軸の向きベクトル（Dx,Dy,Dz）、カットオフ角（Cutoff）、ぼけ幅の正規化係数（Penumbra-scale）及び、特性テーブル８０を選択するインディクス（table-id）が入力される。
なお、これらの光源情報は、図１４、図１５に示す光源バッファ１７又は、図１６に示す光源メモリ１８に光源ａ，ｂ，ｃ・・・ごとに記憶されている。本実施の形態例においては、各ピクセルに対する４個の光源の影響を処理することができ、各ピクセルにはその４個の光源を指定するＬｉｇｈｔ−ＩＤが図１４等に示すＣＰＵ１により与えられている。光源レジスタ３２９はＡ，Ｂ，Ｃ，Ｄの４個があり、Ｌｉｇｈｔ−ＩＤにより光源バッファ７又は光源メモリ８から４個の光源データを読み込み、スポット特性生成回路３２２（Ａ，Ｂ，Ｃ，Ｄ）に光源データを提供する。
図１９において、内積計算部９１によりピクセルデータLx,Ly,Lzと、スポット軸の向きベクトルDx,Dy,Dzの内積６０（図１１参照）を求め、これら二つのベクトルのなす余弦値を求める。さらに、減算器９２でカットオフ部６１（図１１参照）を越える部分を削除する。
次いで、カットオフ部６１を越える部分を削除した減算器９２の出力に対し、乗算器９３によりぼけ幅の正規化整数Penumbra-scale例えば、係数１０を乗算し、半影部（ぼけ部）６２（図１１参照）に適用する部分を０．０〜１．０に正規化する。したがって、、クリップ演算器９４により、入力が１．０以上の時は１．０に、０．０以下の時は、０．０にクリップする。
クリップ演算器９４の出力が特性テーブル８０のアクセス及び、特性点間の補間に使用される。今、クリップ演算器９４の出力が１６ビットであると考えると、その内、特性テーブル８０のアクセスに４ビット、バンク切り替えフラグＳＦに１ビット、そして特性点間の補間に１１ビットが使用される。
ここで、図１９の実施例において、特性テーブル８０は、第１、第２のメモリバンク８１、８２で構成されている。したがって、図１２の特性図において、特性点ａ〜ｐのデータは第１のメモリバンク８１と第２のメモリバンク８２にそれぞれ交互に格納されている。
さらに、バンク切り替えフラグＳＦが０である時、第１のメモリバンク８１に対する読み出しアドレス（odd address）ＯＡと、第２のメモリバンク８２の読み出しアドレス（even address）ＥＡは、同一である。一方、バンク切り替えフラグＳＦが１である時、インクリメント回路９５により第２のメモリバンク８２に対する読み出しアドレス（even address）ＥＡを、第１のメモリバンク８１の読み出しアドレス（odd address）ＯＡに対し、１だけ歩進する。
具体例は、先に説明したと同様であり、バンク読み出し切り替えフラグＳＦが０であり、アドレスが００００である時、第１のメモリバンク８１に対する読み出しアドレスＥＡは、第２のメモリバンク８２に対する読み出しアドレスＯＡと同一であり、第１のメモリバンク８１から特性点ａのデータが、第２のメモリバンク８２から特性点ｂのデータが読み出される。
かかる場合、図１９の補間器１００には、補間パラメータｔと論理０のバンク読み出し切り替えフラグＳＦが入力される。さらに、特性テーブル８１、８２から読み出される特性点ａ，ｂのデータが入力される。
したがって、補間器１００は、特性点ａ，ｂ間の値Ｄta-bを、上記した式（３）の関係から一次補間により求める。
さらに、上記具体例で、バンク読み出し切り替えフラグＳＦの論理が１になると、インクリメント回路９５により、第１の特性テーブル８１の読み出しアドレスが１歩進し、アドレス０００１となる。このアドレスには、特性点ｃのデータが記憶されている。
かかる場合、補間器１００では、バンク読み出し切り替えフラグＳＦの論理が１であるので、特性テーブル８２から読み出される特性点ｂを優先して、特性点ｂ−ｃ間の補間データＤtb-cを上記した式（４）に従い求める。
上記のようにして、簡単な演算によりスポット特性を形成することが可能である。さらに、特性テーブル８０に格納する特性点データを任意に構成することにより任意のスポット特性を形成することができる。
次ぎに、本発明にしたがって、街路を複数の街灯で照明する画像シーンの場合の実施例を図２０に示す。光源ａ，ｂ，ｃ等が街路両側に配置される。街路を形成するポリゴンには、どの光源からの影響を受けるかを示すＬｉｇｈｔ−ＩＤが付加されている。この例では１つのポリゴンは、最大４光源からの影響を受けることができる。例えば、ポリゴンＰ2のＬｉｇｈｔ−ＩＤが（０００００１）の場合は、図１７の光源バッファの内容により光源ｃ，ｄ，ｅ，ｆの影響を受けることになる。
このように、ポリゴン毎にどの光源からの影響を受けるかのＩＤをもち、対応する光源の処理を行えば、同時に処理できる光源数以上の数の光源をシーン中に持てることになる。
また、本発明の処理フローを図２１に示す。プログラム初期処理段階の処理として、ステップ１，２の処理が行われる。先ずシーン中の光源パラメータを光源バッファ１７に書き込む（ステップ１）。光源パラメータには、光源の位置、色、強さ及び方向等があり、シーン中には、光源バッファ１７が許す限りの光源を持つことができる。
次いで、各ポリゴン毎に影響を受ける光源のＩＤ（Ｌｉｇｈｔ−ＩＤ）を付ける（ステップ２）。各ポリゴンは、通常は、最も近い光源の影響を強く受けるが、例えば、ハードウエア的に同時に４個の光源の処理が可能なシステムの場合は、Ｌｉｇｈｔ−ＩＤとして、各ポリゴンから最も近くにある、４個の光源を指定する光源バッファのアドレスを付けることができる。なお、ポリゴンが影響を受ける光源として、ポリゴンの各頂点の法線ベクトル方向、及び光源の向く方向を基準に、光源を選択することもできる。
さらに、ステップ３は、ゲームの進行に伴い、各シーンで各ポリゴンの座標変換及び透視変換を、ポリゴン数分繰り返す（ステップ３）。このステップ３の処理により、３次元のポリゴンデータは、スクリーン上の２次元データに変換され、透視変換により、視点位置の変更に伴う遠近感の変化を処理することができる。
次いで、各ポリゴンの塗りつぶしを行い、ピクセル毎にＬｉｇｈｔ−ＩＤを書き込む（ステップ４）。したがって、このステップ４において、シーン中の多くの光源から、ピクセルが影響を受ける４個の光源を指定されることになる。
そして、ステップ５は、テクスチャ生成が行われる（ステップ５）。テクスチャには、ポリゴン表面の模様あるいは材質感を含み、マッピング（写像）によりその模様等を対象のポリゴン面に貼りつける。
次いで、本発明の特徴により、Ｌｉｇｈｔ−ＩＤに対応する光源パラメータを光源バッファ１７から読み出す（ステップ６）。すなわち、Ｌｉｇｈｔ−ＩＤが光源バッファ１７のアドレスの場合は、そのアドレスに基づき光源メモリ１８に記憶された光源情報が読み出される。
その後、シェーディング処理が行われる（ステップ７）。このシェーディング処理により、光源及び対象物のポリゴンデータに基づき画面の照明、色付け及び陰影処理が行われる。さらに、１画面のビデオデータがフレームバッファ５に書き込まれる（ステップ８）。この様なステップ５からステップ８までの処理を、ポリゴンを形成する各ピクセル数分繰り返し、フレームバッファ５に蓄積された１画面の情報がＣＲＴディスプレイ装置７に表示される。
産業上の利用可能性
以上、図にしたがい実施の形態を説明したように、本発明に従うスポットライト特性形成方法は、スポットの特性を計算式に基づき、ピクセルごとに演算により求める方法に比べ、スポットの軸と光源ベクトルのなす角を用いて、予め特性点データを記憶する特性テーブルを参照するようにしているので、より簡単な回路で自由度の高いスポット特性を形成することが可能である。
さらに、スポットの特性に高い自由度を持ち、且つ実現する回路も簡単である。さらに、予め用意する特性テーブルを２次元に拡張すれば、非円形のスポットを形成したり、１つの光源で複数のスポットを形成することも可能となる。以上説明した通り、本発明によれば、光源グループを複数持ち、Ｌｉｇｈｔ−ＩＤによりセレクトするので、同時に使用できる光源数以上の光源をシーン中に使うことができる。
【図１】
0004060375.tif 000004
【図２】
0004060375.tif 000005
【図３】
0004060375.tif 000006
【図４】
0004060375.tif 000007
【図５】
0004060375.tif 000008
【図６】
0004060375.tif 000009
【図７】
0004060375.tif 000010
【図８】
0004060375.tif 000011
【図９】
0004060375.tif 000012
【図１０】
0004060375.tif 000013
【図１１】
0004060375.tif 000014
【図１２】
0004060375.tif 000015
【図１３】
0004060375.tif 000016
【図１４】
0004060375.tif 000017
【図１５】
0004060375.tif 000018
【図１６】
0004060375.tif 000019
【図１７】
0004060375.tif 000020
【図１８】
0004060375.tif 000021
【図１９】
0004060375.tif 000022
【図２０】
0004060375.tif 000023
【図２１】
0004060375.tif 000024