ОБЪЯВЛЕНИЯ

Faithful Contouring: Без SDF, Без Герметичности, Вокселизация 1024³

Faithful Contouring кодирует сетки в разреженные воксельные токены — без SDF, без герметизации, без Marching Cubes. 1024³ примерно за ~1 секунду на одном GPU. Устный доклад на CVPR 2026.

Robin
Опубликовано: 1 июня 2026 г.

Краткое содержание Faithful Contouring заменяет устаревший конвейер SDF + Marching Cubes на Faithful Contour Tokens — кодируя треугольные сетки непосредственно в 18-мерные разреженные воксельные токены, без герметизации, без полей расстояний. Чистый CUDA, 1024³ за ~1.4 с, 2048³ менее чем за 5 с на одном H100.

Прошлый год ознаменовался всплеском работы по генерации 3D — методы, такие как Trellis и Hunyuan3D, почти каждый месяц занимают верхние строчки в бенчмарках. Но вот что легко упустить из виду: хотя архитектуры сетей эволюционировали в DiT, Flow Matching и Sparse Voxel Transformer, основное 3D-представление все еще опирается на SDF + Marching Cubes 1987 года. Faithful Contouring предлагает принципиально иной подход к 3D-вокселизации.

Faithful Contouring (FC), принятый как CVPR 2026 Oral, пропускает герметизацию, пропускает построение SDF-поля и полностью пропускает Marching Cubes. Вместо этого FC кодирует треугольные сетки непосредственно в разреженные воксельные токены — новое 3D-представление, которое сохраняет топологию, острые края и внутренние структуры. Весь конвейер от сетки до вокселя реализован как чистые CUDA-ядра, завершая вокселизацию 1024³ примерно за 1 секунду и 2048³ менее чем за 5 секунд на одном NVIDIA H100.

Почему SDF + Marching Cubes является узким местом в 3D-вокселизации

На протяжении многих лет практически каждый метод прямой реконструкции и генерации 3D — DeepSDF, Occupancy Networks, а недавно Trellis, Hunyuan3D, Sparc3D, TripoSF — следовал одному и тому же конвейеру:

Сырая сетка → Герметизация → SDF / UDF → Marching Cubes → Новая сетка

Этот конвейер выглядит универсальным, но каждый этап вносит нетривиальные потери информации:

  • Предварительная обработка для герметизации обычно использует дилатацию ε-шаром для заделки отверстий. Это изменяет топологию и превращает тонкие оболочки в толстые.

  • Вычисление знака опирается на глобальные алгоритмы, такие как заливка или числа обмотки для классификации внутри/снаружи. Эти алгоритмы нестабильны на неманифольдной геометрии, открытых поверхностях и внутренних полостях — и они сопротивляются параллелизму на GPU.

  • Извлечение изоповерхности через Marching Cubes сглаживает острые края, разрушает внутреннюю структуру и оставляет после себя артефакты в виде лестницы.

Более практическим узким местом является разрешение: существующие методы на основе SDF почти все ограничены ниже 2048³ для 3D-вокселизации, именно потому, что глобальное распространение знака и затраты на предварительную обработку для герметизации взрываются с увеличением разрешения. Faithful Contouring был разработан, чтобы обойти весь этот конвейер.

Сравнение с базовыми методами

Что делает Faithful Contouring выдающимся

Большинство методов 3D-вокселизации следуют фиксированному пути: сетка к полю расстояний к изоповерхности. Faithful Contouring задает другой вопрос:

Можем ли мы пропустить обходной путь от сетки → поле расстояний → изоповерхность и вместо этого извлечь кандидаты на якорные точки непосредственно внутри каждого вокселя, а затем соединить их в поверхность на основе топологических отношений?

Это именно то, что делает Faithful Contouring. Он кодирует треугольные сетки непосредственно в набор разреженных воксельных токенов, называемых Faithful Contour Tokens (FCT). Конвейер имеет три ключевых свойства:

  • Без поля расстояний — не требуется вычисление SDF, не требуется определение знака
  • Без рендеринга — не требуется дифференцируемое рендеринговое управление
  • Полностью локальный — каждый воксель взаимодействует только с несколькими треугольниками, которые проходят через него, что делает его естественно параллельным на GPU

Faithful Contouring против SDF + Marching Cubes

