当前位置: 代码迷 >> 综合 >> 光线追踪Ray Tracing(4)(笔记)
  详细解决方案

光线追踪Ray Tracing(4)(笔记)

热度:30   发布时间:2023-11-27 07:47:03.0

文章目录

  • 前言
  • 十、蒙特卡罗积分(Monte Carlo Integration)
      • 蒙特卡罗积分是拿来干嘛的
      • 蒙特卡罗积分怎么做
      • 蒙特卡罗积分的定义
  • 十一、回顾Whitted-Style Ray Tracing
      • Whitted-Style的内容
      • Whitted-Style的问题
  • 十二、使用蒙特卡罗方法解决渲染方程的积分问题
      • 一个简单场景的蒙特卡罗解决方案
      • 引入间接光照
  • 课程的最后


前言

今天的内容为路径追踪


十、蒙特卡罗积分(Monte Carlo Integration)

蒙特卡罗积分是拿来干嘛的

在这里插入图片描述
如果我们要求上图中a到b的定积分,很明显,这个函数的解析式我们求不出来。这时候我们就要使用蒙特卡罗方法,这是一种数值方法,可以得到复杂函数的定积分近似值。

蒙特卡罗积分怎么做

在这里插入图片描述
在a和b之间,采样多个x值,计算他们y的平均值。

蒙特卡罗积分的定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对于蒙特卡洛积分,采样越多结果越准确。如果采样的x,就要积分x。

十一、回顾Whitted-Style Ray Tracing

Whitted-Style的内容

在这里插入图片描述
Whitted-Style通过直接计算光线的反射来实现光追,对于这种光追方案,如果光线打到镜面的(Specular)物体上,会发生镜面反射和折射,但是如果光线打到漫反射物体上,光线就停了。
这样简化的算法是不准确的,所以接下来引入路径追踪算法。

Whitted-Style的问题

在这里插入图片描述
问题1.对于Glossy材质的物体,无法正确处理反射。
在这里插入图片描述
问题2.对于漫反射材质完全没有反射光线,而实际情况漫反射物体也应该有反射。上图左边使用直接光照来表现这一效果,右边使用全局光照表现我们期望的效果。

十二、使用蒙特卡罗方法解决渲染方程的积分问题

在这里插入图片描述
Whitted-Style是错误的,但是渲染方程是正确的,因为渲染方程是完全按照物理量推导出来的。但是渲染公式包括了解出一个半球的积分,以及执行递归运算。对于解积分,刚刚的蒙特卡罗方法正好可以用上。

一个简单场景的蒙特卡罗解决方案

在这里插入图片描述
在这个厂家中,有一个面光源,一个Box遮挡光线。
假设我们要渲染这个场景中的一个不会自发光的点。
在这里插入图片描述

将蒙特卡罗积分代入进来解这个积分。也就是在半球上不断采样。这样我们就可以得到一个计算公式。
在这里插入图片描述
以上即为直接光照的路径追踪算法。

引入间接光照

在这里插入图片描述
要计算间接光照,如上图,光线先打到了Q点,再反射到P点,再打到摄像机。这种情况可以假设摄像机在P点,用直接光照的路径追踪算法计算Q点反射来的光线,再回到原位置计算P点反射的光线。这样将间接光照转换为其它情形的直接光照来解决。

课程的最后

光线追踪这一块对于我这个门外汉来说还是太难了。