陈瑞
(四川大学计算机学院,成都610065)
光线与半透明物体交互可以分成三个部分,其一是被表面直接反射或者进入内部以后再反射出表面,其二是进入了内部以后被吸收,其三是进入内部以后从另一侧射出。其中第三个部分也就是我们常说的透射现象。生活中常常会发生透射现象,尤其是在光线穿过物体比较薄的部分时,这一现象更为明显。例如阳光透过手指,我们可以看到手指边缘发亮泛红的现象。

图1 阳光透射过手指
透射现象对于增强虚拟场景的视觉真实感具有不小的贡献,如果我们对于模拟的半透明物体的光照渲染,不增加透射效果,那么半透明物体会失去玲珑剔透的感觉,变得类似于塑料这种比较粗糙的质地。因此对于透射现象的模拟一直是学者们大力研究的课题。包括基于扩散理论[1]、基于偶极子模型[2]、基于多极子模型[3]、基于方向偶极子模型[4]等方式,这些方式都是在离线的情况下,模拟光线在物体内部复杂的散射情况,并且得出最后的渲染结果。这些方式模拟出来的结果非常接近与现实结果,但是计算复杂,无法保证实时的效率。
为了满足实时交互的需求,通常会使用比较粗略的方式,把光线内部的散射情况给忽略掉,将其看成是非散射物体。这种情况下,光线的衰减就会与所穿过物体的厚度与物体的浓度成正比。因此,我们就可以使用比尔定律[5]来模拟透射效果。其中It代表的是透射光强度,Io代表的是入射光强度,c代表的是物体的浓度,而d代表的是物体的厚度。……