ハーフベクトルが拡散BRDFフレネル計算で使用されないのはなぜですか?


8

私は現在、アールハモンJrのプレゼンテーションPBR拡散照明GGX + Smithマイクロサーフェス用)(現在は[PBR、p.XYZ]と呼ばれています)を使用しており、ブレントバーレイの物理ベースのシェーディング(現在は[DIS 、p。XYZ]をクリックして、適切な拡散BRDFコンポーネントを取得します。この2つをフレネル項と組み合わせることに行き詰まっています。

私が使用するベクトルと角度の簡単な紹介:

  • ωiは光ベクトルです
  • ωoはビューベクトルです
  • ωnは通常のマクロジオメトリです

  • θiはと間の角度ですωiωn

  • θoはと間の角度ですωoωn
  • θhはと間の角度ωnωh
  • αhiはと間の角度ωiωh
  • αhoはと間の角度(この区別は明確にするためです)ωoωh
  • αhは等しいので、、いずれかの角度ですαhiαho

ここで、はフレネルファクターのないスペキュラーコンポーネントのBRDF項であり、はフレネルスタッフのない拡散コンポーネントの項なので、フレネルファクターはとして記述されます。[PBR、p.105]は、拡散光が2回透過されると述べています。したがって、フレネルコンポーネントは2倍する必要があります。[PBR、p。106]は続けて、フレネルの法則はsymmetrixであると言います。つまり、出入りは方向に依存しないことを意味します(つまり、いったん空気から材料に入って、いったん空気から出ても問題ありません)。今、私は(が入るためのフレネルであり、が材料を出るためのフレネルである)と仮定するとrsrdF(angle)F1F2

(1F1(αhi))(1F2(αho))

F1とは同じ関数であり、とは同じ角度なので、F2αhiαho

(1F(αh))2

これはbrdfつながります:f

f=F(αh)rs+(1F(αh))2rd

しかし[PBR、p.113]と[DIS、p.14]の両方が

f=F(αh)rs+(1F(θi))(1F(θo))rd

Shirelyらによるこの種の計算を使用するための元の論文と同様に。1997.私はこれを取得できません。なぜそれらはマイクロファセット角度からマクロ角度に変わるのですか?マイクロファセット角度はエネルギー会話につながります

F[0,1] (1F)[0,1] (1F)2[0,1] and(1F(αh))>=(1F(αh))2)

それは相互的であるべきです

