2

我想对 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 位置并将其映射到四边形的 2d 角?我找到了这个例子:http ://www.felixgers.de/teaching/jogl/texture3D.html但我不知道这是否意味着你必须使用 3d 顶点。有谁知道更多带有明确示例的来源?

4

2 回答 2

2

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

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

这会产生一个 3d 纹理像素立方体,是的,您可以将这个立方体中的 3d 位置映射到四边形的一角。

于 2012-12-16T10:56:23.617 回答
2

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

于 2012-12-16T11:30:28.260 回答