参考书籍:《Unity Shader 入门精要》
【《Real-Time Rendering 3rd》 提炼总结】(六) 第七章 · 高级着色:BRDF及相关技术
是为了对光和材质之间的行为进行更加真实的建模。
在物理学上,光是一种电磁波。光与物体相交,一些光线被吸收(absorption),另一些被散射(scattering),最后被感应器(眼镜)吸收成像。
辐射率(radiance):通常用L表示,量化光的单位。指单位面积、单位方向上光源的辐射通量。
绕着表面法线旋转入射方向或观察方向不会影响BRDF结果,称作各项同性(isotropic)的BRDF,对应各项异性(anisotropic)。
BRDF可以用 f(I, v)
表示,I
为入射方向,v
为观察方向(双向的含义)。表示一束光延入射方向I
到达表面时,能有多少部分的能力会反射到观察方向v
上。BRDF的两种理解方式:
反射等式(reflection equation):出射辐射率Lo(v) = 所有(做积分)入射方向的辐射率(Li(I)) × 对应观察方向所占权重(BRDF值f(I, v)) × 该表面投影结果(余弦值(n · I)) 。
游戏中通常和精确光源打交道,可以简化公式:Ic为该光源方向,clight为光源颜色。
判断BRDF是否基于物理:是否满足交换律( f(I, v) = f(v, l)
)和能量守恒(表面反射的能量不能超过入射的光能,即 Lo ≤ 1)。
微面元理论:物体表面由许多微面元组成,这些微面元被认为是光学平滑的,即有高光反射。
I:入射方向,v:观察方向,m为法线( I 和 v 的一半h)。