シェーダでのフレネル反射率の利用

概要

完全な鏡面反射のスペキュラの場合

  • 下の数式で l の代わりに v (視点ベクトル)を使い, それと法線n を使ってフレネル反射率を計算します.


マイクロファセットによるスペキュラのハイライトの場合

  • ライトベクトル l と, ハーフベクトル h を使ってフレネル反射率を計算します.


環境マップを使ったグロッシーなリフレクションの場合

  • 厳密に計算する場合は下図のようにグロッシーなリフレクションのために, 環境マップへの沢山のサンプルごとにフレネル反射率を計算することになります.


  • この方法が実用的な方法ではないので, Black Ops では下の数式によって環境マップを使ったグロッシーなリフレクションのフレネル反射率を近似していました.


  • 他にも Ambient BRDF や 3d volume texture の事前計算に含めておくやり方もありますが, これらについては別の記事で取り扱う予定です.

参考文献