Как работает структура воксельных данных/openvdb?

Поскольку я не хочу изобретать велосипед, я ищу хорошую структуру данных, которая может помочь мне с действительно простым 3D-редактором для механизма 3D-рендеринга, я в основном ищу структуру данных, которая может хранить необходимые данные, которые в моем случае ограничены:

  • геометрия
  • локальные и глобальные координаты или также называемые преобразованиями
  • материалы или указатели на другую структуру, содержащую реальное определение для этих материалов

Теперь это мой первый подход к 3D-рендерингу, но у меня есть хорошее представление о том, как работает растеризатор, как треугольники, точки и линии обрабатываются графическим процессором для создания изображения. Моя проблема в том, что теперь я не понимаю, что это такое. новая структура данных, основанная на вокселах, и даже если эта OpenVDB подходит мне или нет.

Я думаю, что большинство «входных данных» для этого движка будут из файлов типа obj, то есть в основном треугольники и точки, но я все же не хочу пропустить самое последнее и лучшее, поэтому я спрашиваю, в чем реальная разница между OpenVDB и общая структура данных, содержащая триангулированную сетку? Каковы возможные реальные приложения для OpenVDB?


person user2485710    schedule 13.07.2013    source источник


Ответы (1)


Если вы понимаете разницу между векторным и растровым изображением в 2D, это аналогично разнице между треугольниками и вокселами. В векторном искусстве сегменты линий и геометрия используются для представления фигур, точно так же, как треугольники представляют сетки в 3D. В качестве альтернативы изображение использует пиксели, расположенные на сетке, для представления форм, так же как воксели используются для представления трехмерных объемов. Например, сфера может быть представлена ​​​​как сетка с треугольниками или как набор включенных/выключенных вокселей. на 3D-сетке. 3D-текстуры теперь могут храниться на графическом процессоре, что позволяет эффективно выполнять рейкастинг, обход и т. д. Они особенно полезны для дыма и жидкостей.

OpenVDB основан на процессоре, но расширяет один 3D-том, чтобы он имел несколько разрешений. Многие меньшие тома NxNxN объединяются в дерево, чтобы сделать том намного большего размера.

То, какое представление вы используете, во многом зависит от типа операций редактирования 3D, которые вы хотите выполнить. Вы хотите строить деревья и органику? Вы хотите редактировать и моделировать жидкости? Вы хотите моделировать персонажей?.. Для действительно простого, то есть для вводного 3D-редактора, я бы предложил треугольники и сетки, поскольку они вездесущи, и то, как спроектированы конвейеры графического процессора.

person rch    schedule 18.09.2013