首页 > 代码库 > 全局照明算法基础(二)——表面模型概览

全局照明算法基础(二)——表面模型概览

严格地说各类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 modelWard

技术分享

其中前一项是diffuse项,后一项是specular项,技术分享用来表示表面的粗糙程度。


Torrance-Sparrow model

  Cook-Torrance model的退化版本,为

技术分享

各项含义与Cook-Torrance model中的解释相同。

全局照明算法基础(二)——表面模型概览