(57)【要約】      （修正有）【課題】コンピュータグラフィックス描画技術に関し、複数の遮光物体が乱立し、それぞれの半暗影（アンブラおよびペナンブラ部）が重なり合う映像を２パス方式の影生成法において描画するための手段を提供する。【解決手段】幾何学的に近接する、あるいは階層的に構成された物体同士をグループ化して、グループ単位でそれぞれのシャドウバッファを割り当て、隠面消去法を用いてシャドウポリゴンを記憶し、ポリゴン内挿補間回路５０で求めた座標値を光源系座標変換回路５２で光源系座標値に変換し、これらと前記変換した光源系座標値とで比較器５６にて、レンダリング点の位置関係を計算・テストして、遮光物体からレンダリング点までの距離を算出し、影であると判断された場合はそれぞれのバッファの情報を用いて判暗影の輝度を決定する。【選択図】図５
2008152744.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータグラフィックスによる影の半暗部を表現する手段に関し、遮光物体にグループ識別子を設け、グループ識別子毎に設けたシャドウポリゴンのｚ値を記憶するシャドウバッファ、シャドウポリゴンの輝度を記憶する輝度バッファおよびシャドウポリゴンのある画素を示すフラグバッファをそれぞれ具備し、光源座標系レンダリングの第１パスにおいて前記それぞれのバッファに所定のデータを書き込む手段と、すべての前記グループ識別子に含まれる遮光物体描画後に、前記輝度バッファをフィルタリングして、輝度のグラデーションを生成する手段と、視点座標系レンダリングの第２パスにおいて、レンダリング点座標値を光源座標系に変換し、それぞれの前記シャドウポリゴンに記憶された光源からの距離を比較し、影であると判断された場合には、前記それぞれのバッファの情報を用いて半暗影の輝度を決定する半暗影生成レンダラー。
【請求項２】
請求項１の回路において、第２パスにおける半暗領域（以下ペナンブラという）の輝度を決定する手段として、レンダリング点と遮光物体までの距離を求める手段と、前記フラグバッファにはフラグの有効な領域を暗度最大値、それ以外の領域を最小値としてレンダリング点のフラグバッファを、また前記輝度グラデーションをもつ輝度バッファから輝度をそれぞれ読み出し、前記レンダリング点から遮光物までの距離を用いて、レンダリング点が遮光物体に近い場合にはフラグバッファ値を、遠ければ輝度バッファ値を補間して半暗影を決定する半暗影生成レンダラー。
【請求項３】
請求項１および２の回路において、シャドウバッファには、前記グループ識別子、シャドウポリゴンのｘ、ｙ、ｚ値の最大最小値、光源からの順位をそれぞれ記憶するレジスタを設ける手段と、第１パスにおいて、グループ識別子毎に１つのシャドウバッファを割り当てて遮光物体をレンダリングし、前記ｘ、ｙ、ｚの最大最小値を更新記憶すると共に、グループ毎のレンダリング終了時には、他のシャドウバッファのもつｚ値と比較して、光源からの順位を更新する手段と、第２パスにおいて、レンダリング点の影の有無の判定は、それぞれのシャドウポリゴンの前記レジスタの順位の高いものから順次比較する手段と、レンダリング点が他のシャドウバッファに対して最も光源に近い場合には、自身のグループ識別子内のシャドウバッファを用いて影の判定を行い、影であると判定された場合にはレンダリング点は真影（以下アンブラという）とする手段と、レンダリング点が他のシャドウバッファの中間に位置する場合には、前記他のシャドウバッファと自身のシャドウバッファを用いて影の判定を行い、影であればアンブラとして描画する手段と、レンダリング点が他のシャドウバッファより遠方に位置する場合には、前方に位置する全てのシャドウバッファが持つ前記フラグバッファと輝度バッファの補間を行って請求項２の手段によりペナンブラの暗度を求め、複数影のある場合には前記暗度を加算し、また自身の識別子のシャドウバッファによる影がある場合には、前記暗度の加算値に、さらに自身のアンブラ加算した暗度で影を描画するそれぞれの手段を持つ半暗影生成レンダラー。
【請求項４】
請求項１および２の回路において、それぞれのシャドウポリゴンのとの比較において、レンダリング点と遮光物体との距離、また輝度バッファのフィルタリングによって拡大した暗度領域からレンダリング点まで距離はそれぞれ、ｚ値の最大（光源から最も離れた）と最小（光源に最も近い）値点から計算したものとする半暗影生成レンダラー。
【請求項５】
請求項１から４までに記載の半暗影生成レンダラー用いたコンピュータグラフィック画像装置。
【発明の詳細な説明】
【技術分野】
【００１】  この発明は  コンピュータグラフィックスにおいて影の半暗（ペナンブラ）現象を表現するための影の描画手段とその手段の論理回路化の技術分野に関する。
【背景技術】
【００２】  コンピュータグラフィックスによるボケた半暗影を表現するレンダリング（ソフトシャドウ）について、遮光物体が複数乱立し、影が相互に重畳している場面の実時間描画は極めて困難とされている。このソフトシャドウ描画法には、シャドウボリューム法や、特願平１１−３１７２６８がある。後者のポリゴンレンダリング２パス法は、第１パスで描画したシャドウポリゴン外郭周辺をフィルタリングよってぼかし、第２パスのレンダリングにおいて影の有無を判定し、影であればフィルタリングによって得た輝度を特殊な関数を用いてマップした。シャドウボリューム法では時間コストが大きく実時間性に乏しく、また後者では多重に遮光物体が重なる場合の、それぞれの物体がもつペナンブラ（半暗部）やアンブラ（真暗部）の重なりを正確に表現することが困難であった。
【発明の開示】
【発明が解決しようとする課題】
【００３】  平面上に例えば２つの遮光物体が影を落とし、これらの影が互いに重なり合っている場合、より光源に近い遮光物体のペナンブラ領域と、背後に位置する遮光物体のアンブラおよびペナンブラ領域の重畳様態を正しく描画するには、コンピュータグラフィックス上の処理として下記の条件が一般に必要である。（１）遮光物体と影を映す平面との関係において、遮光物体が単独に平面上に影を落としている場合、アンブラおよびペナンブラ領域は直接描画する。（２）前面（光源に近い）の遮光物体のペナンブラ（あるいはアンブラ）影が、背面の遮光物体のアンブラ（あるいはペナンブラ）部分と重って前記平面上に影を落とす場合は、前面のペナンブラ（あるいはアンブラ）と、背面物体のアンブラ（あるいはペナンブラ）を加算した暗度で重畳部を描画する。  上記２つの条件の内、（２）の効果を表現するには、前面と背面物体それぞれのシャドウポリゴンは独立して記憶（それぞれがアンブラ、ペナンブラ領域を明示可能とする）されなければならない。もしシャドウバッファを１組で構成し、光源に最も近い遮光物体のポリゴンのみを隠面消去法で記憶すれば、背後となる物体の幾何学的情報は全て失われ、背面物体のシルエットラインも、前面物体からの距離も判定できない。この結果、背面物体自身が持つアンブラおよびペナンブラ部分の生成は困難となり、（２）の正しい表現はできない。この問題はシャドウボリュームや２パス方式いずれにおいても共通の問題である。また１組のシャドウバッファからなるシステムでは、遮光物体の足元の影ではアンブラが、また離れる従って影が広がると共に、環境光による光の回り込みによって影がボケて明るくなってゆく効果を背面の物体自身は表現できない。これらの問題を解決する手段として、シャドウバッファを複数実装し、それぞれの遮光物体毎に独立して遮光物体のシャドウポリゴンを記憶し、それぞれ独立にフィルタリングしてシャドウポリゴンをボカし、レンダリングの段階で合成する方法がある。しかしフルシーンのシャドウバッファを物体毎（数千から数万種類）に持つことはハードウエアコスト面からは現実的ではない。一つの手段として、シャドウバッファ数の上限を定め、光源側から一定数の物体まではソフトシャドウを得る手段が考えられる。しかし物体の形状によっては（一つの物体が光源照射方向に長い形状をもつ場合）光源に最も近いものから順位を付けることは困難である。また光源に近い数個の物体の影を保存できても、視点と光源方向が相対した関係にあって、視点と光源間に限度数以上の物体が存在した場合、視点に近い物体（目立つ位置の物体）に影が発生しない現象が起こりえる。  本発明は２パス方式において、投下された複数の影が重畳しあう場合の、ペナンブラあるいはアンブラ部分の描画を、実用的な手段によって解決することを課題とする。
【課題を解決するための手段】
【００４】  遮光物体それぞれが投下する影にソフトシャドウ効果を正確に表現するには、所定数のシャドウバッファが必要となる。この場合、下記の２つの問題を解決しなければならない。（１）一つの遮光物体Ａの形状が光源方向に長く、その物体の前面と後面の位置内に複数の他の遮光物体Ｂが配置されているものとする。ここで複数の配置物体Ｂを先にレンダリングし、光源に近い物体から順次シャドウバッファに記憶すると、全てのシャドウバッファは配置物体Ｂで占められてしまう可能性がある。この状態で遮光物体Ａの後面から前面に向かってレンダリングを行うと、所定の位置に至るまで遮光物体Ａのシャドウポリゴンは記憶された配置物体Ｂより後方に位置するものと見なされて記憶されない。この結果、遮光物体Ａの影の一部が欠けたものとなる。（２）シャドウバッファ数に上限があれば、影を投影できる物体数は限られ、視点に最も近い、描画上目立つ位置にある物体に影が生じない状態がある。【００５】  前記〔００４〕の（１）に対応する手段として本発明では下記の条件および処理を手段とする。（１）所定数のシャドウバッファに追加してシャドウバッファと同一構成の１組のバッファ（以下テストバッファ）を設ける。（２）物体にはグループ識別子をそれぞれ定義する。グループ識別子とは、物体は通常、階層的な集合（グループ）からなる部品で構成され、それら個々の部品にはそれぞれ固有の識別子が与えられているが、部品の纏まりを示す上位階層の識別子をグループ識別子と定義する。一方、レンダリングはグループ物体毎に行い、グループの一つの物体あるいはポリゴンを書いては他のグループの物体を書くことを交互に繰り返すことはないものとする。グループ物体の特性としては通常幾何学的に近接しているものと考える。またグループ化は、物体がそれぞれ独立しているものの空間的に隣接しているものどうしであってもよい。（３）シャドウバッファには、そのバッファに記憶されるグループ識別子を記憶する識別子レジスタ、シャドウポリゴンのｘ、ｙ、ｚの最大最小値をそれぞれ記憶する領域レジスタ、また光源に最も近いグループ順に順位を付ける順位レジスタを設ける。以下これらレジスタの総称をシャドウレジスタという。（４）第１パスにおいて、光源座標系で物体を前記テストバッファに隠面消去処理を伴ってシャドウポリゴンを描く。グループ識別子が変わらない限り、シャドウポリゴンとｘｙｚ値の最大最小値をテストバッファやシャドウレジスタに更新続ける。（５）グループ内の全ての物体のレンダリングが終了する毎（識別子が変わる）に、テストバッファを含めて前記シャドウレジスタのｚ値をそれぞれ比較し、光源からの距離の順位を決定し、順位レジスタを更新（入れ替え）する。グループの順位が最下位のシャドウバッファは、シャドウレジスタをクリアする。テストバッファが最下位でなければ、通常のシャドウバッファに入れ替わり、最下位のクリアされた通常バッファがテストバッファに代わる。  前記（１）−（５）の条件と処理によって、グループ物体が多数の物体で構成される場合や、光源近くから遠方に連なる形状物体であっても、テストバッファのシャドウポリゴンはグループ識別子内での隠面消去により保存され、他のグループ物体との隠面消去によって削除されることはない。よって形状の一部でも光源に最近傍であれば、シャドウバッファの順位はデータを保存しつつ最上位となる。【００６】  物体構成を階層的に定義し、グループ識別子を階層の上位の名前とすれば、シャドウバッファには多数の物体をレンダリングすることができる。しかしシャドウバッファの実装数に限度がある以上、すべての物体のシャドウポリゴンをシャドウバッファに記憶することはできない。また、グループ識別子を幾つにするかはアプリケーションに依存する問題である。一方、シャドウバッファを画面全体の画素数（例えばｘ、ｙ、ｚ軸をそれぞれ１Ｋｘ１Ｋｘ３２ビット）で構成した場合、グループ物体が小さな描画領域となる場合では、シャドウバッファ空間に大量の無駄が発生する。本発明ではこの問題を軽減するため、画像メモリを細分割構造（以下分割されたそれぞれのシャドウバッファをセルという）にして、セルを一定のサイズ（例えばｘ、ｙ、ｚ軸をそれぞれ６４ｘ６４ｘ３２ビット）で構成し、物体の占める空間に対応してこのセルを動的に割り当る。１Ｋｘ１Ｋのバッファでは２５６個のセルで構成される。４組画面相当のシャドウバッファ容量がコスト的に実装可能とすれば、最大１０２４個のセルとなり、光源に近い順に多数のグループ物体の影の生成が可能となる。【００７】  それぞれのセルは、通常テキスチャーマッピングで実装されるキャッシュ構造と同様なキャッシュ・ブロック単位（前記の例では１ブロック当たり６４ｘ６４画素）の割り当てと管理を行うことができる。【００８】  本発明では、第１パスの全ての描画が終了すると、ｚ値を記憶するシャドウポリゴン領域に輝度（暗度）値を設定したバッファ（以下輝度バッファという）を新たに設け、この輝度バッファの暗度にフィルタリングを加え暗度のグラデーションを生成する。初期暗度は例えば２５５に設定すると輝度バッファは画素当たり８ビットとなる。シャドウポリゴン描画時に、シャドウポリゴンが描画される画素を値２５５で書き込むメモリをシャドウバッファと共に用意しておくことで、シャドウポリゴン領域を描画後コピーする必要がなくなる。また同様にシャドウポリゴン領域を示す１ビットのバッファ（以下フラグバッファという）を設ける。【００９】  フィタリングは特願平１１−３１７２６８のｚ値と識別子の多数決法とは異なり、本発明では高速化のため、輝度バッファのシャドウポリゴン領域はすべて２５５の初期値として、すべての輝度バッファに対してフィルタリング（ＩＩＲフィルタなど）を行う。【０１０】  第２パスでは以下の処理を行う。（１）第２パスでは視点座標系で物体をレンダリングすると同時に、レンダリング点を光源系座標値に変換する。（２）前記光源系座標値のｚ値と、それぞれのシャドウレジスタに記憶されたｚ値の最大最小値と比較し、レンダリング点が、自身以外のグループ識別子をもつｚ値よりも光源に近い場合には、自身のグループ物体のみを対象としてｚ値と比較し、影の有無をテストする。影であればアンブラとしての影を描画する。前記比較でｚ値が同一の場合はレンダリング点とシャドウポリゴンは同一物体として影ではなく照射点とする。（３）グループ識別子の異なる他��いずれかの物体のｚ値に対しレンダリング点が後方にある場合、前方グループがもつ輝度バッファ（フィルタリングにより領域が拡大されている）のレンダリング点の暗度値を読み出し、所定量の値が存在すれば、後記のソフトシャドウ処理を行い、値がなければ（領域外を含めて）他のグループ物体による影はないものとする。この場合、（２）と同様に自身のグループ内でのみ影の判定を行う。影となる場合はアンブラ影として描画する。（４）レンダリング点が、グループ識別子の異なる物体のｚ値の、最大最小値の間に位置している場合、そのグループがもつシャドウバッファのｚ値と、レンダリング点のｚ値とをそれぞれ比較し、影となる場合はアンブラ影として描画する。さらに自身のグループのシャドウバッファのｚ値との比較で影となる場合はアンブラ影として描画する。いずれも影でなければレンダリング点は照射点となる。物体形状が、他の識別子をもつシャドウバッファのｚ値範囲内から範囲外（後方に）まで連なる形状をもつ場合には、レンダリング点はそのｚ値範囲内においてアンブラ影を、範囲外では（３）のソフトシャドウ処理を行う。【０１１】  ソフトシャドウにおけるアンブラとペナンブラ分布は、遮光物体に近いほど影のボケは小さくシャープであり、また周辺光の回り込み量が少なく暗い。一方遮光物体から離れる従って、ボケが広がり、明るくなる。これは光源の形状と環境光に関係する。この関係は、面光源の情報が既知として、影が投下されるレンダリング点と遮光物体までの距離で表現できるが、特願平１１−３１７２６８では、この関係を数式モデル化するために、レンダリング点と遮光物体までの距離をパラメータとするシグモイド関数に類似したペナンブラ関数を設け、これをあらかじめＲＡＭテーブル化し、前記の距離をアドレスに用いて関数値を読み出し、この値をフィルタリングされた影の輝度にスケーリングして、レンダリング点の輝度を決定する方法が提案されていた。本発明は、フィルタリングした輝度バッファの暗度と、フィルタリング前のフラグバッファとの間を、レンダリング点と遮光物体までの距離を用いて補間する（フラグバッファの１は暗度２５５、０を照射部０値として扱う）。例えばシャドウポリゴンの影の部分（デフォルト値）を２５５レベルとし、照射面を０レベルとすれば、フィルタリング後の影の暗度は２５５から０の間に分布する。前記［００８］のフラグバッファと輝度バッファを設けることにより、ｘ、ｙ座標が同一点であっても、輝度バッファ上では、例えば暗度１００の値があり、一方、フラグバッファ上では０あるいは１（２５５とする）の値を取りうる場合がある。この数値間をレンダリング点と遮光物体までの距離で比例配分すれば、レンダリング点が遮光物体に近ければフラグバッファが０のとき０、１であれば２５５に近くなり、遮光物体から離れるほど暗度は、フィルタリング値に近くなる。本発明では、この２つのシャドウバッファを用いて、遮光物体からの距離を重み付けとして補間する。以上から本発明では特願平１１−３１７２６８と異なりペナンブラ関数は不要となる。【０１２】以上から本発明は、多数の遮光物体により生じた重畳する影を描画する手段に関し、アンブラおよびペナンブラを正確に表現するためには遮光物体毎に独立したシャドウバッファが必要となる問題点を解決する手段として、複数のシャドウバッファを設けると共に、幾何学的に近接する、あるいは階層的に構成された物体どうしをグループ化して、グループ単位でそれぞれのシャドウバッファに隠面消去法を用いてシャドウポリゴンを記憶する手段と、それぞれのシャドウバッファには、シャドウポリゴンの領域を示す情報を記憶するシャドウレジスタを設ける手段と、さらにシャドウバッファ毎にシャドウポリゴン領域から決定される影の部分を、暗度に数値化し、またフラグ化した、輝度バッファとフラグバッファをそれぞれ設ける手段と、輝度バッファをフィルタリングして、暗度のグラデーションを生成する手段と、前記、シャドウレジスタ、輝度バッファおよびフラグバッファを用いて、第２パスのレンダリング点でのアンブラおよびペナンブラ暗度を決定する手段をもって、ソフトシャドウを描画するものである。これら技術をＬＳＩに実装し、コンピュータグラフィックス等また画像処理回路に組み込むことで、高品質な映像装置が得られることになる。
【発明の効果】
【０１３】  本発明によりコンピュータグラフィックスにおいて、物体間の幾何学的関係の認知に最も重要な機能である影を、広がりを持ったソフトなイメージで描画することが可能となり、高品質な映像を描画できる。
【発明を実施するための最良の形態】
【０１４】  本発明の回路はグラフィックスＬＳＩに実装するか、ＩＰ（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｐｒｏｐｅｒｔｙ）としての形態で実施される。
【実施例】
【０１５】  以下、本発明の実施例を説明する。図１には本発明に係わるソフトシャドウ様態の上部から見た遮光物体と影の様態を示す。遮光物体１１が光源１０によってアンブラ（真影部）１２とペナンブラ（半暗部）をもつ。アンブラ、ペナンブラ共に実際の影は、図１に示すようにシャープな角をもつものではなくボケた丸みをもつが簡略化してある。【０１６】  図２は本発明に係わるソフトシャドウの決定方法の説明図である。図２（ａ）は遮光物体１１が光源１０によって平面２０にアンブラ領域１２とペナンブラ領域１３を落としている。光源から見た遮光物体１１は、図２（ｂ）に示すシャドウバッファ２１にシャドウポリゴン２２として描画され、シャドウポリゴン２２にはそれぞれの物体の光源からの距離ｚ値が記憶される。図２（ｃ）は図２（ｂ）のシャドウバッファ２１をｚ値ではなく、数値１／０に置き変えたフラグバッファ２３にシャドウポリゴン領域２４を１としてコピーしたものである。またフラグバッファの領域１を暗部最大値の２５５と見なしてフィルタリングし、破線領域２５に広がった状態をもつ輝度バッファ２６を図２（ｄ）示す。領域２５は２５５（領域２４の中心部）から０（破線外部）までの数値変化をもつ。フィルタリングにより広がった領域のｚ値（この値は輝度バッファ上には記憶されないが）は、ｚの最大値（光源から最も離れたシャドウポリゴンのｚ値）と見なす。第２パスにおいて、図２（ａ）のＡ点をレンダリングする際、ソフトシャドウとは、この点が影か否か、影の場合その輝度あるいは暗度は幾つかを決定するものである。いま、平面２０をレンダリングし、Ａ点において、Ａ点の座標を光源座標系に変換すると、Ａ点はフラグバッファ２３上ではＡ（Ｉａｕ）となり、シャドウポリゴンの外部となる。一方、フィルタ後の輝度バッファ２６のＡ点は拡大された領域に入り０−２５５の間のいずれかの値となっている。Ａ点の輝度決定は、フラグバッファ２３（２５５か０の２値）と輝度バッファ２６の暗度間を補間して求める。この補間は、図２（ａ）の遮光物体上の点ａとレンダリング点Ａ間の距離を用い、１例として線形（指数関数あるいは２次関数的な変化であっても良い）に補間する。距離が小さければフィルタ前のフラグバッファ空間上の値Ａ（Ｉａｕ）（図２の例では照射部）に近く、距離が大きければフィルタ後の輝度バッファ上の０−２５５の間の値Ａ（Ｉａｐ）となる。一方、図２（ａ）のＢ点は図２（ｃ）、図２（ｄ）でそれぞれＢ（Ｉｂｕ）とＢ（Ｉｂｐ）となるが、バッファ２３上では遮光物体に対してＡ点と同じような位置関係にあるが、遮光物体近傍ｂ点から平面上のＢ点までの距離が短いため補間点暗度は図２（ｃ）のＢ（Ｉｂｕ）寄りとなり、この点は影ではなく照射部であるため、図２（ａ）のＢ点において暗度は低く明るい状態（影の外）となる。最終的な輝度は、照明モデルやテキスチャーで決定された輝度に、前記方法で求めた補間値を正規化（１／２５５）した値を乗算することで決定する。【０１７】図３は本発明に係わる複数の遮光物体のアンブラ、ペナンブラが互いに重畳している図を示したものである。遮光物体３０のアンブラ領域３１とペナンブラ領域３２（一部）は、遮光物体１１のペナンブラ領��１３と重なっており、また遮光物体３０は遮光物体１１のアンブラ、ペナンブラいずれとも影を重畳している。【０１８】  図４は本発明のバッファ構造を示す。シャドウバッファ４０はシャドウポリゴン４１のｚ値を記憶し、バッファは、例えば６４ｘ６４サイズの画素からなる４つのセルｍ０、ｍ１、ｍ２、ｍ３で構成する。図の例ではシャドウバッファの全体サイズは１２８ｘ１２８となる。それぞれのシャドウバッファは、そのバッファに記憶されるグループ物体の識別子、ｘ、ｙ、ｚ座標の最大最小値、また光源に最も近い順位（ｚの最小値で決定）を示す値のそれぞれ記憶するシャドウレジスタ４２をもつ。さらにシャドウポリゴンの領域を１／０示すフラグバッファ４３と、その領域をフィルタリング（１を暗度最大値２５５と見なし）して領域の拡大した輝度バッファ４５を設け、バッファ４３にはシャドウポリゴンの領域４４を値１、その他の領域を０とする。またバッファ４５はバッファ４３のシャドウポリゴン領域４４をフィルタリングした結果、０−２５５の範囲のグラデーションをもつ領域４６を記憶したものを示す。本発明ではグループ識別子単位毎にシャドウレジスタ、バッファ４０、４３および４５のそれぞれで構成し、４０はｚ値（通常は２４から３２ビット）、バッファ４０は１ビット構成、またバッファ４５は８ビットで構成する。バッファ４０と４３は同一のｘｙサイズ、バッファ４５は、フィルタリングによって広がる可能性があるためバッファ４３に対してやや大きめの（例えばセル１個分の幅をフィルタ前のシャドウポリゴン４４の周辺に付加した）サイズとなることがある。バッファ４３および４５は図２のバッファ２３および２５に相当する。これらバッファ構成から、レンダリング点が他の識別子をもつすべてのシャドウバッファのｚ値よりも光源に近い場合には、自身の識別子をもつシャドウバッファ内でｚ値の比較を行って影（アンブラ）の有無を決定し、一方、他の識別子をもつシャドウバッファのｚ値の最大・最小値の範囲内に位置していた場合には、その識別子をもつバッファ４０のｚ値と、自身のシャドウバッファの４０とのｚ値の比較を行い影（アンプラ）の有無を決定し、また他の識別子をもつシャドウバッファの完全後方に位置した場合には、自身のシャドウバッファ４０とのｚ値比較による影（アンブラ）と、前方に位置する輝度バッファ４３と４５を用いて影（ペナンブラ）の有無を判定する。このように本発明ではレンダリング物体自身の識別子をもつシャドウバッファによる影判定と、レンダリング点の位置に対応した他の識別子をもつシャドウバッファや輝度バッファを用いて、アンブラやペナンブルを決定する。シャドウレジスタの順位値はレンダリング点のグループ物体のｚ値と、他の識別子をもつシャドウバッファとのｚ値との位置関係を検索するための効率を図るために設けるものである。【０１９】  レンダリング点に対して前記判定の対象となるシャドウバッファが複数ある場合には、それぞれの識別子毎のシャドウバッファや輝度バッファとの前記判定を行い、その結果複数の暗度が得られた場合には、レンダリング点毎にそれらを加算（より暗くなる）して影の値を決定する。レンダリング点から対象となるシャドウバッファを���索する手段は、レンダリング点のｘｙの範囲と、他の識別子のもつｘｙ最大最小値の範囲にセルサイズを加減算（領域を広げた）した値とを比較し、その範囲内であれば影の判定対象とする。【０２０】  図５は本発明の第２パスにおける半暗影生成レンダラーを示す。図においてポリゴン内挿補間回路５０で求めたｘｙｚ座標および頂点属性情報（面法線や視線ベクトルなど）の内、座標値は光源系座標変換回路５２にて光源系座標値に変換する。これら座標値はシャドウバッファ、フラグバッファ、輝度バッファからなるバッファ５５のアドレスを生成するキャッシュアドレス制御回路５３に加わり、所定の物理アドレスに変換した後、バッファ５５およびシャドウレジスタ５４にアクセスし、記憶されているｘｙｚ最大最小値、識別子等を読み出し、これらと光源系座標値との間で比較器５６にて、レンダリング点の位置関係を計算・検索する。またバッファから読み出されたｚ値はｚ値差分計算回路５７にて遮光物体からレンダリング点までの距離を計算する。この差分値は輝度バッファからの情報によって補間回路５９にて０から２５５の範囲のペナンブラ暗度を決定する。また同時に前記差分値はアンプラ生成回路５８に加わり、アンブラの周辺光の回り込みによる輝度スケールを行う。このアンブラ値と前記ペナンブラ値とを加算器５Ｂにて加算し、これがアンブラとペナンブラを含めた影の暗度となる。レンダリング点が複数の影を受ける（キャッシュアドレス制御回路によってシャドウレジスタの対象数が複数あると判定された）場合、積算器５Ｃにおいて、その重畳する影の数分を加算累積する。また暗度を、真影を２５５、照射を０値としてそれぞれの回路では計算されているため、（１−暗度／２５５）に積算器５Ｃにおいて正規化した後、第２パスでのポリゴン内挿補間属性値を受けてテキスチャー、光反射計算などを行うシェーダー５１の輝度（これは通常赤、緑、青の３原色の輝度データ）と、乗算器５Ｄで乗算して、最終輝度Ｉｐを出力する。比較器５６の出力では、ｘ、ｙ、ｚ値との比較によって、レンダリング点と他のグループ物体や自身のグループ物体との幾何学的な関係が求め、マルチプレクサ５Ａの選択信号を生成し、アンブラのみの場合、ペナンブラとアンブラ合成の場合それぞれの入力選択を行う。よって比較器５６は比較のための減算器だけでなく、その結果から起動するシークエンサーで構成する。
【産業上の利用可能性】
【０２１】  本発明の回路はＩＰ（Ｉｎｔｅｌｌｉｇｅｎｔ  ｐｒｏｐｅｒｔｙ）として提供したり、グラフィックスプロセッサＬＳＩに実装されることで、ＣＧ映像製作やアムーズメントシステムに利用される。
【図面の簡単な説明】
【０２２】
【図１】「本発明に係わるソフトシャドウ関係図を示す。」
【図２】「本発明に係わる遮光物体とソフトシャドウの関係を示す。」
【図３】「本発明に係わる影の重畳関係を示す。」
【図４】「本発明に係わるバッファ構成を示す。」
【図５】「本発明のソフトシャドウ生成回路構成を示す。」
【符号の説明】
図１１０  光源１１  遮光物体１２  アンブラ部１３  ペナンブラ部図２２０  平面２１  シャドウバッファ２２  シャドウポリゴン２３  フラグバッファ２４  シャドウポリゴン領域２５  フィルタリング領域２６  輝度バッファ図３３０  遮光物体３１  アンブラ部３２  ペナンブラ部３３  ペナンブラ重畳部図４４０  シャドウバッファ４１  シャドウポリゴン４２  シャドウレジスタ４３  フラグバッファ４４  シャドウポリゴン領域４５  輝度バッファ４６  フィルタリング領域図５５０  ポリゴン内挿補間回路５１  シェーダー５２  光源系座標変換回路５３  キャッシュアドレス制御回路５４  シャドウレジスタ５５  バッファ５６  比較器５７  ｚ値差分計算回路５８  アンプラ生成回路５９  補間回路５Ａ  マルチプレクサ５Ｂ  加算器５Ｃ  積算器５Ｄ  乗算器
【図１】
2008152744.tif 000003
【図２】
2008152744.tif 000004
【図３】
2008152744.tif 000005
【図４】
2008152744.tif 000006
【図５】
2008152744.tif 000007