超雑訳 Adaptive Shadow Maps

Share

こんにちわ、Pocolです。
今日は,Randima Fernando, Sebastian Fernandez, Kavita Bala, Donald P.Greenbergらによる”Adaptive Shadow Maps”を読んでみます。
いつもの通りに,誤字・誤訳があるかと思いますので,ご指摘いただける場合は正しい翻訳例と共に指摘していただけると有難いです。

Abstract

シャドウマップは、シーン内の影を識別するための高速で便利な方法を提供しますが、エイリアシングが招かれます。本論文では、この問題の解決策として、適応型シャドウマップ(ASM)を紹介します。ASMは、従来のフラット構造とは対照的に、階層的なグリッド構造として、Eyeビューとライトビューの間のピクセルサイズの不一致を解決することによって、エイリアシングを除去します(すなわち、光源に対するシャドウマップ)。ピクセルがEyeビューからライトビューに変換されると、ASMは、必要に応じてシャドウマップのより高解像度の部分を作成するために洗練されます。これは、シャドウマップピクセルの全体的な画質への寄与を評価することによって行われます。この改善プロセスは、ビュー駆動型、プログレッシブ型であり、ユーザーが指定できるメモリフットプリントに限定されます。我々は、ASMがインタラクティブレートを維持しながら、シャドウ品質の劇的な改善を可能にすることを示しています。

1 Introduction

影は、物体間の空間的な関係についての重要な情報を提供します [8]。影を生成するために一般的に使用される手法の1つがシャドウマップ[9]です。シャドウマップは、ライトビューから生成された奥行き画像です。レンダリング時に、Eyeビューの点がライトビューに変換されます。変換された点の深度をシャドウマップの深度と比較して、変換された点が光源から見えるかどうかを判断します。変換された点は、シャドウマップの対応する点よりも光に近い場合、ライティングしているとみなされます。そうでない場合は、その点は影になっているとみなされます。この情報は、Eyeビュー画像のシェーディングに使用されます。
シャドウマップの主な欠点の一つはエイリアシングであり、これは図1に描かれています。ここでは、単純なシーンの中の2つの異なる場所からのシーンを見ています。各図のグリッドは、現在の視点から見たシャドウマップの投影ピクセル領域を示しています。視点Aの光源ピクセルの投影面積は、シャドウマップのシャドウマップピクセルの面積とほぼ等しいので、この場合、エイリアシングは最小限に抑えられています。対照的に、視点Bはシーンジオメトリにかなり近く、その結果、このビューのシャドウマップピクセルの投影面積が大きくなります。これは、視点Bの大きな領域が、シャドウマップからの比較的少量の情報を使用してシェーディングされることを意味します。その結果、ここではギザギザのエッジとして描かれているように、重大なエイリアシング・アーティファクトが発生しています。
この論文では、シャドウマップのエイリアシングの主な原因である不十分なシャドウマップ解像度に対処するために、従来のシャドウマップを拡張した適応型シャドウマップ(ASM)を紹介します。我々は、必要に応じてシャドウマップのより高い解像度の部分を生成することで、ビュー駆動型のプログレッシブベースで画質を向上させるために、階層的なグリッド構造を使用しています。LRU(最近使用されたものでないもの)と優先度ベースのメモリ管理スキームの組み合わせにより、アルゴリズムのメモリ使用量を制限しています。
従来のシャドウマップでは、ライトが遠くにある場合や視野が広い場合にはパフォーマンスが低下するため、適切なシャドウ品質を確保するために、ライトを工夫した場所に配置することがよくあります。ASMは、現実的な配置と視野を可能にすることで、ユーザーがこのような制約を回避することを可能にします。また、ASMのビュー駆動型の性質により、従来のシャドウマップのパラメータを慎重に調整したり、過度に大きなシャドウマップを使用したりすることなく、インタラクティブなウォークスルー中に高品質のシャドウを生成することができます。


※図は,Randima Fernando, Sebastian Fernandez, Kavita Bala, Donald P.Greenberg, “Adaptive Shadow Maps”, SIGGRAPH 2001 より引用。

2 Previous Work

