前提:
随着图形处理技术的提升,到现在有很多的渲染的技术的提升,目前还在使用的技术主要有传统的管线的渲染技术和光线的追踪技术。一般的有,前者的效率更好,后者的效果更好(非严格的说,光栅化有反射的存在(1次),相当于只进行了一次的光线追踪)。
光线追踪的技术可以大幅度的提升渲染的质量,但是一般使用路径追踪算法很难保证计算的效率,一般会被用来处理离线渲染,和一些其它的问题。为了解决一些问题,一些新的算法被提出,最好的是辐射度算法和渲染方程。
一些辐射量的定义处理
辐射能量:Q:光源发射出的能量或者表面接受到的能量,单位为焦耳J.
辐射功率:F/Φ:单位时间内接受到的能量或者发出的能量,单位为瓦特W.
BXDF函数的数学原理
在物理中,光线经过击中材质之后的反射的光线的属性和入射的角度,材质的属性,光线属性都相关,很难有一个比较统一的定义的方式,仅限反射行为,我们采用双向反射分布函数BRDF进行描述,它描述的是出射方向上反射的相对辐射亮度与通过不同立体角入射的相对辐照度之比。于是得到BRDF的形式为:
通过BRDF公式,我们可以计算出反射光线的能量:
一些常用的BRDF实例
单一漫反射模型
无论接受来自什么方向的光线,都会均匀的向四周反射,所以它的BRDF也是一个定值:
镜面反射
接受来自一个方向的光,服从反射原理,只会向一个方向上进行反射,设入射的向量为I(这里的I指向光源的),反射的向量为R,法线为N.于是可以得到:
其它的BXDF模型
BTDF函数
BTDF模型是是计算透射模型的函数,直接套用斯涅尔定律:当入射材质的折射率为η1,折射材质的折射率为η2时,我们有:
于是我们可以得到如下结果:
BSDF函数
把反射和透射放在一起就可以构成BSDF函数,因为涉及反射和透射,同时需要满足能量守恒定理,一般情况设反射占比为R,透射占比为1-R.同时需要考虑是否为偏振光。 非偏振光时:
本文只是简单描述了一下辐射度算法和BXDF分布函数,后面在做详细补充。