たとえば、ZBrush で使用される Matcap シェーダーと Bidirectional Radiance Distribution Function シェーダーの違いを知りたいだけです。
2つのテクニックは同じですか?Matcap は BRDF を使用して行われますか、それとも異なりますか?
1 に答える
これが非常に良い答えです。Matcap と BRDF Shadingは -2 よりもはるかに便利です。でも、それで文句を言ってはいけません…
ニコル・ボーラスから
Bidirectional Reflectance Distribution Functions を参照していると仮定すると、BRDF は幅広いクラスの照明方程式の派手な名前にすぎません。これらは、2 つの方向 (双方向) に基づいて表面からの反射率の分布を計算する関数です: 入射光の方向と表面の観察者の方向。BRDF の方向はどちらも、法線に対する相対的な方向で定義されるため、法線は実質的に暗黙のパラメーターです。
これは、照明方程式の非常に一般化されたカテゴリです。標準の Lambert、Blinn、Phong などはすべて、双方向反射率分布関数として認定されています。それらはすべて、光に向かう方向と視聴者に向かう方向の観点から述べることができます。
ただし、Matcap と比較しているので、すべての BRDF の一般的なカテゴリではなく、物理ベースの BRDF を参照していると思います。つまり、マシンを使用して計算されたテーブルから生成された BRDF は、ビューと光の方向が変化する実際のマテリアルの光の相互作用特性を検出します。
あなたが言及しているMatcapがこのようなものであると仮定すると、ノーと言わざるを得ません。少なくとも、Matcap の特定の実装はそうではありません。
非常に寛大になりたい場合は、BRDF です。しかし、可能な限り大まかな意味でのみ。なんで?計算された反射率は 2 つの方向のどちらでも変化しないためです。シェーダーを見てください。使用する唯一の方向情報は、サーフェスの法線です。これは色を計算するために使用されるプロパティですが、BRDF の観点からは定数です。
技術的になりたい場合、Matcap は BRDF を使用します。つまり、球のテクスチャです。それが実際の照明方程式です。これは、特定のビューと光の方向に基づく反射率分布です。
適切な物理ベースの BRDF は、事実上、2 つの方向の角度に基づく 4 次元のルックアップ テーブルです。Matcap は 2 次元のルックアップ テーブルを使用します。ルックアップは実際にはビューまたはライトの方向に基づいていません。ちょうど普通。Matcap は基本的に不正行為であり、適切な 4D BRDF の単一の静的 2D スライスを使用します。
いいえ、Matcap は BRDF ではありません。BRDF の結果を使用して特定のピクセルに色を付けるコード自体が BRDF ではないのと同じです。