【发布时间】:2010-10-21 03:36:33
【问题描述】:
我正在用 D (http://dsource.org/projects/stacy) 编写一个相对简单的光线追踪器/路径追踪器,但即使经过全面优化,每条光线仍需要数千个处理器周期。我还能做些什么来加快速度吗?更一般地说,您知道光线追踪的良好优化/更快的方法吗?
编辑:这是我已经在做的。
- 代码已经高度并行运行
- 临时数据以缓存效率高的方式结构化,并与 16b 对齐
- 屏幕分为 32x32 块
- 目标数组的排列方式使得一个图块中的所有后续像素在内存中都是连续的
- 已执行基本场景图优化
- 对象的常见组合(如方框中的平面-平面 CSG)已替换为预优化的对象
- 能够利用 GDC 的自动矢量化支持的矢量结构
- 射线上的后续命中是通过惰性求值找到的;这可以防止对 CSG 进行不必要的计算
- 三角形既不支持也不优先。仅限普通图元,以及 CSG 操作和基本材料属性
- 支持边界
【问题讨论】:
-
FeepingCreature,如果时序分析告诉您,这是您的光线/平面光线/球体交叉点是使用时间的地方,那么答案是做更少的测试。除非我当时错过了什么,否则我对空间分区的评论似乎是正确的方向。
标签: performance graphics d raytracing