У меня есть несколько концептуальных вопросов о 3D-текстурах и наложении текстур в OpenGL, которые я пытаюсь понять. Вопросы относятся к реализации кода, особенно для трехмерного текстурирования в этом руководстве: http://www.codeproject.com/Articles/352270/Getting-started-with-Volume-Rendering?fid=1807805&df=90&mpp=25&noise=3&prof=False&sort=Position&view=Normal&spc=Relaxed&select=4729498&fr=1#xx4738025xx
Размеры набора данных, используемого в руководстве, равны 256 x 256 x 109
(109 2D-срезов).
1.
Код предоставляет способ сопоставить 2D-изображения с 3D-текстурой, загружая все 2D-срезы в единый массив данных. Затем он переходит к отображению данных в 3D-текстуру, увеличивая fIndx
от -1.0f
до +1.0f
с шагом 0.003f
. Почему шаг приращения составляет 0.003f
? Имеется ~ 666,667 приращений, что примерно в 6,11 раз превышает общее количество 2D-срезов (109 срезов).
for ( float fIndx = -1.0f; fIndx <= 1.0f; fIndx+=0.003f )
{
glBegin(GL_QUADS);
MAP_3DTEXT( fIndx );
glEnd();
}
2.
Я пытаюсь понять, как перемещаться по визуализированному объему с помощью 3D-текстур. То, что я пытаюсь сделать, похоже на видео на этом веб-сайте: http://cvlab.epfl.ch/research/medical/em/synapses
Данные на этом веб-сайте обязательно должны быть 2D-изображениями, которые сопоставлены с 2D-текстурами. Итак, просто заставить каждый слой в объеме исчезнуть очевидно легко (но я не знаю, как это сделать!). Мои данные выглядят так: http://ctrlv.in/292069
ИЗМЕНИТЬ
В моем наборе данных 256 фрагментов, и я хочу просмотреть каждый фрагмент один за другим. Как я могу перемещаться по фрагментам один за другим, как на видео?