0

我有一个关于使用 OpenGL 显示由一组 2D 灰度图像组成的 3D 体积的问题。

更准确地说,我只想在 x、y 和 z 方向显示体积的中心切片。

我已经成功地做到了这一点,只需在我想要显示的坐标处循环体数据并使用 GL_POINTS 绘制它们,如下所示(显示 z 方向中心切片):

for (x=0; x<sizeX; x++){
  for (y=0; y<sizeY; y++){
    color=volume(x,y,0)
    glBegin(GL_POINTS);
    glColor3f(color,color,color);
    glVertex3f(x,y,0);
    glEnd();
  }
}

我知道体素的真实世界尺寸(以 mm 为单位),所以我正在考虑将体素显示为具有该尺寸的立方体,而不是像我现在正在做的 GL_POINTS。这是一个好方法吗?我在某处读到,将体素显示为立方体通常不是一个好主意。

顺便说一句,该卷包含大约 300 张尺寸为 400x350 像素的图像。

4

1 回答 1

1

如果您的应用程序要显示密集的体积数据切片,我看不到使用点或体素的好处。对我来说,实现您所要求的最佳方式是使用简单的平面,即您使用图像数据进行纹理映射。你提到了网格数据的维度,如果你想可视化这个事实,你也可以使用盒子而不是平面。与 glPoint 或使用框来表示每个单独的体素相比,使用纹理贴图应该更有效。

网上有很多教程告诉你如何做到这一点(例如NeHe)。

于 2012-04-17T15:57:30.673 回答