GAMES101-现代计算机图形学入门-闫令琪——Lecture 16 Ray Tracing 4

Monte Carlo Integration(蒙特卡洛积分)

求定积分的
其理念是随机采样,假设函数值就等于采样出的函数值,那么积分就是一个矩形面积,多次采样,去所有矩形面积的平均。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Path Tracing路线追踪

  • Whitted-Style Ray Tracing真的对么?
    光线遇到光滑的平面就反射,遇到粗糙的就停止
    显然不一定对,路径追踪就是解决这个问题
    在这里插入图片描述

  • 第一个问题:对于glossy材质的东西,我们还认为他的反射光是镜面反射方向是不对的。
    在这里插入图片描述

  • 第二个问题:一个光线达到漫反射就停了是不对的。
    在这里插入图片描述

  • Whitted-Style Ray Tracing is Wrong

  • But the rendering equation is correct
    在这里插入图片描述

  • 想解这个方程:在积分域上进行采样

在这里插入图片描述

  • 最简单的方法就是均匀的采样
    在这里插入图片描述
    在这里插入图片描述

  • 具体计算:
    在这里插入图片描述

  • 如果反射过来是物体的光:递归:
    在这里插入图片描述

  • 但是问题还是没有解决,问题在哪?光线的数量会爆炸
    在这里插入图片描述
    在这里插入图片描述

  • 解决方案是让N等于1,也就是只采样一次。可能最后noise会很大
    在这里插入图片描述

  • 这样实际上就相当于一个像素会产生很多路径,可以让路径的数量变多最后再相加取平均。
    在这里插入图片描述

  • 但是这个算法还是有问题,这个算法是递归的,不会停!

  • 解决方案:限制次数?不对,会损失能量

  • 真正解决方案:俄罗斯轮盘赌

Solution: Russian Roulette(RR)俄罗斯轮盘赌

  • 一定的概率停止继续追踪
    在这里插入图片描述
  • 这方法太尼玛离谱了
    他的期望竟然还是其本身
    在这里插入图片描述
  • 代码修改:
    在这里插入图片描述
  • 此时,这就是正确的路径追踪的方法了
  • 但是还有点小缺陷:有点低效
  • 采样点不够的话会有噪声
    在这里插入图片描述
  • 问题在哪?
    打不打得到光源看运气,很多光浪费掉了。怎么办?
    在这里插入图片描述
  • 换一种采样方法,不再均匀的往四面八方采样,往光源上采样,但是蒙娜卡诺要求在x上采样在x上积分,如果在光源上采样就会发生在光源上采样在立体角上积分的现象。得把采样写成在光源上积分
    在这里插入图片描述
  • 方法:
    只需要知道 d ω d \omega dω d A d A dA的关系
    就相当于 d A d A dA在球面的投影再除以距离的平方(立体角的定义就是面积除以距离的平方)
    在这里插入图片描述
  • 改变积分域:
    在这里插入图片描述
    在这里插入图片描述
    这样,把传播分成两部分,来自光源的用这个新的方法,其他位置的用老方法
    在这里插入图片描述
    在这里插入图片描述
    其中如果找间接光照要判断是不是来自光源,如果是光源要排除,因为之前算过了。
  • 还有一个一个小问题:
    这么算的前提是光源不被遮挡,还需要看光源能不能影响到,还需要连一个线,看看能不能被挡到
    在这里插入图片描述
  • 对于路线追踪,点光源很难办,最好做成一个很小的面积单元

Some Side Notes

在这里插入图片描述

  • 极度的真实感:
    在这里插入图片描述
  • 以前说光线传播就是Whitted-style ray tracing
  • 现在是所有方法的大集合
    在这里插入图片描述
  • 选择什么样的pdf最好?重要性采样理论
  • 随机数也可以保证不太密集也不太稀疏
    在这里插入图片描述
  • 把不同的采样方法结合
  • 为什么path平均起来就是像素,需不需要加权?
  • 怎么把radiance变成像素
    在这里插入图片描述
Logo

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

更多推荐