F_Schlick
F_Schlick
实现了 Schlick 近似法,用于高效模拟菲涅尔效应,即物体表面的反射率随观察角度变化的现象。
核心优势
在性能与视觉效果间取得了绝佳平衡,通过直观的 `f0` 和 `f90` 参数将复杂的物理现象抽象化,极大简化了 PBR 材质的创建。
常见用途
计算直接光照和环境光照的镜面反射
作为区分金属与非金属材质的核心
实现清漆涂层 (Clear Coat) 效果
控制透明/折射材质的反射与折射比例
如何调整
主要通过调整 `f0` (基础反射率) 输入来控制材质。为 `f0` 提供一个低灰度值(如 0.04)来创建非金属(电介质),或提供一个彩色值来创建金属。`f90` 通常保持为 1.0。
代码示例
1// f0: 基础反射率 (金属为自身颜色, 非金属为~0.04)
2// f90: 掠射角反射率 (通常为 1.0)
3// dotVH: 视角与半程向量的点积
4const fresnel = F_Schlick.call( { f0, f90, dotVH } );