シャドウ生成アルゴリズムの完全なレビューは本稿の範囲を超えていますが、[6]と[11]は最も一般的な手法の包括的なレビューを提示しています。[9]で紹介された従来のシャドウマッピングは、シャドウを生成するために使用される一般的な手法です。これは画像空間の技法であるため、一般性、速度、実装の容易さの点で利点があります。しかし,シャドウマップのエイリアシングを除去することは困難な問題でありました.近傍比率フィルタリング [7] は,エイリアシング問題の解決策でありますが,重度のエイリアシングの場合には,ぼかすことでエイリアシングをマスクすることしかできません。ライトバッファ[3]は、シャドウの分析的テストを伴うフラットシャドウマップを使用することで、非インタラクティブなレイトレーサのコンテキスト内でエイリアシング問題を解決します。最も最近では、ディープシャドウマップ[5]は、ジッタリングされたサンプルを使用してプレフィルタリングすることでエイリアシングに対処しています。しかし、これらのシャドウマップは、不十分なシャドウマップの解像度によって引き起こされるエイリアシングには対応していません。

3 The Adaptive Shadow Map

ASMは、高品質のシャドウマップは一様な高解像度である必要はなく、シャドウ境界を含む領域のみを高密度にサンプリングする必要があるという観測に基づいています。これらの領域では、シャドウマップの解像度は、エイリアシングアーティファクトを避けるために、少なくともEyeビューの対応する領域と同じくらい高くなければなりません。
ASMは通常のシャドウマップを階層的に細分化し、視覚的に重要な領域でより高い解像度を提供します。従来のシャドウマップと同様に、ASMは変換されたEyeビュー点群を入力として受け取り、この点群に対してシャドウクエリを実行し、特定のポイントがライティングされている場合はtrue、そうでない場合はfalseを返します。ソフトウェアシステムでは、ASMは従来のシャドウマップをシームレスに置き換えることができます。
ASMには主に3つの特徴があります:

  • ビュー駆動型で、階層グリッド構造がユーザーの視点に基づいて更新されることを意味します。
  • ユーザーが指定できるメモリ制限に制限されています。メモリは効率的に管理され、ASMは同じ視覚品質の従来のシャドウマップで必要とされるメモリ使用量の爆発的な増加を回避します。
  • プログレッシブであり、一旦特定の視点が確立されると、ユーザーが指定したメモリの限界に達するまで画質が向上し続けることを意味します。

ASMはツリーとしてまとめられています。ASMツリーの各ノードは、固定解像度のシャドウマップと、そのシャドウマップを固定数のセルに分割したものを持っています。これらのセルのそれぞれには、別のツリーノードが含まれている場合があります。ツリー内のセルに対しては、2つの操作を行うことができます。空のセルは、そのセルに対応するシャドウマップ領域の解像度が、要求される画質を提供するのに十分に高くないと判断されたときに、そのセルに割り当てられた新しいノードを有してもよいです。ノードを含むセルには、そのノードとその子孫が削除されることもあります。これは、ユーザが指定したメモリ使用量の制限に応じて行われます。

3.1 Creating Nodes

任意の時間において新しいノードを割り当てる必要があるセルが多数存在します。インタラクティブなアプリケーションでは、これらの要件をすべて満たすことができない場合があります。したがって、どのセルを満たすべきかを決定するために、コスト・ベネフィット・メトリクスを使用します。新しいノードを作成することが有益なのは、シャドウの品質が改善されたと感じられる場合のみです(したがって、より高解像度のシャドウマップピースを作成することが有益となります)。我々は、深さの不連続性にまたがり、そしてそのシャドウマップの解像度がEyeビューの解像度よりも低いセル内の変換されたEyeピクセルの数をカウントすることによって、この知覚される恩恵を定量化します。汎用グラフィックスハードウェアのミップマッピング機能を使用して、Eyeビューとシャドウマップの解像度を推定します。これについては 4.1 節で詳しく説明します。
新しいノードを作成するためのコストは、その新しいシャドウマップを生成するために必要な時間の量です。Eyeビューピクセルサイズとシャドウマップピクセルサイズの比を用いて、新しいシャドウマップがアイビュー解像度と一致するために必要な解像度は以下の通りです:

\begin{eqnarray}
N_{required} = N_{current} \frac{Eye \, View \, Pixel \, Projected \, Area}{Shadow \, Map \, Pixel \, Projected \, Area}
\end{eqnarray}

ここで,\(N\)はシャドウマップセル内のピクセルの数です。
新しいシャドウマップを生成するためのコストは、次のように近似することができます:

\begin{eqnarray}
cost = a N_{required} + b
\end{eqnarray}

