【发布时间】:2015-04-16 22:52:02
【问题描述】:
是否有任何适当的方法可以访问 VTK 的低级 OpenGL 对象,以便使用 openGL-CUDA/OpenCL 互操作性功能从 CUDA/OpenCL 内核修改它们?
具体来说,我想从 vtkOpenGLGPUVolumeRayCastMapper 中获取 GLuint(或无符号整数)成员,该成员指向存储数据集的 Opengl 3D 纹理对象,以便将其绑定到 CUDA Surface 以便能够访问和修改它的值来自我实现的 CUDA 内核。
有关更多信息,我需要遵循的过程在此处进行了说明: http://rauwendaal.net/2011/12/02/writing-to-3d-opengl-textures-in-cuda-4-1-with-3d-surface-writes/ 其中使用的 texID 对象(在步骤 1 和 2 中)与我想从 VTK 中检索的对象相同。
首先看一下 vtkOpenGLGPUVolumeRayCastMapper 函数,我没有找到一种简单的方法来做到这一点,而不是创建一个 vtkGPUVolumeRayCastMapper 子类,但即使在那种情况下,我也不确定我应该准确地修改什么,因为我猜其他一些成员依赖于3D Texture值,修改后也要更新。
那么,你知道一些方法可以做到这一点吗?
非常感谢。
【问题讨论】: