前半はスペキュラー成分「10.5 スペキュラー イメージベース ライティング」
後半はディフューズ成分「10.6 放射照度環境マッピング」
参考資料
https://tokoik.github.io/blog/2015-08-26.html
https://tokoik.github.io/gg/ggnote10.pdf
和歌山大学ゲームグラフィックス特論 第10回 環境による照明 p35~
p35 ~ 環境マップ
10.5 スペキュラー イメージベース ライティング
- 環境マップは、ある位置から見た各方向の入射光を記録する。
- 完全な鏡なら、反射方向の環境をほぼ一点で参照する。
- 粗い表面では、反射方向の周囲に広がる光も寄与する。
- この方向ごとの寄与の形を「スペキュラーローブ」という。
- ローブに沿って環境光を積分した結果を粗さ別にCubemapのMipへ保存する
- これが「事前フィルター環境マッピング」(10.5.1)。
- 描画時には、反射方向でフィルター済みCubemapの参照位置を決め、表面の粗さに応じてMipレベルを選ぶ。
- フィルター済みの環境光と、別に事前積分したBRDF側の係数を組み合わせる。
10.5.1 事前フィルター環境マッピング
なぜ粗さ別のMipを作るか
- 粗さが小さい:狭い範囲から光を集め、鮮明な反射になる。
- 粗さが大きい:広い範囲から光を集め、ぼけた反射になる。高周波の細部が減るため、低解像度のMipに格納しやすい。
- 描画時にMip間を補間すれば、中間の粗さも表現できる。