Я успешно реализовал алгоритм маршевых кубов. Я использовал стандартные материалы в качестве ссылки, но я полностью переписал ее с нуля. Он работает, но я наблюдаю неоднозначность, которая приводит к отверстиям в сетке.
Я рассматривал алгоритм маршевых тетраэдров, который, предположительно, не страдает от двусмысленностей. Я не понимаю, как это возможно.
В алгоритме маршевых тетраэдров вместо куба используются шесть тетраэдров с триангуляциями для каждого тетраэдра. Но предположим, что я должен реализовать алгоритм маршевых кубов, но для каждой из 256 триангуляций просто выберите ту, которая является "суммой" (объединением) триангуляций тетраэдра куба? Насколько я знаю, это то, что делают маршевые тетраэдры - так почему это волшебным образом фиксирует двусмысленности?
Есть 16 уникальных случаев, я думаю, и 240 других - это просто отражения/повороты тех 16. Я помню, как где-то читал какой-то документ, чтобы разрешить двусмысленности, вам нужно 33 случая. Может ли это быть связано с тем, почему маршевые тетраэдры как-то не страдают от проблем?
Итак, вопросы:
- Почему маршевые тетраэдры не страдают от двусмысленностей?
- Если это не так, почему люди не просто используют алгоритм маршевых кубов, а вместо триангуляций тетраэдров?
Я чувствую, что здесь что-то не хватает. Спасибо.