次表面散射模型是十分复杂的,列表式的BSSRDF是对其的一种简化实现。之前已经对列表式的BSSRDF的大部分内容进行了介绍,但不包括其中最为核心的列表内容的实现和利用。本篇笔记将介绍一种针对该部分内容的简单实现。尽管是一种简单实现,不过其中也涉及了很多数学推导,笔记中将介绍其中容易理解的部分。
这种简单实现采用了光子束漫散射模型。这个模型在简化实现时,引入了四个假设。假设一,介质是高散射率介质;假设二,介质中各处散射特性相同;假设三,介质一侧向无穷远处延伸;假设四,表述BSSRDF的关于位置和方向的分布相互独立,可以表示为乘积形式。这些假设并不一定与真实情况完全相符,但得到的结果还是可以接受的。
光子束漫散射模型中的漫散射的含义是,对于高散射率的介质,光线一旦进入介质,就会在较短的行程里发生多次散射。以Henyey-Greenstein模型为基础,可以推导出多次散射后的光线相位函数。当该相位函数中的次数取无穷大时,它变为球面均匀分布形式。当次数不取无穷大时,还存在两种特殊的情况。第一种是几乎不发生方向偏转的散射,则该光线传播距离较远。第二种是发生的散射几乎都是沿原方向返回的,则该光线基本停留在原地,不向前传播。
下面按仅考虑均匀漫散射的方式处理体散射模型。仅考虑漫散射后,外散射系数,衰减系数都为常数,相位函数为球面均匀分布所对应的常数。为了使模型的形式更为简洁,引入了光线辐照度的零阶矩和一阶矩。其中零阶矩是光线辐照度关于立体角的积分,一阶矩为光线辐照度乘以立体角后关于立体角的积分。然后分别对整个模型取零阶矩和一阶矩,并进行相应的化简后,就得到由光线辐照度零阶矩和自发光辐照度零阶矩和一阶矩组成的微分方程。其中,考虑到均匀特性,自发光辐照度一阶矩为0。
针对上述微分方程形式的模型,首先从最简单的情况,即仅包含一个点光源,且介质充满整个空间的情况,进行求解。此时容易求得光线辐照度零阶矩的解析式。该解析式体现了距离光源某处的光线辐照度的衰减情况,包括关于距离的倒数的衰减和e的负指数形式的衰减。根据零阶矩的解析式,易得一阶矩的解析式。该结果是最简单的单极模型。
上述最简单的情况并不完全符合实际:第一,介质的吸收效应会阻碍各向同性分布的形成;第二,光源附近的分布是高度各向异性的。借鉴中子传输模型得到一种非经典的单极模型,该模型中零阶矩包括两部分组成,其中一部分还引入了反射率这个系数。该模型在吸收率较高的介质中,吻合程度更好。
上面两种情况都是针对介质充满整个场景的情形,下面讨论介质从表面向某方向无穷延伸的情况。这种情况下,上述两种单极模型都无法得到正确的结果,需要采用偶极模型。简单讲,偶极模型就是在非介质区域引入一个虚拟的发出负的相等辐照度的光源,由按单极模型求解的光源和虚拟光源的表达式,确保介质表面的反射和透射效果的正确。由前面推导的表达式可知,光源的作用效果满足叠加原理,因而可以用两个光源的非经典单极模型写出表面某点处的光线辐照度解析式。还需要引入一个位置点,该位置点在光源和虚拟光源之间,且该点处的辐照度为0。该点可以由一种近似方式求得,也可以利用包含菲涅耳的表达式求得。这一工作其实也是在确定边界条件。