IDEAs:如何使用基于GPU的直接体积渲染以交互方式渲染大型图像系列

时间:2010-11-23 11:52:01

标签: opengl visualization opencl data-visualization large-data-volumes

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

问题是双重的,首先我需要将我的图像转换为3D数据集。我想到的第一件事就是将所有图像看作2D纹理,然后将它们叠加在一起以创建3D纹理。

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

我找到的第一个逐点方法是:

  1. 通过逐层处理对完整体数据进行多边形化并生成相应的图像纹理;
  2. 通过顶点处理器操作执行所有必要的转换;
  3. 将多边形切片分成较小的片段,其中记录相应的深度和纹理坐标;
  4. 在片段处理中,部署顶点着色器编程技术以增强片段的渲染。
  5. 但我对如何开始实施这种方法没有具体的想法。

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

2 个答案:

答案 0 :(得分:2)

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

在您的“逐点方法”中,您似乎已经概述了基于切片的体积渲染的基本方法。这可以提供良好的结果,但许多人正在转向硬件光线投射方法。如果您有兴趣,可以在CUDA SDK中找到相关示例。

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

这方面的一本非常好的介绍性书籍是Real-Time Volume Graphics

答案 1 :(得分:1)

我已经完成了一些体积渲染,尽管我的代码使用行进立方体生成了一个等值面并显示出来。然而,在我对体积渲染的适度自我教育中,我确实遇到了一篇有趣的短文:Volume Rendering on Common Computer Hardware。它也有源代码示例。我从来没有去检查它,但它看起来很有希望。它是DirectX,而不是OpenGL。也许它可以给你一些想法和一个起点。

相关问题