GAMES101-现代计算机图形学入门-闫令琪——Lecture 16 Ray Tracing 4
·
目录
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变成像素

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



所有评论(0)