СвойствоКонвейер SDF + Marching CubesFaithful Contouring
Открытые поверхности / неманифольдНеобходимо сначала герметизировать (теряется топология)Поддерживается нативно
Внутренние полостиУдаляются заливкойПолностью сохраняются
Острые края / углыСглаживаются MCЕстественно захватываются через QEF
Представление на воксель1 значение SDF18-мерный токен
Редактирование / сборкаСложноПрямые операции на уровне токенов
Faithful Contouring поддерживает открытые поверхности, неманифольдную геометрию и внутренние полости изначально — особенности, которые методы вокселизации, основанные на SDF, теряют во время предварительной обработки для обеспечения водонепроницаемости.

Как работает Faithful Contouring: конвейер кодировщика и декодировщика

Конвейер Faithful Contouring состоит из Кодировщика и Декодировщика, оба из которых полностью построены на классических геометрических операторах без обучаемых компонентов.

Pipeline

Кодировщик: Mesh → FCT

Для каждого вокселя vv в сетке G\mathcal{G} выполняются четыре шага последовательно:

  • Обнаружение активных вокселей (SAT) — Используя Теорему о разделяющей оси по 13 кандидатным осям, мы проверяем, пересекает ли треугольник ff данный воксель vv. Пересекающиеся воксели помечаются как активные примальные воксели.

  • Центроиды пересечений — Алгоритм Сазерленда–Ходжмана обрезает каждый треугольник по шести граням вокселя, чтобы создать выпуклый многоугольник Qv,f=vfQ_{v,f} = v \cap f, затем вычисляет его центроид:

cv,f=13Ak=2m1Ak(q1+qk+qk+1)\mathbf{c}_{v,f} = \frac{1}{3A}\sum_{k=2}^{m-1} A_k (\mathbf{q}_1+\mathbf{q}_k+\mathbf{q}_{k+1})

Благодаря выпуклости, этот центроид гарантированно находится внутри вокселя. Каждый cv,f\mathbf{c}_{v,f}, в паре с нормалью исходного треугольника nf\mathbf{n}_f, образует локальный образец геометрии.

  • Подгонка якоря (QEF) — Это основной шаг. Все образцы {(ci,ni)}\{(\mathbf{c}_i,\mathbf{n}_i)\} подаются на минимизацию функции квадратичной ошибки:
x=argminx  i(ni(xci))2+λxcˉ2\mathbf{x}^\ast = \arg\min_{\mathbf{x}}\;\sum_i (\mathbf{n}_i^\top(\mathbf{x}-\mathbf{c}_i))^2 + \lambda \|\mathbf{x}-\bar{\mathbf{c}}\|^2

Первый член обеспечивает согласованность касательных плоскостей, направляя якорь к общему пересечению всех касательных плоскостей — именно поэтому острые края и углы естественно захватываются. Второй член обеспечивает регуляризацию центроида для подавления дрейфа при плохо обусловленных входных данных. Решение дается в закрытой форме через нормальное уравнение 3×3:

(MM+λI)x=Md+λcˉ(M^\top M + \lambda I)\,\mathbf{x}^\ast = M^\top\mathbf{d} + \lambda\bar{\mathbf{c}}

Нормали n\mathbf{n}^\ast решаются с помощью регуляризации Тихонова. Все решение полностью независимо для каждого вокселя — это фундаментальная причина, по которой FC масштабируется до 2048³.

Low-poly preservation При более низких разрешениях вокселей якоря, решенные с помощью QEF, все еще надежно привязываются к острым особенностям.

  • Пересечения полуосей — Пересечение луча и треугольника по Мёллеру–Трумборе выполняется вдоль шести направлений полуосей, создавая двоичный код {1,0,+1}6\{-1,0,+1\}^6, используемый при декодировании для определения ориентации грани.

Вся информация упаковывается для каждого вокселя в одну строку:

FCT=[индекс вокселя,  (x,n),  {md,(xd,nd)}d=18,  {oriente}]\mathrm{FCT} = \big[\,\text{индекс вокселя},\;(\mathbf{x}^\ast, \mathbf{n}^\ast),\;\{\mathbf{m}_d, (\mathbf{x}_d, \mathbf{n}_d)\}_{d=1}^{8},\;\{\mathrm{orient}_e\}\,\big]

Каждый активный воксель занимает 18 измерений.

Декодировщик: FCT → Mesh

Декодирование состоит из двух шагов:

Глобальный сбор — Соседние примальные воксели, разделяющие двойной воксель, усредняют свои якорные точки, чтобы создать единый набор вершин VV'.

Quad → Tri — Четыре двойных якоря на каждой примальной грани образуют четырехугольник. Ориентация определяется кодом полуоси, и четырехугольник разделяется на два треугольника по диагонали, минимизирующей отклонение нормалей.

Все декодирование также полностью локально — глобальный поиск не требуется.

