C4d. № 13. Полигональное моделирование. I

Kirill Bykov
13 min readDec 2, 2020

--

  • Все объекты состоят из полигонов
  • Полигоны не имеют толщины
  • Внутри модель остается полой

Полигон — многоугольник, который имеет поверхность

То, из чего состоит полигон
  • Points — точки (места пересечения ребер)
  • Edges — ребра (прямая линия, которая соединяет две точки)

Ребра всегда идут по периметру полигона — по его внешней границе

  • Face — грани (по сути это и есть сам полигон, то есть его поверхность)

Типы полигонов

Triangle — треугольник. Самый простой тип полигона, потому что именно три точки нужно, чтобы создать плоскость. Три угла, три точки и три соединяющих их ребра

Quad(quadrangle) — четырехугольник. Самый распространенный тип полигонов в компьютерной графике. Может быть абсолютно неправильной формы, главное — это наличие четырех углов, четырех точек и четырех соединяющих их ребер

Ngon — многоугольник (n-угольник). Когда у полигона больше четырех точек, ребер и углов

Complex Ngon — сложный многоугольник

Манипуляции с точками, ребрами и гранями полигонов — это и есть полигональное моделирование

Режимы работы и нормали

Режим работы с точками | Режим работы с ребрами | Режим работы с гранями (полигонами)

C — перевести объект в полигональный режим

Cmd+E — Edit->Preferences

Scheme Colors->Edit Colors— здесь можно поменять цвета отображения точек, граней и полигонов. Кнопка Reset — вернет значение по умолчанию

Нормаль — это вектор, который определяет направление лицевой стороны полигона

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

Оранжевым подсвечивается внешняя сторона объекта, голубым — внутренняя
Полигоны вывернуты наизнанку

На картинке выше есть ошибки шейдинга — то есть освещения модели, там где полигоны с неправильными нормалями

Все, что инвертировано — подсвечено голубым

U+R — Reverse Normals. Выворачивает нормали наизнанку. Так можно развернуть неправильные нормали и, например, избежать ошибок шейдинга

Cmd+A — выделяет все. Если выбран, режим работы с полигонами модели — выделит все полигоны

U+A — Align Normals. Выравнивает нормали, в том направлении, в котором большинство выделенных

В большинстве случаев, работа с моделью начинается с работы с примитивами, генераторами и деформерами. Собирается некая общая форма. Затем уже переходим к редактированию полигонов

Current State to Object — создает копию нашего объекта, сохраняя его состояние (то есть учитывая примененные на него деформеры, генераторы и т.п.)

Connect Objects — создает копию выделенных объектов и объединяет их в одну цельную геометрию

Connect Objects and Delete — создает копию выделенных объектов и объединяет их в одну цельную геометрию, удаляя исходную геометрию

Базовые инструменты выделения

Инструменты работы в полигональном моделирование разделяются на две группы:

  • Инструменты выделения геометрии
  • Инструменты манипуляции с геометрией (или создание новой геометрии)

Чтобы что-то сделать с ребрами, точками и полигонами модели, их нужно сначала выделить

LmClick — выделение геометрии

Shift+LmClick — добавление геометрии к уже выделенной

Cmd+LmClick — исключение из выделения

Cmd+A — выделяет всю геометрию

Cmd+Shift+A — снимает все выделение

Если что-то выделено — щелчок в пустом месте тем же инструментом — снимает выделение

Select — меню выделения

Базовые инструменты:

  • Live Selection9*горячая клавиша
  • Rectangle Selection 8
  • Lasso Selection0
  • Polygon Selection

Live Selection — кисть, позволяет рисовать наше выделение. Если зажать Cmd, то автоматически убирает выделение

Настройки Live Selection

Radius — можно задать радиус кисти. Также радиус можно задать на лету. Во viewport зажимаем среднюю кнопку мыши и двигаем мышь в разные стороны. Еще вариант — когда мы уже зажали выделение, можно покрутить колесико мыши и уменьшить, либо увеличить радиус кисти

