Конвертировать стопку 2D-изображений в 3D-изображение, объем рендеринга
Я хочу сделать текстурный рендеринг объемных данных CT. У меня есть стек двухмерных изображений CT, которые я хотел бы использовать в качестве 3D-текстуры в opengl (действительно, jogl). Я должен сделать это так, как геометрия многоугольника прокси, которая смещается при изменении параметров просмотра. Как я могу преобразовать 2d изображения в одну 3d текстуру? Я не смог найти ничего о том, как opengl ожидает форматирования трехмерных изображений. Я видел это: https://stackru.com/questions/13509191/how-to-convert-2d-image-into-3d-image, но я не то же самое.
Кроме того, я все еще в замешательстве по поводу этой техники объемного рендеринга. Можно ли взять 3d местоположение в 3d текстуре и отобразить его на 2d угол четырехугольника? Я нашел этот пример: http://www.felixgers.de/teaching/jogl/texture3D.html но я не знаю, означает ли это, что вы должны использовать трехмерные вершины. Кто-нибудь знает больше источников с явными примерами?
2 ответа
Увидеть
http://www.opengl.org/registry/doc/glspec40.core.20100311.pdf
раздел 3.8.3, по определению 3D текстур изображений.
В результате получается трехмерный куб текселей, и да, вы можете отобразить трехмерное местоположение в этом кубе на угол четырехугольника.
OpenGL знает формат 3D текстур, где каждый тексель представляет собой небольшой подобъем в кубе [0;1]^3. Когда вы текстурируете треугольник или квад с помощью этой текстуры, это похоже на то, как если бы вы вырезали тонкий срез этого объема. Если вам нужен объемный объем, вы должны написать объемный raycaster. Если вы используете Google "GPU Direct Volume Rendering", вы должны найти множество учебных пособий.