1) Это зависит от реализации yoru. Вам понадобится структура данных, в которой вы можете искать значения в каждом углу (вершине) воксела или куба. Это может быть трехмерное изображение (т. Е. 3D-текстура в OpenGL), или это может быть настроенная структура данных массива или любой другой формат, который вы хотите.
2) Вам нужно проверить вершины куба. На этом есть разные оптимизации, но в общем, начните с первого угла и просто проверьте значения всех 8 углов куба.
3) Большинство (быстрых) алгоритмов создают битовую маску для использования в качестве таблицы поиска в статическом наборе параметров. Есть только так много возможных вариантов для этого.
4) После того, как вы сделали треугольники из triTable, вы можете использовать OpenGL для их рендеринга.
Предположим, у меня есть данные облака облаков яблока. как я могу продолжить?
Это не будет работать с маршевыми кубами. Для маршевых кубов требуются данные вокселей, поэтому вам нужно будет использовать некоторый алгоритм, чтобы помещать облако точек в кубический том. Gaussian Splatting - это вариант здесь.
Обычно, если вы работаете с облаком точек и хотите видеть поверхность, вам следует искать алгоритмы восстановления поверхности вместо маршевых кубов.
Если вы хотите узнать больше, я настоятельно рекомендую прочитать некоторые книги по технике визуализации. Хороший - от людей Kitware - The Visualization Toolkit.
Возможно, вы захотите взглянуть на VTK. Он имеет реализацию на C++ Marching Cubes и полностью открыт.
может в 6 glQuads равного вокселя? если да, то как регенерируется воксельная сборка? моя точка является центром куба? – noob88
@ noob88: Нет, не совсем. Ваш «куб» должен быть каким-то объектом, состоящим из 8 пионов. 6 glQuad могут быть гранями куба/воксела, а вершины, которые вы используете, могут быть вашими 8 очками. Тем не менее, я бы создал другую структуру данных. Работает так просто, как многомерный массив. –
я вижу .. я думаю, мне нужно время, чтобы проверить его 1-й, могу я иметь ваш контакт? если у меня возникнут дополнительные проблемы, я надеюсь, что смогу получить вашу помощь. – noob88