Инженерия: вокселизация за доли секунды с параллелизмом CUDA

Дизайн алгоритма FC тесно согласуется с параллелизмом GPU: каждый воксель зависит только от нескольких треугольников, пересекающих его, решение QEF является закрытой формой нормального уравнения 3×3, и весь конвейер не содержит глобальных операторов. Именно поэтому он масштабируется до 2048³.

В частности, FC избегает следующих глобальных процессов: распространение связанных компонентов заливкой, интеграция полной сетки O(NF)O(N \cdot F) с использованием числа витков, дилатация ε-шара для обеспечения водонепроницаемости и постобработка с помощью Marching Cubes. Вычисление каждого вокселя полностью независимо и напрямую сопоставляется с потоком CUDA. Мы реализовали все основные операторы в виде чистых CUDA-ядер — пересечение SAT, отсечение по алгоритму Сазерленда–Ходжмана, аналитическое QEF и пересечение по полуоси Мёллера–Трумбора — устранив циклы на уровне Python. Результаты тестов на одном NVIDIA H100:

РазрешениеАктивные вокселиКодированиеДекодированиеВсего
128³71K0.27 с0.02 с0.29 с
256³287K0.45 с0.06 с0.51 с
512³1.1M0.52 с0.17 с0.70 с
1024³4.6M0.82 с0.61 с1.42 с
2048³18.4M2.16 с2.51 с4.68 с

Ключевые показатели: 512³ от начала до конца за 0.7 с, 1024³ примерно за 1.4 с, 2048³ менее чем за 5 с. Общая задержка масштабируется примерно линейно с количеством активных вокселей.

Для сравнения, традиционные конвейеры реконструкции SDF, основанные на заливке или числах обмотки, обычно требуют минут до десятков минут при 1024³ и не могут практически масштабироваться до 2048³ из-за памяти и вычислительной нагрузки глобального распространения знака. FC не только работает напрямую при 2048³, но и сохраняет задержку от начала до конца на уровне секунд.

Экспериментальные результаты

Точность представления

На сложных подмножествах из ABO и Objaverse:

МетодРазрешениеHD ↓CD (G→P) ↓F-score (0.01) ↑
UDF1024Высокая (артефакты двойного слоя)ВысокаяНизкая
Заливка SDF1024Высокая (раздутые поверхности)ВысокаяСредняя
FlexiCubes1024СредняяСредняяСредняя
FC10240.11 × 10⁻²0.01 × 10⁻⁴99.71
FC20480.11 × 10⁻²< 0.01 × 10⁻⁴99.99

FC в настоящее время является единственным воксельным представлением, которое работает напрямую при 2048³, с ошибками расстояния, стабильными на уровне 10⁻⁵.

Сравнение Подгонки

Реконструкция VAE

Для проверки FCT как представления для глубокого обучения мы построили VAE с двумя режимами, используя разреженные 3D-свертки плюс легкое внимание, поддерживающее два режима ввода: (a) самосжатие FCT → FCT и (b) облако точек → FCT.

По сравнению с Trellis, SparseFlex и Sparc3D на тестах Dora и Toys4k:

  • Расстояние Чамфера уменьшено примерно на 93%
  • F-score улучшен примерно на 35%

Примечательно, что FC-VAE при разрешении 512³ уже превосходит реконструкции SparseFlex / Sparc3D при 1024³, демонстрируя, что без потерь представление может значительно снизить нагрузку на обучение для последующих сетей.

Сравнение VAE

Редактирование и Композиция с Токенами Faithful Contour

FCT — это основанное на токенах разреженное воксельное представление, что означает, что все операции на уровне вокселей напрямую переносятся на токены. FCT поддерживает четыре категории прямых операций на уровне токенов:

Редактирование

  • Фильтрация — Рендеринг лучей вычисляет видимость; внутренние скрытые воксели и их токены удаляются по порогу.
  • Текстура — Дополнительные каналы добавляются к 18D токену, связывая текстурные атрибуты с якорями.
  • Манипуляция — Поворот и нелинейная деформация действуют непосредственно на якорях, за которыми следует пересчет связности.
  • Разделение и Сборка — Объединение использует среднюю агрегацию в позициях якорей и максимальную агрегацию для ориентации; разделение копирует и разделяет группы токенов через геометрические или семантические маски.

Это делает FCT не просто входным представлением, но контейнером геометрических токенов, поддерживающим композицию, редактирование, текстурирование и перенос стиля — хорошо согласованным с следующей фазой 3D-генерации: на уровне частей, редактируемым и мультимодальным.

Открытый исходный код и Воспроизводимость

