Cinema 4D Cinema 4D Prime Меню Создать Генераторы Subdivision Surface
Функция доступна в CINEMA 4D Prime, Visualize, Broadcast, Studio & BodyPaint 3D
Subdivision Surface

Общие Координаты Объект

Свойства объекта

Тип

В этом выпадающем меню вы найдёте несколько режимов, отличия которых и методы функционирования, изложены ниже:

Catmull-Clark

N-гоны при этом будут разбиты после внутренней триангуляции. Интенсивность веса точек, граней и полигонов при этом поддерживается. Если вы намерены произвести экспорт объекта Разбивка поверхности (или низко-полигональные модели) в другие программы, этот тип предлагает вам при этом оптимальные условия, и при Catmull-Clark является стандартным для всех программ, что позволяет обработку моделей во всех программах аналогичным образом.

Catmull-Clark (n-гоны)

Этот новый тип производит корректное разбиение n-гонов и поддерживает значения назначенного веса. Но при этом имеются проблемы с С-образными n-гонами и отверстиями в n-гонах.

Пример

Слева направо: начальный объект без сглаживания геометрии, Catmull-Clark и Catmull-Clark (n-гон)

Функция доступна в CINEMA 4D Prime, Visualize, Broadcast, Studio & BodyPaint 3D

RELEASE 18

OpenSubdiv

В Cinema 4D R18 добавлены несколько новых алгоритмов для Subdivision Surface. Сама технология Subdivision Surface существует уже с поздних 70ых годов прошлого века. На протяжении этих лет данная технология была имплементирована разными производителями программного обеспечения по разному и расширена, например введением весов точек, граней и полигонов. При этом часто случалась несовместимость между разными программными пакетами. Поэтому компания Pixar предоставила доступ к своей имплементации Subdivision Surface. Соответствующие библиотеки «Open Source» бесплатно доступны под названием OpenSubdiv.

В Cinema 4D эта библиотека интегрирована в качестве трёх новых типов.

Поддерживаемая графическими картами тесселяция (разбиение полигонов в маленькие треугольники, далее «тесселяция GPU», имплементирована в Тип OpenSubdiv Catmull-Clark (адаптивно) ) может отображать во вьюпорте объекты с высоким разрешением быстрее, чем раньше. Теперь, например, анимация персонажей с высоким уровнем разбивки может проигрываться плавно. Но использовать тесселяцию GPU для финального просчёта нельзя!

Обратите внимание на следующее:

  • Моделирование с использованием типов OpenSubdiv проходит медленнее, чем с другими типами.
  • Веса выглядят немного иначе при использовании типов OpenSubdiv. В общем они похожи, но в деталях слегка отличаются. Самое большое различие проявляется при весе точек, которые в экстремальном случае не заканчиваются острым концом:

Веса точек при OpenSubdiv Catmull-Clark выглядят иначе.

Веса граней немного точнее, чем у более старых типов. Их можно точнее настроить в участках с большим весом (т.  е. при почти 100%).

OpenSubdiv Catmull-Clark

Этот тип соответствует старому типу Catmull-Clark в имплементации Pixar с выше указанными отличиями. Если не используются веса или специальные функции OpenSubdiv, то результат точно соответствует Catmull-Clark.

В отличии от следующего типа создаются только четырёхугольные полигоны.

OpenSubdiv Loop

Этот тип предусмотрен для специальных сфер деятельности (например, разработка игр). Он предназначен для работы с треугольниками. Если попадутся четырёхугольники, то перед сглаживанием они будут переведены в треугольники. Разбитый и сглаженный объект состоит только из треугольников. Этот метод разбивки отличается от других типов Catmull-Clark:

Так производят разбивку Catmull-Clark (сверху) и OpenSubdiv Loop (снизу) с разными уровнями разбивки и разными объектами.

Веса точек, граней и полигонов также работают в этом режиме.

OpenSubdiv Bilinear

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

OpenSubdiv Catmull-Clark (адаптивно)

С помощью этой опции можно активировать специальный, просчитываемый GPU тип тесселяции (создаваемая форма похожа на OpenSubdiv Catmull-Clark). Так как тут используются внутренние шейдеры OpenGL, вам нужно активировать в настройках программы «Hardware OpenGL»; иначе вы будете видеть только исходный объект.

Хотелось бы повторить: видимая во вьюпорте тесселяция GPU не доступна для просчёта (рендеринга в изображение).

На заметку:
Если вы всё-таки начнёте её просчитывать, то тип автоматически переключится на OpenSubdiv Catmull-Clark, что может привести к иному результату.

Деформаторы или генераторы также не имеют доступа к тесселяции GPU: деформаторы, которые например, используются для персонажной анимации действуют на исходный объект, который только после этого разбивается и тем самым высоко разрешённым отображается в окне редактора. Деформаторы не могут при тесселяции GPU прямо влиять на высоко разрешённый Subdivision Surface.

Тесселяция GPU использует, как и понятно из названия параметра, адаптивное разделение, т.  е. там, где это нужно в углах, на гранях и т.  п. будет создаваться больше полигонов, а на плоских участках их будет меньше.

Слева нормальное разделение, справа дополнительная тесселяция GPU.

Для этого разбивка в редакторе должна быть довольно высокой, тогда как Уровень тесселяции GPU установлен на низкое значение.

Чем быстрее ваша графическая карта (не забудьте обновлять её), тем плавней будет происходить отображение в редакторе.

Этот режим пока не может отображать Смещение.

Разбивка в редакторе [0..6]

Разбивка при рендере [0..6]

Здесь вы можете определять степень разбиения геометрии для окна редактора программы и для заключительного просчёта (Трассировка лучей). Для финального просчета необходимо назначать высшую степень разбивки, по сравнению с окном редактора, или как минимум аналогичную с ним. Чем выше разрешение, тем плавнее будут контуры объекта. Естественно время просчёта при этом увеличивается (а также показ в окне редактора) и расход памяти также.

Начальный объект, Разбивка поверхности 1, 2 и 3

Разбить UV

Этот параметр позволяет вам воздействовать на каркас UV при использовании типа не являющегося OpenSubdiv-ом.

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

На заметку:
При установках Ограничено или Грань, может произойти частичное исчезновение текстуры на объекте, так как каркас UV при этом будет изменён.

Пример

Предположим, вы производите раскраску (или назначаете текстуру как на верхнем изображении), левого куба, как низко-полигональной модели, которая ещё не находится в объекте Разбивка поверхности. Куб в том случае выглядит как на изображении 2. После продолжительной и многочасовой работы вы помещаете куб в объект Разбивка поверхности, и вашему удивлению нет предела: текстура будет сильно искажена – изображение 3.

Именно теперь будут использованы новые функции (попробуйте какая из них подходит для вас оптимальным образом). Для этого примера был выбран параметр Грань, который произвёл реставрацию первоначального вида каркаса UV.

Функция доступна в CINEMA 4D Prime, Visualize, Broadcast, Studio & BodyPaint 3D

RELEASE 18

Разбить UV

Для типов OpenSubdiv имеются собственные настройки того, как при разбивке должны изменяться координаты UV. Настройки относятся к островам UV и к тому, как внутренние и внешние углы UV должны изменяться. Имеются следующие опции («Линейно» тут обозначает: линейная интерполяция (= без сглаживания, только разбивка) в соответствующих разделах):

  • Линейно, нет: линейная интерполяция вообще не применяется, всё сглаживается.
  • Линейно, только углы: линейная интерполяция ограничивается углами (точки UV, которые являются только частью одного полигона UV)
  • Линейно, ограничения: линейная интерполяция происходит только вдоль края островов UV, очертание не будет изменено, а внутренняя часть будет сглажена.
  • Линейно, все: внутри и снаружи происходит исключительно линейная интерполяция, вообще ничего не будет сглажено, очертания островов UV не изменятся.

Интерполяция ограничений

Тут можно определить, должны ли сглаживаться углы или нет. Что такое углы? Углами являются точки, которые относятся только к одному единственному полигону. Обратите внимание, как на изображении у исходного объекта, например углы справа внизу при установке Грань и угол не сглаживаются.

Грань

Все углы будут сглажены.

Грань и угол

Углы не будут сглажены.

Разбивка треугольников

Эта установка действует только для треугольников исходного объекта. Catmark – привычное сглаживание, которое может быть несколько угловатым, тогда как Мягко сглаживает круглее и гармоничней.

Складка грани

Слева обозначенные веса граней и их сглаженный результат.

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

Уровень адаптивной тесселяции (GPU) [1..10]

Тут регулируется интенсивность тесселяции. В качестве основы берётся исходная разбивка в редакторе, которая дальше разбивает тесселяцию GPU. Из-за адаптивного функционала разбивка может в некоторых, некритичных (плоских) областях относительно изначально названной разбивки уменьшена (см. изображение сверху у OpenSubdiv Catmull-Clark (адаптивно) ).

Тут устанавливаемые значения не ограничены. Но разбивка работает только до границы обозначенной производительностью графической карты. Если вы установите более высокие значения, то дополнительная разбивка производится не будет.

Совместимость с R12

Начиная с версии программы Cinema 4D R13 имеется значительно улучшенный алгоритм сглаживания для точек и линий. При импорте сцен созданных в ранних версиях программы, имеется эта функция, позволяющая сохранять совместимость и использовании ранних сцен в актуальной версии программы. Объект Разбивка поверхности в этом случае производит сглаживание по аналогии с очень старыми версиями программы.