タグ付けされた質問 「microfacet」

1
単一散乱マイクロファセットBSDFモデルにおけるエネルギー損失の補償
オリジナルのTorrance-Sparrow BRDFのような単一散乱マイクロファセットベースの表面モデル、またはWalterらによる粗い誘電体表面のBSDFのような派生モデル。マイクロファセット間の光の相互反射を無視します。これにより、特に粗さの値が高くなると、エネルギー損失が発生して暗くなる原因となります。 この問題は、ファーネステストを使用して簡単に実証できます。次の画像は、0.2から1.0までの粗さパラメーターのスミスモデルとGGX分布を使用した導電性マイクロファセットBRDFの実装の動作を示しています(問題を見やすくするために、ここではフレネル係数を意図的に1に設定しています)。 0.2から1.0までの粗さパラメーターのスミスモデルとGGXマイクロファセット分布を使用した粗い誘電体(IoR 1.51)BSDFのファーネステスト: エリックハイツ他 は最近、光の相互作用を完全に解決することによって暗くなる問題を解決する多重散乱モデルを提案しましたが、LuxRenderフォーラムでHeitz自身が言及したように、その評価ルーチンの確率論的な性質に起因するパフォーマンスの問題があります。 単一散乱モデルの失われたエネルギーを回復するための既知の補償方法はありますか?必ずしも物理的に正しいわけではありませんが、少なくとも物理的な妥当性(ヘルムホルツの相反性とエネルギーの節約)を壊しすぎないようにします。理想的には、手動でパラメータを調整する必要はありません。 でディズニーBSDF、そこに端で暗くの補償のために使用することができる「光沢」と呼ばれるパラメータ化コンポーネント(基本的にはフレネルベースの光沢のある葉)があるが、彼らは彼らの中で言及してシーグラフ2015もちろん、それは非常にアドホックメソッドです。 「...これは非常に概算であり、他の粗さの値ではうまく機能しません...」 LuxRenderフォーラムでの前述の Eric Heitz のコメントも、補償ハックを使用することを提案していますが、残念ながら詳細については触れていません。 私の知る限り、より単純なハックを使用して、単一散乱モデルのエネルギー保存を改善できます(アルベドの微調整など)。ただし、これを行うと、BSDFの相反性を壊さずに、完全にエネルギーを節約する材料(たとえば、完全な白い粗いガラス)を得ることができません。

1
GGXジオメトリ用語の正しい形式
レイトレーサーにマイクロファセットBRDFを実装しようとしていますが、いくつかの問題が発生しています。私が読んだ多くの論文や記事は、ビューと半ベクトルの関数として部分幾何学用語を定義しています:G1(v、h)。しかし、これを実装すると、次の結果が得られました。 (一番下の列は1.0〜0.0の粗さの誘電体、一番上の列は1.0〜0.0の粗さの金属です) エッジの周りに奇妙なハイライトがあり、nl == 0の周りにカットオフがあります。これがどこから来ているのか本当にわかりませんでした。レンダーを確認するための参照としてUnityを使用しているので、シェーダーソースをチェックして、何が使用されているかを確認し、ジオメトリ用語が半ベクトルによってパラメーター化されていないことを確認できます!だから私は同じコードを試しましたが、半分のベクトルの代わりに表面の法線をマクロに使用し、次の結果を得ました: 私の訓練されていない目には、これは望ましい結果に非常に近いようです。しかし、私はこれが正しくないと感じていますか?私が読んだ記事の大部分は半分のベクトルを使用していますが、すべてを使用しているわけではありません。この違いの理由はありますか? ジオメトリ用語として次のコードを使用します。 float RayTracer::GeometryGGX(const Vector3& v, const Vector3& l, const Vector3& n, const Vector3& h, float a) { return G1GGX(v, h, a) * G1GGX(l, h, a); } float RayTracer::G1GGX(const Vector3& v, const Vector3& h, float a) { float NoV = Util::Clamp01(cml::dot(v, h)); float a2 = …

1
スミスの多重散乱はどのように拡散した表面下散乱と相互作用しますか?
スミスモデルと多重散乱微小のBSDF紙パスをトレースすることができる分布を有する(0への寄与を設定することにより、複数の面の交点とのパスを占める)微小面のBSDFでマスキングシャドウイング機能を交換するための統計モデルを記載していますそして、光線が出る前に、マイクロファセット表面と数回交差することができます。 これは、ボリューム(マイクロフレーク)モデルを変更して、ハイトフィールドのように動作するようにします。つまり、サーフェスの「上」にあるものと衝突することはなく、常に「下」にあるものと衝突するようにします。 その結果、スライドからの言い回しを使用すると、「光線はスミスボリュームを通過することはできません。モデルは不透明な表面のようなインターフェースを作成します。」 このモデルは、パスが終了前にサーフェスを介して認識可能な(マクロスケール)距離を移動できる、従来の拡散サブサーフェススキャタリングと互換性がありますか?または、これは単に、サーフェスの内部にある長いパスをモデリングするつもりのない鏡面BSDFであり、そのコンポーネントを追加する拡散BSDFと組み合わせるためのものですか? (ボリュームレンダリングのマイクロフレークモデルは、通常、拡散と鏡面反射を分離しますか、それとも、単に「拡散」して、何回も跳ね返って、出力方向が均一に分散されるパスです。)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.