RayTrace2:如何添加反射光线的衰减效果
光线的衰减,是指距离光源越远的地方着色越暗。在光线跟踪计算中,反射光线的衰减可以不添加,但是加上会更贴近真实物理效果,并且可以丰富自己材质库。
反射光线的衰减是只针对于反射光线而言,对于由光源发出的直射光不使用此类衰减。这样做是因为在大多数场景中,反射光线的传播距离(起点到它达到的碰撞点之间的距离)相对于直射光的传播距离(光源到达碰撞点的距离)非常短。如果使用同一种衰减作用,会导致要么直射光和反射光的衰减影响微乎其微,要么反射光的衰减影响正合适,而直射光的衰减会大大影响渲染亮度。
反射光线的衰减作用可以在反射光线的强度前乘以系数k来实现,而k的求解可以用以下关系式:
其中,t是反射光线的传播距离、n是参数、d是需要设定的最大衰减距离。
由表达式可以看出,参数n不变时,反射光线传播距离越远,k取值越小,则衰减效果越明显。反射光线传播距离一定时,参数n越大,k取值越小,衰减效果也越明显。
效果图如下:
可以看到两个茶壶在地面的反射效果的趋势:在两个茶壶的底部部分,反射光线到达地面的距离较近,反射效果清晰明显,在茶壶的壶盖部分,反射光线到达地面的距离较远,因而反射效果暗淡不明显。也可以看到背景墙没有对反射光线衰减,因而反射效果清晰可见。再看下面两图,对比一下添加反射光线衰减的效果。
可以看出,左图地面对光线的反射作用适合模拟具有反射特性但反射效果较弱的材质,右图地面适合模拟反射效果较强的镜面材质。