将2D图像堆栈转换为3d图像,体积渲染

时间:2012-12-16 10:06:48

标签: opengl jogl volume-rendering 3d-texture

我想做一个基于纹理的CT数据体绘制。我有一堆2d CT图像,我想在opengl中使用它作为3d纹理(实际上是jogl)。我必须采用多边形代理几何体的方式,当观察参数发生变化时,它会发生变化。如何将2D图像转换为一个3d纹理?我一直无法找到有关opengl如何格式化3D图像的信息。我看到了这个:https://stackoverflow.com/questions/13509191/how-to-convert-2d-image-into-3d-image,但我不是一样的。

另外,我仍然对这种体积渲染技术感到困惑。是否可以在3d纹理中获取3d位置并将其映射到四边形的二维角?我找到了这个例子:http://www.felixgers.de/teaching/jogl/texture3D.html但我不知道是否意味着你必须使用3d顶点。有没有人通过明确的例子了解更多来源?

2 个答案:

答案 0 :(得分:2)

http://www.opengl.org/registry/doc/glspec40.core.20100311.pdf

第3.8.3节,关于定义3D纹理图像。

这会产生三维立方体纹素,是的,您可以将此立方体中的三维位置映射到四边形的一角。

答案 1 :(得分:2)

OpenGL确实知道3D纹理格式,其中每个纹素是[0; 1] ^ 3立方体中的小子体积。使用此纹理对三角形或四边形进行纹理处理时,就像切出该卷的一个薄切片一样。如果你想要一个体积,你必须写一个卷raycaster。如果你谷歌“GPU直接体积渲染”,你应该找到很多教程。