其实,双向反射(reflect)分布函数(BRDF)是一个四元函数,这个函数最终只是计算一个比值,这个值确定了射入物体表面的光中有多少被物体表面反射,并最终被眼睛所看到。反射的愈多,眼睛收到的光强越大,亮度也就越大。所以,这个函数的本质式一个调节函数。这里所说的光源都是non-area 光源。BRDF的物理表达式为
其中l是入射光的方向,v是我们计算的光强方向,他们都是单位向量,它描述的是一个微观现象,不考虑因为距离造成的衰减。以上说BRDF是四元函数,是将v和l转化到球面坐标系下表示,分别需要两个参数来表示。上式中El指的是入射光线的irradiance,也就是单位面积上的光通量,而分子则是反射光线的radiance。为什么该方程乘以一个EL最终计算的是radiance,而不用反过来的形式呢?因为radiance不会随着距离的变化而变化,这样可以忽略摄像机相对物体表面位置的影响。因为至于为什么是这两个的比值而不是radiance比上radiance?这个和测量BRDF有关。
在实际使用过程中,为了得到最真实的模拟,会提前将要模拟的材质进行一次BRDF数据的采集,这样在渲染过程中直接使用BRDF数据就可以。如果BRDF使用的radiance和radiance的比值,那么要采集入射光线的radiance,而radiance的采集是很困难的,具体这里不讨论。但是采集入射光线irradiance是很方便的,所以使用了以上的公式来表示最终的结果。
在non-area光源中,可以采用一下的描述。
将其带入shading 方程中,则是一下形式。
其中EL可以使用在《advance shading--光源类型》中的计算公式来计算,此时ELk已经是经过距离衰减后的值,也就证实了BRDF描述的是微观现象。(未完待续)