このコストモデルは、ハードウェアのリードバック性能が、リードバックされるバッファのサイズに応じてほぼ線形に変化し、リードバックサイズが非常に小さくなるにつれて非効率的になるという事実に基づいています。前処理としてキャリブレーションテストを実行し、与えられたハードウェア設定について、\(a\)(ピクセルあたりのレンダリングコスト)と\(b\)(一定のオーバーヘッド)を評価します。
新しいシャドウマップの利点は、解像度の不一致が解消される可能性のあるEyeピクセル数です。コスト-利益比がすべての見込みセルについて計算されると、セルはこの比に従ってソートされます。一貫したフレームレートを維持するために、新しいシャドウマップノードは、所定の制限時間が経過するまで、このリストから最も利益のあるセルについてのみ生成されます。

3.2 Removing Nodes

ASMは一定量のメモリしか使用しないので、特定のノードのメモリを再利用する必要があるかもしれません。これを実現するために、最後のフレームで使用されなかったすべてのノードに対してLRUスキームを使用し、最近使用されたノードを削除します。そのようなノードがない場合は、すべてのノードが現在表示されています。この場合、作成する必要のある新しいノードが既存のノードよりも大きなメリットがある場合にのみ、既存のノードを削除します。

4 Implementation

このセクションでは、追加のテクニックと最適化について説明します。

4.1 Mip-mapping

解像度の不一致がいつ発生するかを判断するために、アルゴリズムは、ピクセルの投影面積(すなわち、ピクセルがワールドスペースでカバーする面積)を計算しなければなりません。この計算をソフトウェアで行うのはインタラクティブレートではコストがかかりすぎるので、ミップマッピングを使ってこの計算を近似しています。
Mip-mapping [10]は、テクスチャマッピングに関連するエイリアシングアーティファクトを回避するために伝統的に使用されています。現在のグラフィックスハードウェアは、レンダリングされるピクセルの投影面積に基づいて異なる解像度のテクスチャ間を補間するパースペクティブ補正ミップマッピングを実装しています。この機能を使用して、以下のように投影されたピクセル領域を素早く近似します:このアルゴリズムは,各 mip-map レベルの解像度を,そのレベルのすべてのテクセル内に配置しています。したがって、3番目に小さいレベルでは2、3番目に小さいレベルでは4などのようになります。テクスチャ座標は、ワールド空間のテクセルのサイズが均一になるように設定されています。そして、すべてのポリゴンは、このミップマップされたテクスチャで描画されます。フレームが読み戻されると、各ピクセルにはトライリニアに補間されたミップマップレベルが含まれており、これは投影された領域の妥当な近似値となります。近似の精度を向上させるために異方性フィルタリングが使用されます。
さらなる最適化として、ミップマップのレベルはアルファチャネルのみでエンコードされ、残りのミップマップのチャンネルは白となります。これにより、後述するポリゴン ID リードバックと同時並行でリードバックを行うことができ、余分なレンダリングパスが不要になります。

4.2 Combining ID and Depth Comparisons

従来のシャドウマップでは、変換されたピクセルがライティングされるかどうかを確認するために、バイアスファクターを用いた深度比較を一般的に使用しています。しかし、このアプローチは、光の真横向きに近いサーフェスでアーティファクトが現れ、幾何学的なスケールが変化するシーンでは困難となります。深さ比較の代わりに可視性を決定するためにポリゴンごとのIDを使用することが[4]で提案されています。このアプローチは多くの場合で優れていますが、メッシュ境界に沿ってアーティファクトが発生します。そこで、我々は、変換されたピクセルの可視性の決定を実行するために、ポリゴンIDごとの比較と深度比較の組み合わせを使用します。IDテストが失敗した場合、従来の深度比較により、ポリゴン境界に沿ったアーティファクトを回避することができます。我々の結果は、バイアスの問題が残るものの、この単純な修正がポリゴン単位のIDや深度比較だけを使用するよりもロバストであることを示しています。

4.3 Optimizations

[2]で説明されているのと同様の深度カリング技術を使用して、ASMクエリを高速化することが可能です。最も最近問い合わせされたリーフノードを格納するキャッシュは、ASMルックアップをさらに高速化します。PentiumファミリのSSE/SSE2命令を使用するなどの低レベルの最適化は、Eyeビューからシャドウマップへのピクセル再投影を高速化するために使用することができます。
私たちのアプローチでは、セルがリファインされるにつれて、頻繁なレンダリングとリードバックが必要になります。リファイン中に各グリッドセルごとにシーン全体を再描画するのは非効率的なので、階層の最上位レベルのセルごとに錐台カリングを使用しています。
画像内のすべてのピクセルの解析にはコストがかかるため、我々のアルゴリズムでは、変換されたピクセルの一部のみを対象に費用対効果の高い解析を行います。この選択は、正確な解への収束が遅くなる可能性があります。しかし、我々の実装では、ピクセルの8分の1を解析することで、収束率に大きな影響を与えることなく、良好なパフォーマンスが得られることがわかりました。

