【发布时间】:2012-12-18 22:35:11
【问题描述】:
我正在尝试使用 OpenGL 和 CUDA 实现点云,其中点的半径将根据与它们相关的一些数据随时间变化。
由于我对 OpenGL 和 CUDA 完全陌生,因此我很难实现这一目标。在学习了 OpenGL、GLSL 和 CUDA 的基础知识之后,我完全不知道程序的哪些部分应该如何实现。
我的想法如下:
- 使用带顶点位置的 VBO
- 使用带顶点半径的 VBO
- 使用具有顶点不确定性的 VBO。根据此数据,顶点的半径应以动画方式变化
- 计算每帧 CUDA 内核中所有顶点的半径
- 调用 glDrawArrays 来渲染所有点并使用顶点着色器,从数组中获取所有数据作为输入
首先...为此目的一起使用 CUDA 和 GLSL 着色器是否合理?由于我已经阅读了一些关于使用其中一种或另一种的内容,因此我不确定。
第二个问题是,程序的哪些部分将在 CPU 上执行,哪些在 GPU 上执行?在内核中计算数据然后传回OpenGL显示函数进行渲染有意义吗?
【问题讨论】:
标签: opengl cuda interop vbo point-clouds