(57)【要約】      （修正有）【課題】  影のシルエットライン上に生じるエイリアスを減少させる。【解決手段】  第１パスにおいて光源座標系でシャドウポリゴンを描画する際、アウトライン内挿補間回路において外郭線のｘ、ｙ、ｚ座標値に加えて、画素を４角形のグリッド領域とし、ポリゴン外郭線の傾き、小数点部、メジャーマイナー軸、ライトレフトライン、始点終点等の情報を求め、エッジ情報及びそれに対応するポリゴンのデプス値も複数のシャドウデプスバッファに記憶し、第２パスにおいては視点座標系で描画するポリゴン内挿補間点を光源座標系に変換して、前記シルエットラインバッファおよびシャドウデプスバッファを用いて内挿補間点がシャドウポリゴンの内外のいずれに属するかを判定する手段とで領域判定し、その領域がもつシャドウデプスバッファのデプス値と比較して、光源より遠方にあれば影、光源寄りにあれば照射点と見なす手段をもってシルエットラインのジャギーを軽減する。【選択図】図２
2006195939.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータグラフィックスにおける影の描画に関し、第１パスでは光源座標系においてシャドウポリゴンを、第２パスでは視点座標系において可視ポリゴンを描画する２パス・シャドウ表示方式において、光源に近い順にシャドウポリゴンのデプス値を順次記憶するためのシャドウ・デプスバッファと、シャドウポリゴンの外郭線（シルエットライン）上のエッジ情報を記憶するシルエット・ラインバッファを設け、第１パスでは隠面消去処理によってシャドウポリゴンのデプス値を少なくとも３つ以上、また外郭線エッジ情報は２つ以上をシャドウ・デプスバッファとシルエット・ラインバッファのそれぞれに記憶する手段と、第２パスにおいては視点座標系で可視ポリゴンを描画すると共に、可視ポリゴンの内挿補間座標値を光源系座標値に変換して、前記第１パスにおいて記憶した前記シャドウ・デプスバッファおよびシルエット・ラインバッファのそれぞれの情報を読み出し、前記内挿補間点がシャドウポリゴン内外のいずれに属するかを判定する手段として、シャドウ・デプスバッファの画素単位を４角形からなるグリッド空間として外郭線はこの空間を交差するものと見なし、前記外郭線のエッジ情報から前記内挿補間点の画素内におけるシャドウポリゴン内外の判定を行い、さらに前記シャドウ・デプスバッファに記憶されたそれぞれのデプス値を用いて、前記可視ポリゴンの内挿補間点が影か照射点かを決定するシャドウ・シルエット・アンチエリアス回路。
【請求項２】
請求項１の回路において、外郭線エッジ（以下シルエットラインという）情報として、シルエット・ラインバッファには画素毎に、シルエットラインの（１）有無フラグ（２）傾き、（３）長短軸フラグ、（４）ライト／レフト・エッジフラグ、（５）交差座標小数点値、および（６）接続点フラグのそれぞれを記憶する手段と、前記シルエット・ラインバッファには、前記シルエットライン情報を、少なくとも２組以上記憶する手段と、シャドウ・デプスバッファのデプス値と、シルエット・ラインバッファのシルエットライン情報とは識別子により帰属判定が可能とするそれぞれの手段をもつシャドウ・シルエット・アンチエリアス回路。
【請求項３】
請求項１および２の回路において、第１パスでシルエットライン情報をシルエット・ラインバッファに記憶する際、シルエットライン情報の内、ライト／レフト・エッジフラグを除いたすべての前記情報が、すでにシルエット・ラインバッファに記憶されている情報と一致した場合には、新たに記憶しようとする情報は、隣接するポリゴンの外郭線として、すでにシルエット・ラインバッファに記憶された有無フラグをリセットすると共に、新たなシルエットライン情報もシルエット・ラインバッファに記憶しない手段をもつシャドウ・シルエット・アンチエリアス回路。
【請求項４】
請求項１の回路において、第１パスにおいて視点に最も近いデプス値から少なくとも３番目に近いデプス値までを記憶する３つのシャドウ・デプスバッファを設け、シルエットライン上の画素において、より視点に近いシルエットラインのデプス値が新たに交差した場合は、すでにシャドウ・デプスバッファに記憶されたデプス値を順次繰り下げて記憶する手段と、繰り下げによって前記シャドウ・デプスバッファから消去されるシルエットラインがある場合には、前記シルエット・ラインバッファから、そのシルエットラインに対応する情報を消去する手段と、新たなシルエットライン情報を前記シルエット・ラインバッファに記憶する手段と、シャドウ・デプスバッファの内、２番目以降のバッファに記憶するデプス値は、それぞれ前番号のバッファのデプス値からの相対値として定義することで２番目以降のシャドウ・デプスバッファの容量を削減する手段をもつシャドウ・シルエット・アンチエリアス回路。
【発明の詳細な説明】
【技術分野】
【００１】  この発明は  コンピュータグラフィックスにおいてシャドウ・デプスバッファを用いた影の描画に関し、影のシルエットラインを滑らかに描画する技術に関する。
【背景技術】
【００２】  コンピュータグラフィックスによる影の描画法に関し、第１パスとして光源座標系でオブジェクトを描画し、シャドウ・デプスバッファに光源からの距離を記憶した後、第２パスとして視点座標系で再度、オブジェクトを描画すると共に、それぞれの描画点を光源系の座標値に変換して、描画点のデプス値の比較から影か否かを判定する２パスデプスバッファ方式がある。シャドウ・デプスバッファを用いて影の有無を判定する前記方式では、バッファの解像度の不足から、シャドウ・デプスバッファに記憶されたシャドウポリゴン（シャドウバッファに記憶された影のオブジェクト）が拡大されて投影される場合、影のシルエットライン（外郭線）上に映像品質を著しく低下するジャギー（階段状様態）が発生する。光源が点光源に近い場合には影の投下位置が遮光物体から離れれば離れるほど拡大されるため、このジャギーによる画質低下は実用上許容できないとされている。この問題に対応する方法として、スーパーサンプリング法のように数倍の大きさ（解像度）を持ったシャドウ・デプスバッファを実装するが考えられる。しかしシャドウ・デプスバッファは２次元配列構造であるためシャドウポリゴンのサイズ１に対して、影が２倍の大きさで投影された場合、一様な滑らかさで描画するには通常４倍のメモリ容量が必要となる。すなわち拡大率ｎ倍に対してｎ×ｎ倍の容量を要する。このアプローチはハードウエアコスト面で商用化には適さない。一方、シャドウマッピング方式と呼ばれる方法があるが、シャドウマップを予め作成しなければならない点で複雑にオブジェクトが乱立する場合には実時間描画が困難となる。一方、影をテキスチャーマッピングに見られる線形フィルタ等を加えてぼかし、ジャギー効果を軽減する方法もある。影のボケ様態は遮光物体に近い位置から遠い位置に向かって連続的に変化することと、フィルタリングは局所的な（高周波成分）ぼかしには効果はあるものの、大きなジャギーパターンには効果は得られない。本発明はスーパーサンプリング法に見られるようなイメージバッファに対応したシャドウバッファの解像度を上げるのではなく、シルエットライン情報を用いて影のシルエットラインを滑らかに表示する手段に関わるものである。
【発明の開示】
【発明が解決しようとする課題】
【００３】  シルエットラインのスムージングは、シャドウポリゴンの内挿補間点での解像度を高めるスーパーサンプリング方法が知られているが、前記【００２】節で指摘した問題点をもつ。本発明はスーパーサンプリングに比べて、僅かなハードウエアコストで滑らかな影のシルエットラインを実時間で描画する手段を課題とする。以下本発明のシルエットラインのアンチエリアスを得るための手段を説明する。
【課題を解決するための手段】
【００４】  光源系での第１パスの描画で、オブジェクト面を構成する多角形（ポリゴン）をレンダリングする際、本発明ではまずポリゴン頂点間を結ぶ外郭線（アウトライン）に沿って頂点情報を線形に補間し、その後、スパンプロセッサにおいて、外郭線の左右両端点間を水平方向に線形補間を行い、ポリゴン全体を描画する。ポリゴンのアウトラインを補間する際、直線発生器（補間回路）では以下の（１）から（６）までの情報が補間処理の過程で生成されるか、生成可能である。（１）シルエットライン（エッジ）フラグ（２）傾き、（３）メジャーマイナー軸、（４）ライト／レフト・ライン、（５）小数点以下の値、および（６）始点あるいは終点のそれぞれである。アウトラインの描画は頂点間を結ぶ２点間でそれぞれ行われるが、ここで２点のそれぞれを（ｘ０、ｙ０、ｚ０）と（ｘ１、ｙ１、ｚ１）としたとき（１）式の関係となる。
2006195939.tif 000003
（１）式において前記傾きは（ｄｘ／ｄｙ）、メジャーマイナーはｄｘ−ｄｙの符号が示し、ライト／レフト・ラインは、本発明においてはアウトラインをＹ軸最小点から左右に分岐して補間するため、描画時の外郭線がその左右いずれかを示すフラグで示すことができる。また小数点以下の値とは傾きを除算した小数点以下の値（以下フラクションと言う）となる。例えばＸ軸メジャーとはｄｘ−ｄｙが正となり、外郭線の傾きが４５°以下の場合を言う。前記はＸ軸メジャー（ｄｘ≧ｄｙ）の場合であるが、ｄｙ＞ｄｘの場合では（１）式においてＸとＹが入れ替わる。（１）式でフラクションは補間点毎に変化する。１つの補間点は１つの画素に対応するが、１つの画素を１辺の大きさを１とする４角形空間（グリッド）と見なせば、傾きとフラクションはそのグリッドを交差する直線の傾きとグリッドの１辺との交差点を示す。これにメジャー・マイナーフラグとライト／レフト・ラインを考慮すれば、グリッドに交差する直線の内側と外側の面積が計算できる。グリッドに始点終点が含まれる場合は、シルエット・ラインバッファには２組のエッジ情報が記憶される。これらからグリッド内の外郭線の交点を求め、内挿補間点の領域の判定を行う。本発明では前記（１）〜（６）のそれぞれを、シルエット・ラインバッファを設けてこれに記憶する。一方、画素点には１つの直線だけでなく複数の直線あるいは接続点が含まれることがある。本発明では少なくとも２つの直線の前記（１）〜（６）を記憶する。フラクションおよび傾きの精度はグリッドの分割度を意味するが、それぞれ３ビット（８×８分割）程度で十分な効果を得る。この結果、シルエット・ラインバッファの容量はスーパーサンプリング法と異なり大きくならない。
シャドウポリゴンをシャドウ・デプスバッファに描画する際、光源にもっとも近いポリゴンのデプス値を記憶する。この際、前記アウトライン補間で得られるシルエットライン情報を含むポリゴンのデプス値が、後書きの他のポリゴンのデプス値と比較して光源よりも離れている場合、シルエットライン情報もデプス値同様に書き換えを行う。この結果、第１パスの終了時点ではシルエット・ラインバッファには光源に最も近いシャドウポリゴンの前記（１）〜（６）のライン情報のみが記憶される。
一方、オブジェクトのポリゴンはシルエットラインだけでなくポリゴン内部で隣接する接続面（ポリゴン境界）をもつ。このポリゴン境界はシルエットエッジではないため、シルエット・ラインバッファにはエッジフラグは立てない。ポリゴン境界であるためエッジフラグをリセットするには、前記（１）〜（６）の情報をシルエット・ラインバッファに書き込む際、すでに記憶されたエッジ情報と比較し、ライト／レフト・ラインが異なり、その他の情報が一致することで可能となる。【００５】  光源座標系でレンダリングした第１パスが終了すると、視点座標系で第２パスを開始する。第２パスではポリゴン頂点に定義した頂点座標値を補間してポリゴン内部の座標値を得るが、補間座標値は画素毎に第１パスの光源座標系に変換する。本発明では視点座標系から光源座標系に変換された座標値をｘｌおよびｙｌとすると、これら座標値を用いてシャドウポリゴンに記憶されたデプス値ｚｄと、シルエットライン情報を読み出す。デプス値ｚｄと前記光源座標系に変換した内挿補間点のｚｌ値とを比較して、前記ｚｌ値が光源に遠い場合は影として、近い場合は照射点とする。このときｚｄとｚｌとをそのまま比較したのではシャドウ・デプスバッファがもつ解像度以上のデプス判定はできない。ここで本発明では、内挿補間点を光源座標系に変換する際、ｘｌおよびｙｌ座標値の整数部だけでなく、小数点以下（フラクション）の値も出力する。フラクションは画素グリッド内部の内挿補間点を示し、この結果、フラクションを含む内挿補間点がグリッド領域内で、シャドウポリゴン外郭線がグリッドエッジとの交差によって作られる領域の内外のいずれに属するかを前記（１）〜（６）のシルエット・ラインバッファの情報を用いて判定することができる。内部であればその画素のデプス値と、また外部であれば外部（周辺画素）のデプス値とを比較して、影の有無を判定する。ポリゴンの接続点のように、二つのラインがグリッド内で交差する場合はグリッドの辺と二つの直線で囲まれた領域を計算して判定する。【００６】  前記ｘｌおよびｙｌ座標値の整数部は画素アドレスを、またフラクション部は画素内の位置を示すが、画素がポリゴンエッジとなる場合は、シャドウバッファのデプス値ｚｄと前記内挿点のｚｌを比較した。内挿補間点が画素グリッドで交差するシルエットラインの外側に位置する場合は、それを照射部と即断することはできない。シルエットライン外の領域もまた別の遮光物体の影である可能性がある。このためエッジ画素内に複数のデプス値を記憶し、それらとさらなる比較が必要となる。この手段としてデプスバッファを２組以上用意し、光源に最も近いシャドウポリゴンがら順次光源に近いシャドウデプス値をそれぞれ記憶し、シルエットラインの外側に内挿補間点が位置した場合は、同一グリッド内で対応するデプスバッファのデプス値と比較する。それぞれのデプスバッファは光源に近い方のデプス値は絶対値で、他方は差分値を記憶することでメモリ容量を削減することができる。２番目以降のバッファはデプス値の差分値で記憶するとして、メモリコストが許容されるシステムであれば、複数のデプスバッファの実装が可能となる。実用的なデプスバッファ最小数は３組である��【００７】  オブジェクトが異なるポリゴンがそれぞれ同一のグリッド内で交差する場合、複数のデプスバッファがいずれのポリゴンの領域に属するかを判別できなければならない。本発明ではこのためにはエッジ情報に識別子を付加し、そのエッジ情報（内側）に対するデプスバッファを対応させる。これは１ビットをエッジ情報に付加すればよい。２つ以上のデプスバッファシステムであれば数ビットを用いて識別子とする。【００８】  第２パスにおいて、光源座標系に変換した座標値がシルエットエッジと判定された場合、シルエット・ラインバッファから第１パスで記憶した複数のエッジ情報を読み出す。それぞれのエッジ情報から（２）式を用いて内挿補間点のエッジの内外判定を行う。（２）式はｘ軸が長軸で（ａ）はエッジが右（内部がエッジライン上部）、（ｂ）は左（内部がエッジライシ下部）の場合を示し、シルエット・ラインバッファから読み出されたｉ番目のエッジ情報の傾きΔＳｉとフラクションＹｆｉに対して、内挿補間点（ｘ０、ｙ０）をテストする。ｙｉはサンプリングｘ座標値ｘ０を代入した直線式であり、求めたｙｉがｙ０に対して差分比較を行う。ｙ軸が長軸となる場合はｘ、ｙ座標を入れ替える。
2006195939.tif 000004
表１は（２）式によって得た複数の内外判定結果とデプス値との関係を示す。表１は２つのエッジ情報との（２）式テスト結果Ｅｄｇｅ１とＥｄｇｅ２を、またＥｄｇｅ１に対するデプス値Ｄｅｐｔｈ１、Ｅｄｇｅ２のデプス価Ｄｅｐｔｈ２および背景のデプス値Ｄｅｐｔｈ３を示す。
【表１】
2006195939.tif 000005
表１で内挿補間点がいずれのシルエットの対しても外部となる場合は背景となるシャドウポリゴンのデプス値が比較判定結果の情報となり、この値と前記光源座標系の視点座標からの変換デプス値ｚｌとを比較する。
本発明ではｎ組のエッジ情報をシルエット・ラインバッファに記憶する場合、ｎ＋１個のデプスバッファを実装する。実用的には表１の例に示す２つのエッジ情報と３つのデプスバッファとなる。傾きとフラクションをそれぞれ３ビットとすると画素グリッドは６４に分割されたことを意味し、スーパーサンプリング法に比較してメモリ容量を１／３２にすることが可能となる。【００９】  複数のデプスバッファを設ける場合、デプス値は通常３２ビット相当の精度を与える。このビット精度で多数のデプスバッファを用意すれば、スーパーサンプリング法に対するハードウエアコスト上の利点が失われる。これを避けるには２番目以降のデプスバッファは１番目のデプス値からの距離として、相対値（差分値）を記憶する方法がある。もしこの差分値が規定のバッファサイズを超える場合にはオーバーフローフラグをその超えたバッファの１ビットを用いて立て、２つのデプスバッファ範囲を占有する。この場合にその画素に対応するデプスバッファは１つ失われることになるが実用的にはこの場合、その背後の影は視点から相当な遠方にあることを意味し、その遠方よりさらに遠方のレンダリング物体の影については現実感として問題とすることは少ない。よって最初の物体の影に隣接する複雑に交差する影を表現することには問題がない。【０１０】  以上から本発明では、光源に近い順にシャドウポリゴンのデプス値を順次記憶するためのシャドウ・デプスバッファと、シャドウポリゴンの外郭線（シルエットライン）上のエッジ情報を記憶するシルエット・ラインバッファを設け、第１パスでは隠面消去処理によってシャドウポリゴンのデプス値を少なくとも３つ以上、また外郭線エッジ情報は２つ以上をシャドウ・デプスバッファとシルエット・ラインバッファのそれぞれに記憶する手段と、第２パスにおいてはシャドウ・デプスバッファの画素単位を４角形からなるグリッド空間として外郭線はこの空間を交差するものと見なし、外郭線のエッジ情報から内挿補間点の画素内におけるシャドウポリゴン内外の判定を行い、さらにシャドウ・デプスバッファに記憶されたそれぞれのデプス値を用いて、前記可視ポリゴンの内挿補間点が影か照射点かを決定する手段と、シルエットライン情報として、シルエット・ラインバッファには画素毎に、シルエットラインの（１）有無フラグ（２）傾き、（３）長短軸フラグ、（４）ライト／レフト・エッジフラグ、（５）交差座標小数点値、および（６）接続点フラグのそれぞれを記憶する手段と、シャドウ・デプスバッファのデプス値と、シルエット・ラインバッファのシルエットライン情報とは識別子により帰属判定が可能とする手段と、第１パスでシルエットライン情報をシルエット・ラインバッファに記憶する際、シルエットライン情報の内、ライト／レフト・エッジフラグを除いたすべての前記情報が、すでにシルエット・ラインバッファに記憶されている情報と一致した場合には、新たに記憶しようとする情報は、隣接するポリゴンの外郭線として、すでにシルエット・ラインバッファに記憶された有無フラグをリセットすると共に、新たなシルエットライン情報もシルエット・ラインバッファに記憶しない手段と、第１パスにおいて視点に最も近いデプス値から��なくとも３番目に近いデプス値までを記憶する３つのシャドウ・デプスバッファを設け、シルエットライン上の画素において、より視点に近いシルエットラインのデプス値が新たに交差した場合は、すでにシャドウ・デプスバッファに記憶されたデプス値を順次繰り下げて記憶する手段と、繰り下げによってシャドウ・デプスバッファから消去されるシルエットラインがある場合には、シルエット・ラインバッファから、そのシルエットラインに対応する情報を消去する手段と、新たなシルエットライン情報をシルエット・ラインバッファに記憶する手段と、シャドウ・デプスバッファの内、２番目以降のバッファに記憶するデプス値は、それぞれ前番号のバッファのデプス値からの相対値として、２番目以降のシャドウ・デプスバッファの容量を削減するそれぞれの手段をもつことを特徴とする。
【発明の効果】
【０１１】  本発明によりコンピュータグラフィックスにおいて、物体間の幾何学的関係の認知に最も重要な機能である影を、スムーズなシルエットラインで描画することが可能となり、高品質な映像を描画できる。
【発明を実施するための最良の形態】
【０１２】  本発明の回路はグラフィックスＬＳＩに実装するか、ＩＰ（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｐｒｏｐｅｒｔｙ）としての形態で実施される。
【実施例】
【０１３】  以下、本発明の実施例を説明する。図１には本発明の１つの画素グリッドとそのグリッドに交差するシルエットラインを示す。図１の１０は１本のシルエットライン１５が交差している場合を示し、傾きΔＳと、ｙ軸との交差点ｆｙをもつ。グリッドの大きさを１とすれば、グリッド内に内挿補間点が存在したとき、シルエットラインには左右いずれが内外であるかの情報を持っており、内挿補間点がシルエットラインの内側および外側かは前記（２）式によって判定できる。グリッド１１〜１３はそれぞれ２つのシルエットライン（傾きがΔＳ０およびΔＳ１）が交差する場合であり、ｆｘ、ｆｙはいずれもそれぞれｘおよびｙ軸との交差点を示す（グリッド１３では交差点ｆｙ０、ｆｙ１は２つともｙ軸に交差）。これらのいずれの状態であっても、内挿補間点がどの領域に属すかはそれぞれのラインに対して内外判定を行えば判定可能となる。一方、グリッド１４は複数のシルエットラインが交差する場合を示す。このような場合は内挿補間点の領域判定は行わない。対象となる画素グリッドにはマルチラインフラグ（２本以上のシルエットラインが交差する）が立っており、この場合は周辺の画素の輝度の平均値を、内挿補間点の輝度とする。【０１４】  図２は本発明のシャドウ・シルエット・アンチエリアス回路の全体図を示す。アウトライン内挿補間回路２０は、ポリゴン頂点に定義された情報を外郭線に沿って線形に補間して外郭線上の画素それぞれの情報（ｘ、ｙ、ｚ座標値、テキスチャーマッピング座標値、面法線など）を求める。さらにスパン内挿補間回路２１では、前記外郭線と水平軸とが交わる外郭線の両端点情報を補間してポリゴン内部におけるすべての頂点定義情報を得る。アウトライン内挿補間回路２０では、外郭線上での前記の頂点定義情報に加えて、前記【００４】項の（１）〜（６）のエッジ情報も出力する。エッジ情報はシルエット・ラインバッファ２２に記憶される。１つの画素グリッドには２組までのエッジ情報が記憶できる。また外郭線上のデプス値（ｚ座標値）は、３つのシャドウ・デプスバッファ２５，２６および２７のそれぞれに記憶されたシャドウポリゴンのデプス値と比較回路２３で比較する。比較回路２３では以下の（Ａ）から（Ｆ）までの判定処理を行う。
（Ａ）外郭線のデプス値がもっとも光源に近い（シャドウ・デプスバッファに記憶されたすべてのデプス値よりも光源に近い位置にある）場合には、前記エッジ情報をシルエット・ラインバッファに記憶する。またシャドウ・デプスバッファ１（２５）にそのデプス値を記憶すると共に、バッファ１（２５）のデプス値はバッファ２（２６）に、バッファ２（２６）のデプス値はバッファ３（２７）に移動する。この際、すでにエッジ情報がシルエット・ラインバッファ２２に記憶されている場合には、第１番目のエッジ情報を更新し、記憶されていた１番目のエッジ情報を第２番目のエッジ情報として移動する。
（Ｂ）外郭線のデプス値がシャドウ・デプスバッファ１（２５）のデプス値よりも遠方にあり、また２番目に光源に近いデプス値を記憶するデプスバッファ２（２６）より光源に近い場合には、２番目のエッジ情報を更新し、且つシャドウ・デプスバッファ２（２６）のデプス値を更新すると共にバッファ３（２７）に移動する。
（Ｃ）外郭線のデプス値がシャドウ・デプスバッファ２（２６）のデプス値よりも遠方にあり、また３番目に光源に近いデプス値を記憶するデプスバッファ３（２７）より光源に近い場合には、３つのエッジが１つの画素グリッドに交差ものと見なしシルエット・ラインバッファにマルチラインビットを立てる。シャドウ・デプスバッファ３（２７）のデプス値は更新する。
（Ｄ）シルエット・ラインバッファにはエッジ情報が記憶されておらず（フラグが立ってない）、且つシャドウ・デプスバッファの全てあるいはいずれかのデプス値より遠方に位置する場合には、ポリゴン内面の後方に外郭線は位置するものとして、前記エッジ情報はシルエット・ラインバッファには記憶しない。
（Ｅ）スパン内挿補間回路２１ではポリゴン内部の頂点定義情報を求めるが、そのうちのデプス値も、前記外郭線デプス値同様にシャドウ・デプスバッファ２５，２６および２７のデプス値と、マルチプレクサ２４を通して、デプス比較回路２３において大小関係を比較し、もしスパン内挿補間回路２１からのデプス値がそれぞれのシャドウ・デプスバッファのデプス値よりも光源寄りに位置する場合で、且つエッジ上の値ではない場合、シルエット・ラインバッファに記憶されたエッジは内挿補間中の画素の後方に位置するものとして、すでに記憶されている全てのエッジフラグをリセットする。
（Ｆ）前記（Ｅ）において、スパン内挿補間回路２１からのデプス値がシャドウ・デプスバッファ１（２５）のデプス値よりも遠方、デプスバッファ２（２６）より光源寄りで、且つエッジ上の値ではない場合、シルエット・ラインバッファに記憶された第１番目のエッジ情報はそのままにして第２番目のエッジフラグ（記憶されている場合）をリセットする。
一方、ポリゴン内部の画素はスパン内挿補間回路２１から出力されるが、このデプス値が最も光源に近い場合はシャドウ・デプスバッファ１（２５）のデプス値に置き換える。さらにバッファ１（２５）のデプス値はバッファ２（２６）に、バッファ２（２６）のデプス値はバッファ３（２７）に移動する。この結果、バッファ３（２７）にそれまで記憶されていたデプス値は削除される。これはスパン内挿補間回路からのデプス値が２番に光源に近い場合は、バッファ２５はそのままに、バッファ２６に新しいデプス値が入れ替わり、バッファ２６のデプス値はバッファ２７に移動する。３番目に近い場合はバッファ３のみ置き換わる。
以上の（Ａ）から（Ｆ）までの処理の結果、シルエット・ラインバッファにエッジフラグが立っている場合、このエッジ情報は最も光源に最も近いシャドウポリゴンの外郭線であるか、あるいは２組のエッジ情報が記憶されている場合（エッジフラグを検査することで判断する）は、シャドウ・デプスバッファ２５および２６に記憶されているデプス値とシルエット・ラインバッファに記憶されている１および２番目のエッジ情報は、それぞれ光源に最も近いポリゴンと２番目に近いポリゴンの外郭線上のものとなる。
一方、スパン内挿補間回路２１からの画素にはエッジの画素も含まれる。この場合、スパン内挿補間回路からの新しいデプス値と、シャドウ・デプスバッファのデプス値とは一致する。この場合、現在補間している同一のポリゴンのエッジなのか否かの判定が必要となる。これはポリゴンあるいはオブジェクトに付加される識別子を画素単位で記憶することで、新しい画素とすでに記憶された画素との比較を行うことで判断できる。【０１５】図３は第２パスに関する本発明のシャドウ・シルエット・アンチエリアス回路を示す。第２パスでは視点座標系でのポリゴンの内挿補間を行い、スパン内挿補間回路３０からのｘ、ｙ、ｚ座標値を光源系座標変換回路３１にて光源系座標値に変換する。光源系座標値はシルエット・ラインバッファ３３とシャドウ・デプスバッファ３４のアドレスとなり、第１パスで求めたエッジ情報とデプス値をそれぞれ読み出す。バッファ３３と３４は、それぞれ図２におけるシルエット・ラインバッファ２２およびデプスバッファ１〜３（２５〜２７）に相当する。読み出したシルエット・ラインバッファのエッジフラグからその画素点がエッジであると判定された場合には、領域計算および輝度決定回路３２において、シルエット・ラインバッファから読み出した前記【００４】項に記載した（２）〜（６）を用いて内挿点とエッジとの領域判定と、その領域がもつデプス値との比較を行う。視点座標系でのポリゴンの内挿補間点が影の可能性があると判定された（スパン内挿補間回路からのデプス値が、シャドウ・デプスバッファのいずれかのデプス値よりも光源から遠方にある）場合、内挿補間点が１番目および２番目の外郭線の内側か外側かのいずれに属するのかを決定し、いずれかの内側と判定された場合には、その内側となるシャドウ・デプスバッファのデプス値と比較し、そのデプス値よりも遠方にある場合には影と見なす。一方、光源寄りにある場合には照射点とする。２つのエッジ情報から外郭線の内外判定においていずれも外部とされた場合は、デプスバッファ３（２７）のデプス値との比較において光源から見て遠方であれば影、光源寄りであれば照射点とする。一方、内挿点がいずれのシャドウ・デプスバッファのデプス値よりも光源寄りに位置している場合には、内挿点を照射点と見なす。領域計算および輝度決定回路３２では前記判定して得られた影の有無に対して内挿補間点の輝度を決定するシェーダーに輝度のスケール値を出力することで影を生成する。
【産業上の利用可能性】
【０１６】
【０１７】  本発明の回路はＩＰ（Ｉｎｔｅｌｌｉｇｅｎｔ  ｐｒｏｐｅｒｔｙ）として提供したり、グラフィックスプロセッサＬＳＩに実装されることで、ＣＧ映像製作やアムーズメントシステムに利用される。
【図面の簡単な説明】
【０１８】図１「本発明に関する画素グリッドとポリゴン外郭線との交差関係図を示す。」
図２「本発明の第１パスにおけるシャドウ・シルエット・アンチエリアス回路を示す。」
図３「本発明の第２パスにおけるシャドウ・シルエット・アンチエリアス回路を示す。」
【符号の説明】
図１
１０〜１４  画素グリッド
１５  ポリゴン外郭線
図２
２０  アウトライン内挿補間回路
２１  スパン内挿補間回路
２２  シルエット・ラインバッファ
２３  デプス比較回路
２４  マルチプレクサ
２５  シャドウ・デプスバッファ１
２６  シャドウ・デプスバッファ２
２７  シャドウ・デプスバッファ３
図３
３０  スパン内挿補間回路
３１  光源系座標変換回路
３２  補間点領域計算および輝度決定回路
３３  シルエット・ラインバッファ
３４  シャドウ・デプスバッファ
【図１】
2006195939.tif 000006
【図２】
2006195939.tif 000007
【図３】
2006195939.tif 000008