3D выборка текстур в OpenGL
В настоящее время я пытаюсь научиться литье лучей на 3D-текстуре, используя что-то вроде glTexImage3D
, Я следовал этому руководству с самого начала. Моя конечная цель - создать программу, которая может работать так:
Насколько я понимаю, это было сделано с использованием метода лучевого вещания, и модель импортируется в виде 3D-текстуры. Задачи лучевого вещания и выборки текстур выполнялись в фрагментном шейдере. Я надеюсь, что смогу повторить эту программу на практике. Не могли бы вы ответить на мои вопросы?
- Какой формат файла следует использовать для импорта 3D-текстуры?
- Какие функции GLSL я должен использовать для определения расстояния между моим лучом и текстурой?
- В чем различия выборки трехмерных текстур и объемного рендеринга?
- Существуют ли доступные онлайн-учебники для меня?
- Как я могу создать свою собственную 3D текстуру? (Можно ли сделать один с помощью блендера?)
1 ответ
1. Какой формат файла следует использовать для импорта 3D-текстуры?
Не имеет значения, OpenGL не работает с форматами файлов.
2. Какие функции glsl я должен использовать для определения расстояния между моим лучом и текстурой?
Там нет "готово использовать" функцию радиопередачи. Вы должны реализовать Raycaster самостоятельно. Т.е. между начальной и конечной точкой сэмплируйте текстуру вдоль линии (луча) и интегрируйте сэмплы до конечного значения цвета.
3. В чем различия выборки трехмерных текстур и рендеринга объема?
Выборка трехмерной текстуры не сильно отличается от выборки 2D, 1D, кубической карты или любой другой топологии текстуры. Для данного вектора A восстанавливается определенный вектор B, а именно либо значение выборки, которое ближе всего к местоположению, на которое указывает A (ближайшая выборка), либо интерполированное значение.
4. Существуют ли доступные онлайн-учебники для меня?
http://www.real-time-volume-graphics.org/?page_id=28
5. Как я могу создать свою собственную 3D текстуру? (Можно ли сделать один с помощью блендера?)
Вы, конечно, можете использовать Blender, например, выпекая объемные данные, такие как плотность тумана. Но весь предмет слишком широк, чтобы быть здесь достаточно освещенным.