传输公式
传输方程是控制光线在吸收、发射和散射辐射的介质中的行为的基本方程。它解释了第11章中描述的所有体积散射过程——吸收、发射和内、外散射。并给出了一个描述环境中辐射分布的方程。光传输方程实际上是传输方程的一个特例,由于忽略参与介质而进行简化,并专门用于从表面散射。
传输方程是控制光线在吸收、发射和散射辐射的介质中的行为的基本方程。它解释了第11章中描述的所有体积散射过程——吸收、发射和内、外散射。并给出了一个描述环境中辐射分布的方程。光传输方程实际上是传输方程的一个特例,由于忽略参与介质而进行简化,并专门用于从表面散射。
BxDF::Sample_f()方法根据与相应的散射函数相似的分布来选择方向。在8.2节中,该方法用于寻找来自完美镜面的反射和透射光线;在这里讲介绍实现其他类型的采样技术。
这里还涉及到pdf、方差等概念,推荐去看《全局光照技术:从离线到实时渲染》
积累分布函数 cumulative distribution function (CDF)
至今为止,人们发明了很多光源,现在被广泛使用的有:
3个影响参与介质在环境中的辐射度分布的主要因素:
当高分辨率贴图被缩小时,贴图会出现严重的混淆现象。虽然第7章中的非均匀采样技术可以减少这种混叠的视觉影响,但是更好的解决方案是实现基于分辨率进行采样的纹理函数。
可以在使用贴图时先对贴图的分辨率进行判断,避免采样高分辨率贴图。
为了解决贴图采样函数造成的混淆问题,我们必须解决以下两个问题:
表面着色器会绑定场景中每一个图元(被赋予了这个着色器),而表面着色器则由Material类的实例来表示。它会拥有一个BSDF类对象(可能是BSSDF),用于计算表面上每一点的辐射度(颜色)。
BSDF代表了BRDFs与BTDFs的集合。BSDF构造函数接受一个SurfaceInteraction对象,该对象包含关于表面上任意一点的微分几何信息,以及一个参数eta,该参数给出了边界上的相对折射率。对于不透明的表面,该参数则无效。构造函数将使用着色法线来构造一个正交坐标系。本节中ns表示着色法线(法线贴图上对应坐标的值)和ng代表了几何法线(面法线)。
BSDF存储了最多8个BxDF组件,因为在pbrt中不需要更多组件。BSDF实现了BxDFs坐标系与世界坐标系转换的方法。WorldToLocal(const Vector3f &v)与LocalToWorld(const Vector3f &v)。
表面反射可以分为4大类:
本文仅作为个人笔记分享,又因为本章涉及多个专业领域而本人皆未接触过,所以难免出错,请各位读者注意。
可以理解为把真实世界所得图像(人眼)当做一个连续的离散函数,而计算机通过像素显示,为一个不连续的点集。渲染就是一个不断采样,将结果累加缩小误差,并且通过最终值将这个函数重构的过程。(图7.1很好地说明了这些)
介绍pbrt中的camera代码大致实现。