本部分继续光线追踪部分,先介绍了蒙特卡洛积分的方法,之后对路径追踪PT的发展和推导过程进行了全面的阐述。

学习视频

GAMES101-现代计算机图形学入门-闫令琪_哔哩哔哩_bilibiliicon-default.png?t=LA92https://www.bilibili.com/video/BV1X7411F744?p=16

图标

本节需要准备知识:上一节的渲染方程、概率和微积分的基本知识。下面的蒙特卡洛积分部分也算是提前的知识储备。

蒙特卡洛积分

为什么:

我们想要解决一个定积分,但它可能很难通过解析式解决。

怎么样使用蒙特卡洛积分:

每次采样都采到那些概率高的点,在求总的估计量的时候就要降低这些点的占比,所以是除以概率

例子

注意

路径追踪

Whitted-Style光线追踪

可见:

计算机图形学入门(十三)-光线追踪(基本原理) - 知乎 (zhihu.com)

Whitted-Style光线追踪问题1:对于光滑材质并不能使用镜面反射那种计算方式

Whitted-Style光线追踪是不正确的

但是渲染方程是正确的

见上一节

计算机图形学入门(十六)-光线追踪(渲染方程) - 知乎 (zhihu.com)

一个简单的蒙特卡洛积分应用

继续写

渲染算法

进一步加入间接光照

严重的问题:指数爆炸

修改一下之前的算法

N!=1叫做分布式光线追踪,现在很少有人提了,还是指数爆炸的问题。

真实世界中光线确实不会停下来,但在计算机中可不能这么模拟,但限制弹射次数又会有能量损失(继续弹射的那部分光不去计算了),聪明的人们想出了办法:

俄罗斯轮盘赌

这样最后的光线追踪结果基本上和无限反射结果相同

但仍存在问题

需要提高效率

回想蒙特卡洛积分

渲染方程改写成对面积dA的积分

现在可以回到原来的算法了

路径追踪的代码基本就这些了

遗留问题,点光源怎么办?建议把点光源变成个小面积光源。

一些其他的点

右边就是本节讲述的方法实现

还有一些问题并没有谈到

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