Only Select Visible Elements — позволяет выбирать нам только те элементы, которые мы видим в данный момент. Если эту галочку выключить, то мы будем выделять элементы насквозь

Tolerant Edge/Polygon Selection — выделяет сразу весь полигон или ребро. Если отключить будет выделять полигон или ребро только при покрытии выделением 75% их поверхности

Mode->Normal — рисование выделения кисточкой

Mode->Vertex Painting — позволяет рисовать вертекс карты (создавать силу выделения от 0 до 100%)

В режиме Absolute — все по чему проведем мышкой будет выделено на Strength %. Если выбран режим Add — будет добавлять Strength % к уже выделенному

В режиме выделения точек вертекс карта будет добавлять Vertex Map Tag

Вертекс карты часто используются для ограничения работы каких-либо других инструментов

Например, чтобы на данном Torus’е ограничить Displacer по нашей Vertex Map нужно применить к дисплейсеру Restriction Tag

И в Tag Properties рестрикшена закинуть нашу Vertex Map (прямо DragonDrop’ом перетащить Vertex Map Tag в первую графу Name)

Mode->Soft Selection — этот инструмент создает плавное выделение от непосредственно выделенных точек спадающее с расстоянием (теряет силу в связи с удалением по радиусу). Поэтому в настройках Soft Selection есть параметр Radius, в котором мы можем как раз задать это расстояние

На скриншоте выше хорошо видно отличие Soft Selection (слева) выделения от режима Normal (справа)

Включенная галочка Preview — визуализирует радиус (зону влияния нашего выделения)

Radius выделения на самом деле создает сферу с заданным нами радиусом. Если посмотреть не на плоский объект — это хорошо видно

Галочка Surface дает возможность отсчитывать радиус не по сфере, а вдоль поверхности

Галочка Rubber — резина. При включенной происходит выдавливание, как будто объект у нас из очень мягкой резины и мы выдавливаем его каким-либо другим объектом

Слева — выдавливание без галочки rubber, справа — при включенной

При включенной галочке Restrict выделение происходит непосредственно вокруг выбранных полигонов, ребер или точек

Форма и распределение области выделения вокруг выбранных нами элементов определяется параметром Falloff

  • Linear — базовый фаллоф (линейный). Сила выделения спадает линейно
  • Dome — купол. Куполообразное распределение
  • Bell — колокол
  • Circle — круговое распределение
  • Needle — иголка. Очень высокий и узкий центр, далее переход на плавное падение силы
  • Также можно изменять через вертекс карты (Vertex Map) или сплайн (Spline)

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

Пример выделения по сплайну

Режимы Mode:

  • Group — для каждой группы полигонов находится геометрический центр и вокруг него уже происходит выделение. Здесь не учитывается форма самих полигонов, только их геометрический центр
  • Center — находит единый геометрический центр для всех групп полигонов
  • All — учитывает форму всех выделенных полигонов и уже вокруг них делает выделение по нашему фаллофу
Group Mode
Center Mode
All
Возвращаемся к базовым элементам выделения
  • Rectangle Selection — выделяет элементы прямоугольной рамкой
  • Lasso Selection — выделение произвольной формы
  • Polygon Selection — рисуем многоугольник. Все, что попадет внутрь него будет выделено

Продвинутые инструменты выделения

Loop Selection U+L

Выделяет последовательный контур из полигонов, ребер или точек

Пример Loop Selection’а

Если не хватает элементов, как на скриншоте слева — наш луп остановиться на границах геометрии

В режиме ребер одним кликом можно выбрать все ребра на границе геометрии

Настройки Loop Selection

Stop at Selection — если галочка включена луп будет останавливаться по границам предыдущего выделения

Настройки Stop at Non-Quads и Stop at Poles работают только в режиме ребер и точек. Stop at Non-Quads — остановит выделение лупа, когда встречает не четырехугольный полигон. Stop at Poles — остановка произойдет, когда луп дойдет до полюса (точка у которой не четыре ребра)

