2013-07-13 2 views
1

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

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

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

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

ответ

6

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

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

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

Смежные вопросы