4

我正在寻找如何将 30+gb、2000+ 彩色 TIFF 图像系列转换为能够使用基于 GPU 的体积渲染(使用 OpenCL / OpenGL / GLSL)实时可视化的数据集(交互式帧速率)的想法。我想使用直接体积可视化方法而不是表面拟合(即光线投射而不是行进立方体)。

问题有两个方面,首先我需要将图像转换为 3D 数据集。我首先想到的是将所有图像视为 2D 纹理,然后简单地将它们堆叠以创建 3D 纹理。

第二个问题是交互式帧速率。为此,我可能需要某种下采样结合“按需细节”在缩放或其他东西时加载高分辨率数据集。

我发现的第一种逐点方法是:

  1. 通过逐层处理将完整的体数据多边形化,生成相应的图像纹理;
  2. 通过顶点处理器操作执行所有必要的转换;
  3. 将多边形切片分成更小的片段,记录相应的深度和纹理坐标;
  4. 在片段处理中,部署顶点着色器编程技术来增强片段的渲染。

但是我对如何开始实施这种方法没有具体的想法。

我很想看到一些关于如何开始实施上述方法的新想法或想法。

4

2 回答 2

2

如果有人在这方面有任何新想法,他们可能会尝试开发和发布它们。这是一个正在进行的研究领域。

在您的“逐点方法”中,您似乎已经概述了基于切片的体积渲染的基本方法。这可以产生很好的效果,但很多人正在切换到硬件光线投射方法。如果您有兴趣,CUDA SDK 中有一个示例。

Crassin 等人详细介绍了一种用于分层体绘制的好方法。在他们名为Gigavoxels的论文中。它使用基于八叉树的方法,仅在需要时才在内存中加载所需的砖块。

这方面的一本非常好的入门书是Real-Time Volume Graphics

于 2010-11-24T00:47:10.140 回答
1

尽管我的代码使用行进立方体生成了一个等值面并显示了它,但我已经做了一些体积渲染。然而,在我对体积渲染的适度自我教育中,我确实遇到了一篇有趣的短论文:通用计算机硬件上的体积渲染。它也带有源示例。我从来没有检查过它,但它似乎很有希望。它是 DirectX,而不是 OpenGL。也许它可以给你一些想法和一个开始的地方。

于 2010-11-23T23:56:42.090 回答