paper - 2015 - Evaluation of Visual Parameters in Volumetric Path Tracing(1)
Skånberg, R., utfört, E., Jönsson, H.D., & Ropinski, E.T. (2015). Evaluation of Visual Parameters in Volumetric Path Tracing.
1. introduction
在交互式体积渲染领域,研究重点是使用巧妙的方法、近似和简化来解决体积渲染方程,以提供交互式帧速率。为了评估所实施方法的准确性,需要将其与一些参考解决方案进行比较。求解方程的一种方法是使用一种称为路径跟踪的方法,当正确实现时,该方法将提供真实结果的估计。这一估计在给定的计算时间内收敛到真实结果,并且在一般情况下是一个相当缓慢的过程,与任何交互式过程都相去甚远
3 Physically based rendering
3.1 基本辐射计量学
flux:单位时间通过某个区域的所有能量,单位是W,或J/s
irradiance E & Radiant Exitance M: 单位面积单位时间的能量(面积为垂直于光线方向),\(W/m^2\)
solid angle sr :
Intensity I : 表示单位立体角,单位时间通过某个区域的所有能量,然而,该量仅用于指定点光源的光谱分布;
Radiance L :从某一个单位立体角看过去的单位面积单位时间上接收的能量,\(W/sr\)
3.3 The rendering equation
这个方程是递归的,并且描述了光离开点x',到达另一个点x,自发光项,和x''到x'处的光对x‘x方向的贡献在半球上的积分和,与几何项g的乘积。(即,x''处发出的光有多少会沿着x'x传输,以及x'处发出的光有多少往x’x传输)。
但是,通常会使用radiance的表述方式,见方程2:
该模型的一个重要限制是,光在被真空隔开的平坦表面之间传输。任何体积效应,例如大气散射和不透明介质,都不包括在方程中,因为它需要光与穿过的介质相互作用的可能性.
3.4 path tracing
path tracing是用来解渲染方程的。[[games101-4-Ray Tracing]] 一文中有部分描述。文中描述了光线爆炸,以及如何处理的过程。
3.4.1 direct light sampling
[[games101-4-Ray Tracing]] 一文中也介绍了直接对光源进行采样的实现。
那么这个时候方程可以写成:
发射项并没有完全消除,这是为了处理这样的情况,即发射表面是第一个被眼睛的路径击中的表面,因为这是包括直接可见物体的发射的唯一机会。还有第二个条件是包含发射,即路径中的前一个采样来自完美镜面反射。这要归功于BRDF中的δ函数,它不可能对来自除完美反射方向以外的任何采样方向的光做出贡献。
3.5 surface reflection
光在穿过一个不同介质的表面的时候,会发生折射,和反射。
可以阅读: 菲涅尔方程(Fresnel Equation)
关键公式如下,有:
Fresnel Equations | |
---|---|
unpolarized reflection | |
snell's law | |
schlick's approx |
3.6 bidirectional scattering distribution function, BSDF
\(\rho(x,\omega_o,\omega_i)\) ,这个函数表示的意思是光从\(\omega_i\)方向过来,然后经过散射,进入到\(\omega_o\)方向的比例。
通常有三种类型的双向分布函数,即双向反射分布函数(BRDF)、双向透射分布函数(BTDF)和相位函数。BTDF表示折射或透射到表面的光,但通常被实现为具有翻转表面法线的BRDF,并被缩放以匹配透射的光量。因此,本文只讨论BRDF和相位函数。
3.7 bidirectional reflectance distribution function, BRDF
reflectance描述BRDF是对于反射光的。文中用\(\rho_r(x,\omega_o,\omega_i)\)表示。
3.7.1 diffuse reflection
最简单的漫反射模型是lambertian模型,见下式:
它假设表面是理想的漫反射。任何碰触到表面的光都会被均匀的散射到各个方向。
3.7.2 perfect specular reflection
最简单的镜面反射模型是完全反射。如图11中的黑色虚线箭头。
3.7.3 glossy reflection
微表面模型示意图见下:
详细内容可以参见: https://zhuanlan.zhihu.com/p/434964126
4. Volume Rendering
基本概念可以参见: 蒙特卡洛体渲染(一):基本概念
主要由吸收,散射,消光系数,透射
消光系数(吸收和out散射)对光的衰减可以得到radiance的透过率,公式如下:
如果消光系数是常数,那么,公式15可以简化为:
4.6 single scattering albedo
这是一个无光谱单位的量,在单位的情况下,它不会导致任何能量因吸收而损失,相反,零的反照率会吸收所有能量
4.7 in scattering
将所有方向进入的光对出射方向的共享积分后如下:
加上自发光项为:
公式里面的\(\rho_p\)表示的是相函数。
4.9 相函数
相函数可以理解成BRDF针对volume的版本。主要有两个关键的不同点,相函数考虑的是整个单位球,第二点是相函数对球的积分是1. 相位函数有效地定义了特定方向散射的概率分布。
非常常见的相函数是,Henyey-Greenstein相函数。他通过单个参数,各项异性因子,来控制散射分布。各项异性因子的范围是\([-1,1]\)。当g=-1的时候,完全的后向散射,g=1的时候,是完全的前向散射,g=0的时候是各项同性散射。
注意,与BRDF不同,这些相位函数不会改变光的光谱分布,它们只定义散射方向的概率。
4.10 volume rendering equation
\(x' = x_0 + t' \omega\)。
第一个公式的第一部分表示的是x0处光强,经过衰减后有多少到达x处。
第一个公式的第二部分表示的是每个位置x‘ 内散射的能量对x出的贡献的积分。
4.13 emission absorption model
这个模型仅考虑发射,和吸收,这个时候,公式24中的内散射项用发射项进行替代,变为:
4.14 single scattering model
一种更复杂的方法是单散射模型,它也部分解决了体积渲染方程。这里它将公式24中的内散射项用直接光源采样进行替代:
4.14 volumetric path tracing
这个方法是沿着射线方向进行距离采样。如果采样得到的距离。如果该距离小于沿射线最近的曲面相交点的距离,则介质中会发生散射,路径将从该散射点而不是曲面上的点进行评估。为了简单起见,该方程是假设参与介质是均匀的且不发光。
因此,路径跟踪算法基本上扩展了光在介质中散射的概率。这意味着基本算法保持不变,但在散射的情况下,将使用相位函数而不是表面模型。具体公式如下:
对于非均匀介质的话,透过率一项会进行更改,\(\sigma_t e^{-\sigma_ts}\),更改为:\(\sigma_t(x+s\omega) T_r(x, x+s\omega)\)。
5. Monte Carlo Integration
定义的列表:
- X: 随机变量;
- P(x):累积分布函数,CDF。表示随机采样的值,小于等于x的概率;
- p(x):概率密度函数,PDF。随机采样某个值的概率。
- \(\xi\) : 规范一致随机变量,它在
[0,1]
范围采样概率相等。
一个函数的期望的公式可以写为:
一维的情况,使用均匀采样的Monte Carlo估计fx积分结果,见公式29。
Xi表示在有效区间[a,b]
范围随机采样的值。如果 \(f(x) = \int_0^2 (x^2+1) dx\) 。那么随着采样数量的增加,估计误差逐渐减小。
5.1 improving the Monte Carlo estimator
使用非均匀采样,需要引入采样的概率密度函数,如下:
此处需要注意的是p的选择,对结果的影响比较大。
5.2 the inversion method
为了从任意PDF p(x)中提取样本Xi,需要执行以下步骤:
- 计算累积分布函数,CDF;\(P(x) = \int_0^xp(x')dx'\)
- 计算CDF的倒数,\(P^{-1}(x)\);
- 使用均匀分布的\(\xi\),计算得到X,\(X = P^{-1}(\xi)\) 。
可以参见:
(24条消息) 蒙特卡洛方法(Monte-Carlo Simulation)_Hearthougan的博客-CSDN博客_monte-carlo
(24条消息) 逆采样(Inverse Sampling)和拒绝采样(Reject Sampling)原理详解_anshuai_aw1的博客-CSDN博客_逆采样
示例,对于指数函数可以得到如下结果:
6. implementation
TODO
标签:采样,Volumetric,函数,Parameters,Tracing,BRDF,散射,公式,omega From: https://www.cnblogs.com/grass-and-moon/p/16948247.html