Progressive Photon Mapping 论文阅读 + Falcor 实践
Progressive Photon Mapping 论文阅读 + Falcor 实践Abstract & 1 Introduction & 2 Related Work & 3 Overview的一部分 太长不看光线追踪系列技术很大的一个难点在于很多采样是没用的采样,也就是采不到光上面,导致了发射了大量光线但实际上对最终结果做出实际贡献的很少。路径追踪提供的额外的对光源采样的采样方式让采样相对更加高效率,但是对于场景中间接光源比较多的情况下,路径追踪的效果也并不是很好。于是有了双向路径追踪,相当于扩展了光源的概念,让简介光照的点也成了抽象光源,但是慢也成了限制他的最大因素。MLT方法也是从有效的采样出发,尽量继续生成“有效”采样,达到相同时间下更好的收敛性。
但是种种以上都不能很好地解决caustic问题,也就是玻璃类似的材质下折射、反射形成的独特的形状。原因是(当时历史下),现有的无偏MC方法对这种SDS(Specular-Diffuse-Specular)路径的采样概率不高。在这种情况下,上述方法如PT是收敛的极慢,BDPT有所改善,但是对于光子映射系列方 ...
读 Flexible Isosurface Extraction for Gradient-Based Mesh Optimization 论文
读 Flexible Isosurface Extraction for Gradient-Based Mesh Optimization 论文
英伟达和多伦多研究所做的一篇工作,主要内容:设计了一种适用于基于梯度进行参数优化的flexible的等值面构建方法。思路是使用一系列参数让mesh的表达能力over parameterization,然后再使用正则化方法,针对不同的下游场景用不同的regularizer。这篇文主要介绍两种前置技术:Marching Cube以及Dual Contouring,分析其优缺点,并分析flexicube,讨论其在前两者优点上的继承以及缺点上的补充。
Introduction
读SPCBPT:Subspace-based Probabilistic Connections for Bidirectional Path Tracing
SPCBPT: Subspace-based Probabilistic Connections for Bidirectional Path Tracing
题目:对于双向路径追踪这个领域,基于子空间的概率链接。
第一印象:一种对于双向路径追踪的,针对于概率链接的优化,使用了子空间这个方法。
个人还是喜欢这种论文,相对于深度学习based的技术硬核太多了。
Abstraction双向路径追踪可以通过选择合适的光线子路径的链接来进行加速优化。然而,现有的算法需要执行频率分布重建并且会有昂贵的开销(现有算法是什么?)。
我们提出了一种用于概率连接的新方法SPCBPT,该方法构造子路径空间中的光选择分布。我们的方法将子路径分为多个子空间,并将子路径保持在低差异的同一子空间中,其中可以通过基于子空间的两阶段采样方法来选择光子路径,即,首先对光子空间进行采样,然后对该子空间内的光子路径进行重新采样。基于子空间的分布不需要重建,并且以非常低的成本提供了有效的光选择。我们还提出了一种在光选择中考虑多重要性采样(MIS)项的方法,从而获得MIS感知分布,该分布可以最小化组合估计器的方差上限。先前的方 ...
Physically Based Rendering -- PBR Book
Sampling TheoryStratified Sampling
LHS: The Latin hypercube sampling
论文阅读:Optimally Combining Sampling Techniques for Monte Carlo Rendering —— 一文读懂MIS
论文阅读:Optimally Combining Sampling Techniques for Monte Carlo Rendering中文翻译大概叫“对蒙特卡洛渲染中复合采样技术的优化”,从源头说起,一文搞懂mis(multiple importance sampling)多重重要性采样是什么为什么怎么样,以及为什么glsl-pathtracer要对反射方向以及光源都采样一次。
介绍渲染就是积分,积分很多都用MC(蒙特卡罗方法),但是MC的缺点就是因为他是基于概率估计,估计结果会有方差,具体体现在图像上就是噪声。
因为计算机图形学中的积分函数往往是病态的,所以我们经常需要不止一种采样策略来让我们的方差变小。
因此,这里需要解决的问题就是——我有很多种采样方法,如何调整每种采样方法的权重,来使最终的计算方差最小。“我们方法的意义不在于我们可以采用几种糟糕的采样技术并从中炮制出一种好的技术,而是我们可以采用几种可能好的技术并将它们结合起来,以便保留每种技术的优势”
第二部分,我们回顾了用于渲染的 MC 集成的基础知识,并给出了一个例子来激发我们的方差减少框架。
第三部分解释了我们关于 ...
读 BI-DIRECTIONAL PATH TRACING 论文
BI-DIRECTIONAL PATH TRACING 双向路径追踪图形学研究进展需要复现一篇SIGGRAPH,遂找了一篇网上还没代码的论文。这里学习一下其基础:双向路径追踪。
Abstract在本文中,我们提出了一种新的蒙特卡罗渲染算法,该算法无缝集成了拍摄和采集能力,以创建真实感图像。该算法可以被解释为众所周知的路径跟踪算法的推广。测试结果表明,它在间接照明很重要的典型室内场景中表现得更好。
Introduction作者提出了一种新的蒙特卡洛算法来将光源和眼睛顶点放在相同的基础上处理,此之谓双向路径追踪。
后面提到了一篇多pass的渲染论文,问了下chatgpt:
《A progressive multi-pass method for global illumination》是一篇关于全局照明的论文。该论文提出了一种渐进式多通道方法,用于解决全局照明中的光照计算问题。
该方法基于迭代的思想,通过多次迭代来逐步优化全局照明的计算结果。具体来说,该方法分为多个通道,每个通道都对应着一种光照计算模型,例如光线跟踪、辐射度传输、环境光照等。在每个通道中,该方法会使用之前通道的计算结果作 ...
读 Hierarchical Russian Roulette for Vertex Connections 论文
读 Hierarchical Russian Roulette for Vertex Connections 论文Abstract虽然双向路径追踪是一种成熟的光传输算法,但需要许多样本才能获得specular-diffuse-glossy或者glossy-diffuse-glossy的高质量结果,尤其是当它们具有高光泽时。为了提高这种光路配置的效率,我们提出了一种用于顶点连接的分层俄罗斯轮盘赌技术。
我们的技术根据许多缓存的光子路径顶点的眼睛子路径顶点处的近似散射波瓣,加速了大量的俄罗斯轮盘赌操作。我们的方法通过引入以自上而下的方式分配随机数的分层拒绝算法,显着减少了俄罗斯轮盘赌所需的随机数生成次数。为了有效地拒绝每个层次结构中的光顶点,我们还引入了用于俄罗斯轮盘赌概率的各向异性散射波瓣的有效近似。我们的技术很容易集成到一些现有的基于双向路径跟踪的算法中,这些算法缓存光子路径顶点(例如,概率连接、顶点连接和合并)。此外,与现有的多光方法不同,由于俄罗斯轮盘赌的简单性,我们的方法不限制多重重要性采样策略。尽管所提出的技术不支持完美的镜面反射表面,但它显着提高了以无偏差方式在极其光滑的表面 ...
读 On the Spectral Bias of Neural Networks
On the Spectral Bias of Neural Networks 关于神经网络的谱偏差
读 NeRF 论文
读 NeRF 论文摘要:之前是只听说过,然后简单了解了机理,没真正读过NeRF。这次来读一下,就是先翻译,然后记下来。肯定有疏漏,或许有不对的地方,不过对我够用了。我把直接翻译出来的用黑体表示, 把和具体实现相关的用斜体表示,我能看懂的拿我理解的话说出来。
NeRF全程叫 Representing Scences as Neural Radiance Fields for View Synthesis。字面意思大概是:对于视角合成问题,将场景描述为神经辐射场。
就是说,发明了一种方法,具体就是说,用一系列稀疏的视图集合,还原出场景的新视图。(注意到这里说的不是还原出整个场景)。
算法使用全连接(特意强调了一下不用卷积)深度神经网络表达一个场景,输入是五维坐标,输出是“the volume density and view-dependent emitted radiance at that spatial location”,在空间位置的体积密度以及依赖于视角的发射的radiance。
如何用我们的刚才说的算法合成这个场景的新视角视图呢:论文中说的是,沿着相机射线查询5D坐标(相机位置 ...
Physics-Based Ray Tracing
Physics-Based Ray TracingRay-Triangle Intersection有很多关于光线和三角形求交的算法,这里学习一下包含三角形的参数平面重心坐标算法,因为它不包含除了三角形顶点的长期存储。
为了将一个光线和参数平面求交,我们设置了一个笛卡尔坐标方程组:
等号左边是光线经过了多少t和三角形相交,右边是光线和三角形交点坐标在三角形参数平面上的uv坐标。
在参数平面上,所有点都是abc三个点的线性组合,也就是说:
其中beta和gamma需要当且仅当$\beta>0,\ \gamma>0,\ \beta+\gamma<1$时,交点才在三角形上。从上面的方程可以得到关于t,beta,gamma的方程组:
易转换为线性系统:
经典的算法是用克拉默法则(Cramer’s Rule)嗯算。这里貌似也只讲了克拉默法则嗯算,算出t,beta和gamma。
最后程序的结果是这样
不过为啥我看的shader里面的求交算的比这个麻烦很多,因为涉及到很多数值计算上的细节。