Галочка Stop at Non-Quads
Галочка Stop at Poles

Ring Selection U+B

Выделяет лупы из ребер параллельных друг другу, то есть ребра перпендикулярные нашему лупу. А в режиме точек, он выделяет точки принадлежащие этим ребрам. В режиме полигонов же ведет себя точно также, как и Loop Selection

Ring Selection в режиме ребер
Ring Selection в режиме точек

Outline Selection U+Q

Пример Outline Selection

Выделяет ребра выбранных полигонов или ребра границ геометрии

Fill Selection U+F

Пример Fill Selection

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

Path Selection U+M

Работает в режиме точек и ребер

Режимы работы:

  • Free Path
Пример Path Selection в Free Path Mode

Соединяет точки или ребра пытаясь использовать как меньше разных лупов (использует кратчайшее расстояние)

  • Live Path
Пример Path Selection в Live Path Mode

Позволяет буквально рисовать выделение, ведя вдоль ребер или точек

  • Line Fitted Path
Пример Path Selection в Line Fitted Path Mode

В чем-то похож на Free Path, также соединяет путь от начальных до конечных точек или ребер, но выделяет только то, что максимально близко к прямой линии соединяющей начальную и конечную точку. Эта линия подсвечивается для удобства

  • Simple Edge Loop

В этом режиме Path Selection работает точно также, как и Loop Selection, причем он автоматически останавливается на полюсах, Ngon’ах и прочих не четырехугольных полигонах

Phong Break Selection U+N

Синим подсвечивает те ребра, которые будут выбраны. Выбираются ребра, где у нас при заданных настройках Phong Tag или заданных настройках данного инструмента будет происходит Phong Break — не будет происходит сглаживание по Phong, где оно будет прерываться

Если отключить галочку в настройках Override Phong Tag, то будут использоваться настройки Phong Tag самой геометрии, а также атрибуты Phong Break ребер этой геометрии. Когда включена, то используются настройки самого инструмента (будто бы мы создали новый Phong Tag к данной геометрии)

Чаще всего по таким выделениям создаются фаски. Чтобы выделить все острые углы есть кнопка Select All. И мы можем сделать фаску, например через операцию Bevel (M+S)

Фаска через Bevel при выделении всех ребер Phong Break Selection’ом

В режиме полигонов инструмент Phong Break Selection работает немного иначе, здесь он выделяет полигоны в пределах Phong Break

В режиме же точек инструмент Phong Break Selection выделяет точки соответствующие ребрам, у которых Phong Break

Mirror SelectionU+V

Одним кликом выделяет симметричную часть модели

U+Shift-V — дает возможность открыть шестеренку настроек

Настройки Mirror Selection

Space — пространство координат, в котором будет происходить отзеркаливание. Могут быть координаты объекта или мировые координаты

Mirror Plane — плоскость, относительно которой будет происходить отзеркаливание

Tolerance — позволяет использовать этот инструмент на не совсем симметричных моделях. Cinema 4d отзеркаливает выделение, и смотрит есть ли в пределах Tolerance аналогичные точки или полигоны, и выделяет их, если они есть

Selection Mode — то как переноситься выделение с одной стороны модели на другую при отзеркаливание. Add — все что выделено на одной стороне, будет выделено на другой (все выделения плюсуются). Flip — выделяет противоположную сторону, первоначальное выделение снимается

Subtract — оставит только общее из выделенного с обеих сторон модели

Функция Select AllCmd+A — выделяет все, Deselect AllShift+Cmd+A — снимает выделения со всего

Функция Invert — инвертирует выделенную геометрию (то есть снимает выделение с выделенной геометрии объекта и перебрасывает его на остальную геометрию)

Эти команды позволяют наращивать или уменьшать выделение

Select ConnectedU+W — выделяет все связанные с уже выделенным полигоны, точки или ребра до края геометрии. Ей всегда нужно исходное выделение

Пример Grow Selection с включенной галочкой Grow Using Edges Only