Код полностью с открытым исходным кодом. Начиная с версии v1.5, кодовая база была переработана в чистый Python + Atom3d, с CUDA-ядрами, распространяемыми в виде предварительно скомпилированных колёс — локальная C++-цепочка инструментов не требуется. Мы предоставляем как среду Pixi с одним кликом, так и традиционную установку через pip, охватывая всё от воспроизведения исследований до интеграции в производство.

Репозиторий включает:

  • Полный кодек FCT (FCTEncoder / FCTDecoder), поддерживающий произвольные разрешения от 128³ до 2048³
  • Ускоренный BVH бэкенд пересечения сеток Atom3d
  • Демо-скрипты и образцы сеток (икосфера, пиратский корабль и т.д.) — готовы к запуску и сравнению GLB-выходов из коробки
  • Код обучения FCT-VAE и веса модели диффузии (скоро)

Репозиторий: github.com/Luo-Yihao/FaithC

Резюме

То, что делает Faithful Contouring, можно резюмировать в одном предложении:

Он переносит слой 3D-представления от парадигмы поля расстояний к парадигме контур-токенов.

Поля расстояний и Marching Cubes восходят к 1980-м годам. Их 2D-современники давно были заменены сплайнами, растеризаторами шрифтов SDF и нейронным рендерингом через несколько циклов итераций. В 3D-сфере глубокая связь между конвейером и установленными наборами данных и оценочными рамками долгое время препятствовала систематическому переосмыслению самого слоя представления. FC предлагает новую основу: решаемую в закрытой форме, дружественную к GPU и масштабируемую до 2048³ — нативно обрабатывающую открытые поверхности и неманифольдную геометрию, полностью сохраняя внутренние структуры и острые края, всё в пределах 18 измерений на воксель.

Значительное подтверждение: вскоре после того, как эта работа была обнародована, Microsoft выпустила TRELLIS.2 в январе 2026 года, представив O-Voxel — свободное от полей разреженное воксельное представление, которое также обходит SDF / поля занятости и кодирует произвольную топологию (включая неманифольдные и открытые поверхности) напрямую через двойные сетки. Два независимых пути, сходящихся к схожим выводам в узком временном окне, предполагают, что изо-поверхности больше не являются единственным вариантом для 3D-представления.

Ограничения

Текущая версия FC имеет несколько явных ограничений:

  • Серьезные самопересечения и плотно расположенные структуры — Когда несколько тонких поверхностей переплетаются или прижимаются друг к другу на субвоксельном уровне, образцы в пределах одного вокселя поступают с разных листов. Решённый QEF якорь становится неоднозначным и демонстрирует локальное смещение.
  • Недоиспользование ёмкости VAE — Текущий FCT-VAE использует разреженную свёртку + локальную внимательность от Sparc3D / SparseFlex. Его моделирующая способность для чрезвычайно тонких ветвей, плотных украшений и других высоко нерегулярных структур всё ещё имеет потенциал для улучшения.
  • Ухудшение резкости при декодировании — FCT, декодированный через VAE, показывает небольшую потерю резкости и гладкости по сравнению с прямой подгонкой, что является следствием латентного сжатия. Это также указывает на необходимость более точного согласования между токеновыми представлениями и латентными измерениями.

Что дальше: Предварительный просмотр Vision 2

В предстоящем Faithful Contouring 2.0 мы расширяем FCT до многоякорной формы — один воксель больше не ограничивается одним якорем, но может содержать несколько якорей для представления сложных пересекающихся структур. Это систематически улучшит производительность FC на самопересечениях, плотно расположенных геометриях и вложенных тонких оболочках, предоставляя нисходящим сетям более детализированную локальную геометрическую информацию. Следите за обновлениями.

Цитирование

bibtex
@inproceedings{luo2026faithfulcontouring,
title     = {Faithful Contouring: Near-Lossless 3D Voxel Representation Free from Iso-surface},
author    = {Luo, Yihao and He, Xianglong and Pan, Chuanyu and Chen, Yiwen and Wu, Jiaqi
and Li, Yangguang and Ouyang, Wanli and Hu, Yuanming and Yang, Guang and Yap, ChoonHwai},
booktitle = {CVPR},
year      = {2026}
}

Хватит с SDF + Marching Cubes? Пора вернуть геометрию — верно.

CVPR 2026 Устный доклад · arXiv 2511.04029 · GitHub: Luo-Yihao/FaithC

Ихао Ло, Имперский колледж Лондона — y.luo23@imperial.ac.uk

Был ли этот пост полезен?

3D, По запросу