- Выходная сетка имела те же входные граничные точки, что и ее граничные вершины, поэтому сетка с измененной поверхностью должна иметь то же положение, количество и порядок предварительно определенных граничных точек.
- Внутренние вершины перераспределяются равномерно по поверхности (алгоритм должен автоматически определять количество внутренних вершин на основе граничных точек). count)
- После вставки к граничным вершинам никогда не применяются операции очистки или сварки.
- Индексы вершин от 0 до N-1 в выходных данных всегда являются граничными точками в порядке ввода — это должно быть согласовано для нескольких сеток одного и того же крыла в разных состояниях деформации.
Мой текущий подход использует разделение ребер для вставки граничных точек в сетку с последующим сглаживанием по Лапласу с замораживанием граничных вершин. Проблема в том, что decimate_pro и clean() после сглаживания схлопываются близлежащие граничные вершины, уменьшая количество границ.
Я пробовал:
- Вставка граничных точек путем разделения ребер. Он работает, но метод clean() после сглаживания объединяет вершины с близкими границами.
- Добавляет новые вершины и перестраивает грани, но метод clean() по-прежнему объединяет их.
- Полностью пропускает метод clean(), но оставляет сетку, не являющуюся многообразием, которую последующие инструменты отвергают
Минимальный воспроизводимый пример и ожидаемый результат: входная сетка с 850 граничными вершинами → выходная сетка ровно с 850 граничными вершинами в одинаковых положениях, всего около 50 000 вершин, многообразие, без самопересечений.