Grow SelectionU+Y (настройки — U+Shift-U) — наращивает выделение, Shrink SelectionU+K — работает в обратном направлении

Единственная настройка у Grow Selection — это Grow Using Edges Only — наращивает геометрию к выделенной, только в сторону тех полигонов, которые имеют общие ребра с уже выделенными. Если галочка отключена — будут выделяться полигоны, которые имеют общие точки с выделенными

От настройки Grow Selection будет зависеть и поведение Shrink Selection, она будет действовать точно также, но в обратную сторону

Эти четыре объекта не имеют прямого отношения к выделению и работают только во Viewport’е. Они помогают скрывать часть геометрии объекта из вьюпорта

Hide Selected — скрывает всю выделенную геометрию из вьюпорта

Hide Unselected — скрывает всю невыделенную геометрию из вьюпорта

Unhide All — проявляет всю скрытую геометрию

Invert Visibility — скрывает геометрию, которую видно и открывает, ту что скрыта

На рендере эти настройки не работают! Также если что-то скрыть в режиме полигонов, в другом режиме этого не проявить и наоборот

Convert Selection U+X — можно конвертировать выделенную геометрию. Например, из точек в ребра или из полигонов в точки

Такого же эффекта можно добиться кликая на другой режим с зажатой клавишей Cmd. То есть, например, выделенные точки преобразуются в ребра — если мы нажмем Cmd+LmClick на режим ребер

Если выделенная геометрия разнесена (например, точки не образуют общих ребер) — то переход от одного выделения до другого не состоится. Cinema 4d просто не понимает, какую именно геометрию ей нужно выделить

Однако, как и в настройках Convert Selection есть галочка Tolerant, так и если мы кликнем на иконку перехода к иному режиму выделения с клавишей Shift — выделится вся геометрия, связанная с выделенной

Set Selection — этот инструмент сохраняет наше выделение в Selection Tag. Далее этот селекшн тег можно использовать для работы с данным выделением

Треугольниками обозначены Selection Tag’и, хранящие наши выделения на объектах
Виды Selection Tag’ов — полигоны, точки, ребра

По двойному клику на Selection Tag можно восстановить наше выделение (то, которое мы сохранили в этом теге)

Чтобы добавить другой Selection Tag в этом же режиме выделения на этот же объект, нужно сначала снять выделение с данного селекшн тега (так как он выделен, он в оранжевой окантовке). Жмем Cmd+LmClick и выделение снимается. Теперь мы можем добавить еще один Selection Tag в этом же режиме выделения, не заменяя предыдущий

У всех Selection Tag’ов есть поле Name (имя) — его желательно называть осмысленно, чтобы понимать к какому выделению относиться конкретный селекшн тег

Пример раскраски разных геометрий одной модели, используя Selection Tag’и

Selection Tag’и часто применяются для назначение различных материалов различным частям геометрии объекта. Нужно просто в настройках материала примененного к объекту найти параметр Selection и перетащить туда нужный Selection Tag

Если создать применительно к объекту пустой Selection Tag и включить в настройках галочку Use Fields (позволяет нам использовать поля, чтобы создать выделение)

Далее в настройках внизу выбираем Random Field, что позволяет нам создать рандомное выделение некоторых полигонов на нашем объекте

Кажется ничего не изменилось, но если дважды кликнуть теперь на наш Selection Tag — мы увидим рандомное выделение полигонов на нашем объекте

Теперь на весь объект мы накинули красный материал, а в рандомное выделение Selection Tag’а мы накинули зеленый материал. Вот что получилось. Кстати, это можно анимировать

Достаточно всего лишь поменять настройки у Random Field, например — Sead. Будет меняться рандомное выделение, а в нашем случае и перекрашиваться полигоны модели

Еще некоторые фишки выделений:

  • Двойной клик на объекте в режиме Move Tool — равносилен Fill Selection
  • Через Cmd+Shift — можно использовать аналог Path Selection

--

--