f(θi,θo)=F(αhi)rs+(1F(αhi))(1F(αho)rd=F(αh)rs+(1F(αh))2rd=F(αho)rs+(1F(αho))(1F(αhi))rd=f(θo,θi)

したがって、BRDF要件を満たします。鏡面角度にはマイクロファセット角度が使用されるため、鏡面反射成分と拡散反射成分の間を補間する方が賢明です(この引数では2つの透過の事実を無視します)。代わりに、[PBR、p.113]および[DIS、p。14]を粗さ計算に入れて、かなり説明されていないままにします。θh

これに関する私の混乱に加えて、説明のスライド[PBR、p.187]では、ドット積(したがって角度)を使用し、後で[PBR、p。191]また、ドット積()もあります。ωhωoαhoωhωiαhi

回答:


5

ついに、拡散部分に半ベクトルを使用するという私の議論の欠陥を見つけました。

tl; drバージョン:

αhiとは等しくありません。この仮定は鏡面反射部分に対してのみ機能します。したがって、省エネルギーは与えられていません。αho

より正確:定義ごとにですが、方程式でそれらを使用することはできません。半ベクトルの代わりにマイクロファセット法線を使用する必要があります。しかし、マイクロファセットの法線と半分のベクトルは一般に等しくありません。αhi=αho

長いバージョン:

拡散BRDF(鏡面反射のような)は、可能なすべてのマイクロファセット法線を統合したものです。一般化されたBRDF形式は次のとおりです。

(1)

f=ΩρmDGcos(αhi)cos(αho)cos(θi)cos(θo)

ここで、は光がマイクロファセットに到達したときの光の動作、は正規分布関数、はジオメトリ関数、残りは正規化です[PBR、p.16-25] [HEI、p.61f。]ρmDG

鏡面反射BRDFの場合、動作は完全な反射です。この手段は、微小は通常だけ微小面半分ベクトル等しい光(間()及び図)方向が視線方向へ光の方向から光を反射します。数学的には、これはディラックデルタ関数変換されます。反射される光の量は、フレネルによって決定されます。統合ドメインの変更を考慮して[PBR、p.31-41]、これにより(は鏡面部分のマイクロファセットの鏡面特異反応です):ωmωhωiωoδ(ωh)Fρm,s

(2)

ρm,s=δ(ωh)F4αhiαho

これを(1)にプラグインすると、任意の統合できますが、Diracデルタ関数を使用すると、場所はすべて無視されます。これは、これらのディラックデルタ関数の良い点であり、積分を「キャンセル」します。したがって、よく知られている有名なBRDF [PBR、p.43]に到達します。ωmωmωh

(3)

fs=FDG4cos(θi)cos(θo)

そしてここで、あなたはと簡単に仮定できます。フレネルパーツはこれを線形補間の片側にします(これが鏡面反射される光の比率であるため、これを確認します)。αhi=αho

しかし、反対に、あなたにはまだ不可欠なものがあり、それを何かで「キャンセル」することはできません。ましょう微小正常およびビューDIR間theta_mo、微小法線と光DIRとの間の角度である(とは対照的にと具体半分に対して定義され、これは2つの重要なことを意味します。θmiαhiαho

(4)

θmiαhi=αh=αhoθmoωmωh

およびρm,d(微小面に到達する光の拡散反応として)が、フレネルに依存され、それが唯一の非反射部分を使用することができますが、単に毎週微小正常diffusleyが鏡面反射されなかった全ての光を反射すると仮定することができません(すなわち(1F(αh)))。

したがって、ここでの問題は、線形補間の片側が、積分なしで分析的に解ける鏡面反射BRDFであることです。反対に、積分内に補間係数があるため、任意のマイクロファセット法線に使用できます。をランベルト項でモデル化した場合、これはもはやエネルギー節約ではありません。ρm,d

部分を積分から引き出すことができた場合、鏡面反射と拡散の両方のBRDFに半ベクトルを使用できます。それ以外の場合は、別の方法で処理する必要があります。1F

「フレネル補間」に半分のベクトルを使用したい場合は、正規化する必要があります。

f=F(αh)rs+(1F(αh))rdk

、その選択され、そのようなk

rdk=1

は、可能なすべてのマイクロファセット法線の積分が含まれていることに注意してください。rd

使用とθiθo

私が最初に提起した質問は、「なぜはないのか」ではなく「なぜと」だったので、実際に使用される角度に関する文を追加する必要があると思います。これが正しいかどうか疑問に思う人々のために:いいえ。これは単なる概算です。αhθiθo

代わりに、マットの項を変更して、重要な定性的角度動作をキャプチャする単純な近似にすることができます[...]。

[SHI、p.46]

なぜこれが理解が難しいのかについての議論

ここで、[DIS、p.14]と[PBR、p.100,184]はこれについて[SHI]と[ASH]を引用しましたが、[ASH]は[SHI]を使用しているので、後者のモデルに要約されます。そして、[DIS]と[PBR]は科学的ではない(かなりよく考えられていますが)出版物であると見なして、私はそれらにあまり誤りを犯すことはできませんが、実際には、より良い論文の引用方法または追加の説明が役立ち、節約された可能性があります。私は2週間ほど考え、読んで、ほとんど全員が(おそらく)間違っている理由についての論文を書き始めました。

さらに、どちらも拡散近似を実際に説明していません[PBR、p.193]。

さらに、[SHI、p.46]はと間の線形補間を使用した[SCH、p.10f。]を実際に引用しています。しかし、[SHI、p.46]は彼を誤って引用し、とを使用したと彼らは言った。これを仮定すると、[SCH]はエネルギー節約ではないと考えるのは当然のことですが、とはそうであると私は信じるようになりました。彼らの間違いは、自体を使用していることが可能性があります。F(αh)1F(αh)F(θi)1F(αh)F(αh)1F(αh)F(θi)

文献

  • [ASH] Journal of Graphics Tools Vol。2の異方性フォンBRDFモデル。5、No。2、Michael AshikhminおよびPeter Shirley、2000
  • [SCH]物理ベースのレンダリング用の安価なBRDFモデル。13、No。3、クリストフ・シュリック、1994
  • [SHI]実践者による光反射モデルの評価、第5回太平洋グラフィックスおよびコンピュータグラフィックス会議、1997年。Proceedings、Peter Shirley、Helen Hu、Brian SmitsおよびEric Lafortune、1997
  • [DIS]物理ベースのシェーディング、ディズニー、SIGGRAPH 2012コース:物理ベースのシェーディング、映画およびゲーム制作、ブレントバーレイ、2012
  • [HEI] Journal of Computer Graphics Techniques Vol。のMicrofacet-based BRDFsにおけるMasking-Shadowing Functionについて 3、No。2、Eric Heitz、2014年
  • [PBR] GGX + Smithマイクロサーフェス用PBR拡散照明、GDC2017、アールハモンJr.、2017

1

私たちは実際に、独自のGGX BRDFメタリック&edge_tintモデルについてその論文を検討しており、1つの重大な問題を発見しました。

ハモンはまだ彼のマイクロファセットフィールドレイトレースにフレネルシュリック近似を使用していますが、これは実際には誘電体(および導体ですがハックを使用)でのみ機能します。

しかし、実際のフレネル(偏光を破棄する)をすべて、完全な計算を行ったので、表面の鏡面反射をまったく望まない場合にを設定できます。F0=0

https://github.com/Crisspl/IrrlichtBAW/commit/914b50d7238fc4a30f23fc2a4ea570e467f4ab75#r34031272

問題は、シュリックが場合にバラバラになるため、GGX拡散光がこれらの材料に対して暗すぎることになります(角度での透過率が低いことを想定しているため)。F0<0.02

余談ですが、私に悪臭を放っているのは、DISとPBRが )を使用していることです。可能な限りすべてのファセット法線でフレネルの加重平均を計算する適切な計算。もちろん、正規分布関数によって加重されます。(1F(θi))(1F(θo))

PBRではsmoothコンポーネントは、私は何だろう(シュリックは、適切なフレネルによって置き換える必要があることを除いて)そのままとどまることができるroughmultiしてになるなければならないだろう。F0<0.02

これroughはおそらくほとんど変化しないと思いますが、場合、(場合、GGX NDFは定数であるため)違いを生むのに十分です。 α=1F0=0

E. Hammonにメールを送信して、フルフレネルと拡張IoR(F0)範囲(1.0(0.0)を含む)でシミュレーションを再実行できるかどうかを確認してください。

編集:Seb。Lagardeにも、http://openproblems.realtimerendering.com/s2017/02-PhysicallyBasedMaterialWhereAreWe.pdfを使用したフレネルについて私が行ったのと同じ懸念があります

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