Physically Based Rendering From Theory To Implementation
翻译:https://pbr-book.org/4ed/Cameras_and_Film/Further_Reading
总目录: Physically Based Rendering From Theory To Implementation - 基于物理的渲染从理论到实践第四版原书翻译
5.3 更多阅读
在他开创性的画板系统中,Sutherland(1963)是第一个将投影矩阵用于计算机图形的人。Akenine-Möller等人(2018)提供了一个写得特别好的正投影矩阵和透视投影矩阵的推导。Rogers 和 Adams 的《计算机图形学的数学元素》【Mathematical Elements for Computer Graphics】(1990年)和Eberly关于游戏引擎设计的书(2001年)也是很好的参考资料。Adams和Levoy(2007)对可以使用非针孔孔径相机进行的辐射度测量类型进行了广泛的分析。
Greene和Heckbert(1986)使用了一种不同寻常的投影方法为OMNIMAX®影院生成图像。
Potmesil和Chakravarty(1981、1982、1983)在计算机图形学中做了景深和运动模糊的早期工作。Cook及其合作者基于薄透镜模型开发了一个更精确的模型;这就是第5.2.3节中用于计算景深的方法(Cook等人,1984;库克1986年)。Gribel和Akenine-Möller(2017)描述了一种替代的运动模糊方法,他们通过解析计算射线-三角形相交的时间范围来消除时间上的随机采样。
Kolb、Mitchell和Hanrahan(1995)展示了如何用光线跟踪来模拟复杂的相机镜头系统,以模拟真实相机的成像效果;RealisticCamera是基于他们的方法。Steinert等人(2011)改进了这种模拟的许多细节,纳入了波长依赖效应,并考虑了衍射和眩光。Joo等人(2016)将这种方法扩展到处理非球面透镜和模拟光圈阑处的衍射,这在实践中导致了混淆圈边缘的一些亮化。有关光学和透镜系统的优秀介绍,请参阅Hecht(2002)和Smith(2007)的书。
Hullin等人(2012)使用多项式来模拟透镜对穿过它们的光线的影响;他们能够从单个透镜的多项式近似值构建多项式来近似整个透镜系统。该方法节省了通过透镜跟踪光线的计算开销,尽管对于复杂场景,这种开销相对于其余的渲染计算来说通常可以忽略不计。Hanika和Dachsbacher(2014)提高了这种方法的准确性,并展示了如何将其与双向路径跟踪相结合。Schrade等人(2016)在使用稀疏高次多项式逼近广角镜头时表现出良好的效果。
Film and Imaging
第5.4.2节中介绍的胶片传感器模型和PixelSensor类实现来自Langlands和Fascione(2020)描述的PhysLight系统。另见Chen等人(2009),他们描述了一个相当完整的数字相机模拟的实现,包括模拟到数字的转换和在这个过程中固有的测量像素值中的噪声。
如第8.8节所述,滤波器重要性抽样在Ernst et al.(2006)的一篇论文中进行了描述。在Shirley的博士论文(1990)中也提出了这种技术。
Perlin (1985a)、Saito和Takahashi(1990)提出了在像素中存储关于可见表面属性的额外信息的想法,他们还创造了术语G-Buffer。Shade等人(1998)介绍了一种泛化的方法,即沿着每条相机光线存储所有表面的信息,并将这种表示方法应用于视图插值,使用原本隐藏的表面来处理遮挡。
Celarek等人(2019)开发了基于计算MSE的期望和方差来评估采样方案的技术,并描述了在像素和频率上评估渲染图像误差的方法。
近似XYZ匹配曲线的采样技术源于Radziszewski等人(2009)。
SpectralFilm使用了Fichet et al.(2021)引入的OpenEXR格式的光谱图像表示。
如5.4.2节所述,人类视觉系统通常会将光照颜色排除在外,从而独立于光照颜色感知物体表面的颜色。人们已经开发了一些方法来处理照片,以进行白平衡以消除光源颜色的色调;参见Gijsenij et al.(2011)的调查。白平衡照片可能具有挑战性,因为白平衡算法唯一可用的信息是最终的像素值。在渲染器中,这个问题比较简单,因为关于光源的信息是直接可用的;Wilkie和Weidlich(2009)开发了一种在渲染器中执行精确白平衡的有效方法。
Denoising 去噪
为了从渲染图像中去除蒙特卡洛噪声,人们提出了各种各样的方法。这里我们将讨论基于样本值本身统计特性的方法。在第8章的“拓展阅读”部分,我们将讨论那些推导出能够解释用于形成图像的底层光传输方程的滤波器的例子。Zwicker等人的报告(2015)彻底覆盖了2015年的两种去噪方法。因此,我们将在这里集中讨论一些基础性工作以及更近期的发展。
Lee和Redner(1990)建议对此任务使用alpha修剪均值滤波器;它在样本值的低范围和高范围内丢弃一定数量的样本。中值滤波器是一种特殊情况,除了一个样本外,所有样本都被丢弃。Jensen和Christensen(1995)发现,可以有效地根据像素值所代表的光照类型来区分它们对像素值的贡献;对低频间接光照和高频直接光照进行不同的滤波,从而降低最终图像中的噪声。在此基础上,他们开发了一种有效的过滤技术。
McCool(1999)利用每个像素的深度、表面法线和颜色来确定如何将像素值与其相邻像素值相融合,以便更好地保持滤波后图像的边缘。Keller及其合作者提出了间断缓冲(Keller 1998;Wald et al. 2002)。除了过滤缓慢变化的量(如间接光照)和更快变化的量(如表面反射率),不连续缓冲区还使用几何量(如表面法向量)来确定过滤范围。
Dammertz等人(2010)介绍了一种基于边缘感知图像滤波的去噪算法,分层应用,以便使用非常宽的kernels并具有良好的性能。Schied等人(2017)改进了这种方法,他们使用每个像素的方差估计来设置滤波器宽度并合并时间重用,在实时光线跟踪器中使用前一帧的滤波结果。Bitterli等人(2016)在统一的框架中分析了以前的各种去噪技术,并推导出一种基于像素值的一阶回归的新方法。Boughida和Boubekeur(2017)描述了一种基于像素中所有样本统计的贝叶斯方法,Vicini等人(2019a)考虑了去噪“深度”图像的问题,其中每个像素可能包含多个颜色值,每个颜色值在不同的深度。
有些滤波技术只关注离群点,当蒙特卡罗估计器中的采样概率与被积函数匹配不佳,并且对于样本来说太小时,就会产生这些离群点。(如前所述,生成的像素有时被称为“萤火虫”,以表示它们明亮的短暂性。)Rushmeier和Ward(1994)开发了一种早期技术来解决这个问题,即检测异常像素并将其能量扩散到附近的像素,以保持对真实图像的无偏估计。DeCoro等人(2010)建议存储所有像素样本值,然后在过滤异常值以计算最终像素值之前剔除异常值。Zirr et al.(2018)提出了一种改进的方法,利用每个像素的样本值分布来检测异常样本并重新加权。值得注意的是,他们的方法不需要存储所有的单个样本,而是可以根据样本的大小将它们划分到少数几个图像缓冲区中的一个来实现。最近,Buisine等人(2021)提出使用均值中值滤波器,这种滤波器可以有效地去除异常值,但收敛速度比均值慢。因此,它们会根据样本值的特征在均值和均值的中位数之间进行动态选择。
与图像处理和理解的许多其他领域一样,基于机器学习的技术最近被应用于渲染图像的去噪。这项工作始于Kalantari等人(2015),他们使用相对较小的神经网络来确定传统降噪滤波器的参数。基于深度学习和卷积神经网络的方法很快出现,Bako等人(2017),Chaitanya等人(2017)和Vogels等人(2018)开发了基于u-net架构的自动编码器(Ronneberger等人,2015)。Xu et al.(2019)应用对抗性网络来改进这种降噪器的训练。Gharbi等人(2019)表明,与使用已经平均的样本对像素进行采样相比,用神经网络过滤单个样本可以给出更好的结果。Munkberg和Hasselgren(2020)描述了一种架构,可以减少这种方法所需的内存和计算。