Эффективная визуализация большого вокселированного объема

Давайте рассмотрим большой вокселизированный том, хранящийся в oct-дереве или любой другой удобной структуре. Этот том представляет собой, например, пейзаж, где каждый блок либо пуст (воздух), либо имеет конкретный материал, который позже будет использоваться для применения текстуры. Voxels, которые находятся рядом друг с другом, представляют собой связанные участки поверхности.

Мне нужен алгоритм для создания сетки из этих вокселей, представляющих объем, со следующими характеристиками:

  • Все «дыры» в вокселизированном томе правильны.
  • Все соединения правильные, т. е. бесшовные.
  • Поверхность выглядит гладкой.

В широком смысле я хочу как-то сохранить поверхностную топологию, а это означает, что связанные соединения остаются связанными в полученной сетке и что поверхность имеет кривизну, отвечающую топологии вокселей. Представьте, что вы пытаетесь воплотить мир Minecraft, но вместо того, чтобы блокировать горные лестницы, они станут гладкими.

3 голоса | спросил Alejandro Piad 10 J000000Tuesday12 2012, 17:57:10

1 ответ


2

Чтобы создать основную внешнюю, ортогонально-планированную сетку: выполните оценку по срезу по объему, создав подстроку из каждого. Каждый срез имеет ровно один воксель в толщине. Под базовым я имею в виду предложить начать без сглаживания, чтобы получить четкое представление о проблеме. Нарезанный подход распространен в медицинской визуализации, одном из отраслевых родов технологий объемного рендеринга. Когда между отдельными срезами создаются швы, вы можете выполнить пост-обработку, чтобы удалить эти избыточные ребра (и, следовательно, вершины). Дайте мне знать, если это потребует разъяснений, и я нарисую вам простую картину.

Для сглаживания с сохранением эффективной топологии поверхности просмотрите маршевые кубы (обратите внимание, что алгоритм был запатентованный в течение многих лет, но который истек в 2005 году).

Последняя игра Аарона Бишопа Лорды Uberdark делают то, что вы описываете, AFAICT.

ответил Arcane Engineer 11 J000000Wednesday12 2012, 22:04:40

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132