文章目录
- 前言
- 十、蒙特卡罗积分(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点反射的光线。这样将间接光照转换为其它情形的直接光照来解决。
课程的最后
光线追踪这一块对于我这个门外汉来说还是太难了。