5 Results

図2、3、4は、画像解像度512×512ピクセルの31,000ポリゴンシーンのインタラクティブなウォークスルーの結果を示しています。タイミングは、NVIDIA GeForce 2 Ultra グラフィックスボードを搭載した 1GHz Pentium 3 で行われました。このシーンは、我々のアルゴリズムのさまざまな側面をテストするために設計された3つの異なるオブジェクトを特徴としています。光源は\(122^{\circ}\)の視野角を持つ点光源です。物から離れた部屋の天井に配置されています。最初のオブジェクトは20,000ポリゴンのバニーモデルで、小さな三角形とポリゴンIDの頻繁な変動を扱うアルゴリズムの能力を示しています。他の2つのオブジェクトはロボットと微細なメッシュを持つ彫刻であり,様々なスケールの複雑な影の詳細を見つけ出して洗練させるアルゴリズムの能力を実証しています。
ウォークスルーでは、従来の2048×2048ピクセルのシャドウマップ(16MBのメモリを使用し、ピクセルごとに32ビットの深度を持つ)では、1秒間に平均8.5フレームであったのに対し、我々のアルゴリズム(同じく16MBのメモリを使用)では、1秒間に平均4.9フレームでした。図2と図3は、ASMによって達成された画像品質の劇的な向上を示しています。オブジェクトのクローズアップでは、同等の従来のシャドウマップサイズは非常に大きくなります(図2では65536×65536ピクセル、図3では524288×524288ピクセル)。このようなシャドウマップをインタラクティブなアプリケーションで実際に作成することは、作成時間が長いだけでなく、膨大なストレージ容量が必要となるため不可能です。
私たちの結果はまた、ASMが広い視野に対応できることを示しています。ASMのビュー駆動型の性質により、開始シャドウマップのサイズは比較的小さく、視野は比較的大きくすることができます。今回のウォークスルーでは、ASMの起動時の解像度は512×512ピクセルでした。
図4は、アルゴリズムのメモリ管理を示す図です。左から2048×2048ピクセルの従来のシャドウマップ、8MBのメモリを使用したASM、ASMで生成した画像を示していますが、左の画像と比較すると、いずれも画質がかなり向上しています。8MBのASMから16MBのASMへの画質向上を強調するために、それぞれの画像の2つの部分を拡大しています。
従来の2048×2048ピクセルシャドウマップでは、同じ総メモリ使用量(16MB)で117msを使用していましたが、ASMでは1フレームあたり約203msを使用しています。余分な時間は、コスト・ベネフィット分析(30ms)、ノード作成(5ms)、クエリのための階層のトラバース(35ms)、ポリゴンごとのID情報を収集するためのシーンのレンダリングとリードバック(16ms)に費やされました。


※図は,Randima Fernando, Sebastian Fernandez, Kavita Bala, Donald P.Greenberg, “Adaptive Shadow Maps”, SIGGRAPH 2001 より引用。

6 Conclusion

本論文では、シャドウマップの解像度不足によるシャドウマップのエイリアシングに対応するために、適応細分割を用いた新しい手法であるASMを紹介しました。ASMはビュー駆動型でプログレッシブであり、ユーザが指定できるメモリフットプリントで実行されます。ASMは従来のシャドウマップと同じ方法でアプリケーションとインターフェースするため、ソフトウェアシャドウマップを使用する既存のプログラムに簡単に統合することができます。ASMは自動的に適応して高品質の画像を生成し、経験豊富なユーザーの介入を必要としないため、インタラクティブなモデリングアプリケーションやオフラインレンダラで有用です。
この論文で紹介したアルゴリズムは、[5]で述べた技術を用いて、洗練されたシャドウセルの前処理と圧縮を行うために拡張することができます。さらに、知覚的マスキング [1] を用いて、マスクされた領域では、より少ない量で洗練されたシャドウセルを得ることができます。

7 Acknowledgements

和訳省略

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください