Подразделение поверхности Катмулла – Кларка - Catmull–Clark subdivision surface

Подразделение по Катмуллу – Кларку куба с поверхность подразделения ниже. (Обратите внимание, что Catmull-Clark бикубическая интерполяция выше не может приблизиться к фактическому сфера, как сфера квадрика.)

В Кэтмелл – Кларк алгоритм это техника, используемая в 3D компьютерная графика для создания гладких поверхностей с помощью типа поверхность подразделения моделирование. Это было разработано Эдвин Кэтмелл и Джим Кларк в 1978 г. как обобщение бикубический униформа B-шлиц поверхности к произвольным топология.[1] В 2005 году Эдвин Кэтмелл получил Премия Оскар за технические достижения, вместе с Тони ДеРоуз и Йос Стам (за их изобретение и применение разделительных поверхностей).

Рекурсивная оценка

Поверхности Катмулла – Кларка определяются рекурсивно с использованием следующей схемы уточнения:[1]

Начните с сетка произвольного многогранник. Все вершины в этой сетке будем называть исходными точками.

  • Для каждого лица добавьте точка лица
    • Задайте каждую точку грани средний всех исходных точек для соответствующего лица.
  • Для каждого края добавьте крайняя точка.
    • Установите каждую точку края как среднее значение двух соседних точек грани и двух исходных конечных точек.
  • Для каждого точка лица, добавьте ребро для каждого края лица, соединяя точка лица для каждого крайняя точка для лица.
  • За каждую исходную точку п, возьмите среднее F из всех п (недавно созданные) точки для лиц, соприкасающихся п, и возьмем среднее р из всех п средние точки краев для соприкосновения (исходных) краев п, где средняя точка каждой грани - это среднее значение двух вершин ее конечных точек (не путать с новыми «граничными точками» выше). (Обратите внимание, что с точки зрения вершины п, количество соседних ребер п также количество смежных граней, следовательно п). Переместите каждую исходную точку к точке
Это барицентр из п, р и F с соответствующими весами (п - 3), 2 и 1.
  • Соедините каждую новую точку грани с новыми краевыми точками всех исходных краев, определяющих исходную грань.
  • Соедините каждую новую точку вершины с новыми точками ребер всех исходных ребер, инцидентных исходной вершине.
  • Определите новые грани как окруженные ребрами.

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

Повторное подразделение приводит к более гладким сеткам. Можно показать, что предельная поверхность, полученная с помощью этого процесса уточнения, не меньше в необычных вершинах и везде (когда п указывает, сколько производных непрерывный, мы говорим о преемственность). После одной итерации количество необычных точек на поверхности остается постоянным.

Формула произвольно выглядящего барицентра была выбрана Катмаллом и Кларком на основании эстетического вида получаемых поверхностей, а не математического вывода, хотя Катмалл и Кларк действительно идут на многое, чтобы строго показать, что метод сходится к бикубическим B-сплайновым поверхностям. .[1]

Точная оценка

Предельная поверхность поверхностей подразделения Катмулла – Кларка также может быть вычислена напрямую, без каких-либо рекурсивных уточнений. Это можно сделать с помощью техники Йос Стам.[2] Этот метод переформулирует процесс рекурсивного уточнения в матричная экспонента проблема, которую можно решить напрямую с помощью диагонализация матрицы.

Программное обеспечение, использующее разбиение поверхностей по Катмуллу – Кларку

Смотрите также

Рекомендации

  1. ^ а б c Катмелл, Э.; Кларк, Дж. (1978). «Рекурсивно генерируемые B-сплайновые поверхности на произвольных топологических сетках» (PDF). Системы автоматизированного проектирования. 10 (6): 350. Дои:10.1016/0010-4485(78)90110-0.
  2. ^ Стам, Дж. (1998). «Точная оценка поверхностей подразделения Катмулла-Кларка при произвольных значениях параметров» (PDF). Материалы 25-й ежегодной конференции по компьютерной графике и интерактивным техникам - SIGGRAPH '98. стр.395–404. CiteSeerX  10.1.1.20.7798. Дои:10.1145/280814.280945. ISBN  978-0-89791-999-9.
  3. ^ «Модификатор Subdivision Surface». 2020-01-15.
  4. ^ «Архивная копия» (PDF). Архивировано из оригинал (PDF) на 2016-11-23. Получено 2016-12-04.CS1 maint: заархивированная копия как заголовок (связь)
  5. ^ Мануэль Кремер (2014). «OpenSubdiv: взаимодействие вычислений и рисования на GPU». У Мартина Ватта; Эрвин Куманс; Джордж ЭльКура; и другие. (ред.). Многопоточность для визуальных эффектов. CRC Press. С. 163–199. ISBN  978-1-4822-4356-7.
  6. ^ https://www.youtube.com/watch?v=xFZazwvYc5o
  7. ^ «Pixar's OpenSubdiv V2: подробный обзор». 2013-09-18.
  8. ^ http://on-demand.gputechconf.com/gtc/2014/video/S4856-subdivision-surfaces-industry-standard.mp4
  9. ^ https://www.youtube.com/watch?v=dzIl_S-qHIQ

дальнейшее чтение