Q134:PBRT-V3,次表面散射(Subsurface Scattering)(15.5章节)

来源:互联网 发布:长沙大火知乎 编辑:程序博客网 时间:2024/05/16 12:49

〇、引入

前续:
Q132:PBRT-V3,BSSRDF(双向散射表面反射分布函数)(5.6.2章节、11.4章节)
Q133:PBRT-V3,BSSRDF的采样(15.4章节)

在Q132、Q133中,都有用到“BSSRDTable对象中的一个叫做“profile”的Sr表”。
根据||po-pi||的值从这个表里获得Sr的值。
那么,问题来了:这个Sr表存放的具体是什么呢?是在什么时候初始化的呢?
这个就是这一章节的内容。Sr表中存放的就是介质对应的次表面散射的数据。

在给定散射介质的相关属性的情况下,Sr可以精确(近似)地描述介质的次表面散射。

考虑两种情况:
情况一,光线在次表面中发生多次散射后离开表面;
情况二,光线在次表面中发生一次散射后离开表面;

对于这两种情况,计算次表面散射的方式是不同的。
情况一,光线在次表面中发生多次散射后离开表面时,光线的强度衰减大,光线的方向是随机的;
情况二,光线在次表面中发生一次散射后离开表面时,光线的强度衰减小,光线的方向不是随机的。

一、光线在次表面中发生多次散射

针对这种情况,Habel等人在2013年提出了“Photon Beam Diffusion”方式来进行计算。

大致思路如下:
1,对介质的各种属性进行简化和假设;
2,由光在介质中的传播方程推导出扩散方程;
3,在各种情况下,求解“扩散方程”;
4,在步骤3的基础上计算得到“经过次表面散射后离开表面时的光线和入射光线的关系”(即Sr)。

后续,是个人写的笔记,有点乱。
前面几张截图是阅读过程中记下的;
后面两张截图是后面总结的:从未知到已知反推的计算过程。(类似于解应用题:“要得到这个,需要先知道什么”,然后,反复这个过程,直到反推到已知条件)

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述


接下来两张截图是:从未知到已知反推的计算过程。

这里写图片描述
这里写图片描述


相关代码截图:

这里写图片描述
这里写图片描述

二、光线在次表面中发生一次散射

这里写图片描述

推导过程,此处不再罗列。看一张体现基本思路的图。

这里写图片描述

对应代码截图:

这里写图片描述

三、填充BSSRDFTable(包含Sr数据)

这里主要需要注意的是:对r、rho的采样。

相关代码截图如下:

这里写图片描述

四、设置散射属性

It is remarkably unintuitive to set values of the absorption and scattering coefficients σa and σs to achieve a desired visual result.

这里写图片描述

相关代码截图:

这里写图片描述

五、其他说明

个人觉得,这一章节的数学推导有点复杂。好些式子的推导都不是很明白。
涉及的数学知识比较多:高阶微分方程求解、delta函数等等。

截至当前,只是理解了作者的大致思路。惭愧!继续努力!fighting!

阅读全文
2 0
原创粉丝点击