Рендеринг 3D-объема из стека 2D-изображений

Меня привлекли к проекту, в котором мне нужно визуализировать трехмерный объем из серии изображений объема. Изображения были созданы с помощью нескольких методов, так что они представляют собой вертикальные срезы рассматриваемого объекта.

Набор данных похож на этот вопрос , но спрашивающий ищет решение Matlab.

Цель состоит в том, чтобы это рисование происходило в режиме, близком к реальному времени (частота обновления> 1 Гц), и, согласно моим исследованиям, OpenGL кажется самым быстрым вариантом для рисования. Есть ли встроенная функция в openGL, отображающая объем в openGL, кроме следующего алгоритма псевдокода.

foreach(Image in Folder)
     foreach(Pixel in Image)
        pointColour(pixelColour)
        pointLocation(Pixel.X,Pixel.Y,Image.Z)
        drawPoint

Меня не беспокоит интерполяция между изображениями, текущий интервал достаточно мал, и в этом нет необходимости.


person Adam    schedule 17.05.2012    source источник
comment
Пожалуйста, перефразируйте свой вопрос, если вы намеревались РЕНДЕРИЗИРОВАТЬ 3D-объем, а не просто создавать 3D-текстуру.   -  person Ani    schedule 17.05.2012


Ответы (1)


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

Существует два метода рендеринга объема в реальном времени с использованием обычного графического оборудования.

  1. Визуализируйте объем как набор срезов, выровненных по 2D-виду, которые пересекают 3D-текстуру (прокси-геометрия). Объяснение здесь.
  2. Используйте raycaster, использующий программируемое графическое оборудование, руководство здесь.

Это непростая проблема, но в зависимости от того, что вам нужно сделать, все может быть немного проще. Например: Вам нужна интерактивная функция передачи? Вам нужны виды в перспективе или будет достаточно ортогональной проекции? Вы рендерите изо-поверхности? Вы используете это только для представлений типа MPR?

person Ani    schedule 17.05.2012
comment
Спасибо за помощь и ссылки. Ему не понадобится представление типа MPR, хотя они, похоже, начинают с данных, аналогичных тем, что есть у меня, поэтому я собираюсь подробнее изучить, что там делается. Орфографический вид - это все, что нужно. Изо-поверхности также не понадобятся, и меня не волнует интерактивная функция передачи. - person Adam; 17.05.2012