IT-словарь › Программирование › Dual contouring

Dual contouring

Программирование Svenska → Обновлено: 2026-10-24

Алгоритм извлечения изоповерхности, который, в отличие от marching cubes, размещает вершины внутри ячеек по нормалям поверхности и потому умеет воспроизводить острые рёбра и углы.

Опубликован Ju, Losasso, Schaefer и Warren в 2002 году. Вместо вершин на рёбрах сетки dual contouring ставит по одной вершине на ячейку — на «двойственной» сетке, — в точке, которая минимизирует квадратичную функцию ошибки (QEF) по точкам пересечения и их нормалям. Эти нормали, так называемые эрмитовы данные, и есть ключ: они показывают, куда «смотрит» поверхность, поэтому чёткое ребро воспроизводится точно, а не скругляется.

Marching cubes как раз скругляет такие рёбра: направляющей информации у него нет. Поэтому dual contouring применяют для угловатого ландшафта из вокселей и для CSG-операций, где твёрдые тела режут и сваривают. Цена вопроса: возможна неманифолдная геометрия, а данные о нормалях должны быть под рукой. Двумерный аналог решает ту же задачу на плоскости.

← Назад к словарю