首页 > 代码库 > 全局照明算法基础(二)——表面模型概览
全局照明算法基础(二)——表面模型概览
严格地说各类BRDF和全局照明算法本身并不相关(算法把所有的BRDF抽象成一个函数),但也不能对其一无所知。本文仅对各类表面模型的公式做个总结,以后依次进行详细的讨论。
Diffuse Surfaces
向所有方向均匀地反射,即,如果引入一个反射系数表示反射光的多少,那么其形式为
注意到这个BRDF是没有归一化的。为它添加一个归一化常数,即,根据能量守恒,取(最大)、时应有
解得一个值,于是最后的BRDF为
Specular Surfaces
理想的光滑镜面,其反射和折射分布都是奇异的。反射方向满足
折射方向则由Shell给出——
注意到该式忽略了折射率随波长的变化(即不会有色散现象)。反射与折射的能量比例有一定的约束,对于无偏振光,反射能量占比为
其中代表了平行偏振光,则是垂直偏振光。对于绝缘体,Fresnel Equation给出
导体的Fresnel Equation稍有不同,它没有折射现象,取而代之的是一部分入射光被吸收并转化为热量:
其中是导体折射率,是与导体本身材质相关的常数,称为吸收系数。
综上,可以求得理想镜面反射的BRDF为
若有折射,BTDF为
Phong model
其前一项代表了高光,后一项是经典的lambertian反射。一般而言,绝缘体的很小而导体的较大。
Blinn-Phong model
或
后者是前者的改进版本。Blinn-Phong model是非物理的。
Cook-Torrance model
其中是Fresnel反射系数,D是微表面分布(microfacet distribution),G是几何遮蔽项(geometric shadowing term),是入射光与half-vector的夹角(,)。几个常用的D是
最后一个D是各向异性的,参见Ashikhmin & Shirley (2000, 2002)。m则是微表面斜率的几何平均值,用来衡量表面的粗糙程度,G用来表示微表面之间的遮蔽作用,为
Oren-Nayar model
Empirical model(Ward)
其中前一项是diffuse项,后一项是specular项,用来表示表面的粗糙程度。
Torrance-Sparrow model
Cook-Torrance model的退化版本,为
各项含义与Cook-Torrance model中的解释相同。
全局照明算法基础(二)——表面模型概览