摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人”
全 局光照模型与 Rendering Equation
Kajia 在 1986 年提出 rendering equation :
其中x 表示入射点;Lo(X,Wo) 即从物体表面 x点,沿方向 Wo反射的光强; Le(X,Wo) 表示从物体表面 x以方向 Wo发射出去光强,该值仅对自发光体有效; Fr(x,Wi,Wo)为,入射光线方向为Wi ,照射到点 x上,然后从 Wo方向反射出去的 BRDF 值;Li(x,Wi) 为入射方向为Wi ,照射到点 x上入射光强; n表示点 x处的法向量。然后对入射方向进行积分(因为光线入射的方向是四面八方的,积分的意义是对每个方向进行一遍计算后进行相加),计算的结果就是“从观察方向上看到的辐射率”。
该公式基于物理光学,对观察方向上辐射率的进行了本质上的量化,前面所讲的漫反射光照模型和 phong 高光模型,其实是公式在单一光源,特定 BRDF 下的推导。
对于单个点光源照射到不会自发光的物体上,公式可以简化为:
这个公式非常有用,通常会将该公式分解为漫反射表达式和镜面反射表达式之和。对于漫反射表面, BRDF 可以忽略不计,因为它总是返回某个恒定值(实时计算机图形学第二版 112 页),所以公式可以写成下面的形式:
其中 Idiff表示漫反射分量,使用公式的计算方法,Frs(x,Wi,Wo) 表示镜面反射的 BRDF 函数。 前面所讲的 phong 高光模型,其实是 rendering equation 在单一光源下针对理想镜面反射的特定推导。而对于 Phong 高光而言:
在第 10 章中将要被阐述的 BRDF ,就是 Frs(x,Wi,Wo) 的一种函数类型。