Subdivision — это метод сглаживания трехмерной поверхности каркаса модели, когда многоугольники разделяют на более мелкие элементы. Сглаживание изменяет положение вершин (точек в пространстве, задающих координаты объектов) полигонов (многоугольников). Все примитивные полигоны, содержащиеся в каркасе, делятся на четырехугольники, создавая новые вершины на основе средних значений. Так же происходит корректировка предыдущих вершин исходного многоугольника.
Алгоритм Катмулла-Кларка, который используется в методах Subdivision во многих программах для работы с трехмерной графикой, способен сглаживать куб до сферы.
Эта техника подразделения полигонов использовалась в таких анимационных фильмах, как A Bug’s Life, Finding Nemo и The Incredibles. Применяется алгоритм для рендеринга (визуализации) любых проектов от науки до игр и анимационных фильмов.
Что делает полигональную сетку правильной?
Subdivision позволяет сделать полигональную сетку правильной (оптимизированной), но это далеко не единственный метод. Есть рекомендации, которым следуют профессионалы. Они сводят к минимуму визуальные дефекты конечных моделей при рендеринге. Вот некоторые из них:
- Отсутствие треугольников. Они — частая причина странных сбоев сглаживания, поэтому по возможности их следует избегать. Однако полностью не использовать их просто невозможно — сетка может потребовать некоторое количество треугольных полигонов. Их ставят на относительно плоской поверхности либо «прячут» в плотно закрытых участках сетки.
- Отказ от N-угольников. Они скрываются с использованием тех же методов. Обычно люди стараются избегать многоугольников с 5 и более вершинами из-за того, что их сложнее моделировать.
- Использование четырехугольников. Создание сетки из четырехугольников — простой способ избежать визуальных искажений при сглаживании и рендеринге. Ее легче анимировать.
Особенности техники Subdivision
Subdivision представляет собой метод сглаживания сетки, когда добавляют больше полигонов и вершин, но сохраняют при этом начальную форму. Четырехугольник будет разделен на четыре многоугольника, которые не выйдут за контур полигональной сетки.

3D модель пружины до и после применения метода Subdivision
Можно создавать сетки с заданным количеством полигонов, прежде чем использовать Subdivision, а потом сделать модель настолько гладкой, насколько это визуально необходимо.
Метод Subdivision, как и вычисление нормалей вершин (векторов, перпендикулярных плоскости), неидеален. При разделении треугольники становятся E-полюсами, а N-угольники — N-полюсами. Полюса — вершины, в которых количество ребер, исходящих из них, не равно четырем.
Обратное тоже верно. E-полюса становятся треугольниками, а N-полюса — N-угольниками. Из-за этого четырехугольники — единственное, что заставляет Subdivision работать практически идеально. Именно полигональная сетка из четырехугольников позволит алгоритму избежать дефектов при визуализации модели.