光线追踪算法汇总

电子说

1.2w人已加入

描述

1、随机采样

在基本光线追踪算法中,只追踪有限数目的光线。这是一个采样过程(sampling process)。

采样有很多种方法:

a、均匀采样

举例:根据给定的区间绘制数学函数。

将区间划分为许多小的宽度一致的小区间,在小区间的中点处计算函数的值,最终将这些点平滑连接出来。

光子

在小区间数目很少的情况下,均匀采样可能会得到错误的结果。

b、随机采样

使用随机间隔宽度代替统一间隔宽度。

光子

可以使用随机采样绘制平滑的阴影;绘制模糊的反射和折射;考虑景深;考虑运动模糊。

2、路径追踪

路径追踪算法考虑了全局光照问题。之前的光线追踪只考虑了四种类型的光线,没有哪一条光线考虑了物体之间的作用。

通过追踪交点周围所有路径的光线来计算间接光照,为了避免无限渲染次数,所有的可能光线路径使用随机采样。这种方法的光线分布通常是半球形,中心点是交点。

渲染有天空光的户外场景中,路径追踪算法非常有效率。因为这种场景下光变化的频率不大,也就是说,采样的函数值变化不大,小规模的采样依然可以得到很好的效果。

光子

双向(Bidirectional)路径追踪额外追踪了发自光源的光线,减少了路径追踪的采样次数。

3、光子映射(photon mapping)

两通道算法,考虑了全局光照和物体之间的反射,实现了caustics effect。

Pass 1-创建photon map

光线(光子)从光源开始追踪,光子携带从光源散发的一部分能量。

当光子在场景中传播时,可能被反射、穿透、吸收。

当光子击中漫反射表面时,使用map存储射进的能量。

photon map以k-d tree数据结构实现。

Pass 2-渲染阶段

使用光线追踪算法。在交点处,使用存储在map中的信息去估计光照度。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分