递归性质和大数目追踪光线解决方案
问题: 1、性能 算法的递归性质和大数目的追踪光线,渲染过程可能持续数小时。80-90%的渲染时间花费在计算光线和物体交点上。
2、走样
3、尖锐的阴影 基本的光线追踪算法只能得到尖锐的阴影(因为模拟的是点光源)。
4、局部光照和着色 算法只追踪少数目的光线,只有四种类型的光线被考虑在内,物体之间的漫反射光没有被考虑在内,即算法并不包括全局光照。
解决方案: 1、性能 使用更多或者更好的硬件 大规模并行计算。每一个光线都相互独立。将图像分割,分配在多核上或者分布式网络上;或者分配在多个线程上。 限制交点检测的数目。使用包围盒的层次关系。快速判断光线是否和一组物体相交。物体被分组在封闭的包围盒中。利用空间细分技术:octree,BSP,grid. 优化交点检测 限制追踪光线的数目,确定最大的递归层数。根据光线对当前像素点贡献值大小来限制递归深度。一个阈值用来确定后续光线由于对像素点贡献太小而不会被追踪。
2、走样 使用超采样(super sampling)、抗锯齿(antialiasing)、jittering
3、尖锐的阴影
原因:使用点光源、每个交点仅仅对应一条阴影光线。 4、全局光照 依旧可以使用Monte Carlo法。使用Radiosity算法。
|