加速光线追踪算法优化
在上一篇文章中,我们学习了光线追踪的基本原理:向场景发射光线,并计算它与物体是否相交。听起来很简单,对吧?
但这里隐藏着一个巨大的性能陷阱:假设你的场景中有 1000 万个三角形,需要渲染 1920×1080 分辨率的图像。
- 朴素做法:每条光线都与这 1000 万个三角形逐一进行求交测试
- 时间复杂度:O(像素数 × 三角形数) ≈ 2M × 10M = 20 万亿次计算
- 实际后果:渲染一帧可能需要几天甚至几周
本文基于 GAMES101 Lecture 14 的内容,介绍三种主流的光线追踪加速结构,帮助你理解现代渲染器如何将渲染时间从几天缩短到几秒。
核心思想:如果光线连物体所在的区域都没碰到,那就不需要测试区域内的物体。
