是否可以在没有CUDA / OpenCL等的情况下使用GPU进行光线追踪?

时间:2011-03-03 01:58:40

标签: gpu raytracing gpu-programming

我正在使用Windows Phone 7,它不支持CUDA或OpenCL等功能。我是GPU的新手,GPU上有什么东西可以用来帮助加速光线追踪吗?像三角交叉测试?或者从纹理中选择正确的颜色?

2 个答案:

答案 0 :(得分:2)

CUDA等实际上只是用于编程着色器的更高级语言,因此任何支持可编程着色器的平台都允许您在gpu上运行通用计算。

不幸的是,它看起来像Windows Phone 7 does not support custom programmable shaders,因此目前无法实现光线跟踪器的GPU加速。即使是这样,由于几个非常反GPU的特性,很难有效地使用GPU进行光线跟踪:

  1. 记忆力差(每条光线很容易与完全不同的几何体相互作用)
  2. 高分支因子(着色器最适合使用始终遵循单一路径的代码)
  3. 大工作集(任何时候都必须在内存中访问许多几何图形以计算甚至单条光线的结果)
  4. 如果您的目标是编写光线跟踪器,那么在CPU上完全完成操作可能要容易得多,而且只考虑更深奥的优化。

答案 1 :(得分:0)

即使在现代普通台式电脑上,光线追踪仍然有点慢。您可以通过仅拍摄主光线来加快速度,但光栅化方法实际上会更好更快。

您确定,您想要在手机上进行光线跟踪,而手机的计算能力甚至比PC还要低吗?它们不是为做那种工作而设计的。