论文阅读: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的高质量结果,尤其是当它们具有高光泽时。为了提高这种光路配置的效率,我们提出了一种用于顶点连接的分层俄罗斯轮盘赌技术。
我们的技术根据许多缓存的光子路径顶点的眼睛子路径顶点处的近似散射波瓣,加速了大量的俄罗斯轮盘赌操作。我们的方法通过引入以自上而下的方式分配随机数的分层拒绝算法,显着减少了俄罗斯轮盘赌所需的随机数生成次数。为了有效地拒绝每个层次结构中的光顶点,我们还引入了用于俄罗斯轮盘赌概率的各向异性散射波瓣的有效近似。我们的技术很容易集成到一些现有的基于双向路径跟踪的算法中,这些算法缓存光子路径顶点(例如,概率连接、顶点连接和合并)。此外,与现有的多光方法不同,由于俄罗斯轮盘赌的简单性,我们的方法不限制多重重要性采样策略。尽管所提出的技术不支持完美的镜面反射表面,但它显着提高了以无偏差方式在极其光滑的表面 ...
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里面的求交算的比这个麻烦很多,因为涉及到很多数值计算上的细节。
Fundamentals of Computer Graphics
Fundamentals of Computer Graphics 1Contents 目录
Introduction 简介
Miscellaneous Math 各种数学
Raster Image 光栅图像
Ray Tracing 光线追踪
Surface Shading 表面着色
Linear Algebra 线性代数
Transformation Matrices 矩阵转换
Viewing 视图
The Graphics Pipeline 图形管线
Signal Processing 信号处理
Texture Mapping 纹理映射
Data Structures for Graphics 图形学数据结构
Sampling 采样
Physics-Based Rendering 基于物理的渲染
Curves 曲线
Computer Animation 计算机动画
Using Graphics Hardware 使用图形学硬件
Color 颜色
Visual Perception 视觉感知
Tone Reproduction 色调再现
Implicit Modeling 隐式模型
...