#graphics #3d #computational-geometry #voxel #3d-modelling
#графика #3D #вычислительная геометрия #воксель #3d-моделирование
Вопрос:
У меня есть 3D-модель в виде структуры сетки или в формате .stl /.obj, которую я преобразовал в вокселы с помощью инструмента вокселизации binvox. Используя программу Java, я выполнил некоторую обработку полученной таким образом сетки вокселей. Теперь я хочу преобразовать эту вокселизированную модель обратно в «гладкую» сетчатую структуру (или любой другой формат), которую позже можно экспортировать в формат .stl или .obj.
Может кто-нибудь подсказать, как я могу выполнить последнюю часть, то есть преобразовать сетку вокселей в некоторый формат для получения обратно «гладких» поверхностей? Любая помощь, включая указание на существующие инструменты или соответствующую теорию в этом направлении, будет оценена.
Ответ №1:
Попробуйте алгоритм маршевых кубов. См http://paulbourke.net/geometry/polygonise / для получения более подробной информации.
Комментарии:
1. Для построения маршевых кубов требуется, чтобы вы знали значения скалярного поля в каждой вершине. Эта информация, вероятно, теряется после вокселизации.
2. @YvesDaoust Вам нужно значение не для каждой вершины, а для каждой точки сетки, которая в основном является значением вокселя.
3. маршевые кубы используют скалярное поле / значение ISO, чтобы определить, где на каждом ребре находятся вершины треугольника, они могут быть на полпути на каждом ребре маршевого куба. воксели могут использовать марширующие кубы, но скалярное поле всегда равно 1/0, что делает его блочным. тем не менее, это работает.