単一散乱マイクロファセットBSDFモデルにおけるエネルギー損失の補償


11

オリジナルのTorrance-Sparrow BRDFのような単一散乱マイクロファセットベースの表面モデル、またはWalterらによる粗い誘電体表面のBSDFのような派生モデル。マイクロファセット間の光の相互反射を無視します。これにより、特に粗さの値が高くなると、エネルギー損失が発生して暗くなる原因となります。

この問題は、ファーネステストを使用して簡単に実証できます。次の画像は、0.2から1.0までの粗さパラメーターのスミスモデルとGGX分布を使用した導電性マイクロファセットBRDFの実装の動作を示しています(問題を見やすくするために、ここではフレネル係数を意図的に1に設定しています)。

粗さ0.2 粗さ0.4 粗さ0.6 粗さ0.8 粗さ1.0

0.2から1.0までの粗さパラメーターのスミスモデルとGGXマイクロファセット分布を使用した粗い誘電体(IoR 1.51)BSDFのファーネステスト:

粗さ0.2 粗さ0.4 粗さ0.6 粗さ0.8 粗さ1.0

エリックハイツ他 は最近、光の相互作用を完全に解決することによって暗くなる問題を解決する多重散乱モデルを提案しましたが、LuxRenderフォーラムでHeitz自身が言及したように、その評価ルーチンの確率論的な性質に起因するパフォーマンスの問題があります。

単一散乱モデルの失われたエネルギーを回復するための既知の補償方法はありますか?必ずしも物理的に正しいわけではありませんが、少なくとも物理的な妥当性(ヘルムホルツの相反性とエネルギーの節約)を壊しすぎないようにします。理想的には、手動でパラメータを調整する必要はありません。

ディズニーBSDF、そこに端で暗くの補償のために使用することができる「光沢」と呼ばれるパラメータ化コンポーネント(基本的にはフレネルベースの光沢のある葉)があるが、彼らは彼らの中で言及してシーグラフ2015もちろん、それは非常にアドホックメソッドです。

「...これは非常に概算であり、他の粗さの値ではうまく機能しません...」

LuxRenderフォーラムでの前述の Eric Heitz のコメントも、補償ハックを使用することを提案していますが、残念ながら詳細については触れていません。

私の知る限り、より単純なハックを使用して、単一散乱モデルのエネルギー保存を改善できます(アルベドの微調整など)。ただし、これを行うと、BSDFの相反性を壊さずに、完全にエネルギーを節約する材料(たとえば、完全な白い粗いガラス)を得ることができません。

回答:


8

私の知る限り、単一散乱モデルで失われたエネルギーを回復する簡単で分析的な方法はありません。以前の手法はエネルギー損失を事前に計算し、それを拡散のようなコンポーネントとしてBRDFに再注入します。

彼らが提案しているのはエネルギー保存的で相反的なものであり、おそらくエネルギー損失による視覚的な暗化を修正する最も簡単な方法です。主な欠点は、エネルギー損失には分析式がないため、事前に計算してルックアップテーブルに保存する必要があることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.