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

Я хочу сделать объемный рендеринг данных КТ на основе текстуры. У меня есть стопка 2D-изображений CT, которые я хотел бы использовать в качестве 3D-текстуры в opengl (на самом деле jogl). Приходится делать так, как с полигональной прокси-геометрией, которая смещается при изменении параметров просмотра. Как я могу преобразовать 2D-изображения в одну 3D-текстуру? Мне не удалось найти ничего о том, как opengl ожидает форматирования 3D-изображений. Я видел это: https://stackoverflow.com/questions/13509191/how-to-convert-2d-image-into-3d-image , но это не то же самое.

Кроме того, я все еще в замешательстве по поводу этой техники объемного рендеринга. Можно ли взять трехмерное местоположение в трехмерной текстуре и сопоставить его с двумерным углом четырехугольника? Я нашел этот пример: http://www.felixgers.de/teaching/jogl/texture3D.html, но я не знаю, означает ли это, что вам нужно использовать 3D-вершины. Кто-нибудь знает больше источников с явными примерами?


person AAB    schedule 16.12.2012    source источник


Ответы (2)


Видеть

http://www.opengl.org/registry/doc/glspec40.core.20100311.pdf

раздел 3.8.3, посвященный определению трехмерных текстурных изображений.

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

person tjltjl    schedule 16.12.2012

OpenGL знает формат 3D-текстуры, в котором каждый тексель представляет собой небольшой подобъем в кубе [0;1]^3. Когда вы текстурируете треугольник или четырехугольник с помощью этой текстуры, это похоже на то, как если бы вы вырезали тонкий срез этого объема. Если вы хотите объемный, вы должны написать объемный raycaster. Если вы погуглите «прямой объемный рендеринг с помощью графического процессора», вы найдете множество руководств.

person datenwolf    schedule 16.12.2012