ИДЕИ: как интерактивно визуализировать большие серии изображений с помощью прямого рендеринга на основе графического процессора - PullRequest
4 голосов
/ 23 ноября 2010

Мне нужна идея, как преобразовать серию цветных изображений TIFF размером 30+ ГБ, 2000+ в набор данных, который можно визуализировать в реальном времени (с интерактивной частотой кадров), используя объемную визуализацию на основе графического процессора (используя OpenCL / OpenGL / GLSL ). Я хочу использовать подход прямой визуализации объема вместо подгонки поверхности (то есть лучевое вещание вместо движущихся кубов).

Проблема двоякая, сначала мне нужно преобразовать мои изображения в набор 3D данных. Первое, что пришло мне в голову, - это увидеть все изображения как 2D-текстуры и просто сложить их для создания 3D-текстуры.

Вторая проблема - интерактивные частоты кадров. Для этого мне, вероятно, понадобится какая-то понижающая дискретизация в сочетании с «детализацией по требованию», загружающей набор данных с высоким разрешением при масштабировании или что-то в этом роде.

Первый найденный мной точечный подход:

  1. полигонизация полных объемных данных путем послойной обработки и генерации соответствующей текстуры изображения;
  2. выполнение всех необходимых преобразований с помощью операций вершинного процессора;
  3. деление полигональных срезов на более мелкие фрагменты, где записаны соответствующие координаты глубины и текстуры;
  4. в обработке фрагментов, с использованием техники программирования вершинных шейдеров для улучшения рендеринга фрагментов.

Но у меня нет конкретных идей о том, как начать реализацию этого подхода.

Я хотел бы увидеть свежие идеи или идеи о том, как начать реализацию подхода, показанного выше.

Ответы [ 2 ]

2 голосов
/ 24 ноября 2010

Если у кого-то есть свежие идеи в этой области, они, вероятно, попытаются разработать и опубликовать их. Это постоянная область исследований.

В вашем "точечном подходе" кажется, что вы обрисовали в общих чертах основной метод рендеринга томов на основе срезов. Это может дать хорошие результаты, но многие люди переходят на аппаратный метод лучевого вещания. Есть пример этого в CUDA SDK, если вы заинтересованы.

Хороший метод для визуализации иерархического тома был подробно описан Crassin et al. в их статье под названием Гигавоксели . Он использует подход на основе октодерева, который загружает кирпичи, необходимые в памяти, только когда они необходимы.

Очень хорошая вводная книга в этой области: Графика в реальном времени .

1 голос
/ 24 ноября 2010

Я сделал небольшой объемный рендеринг, хотя мой код сгенерировал изоповерхность, используя марширующие кубы, и отобразил это. Однако, в моем скромном самообучении по объемному рендерингу я наткнулся на интересную короткую статью: Объемный рендеринг на обычном компьютерном оборудовании . Это идет с примером источника тоже. Я никогда не удосужился проверить это, но это казалось многообещающим. Это именно DirectX, а не OpenGL. Может быть, это может дать вам некоторые идеи и место для начала.

...