Введение

Криволинейная поверхность, полученная из грубой полигональной сетки.

В области 3D компьютерной графики, поверхность подразделения (обычно сокращаемая до SubD поверхность или Subsurf) — это криволинейная поверхность, представленная спецификацией более грубой полигональной сетки и создаваемая рекурсивным алгоритмическим методом. Криволинейная поверхность, а также лежащая в основе внутренняя сетка, могут быть вычислены из грубой сетки, известной как управляющая сетка или внешняя сетка, как функциональный предел итеративного процесса подразделения каждой полигональной грани на более мелкие грани, которые лучше аппроксимируют конечную криволинейную поверхность. Менее распространенным является простой алгоритм добавления геометрии к сетке путем подразделения граней на более мелкие без изменения общей формы или объема. Обратным процессом является уменьшение количества полигонов или отмена подразделения.

Обзор

Алгоритм поверхности подразделения рекурсивен по своей природе. Процесс начинается с базовой многоугольной сетки. Затем к этой сетке применяется схема уточнения. Этот процесс берет сетку и подразделяет её, создавая новые вершины и новые грани. Положения новых вершин в сетке вычисляются на основе положений соседних старых вершин, ребер и/или граней. Во многих схемах уточнения также изменяются положения старых вершин (возможно, на основе положений новых вершин). Этот процесс создает более плотную сетку, чем исходная, содержащую большее количество многоугольных граней (часто в четыре раза больше). Полученную сетку можно многократно пропускать через ту же схему уточнения, чтобы получить всё более и более детализированные сетки. Каждая итерация часто называется уровнем подразделения, начиная с нуля (до начала любого уточнения). Предельная поверхность подразделения – это поверхность, полученная в результате бесконечного итеративного применения этого процесса. Однако на практике этот алгоритм применяется лишь ограниченное и относительно небольшое количество раз. Математически, окрестность экстраординарной вершины (узла, не имеющего валентность 4 для сеток, уточненных по четырехугольникам) поверхности подразделения представляет собой сплайн с параметрически особой точкой.

Системы переработки

Схемы уточнения поверхности подразделений можно широко классифицировать на две категории: интерполирующие и аппроксимирующие. Интерполирующие схемы должны точно соответствовать исходному положению вершин в исходной сетке. Аппроксимирующие схемы этого не требуют; они могут и будут изменять эти положения по мере необходимости. В целом, аппроксимирующие схемы обеспечивают большую гладкость, но пользователь имеет меньше общего контроля над результатом. Это аналогично сплайнам и сплайновым кривым, где кривые Безье должны интерполировать определенные управляющие точки, а B-сплайны этого не требуют (и являются более аппроксимированными). Схемы поверхности подразделений также можно классифицировать по типу многоугольника, с которым они работают: некоторые лучше всего подходят для четырехугольников (квадов), в то время как другие в основном работают с треугольниками (трисами).

Схемы сближения

Приближение означает, что предельные поверхности аппроксимируют исходные сетки, и что после подразделения вновь сгенерированные контрольные точки не лежат на предельных поверхностях. Существует пять схем аппроксимирующего подразделения: Catmull и Clark (1978), Quads – обобщает вставку бикубического однородного B-сплайна. Для произвольных исходных сеток эта схема генерирует предельные поверхности, которые являются C2-непрерывными везде, за исключением экстраординарных вершин, где они являются C1-непрерывными (Peters и Reif 1998). Doo-Sabin (1978), Quads – Вторая схема подразделения была разработана Ду и Сэбином, которые успешно расширили метод усечения углов Чайкина (George Chaikin, 1974) для кривых на поверхности. Они использовали аналитическое выражение биквадратичной равномерной B-сплайн поверхности для генерации своей процедуры подразделения, чтобы получить предельные поверхности C1 с произвольной топологией для произвольных исходных сеток. Вспомогательная точка может улучшить форму подразделения Ду-Сэбина. После подразделения все вершины имеют валентность 4. Loop (1987), Triangles – Loop предложил свою схему подразделения, основанную на квартичном бокс-сплайне из шести направленных векторов, чтобы предоставить правило для генерации C2-непрерывных предельных поверхностей везде, кроме экстраординарных вершин, где они C1-непрерывны (Zorin 1997). Схема подразделения средней кромки (1997–1999) – Схема подразделения средней кромки была предложена независимо Петерсом и Рейфом (1997) и Хабибом и Уорреном (1999). Первый использовал середину каждой кромки для построения новой сетки. Второй использовал четырехнаправленный бокс-сплайн для построения схемы. Эта схема генерирует C1-непрерывные предельные поверхности на исходных сетках с произвольной топологией. (Подразделение средней кромки, которое можно назвать "√2-подразделением", поскольку два шага уменьшают расстояния вдвое, можно считать самым медленным.) √3 схема подразделения (2000), Triangles – Эта схема была разработана Коббельтом и предлагает несколько интересных особенностей: она обрабатывает произвольные треугольные сетки, она C2-непрерывна везде, за исключением экстраординарных вершин, где она C1-непрерывна, и она предлагает естественное адаптивное уточнение при необходимости. Она обладает по крайней мере двумя особенностями: это двойная схема для треугольных сеток и она имеет более медленную скорость уточнения, чем первичные схемы.

Основные события

1978: Поверхности подразделения были описаны Эдвином Кэтмуллом и Джимом Кларком (см. поверхность подразделения Кэтмулла — Кларка), а также Дэниелом Ду и Малкомом Сабином (см. поверхности подразделения Ду — Сабина). 1995: Ульрих Рейф исследовал поведение поверхностей подразделения вблизи экстраординарных вершин. 1998: Джос Стамм предложил метод точного вычисления поверхностей подразделения Кэтмулла — Кларка при произвольных значениях параметров.