Как объединить два сплайна в cinema 4d

Обновлено: 30.06.2024

Итак, сегодня мы начнем довольно сложный урок для новичков, и в этой его части обратим внимание главным образом на полигональное моделирование. Общей задачей является создание качественной модели энергосберегающей лампочки. Точнее, нескольких. Находим в Интернете любую фотографию, которую мы возьмем в качестве прототипа. В моем случае я нашел изображение, включающее много моделей, которые в основном отличаются конструкторским дизайном люминесцентной лампы. В остальном: цоколь и электронный блок (ЭПРА — электронный пускорегулирующий аппарат) везде фактически идентичны. В этой части урока мы будем создавать только цоколь.

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

Цоколь — самый сложный элемент

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

В принципе, в Интернете вы можете найти некоторые уроки по созданию лампочек, где нередко объясняется, как делать цоколь, при этом в них изначально создается поверхность со спиральным расположением полигонов, после чего выделяются и выдавливаются грани и т.п. Это очень трудоемко. Но я вам сейчас покажу свой метод, который считаю более быстрым и понятным.

Фотографии прототипов берем из Интернета

Поверхность резьбы

Итак, открываем новый проект. В меню сплайнов выбираем Helix (спираль). Назовем ее «Helix 1». Указываем для нее параметры:
. Radius — 200 м (как и стоит по умолчанию).
. End Angle (конечный угол поворота) — 360 градусов. Нам нужен только один виток.
. Height (высота спирали) — 40 м.
. Plane (плоскость) — XZ.

Сделали, все хорошо, удобно и быстро настраивается. Затем копируем эту спираль и добавляем такую же (Ctrl+C/Ctrl+V). Переименовываем в «Helix 2». Меняем в ее настройках параметр Radius — 220 м, а также в окне свойств входим в закладку Coord (координаты) и указываем координату по Y равной -20 м.

Точно таким же образом создаем третью спираль («Helix 3») из первой, причем оставляем ее радиус равным 200 м, а координату по Y указываем как -40.

Те, кто прочел предыдущий материал этой серии, наверняка догадался, что мы сейчас будем «отливать» криволинейную поверхность одного витка спирали с помощью модификатора Loft NURBS. Предположение верно. Вызываем Loft NURBS из меню модификаторов, затем в менеджере объектов помещаем в него три наших спирали по порядку следования или обратному. В самих настройках Loft указываем следующие параметры:
. Mech Subdivision U (разбиение по координате U, если вы не знаете, что это такое, пока неважно) ставим равным 16-ти.
. Mech Subdivision V (разбиение по координате V) ставим равным 2.
. Isopam Subdivision U — 3.
. А также делаем активным указатель Organic Form.

Создаем один виток резьбы за счет использования трех сплайнов спиралей (Helix) и «отливки» поверхности модификатором Loft NURBS

Таким образом, у вас должно получиться то, что изображено на рисунке. То, что данная поверхность получилась несколько угловатой, на самом деле, не так важно, поскольку мы потом используем специальный модификатор органики, а низкий уровень детализации во многом упростит нашу работу. Следующим этапом идет создание поверхности самой резьбы, которую мы будем совмещать из получившихся витков. Как это лучше произвести? Во-первых, нужно перейти от NURBS представления объекта-витка к полигональному. Поэтому просто нажимаем клавишу «C» (операция Make Editable), в результате которой весь объект уже будет выглядеть в виде сетки полигонов.

Теперь копируем этот объект, добавляем новый (Ctrl+C/Ctrl+V), в котором меняем координату по Y на 40. Вообще, в данном случае нужно посмотреть на фотографию прототипа и посчитать, сколько там витков. В моем случае 4. То есть я добавляю таким же образом еще два витка.

Теперь нужно сделать следующие действия:
1. Объединить четыре поверхности в одну.
2. Оптимизировать получившуюся поверхность.

Аккуратно составляем резьбу из витков, после чего объединяем (Connect) их в один объект и оптимизируем его, удалив двойные точки (Function -> Optimization)

Объединение происходит следующим образом: выделяем четыре витка в менеджере объектов (удерживая Ctrl или Shift), затем нажимаем правую кнопку мыши и в контекстном меню выбираем вариант Connect (он же доступен через главное меню Function -> Connect). Нажимаем. В результате в менеджере появится итоговый пятый объект, а предыдущие четыре уже можно удалить.

Что нам нужно в плане оптимизации? Объясню простым языком: при совмещении витков в местах их соединения мы получили много двойных точек, каждые из которых раньше принадлежали своим поверхностям, а в данном случае только помешают. Поэтому в главном меню программы выбираем Function -> Optimization, в результате чего появится окно запроса оптимизации точек/граней/полигонов с предлагаемым вариантом погрешности (Tolerance). В данном случае просто нажимаем ОК. Произошедшие изменения вы сможете заметить по закраске получившейся поверхности, то есть в ней уже будут отсутствовать затемненные участки.

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

Объединив цилиндр и резьбу в единую поверхность, начинаем совмещать точки

Поверхность цоколя

Теперь нам нужно добавить (присоединить к резьбе) две новые поверхности: одну сверху, вторую снизу нашей резьбы. Начнем с самой простой — верхней.
Создадим мы ее не самым простым способом, но на его уровне мы можем научиться некоторым тонкостям. Среди фигур 3D-примитивов выберем цилиндр. Изменяем его настройки в окне свойств:
. Radius — 210 м.
. Height — 80 м.
. Height Segments (разбиение на сегменты по высоте) — 3 или 4.
. Rotation Segments — 16.
. Также в закладке свойств Caps делаем неактивным указатель Caps, то есть «без крышек» сверху и снизу.

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

Затем объединяем обе поверхности (цилиндра и резьбы) в одну с помощью операции Connect. То есть выделяем их в менеджере объектов, нажимаем правую кнопку мыши и в появившемся контекстном меню выбираем вариант Connect. В результате в менеджере появится третий объект, предыдущие два можно удалять.

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

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

Показываю операцию с первыми двумя точками:
1. Выделяем точку цилиндра.
2. Удерживая клавишу Shift, выделяем соответствующую ей точку резьбы. Отпускаем Shift — две точки выделены.
3. Для начинающих в данном случае лучше теперь нажать правую кнопку мыши и в контекстном меню выбрать пункт Weld. Если вы хотите повторить ту же самую операцию с помощью горячих клавиш, нажмите клавишу «M», и недолго ее удерживая, вслед за ней сразу «Q». В результате произведенного действия точки соединятся белой линей с квадратиком посередине. В данном случае программа запрашивает: к какой из точек все приравнять. Нажимаем на нижнюю, то есть резьбы. Объединение произведено.

Дальше производим ту же операцию со всеми остальными точками. Причем сам процесс можем автоматизировать. А именно, после завершения первой операции нажимаем на пробел, программа на автомате переключится в режим курсора, выбираем две точки, опять жмем пробел, программа делает автоматически Weld, указываем точку объединения, переходим к следующим, пробел и так далее. Нужно в данном случае запомнить, что пробел «сохраняет» в себе две последние операции, в нашем варианте — выделение и Weld.

Закрытие полигона Structure -> Create Polygon Hole

Когда вы обойдете все точки по кругу, в конце столкнетесь с ситуацией, где потребуется не совмещение точек, а «закрытие» несуществующего полигона. Это делается очень просто, в главном меню программы выбираем Structure -> Create Polygon Hole. Затем подносите курсор мыши к пустующему фрагменту, и он предварительно закрасится. Делаем клик левой кнопкой мыши — полигон сделан. При желании можете подкорректировать его, изменив положение некоторых точек на границах.

Теперь наступил черед изменения формы цилиндра, которая несколько расширяется при переходе к электронному блоку нашей лампы. Для этого переходим в режим работы с гранями (ребрами) в левом боковом меню быстрого доступа и, удерживая Shift, выделяем все верхние грани нашего цилиндра. Если случайно добавится ненужная грань, то ее выделение для группы можно отменить при нажатии на нее указателем мыши с удерживанием клавиши Ctrl. После этого можем использовать инструменты смещения (Move) и увеличения/уменьшения (Scale), в общем, подгоняем форму по нашему усмотрению. Нижний цилиндр добавляется идентично верхнему. Хотя для упрощения ситуации вы можете создать эту часть проще — как несколько окружностей- сплайнов, соединенных с помощью Loft (как мы это делали с резьбой). В этом случае вам не нужно будет возиться с отливкой формы, все, что потребуется в итоге — это соединить точки с помощью Weld. В принципе, так же можно было сделать и верхний цилиндр, но напомню, что мы учимся моделированию во всех его проявлениях.

Hyper NURBS

Переход от низкополигонального представления к высокополигональным формам осуществляется за счет использования специального модификатора Hyper NURBS. Он увеличивает количество полигонов и сглаживает форму как таковую. Для того чтобы посмотреть, как он работает, вызовем его и поместим как дочернюю к нему нашу поверхность цоколя в менеджере объектов, результат не заставит себя ждать. Основная часть цоколя готова, но не совсем.

Создав поверхность на низкополигональном уровне, выходим на высокополигональный с помощью модификатора Hyper NURBS

Добавление других элементов цоколя

В нижней части цоколя находятся два элемента — изоляция и контакт. Делаем их. Первый — это конус. Помещаем его в рабочую область, изменяем настройки:
. Top Radius (радиус вершины) — 75 м.
. Orientation — -Y (то есть перевернем).
. В закладке Caps делаем активным указатель Top (скругленная крышка), настраиваем радиус скругления.

Второй элемент, чтобы долго не усердствовать, мы сделаем из первого, скопировав, добавив в проект и уменьшив по размерам с помощью инструмента Scale (уменьшение/увеличение).

Готовый цоколь

Теперь можно сказать, что цоколь готов.

Компьютерная газета. Статья была опубликована в номере 09 за 2011 год в рубрике soft


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

Объединить производит объединение тегов текстуры и имеющихся выделений полигонов.>

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

При этом имеющиеся проекции текстуры будут корректно переняты.

Вы можете производить объединение нескольких выделенных полигональных объектов или объектов сплайнов (в обоих случаях также примитивы и генераторы). Cinema 4D в этом случае произведёт объединение все точек и полигонов, в один новый и при этом, единственный объект. Начальные объекты при этом остаются без изменения в сценe.

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

Используйте эту функцию только в том случае, если объединяемые объекты являются действительно составными частями для будущего объекта. В противном случае после объединения это практически невозможно – произвести повторное мануальное разделение объектов на первоначальные составляющие.

Доступны следующие сочетания клавиш:

На заметку:
Cinema 4D производит объединение только полигональных объектов и сплайнов. Смешанное объединение полигональных объектов и объектов сплайнов, является невозможным.

Если сплайны, которые вы хотите объединить, имеют одинаковый тип, то результат также будет иметь этот тип. Если вы объединяете сплайны разных типов, то получите сплайн типа Безье.

С появлением Cinema 4D R21 эта команда также может объединять объекты объёма, группы или генераторы объёма в статический набор объемов.

Сплайн может состоять из нескольких сегментов, как, например, кольцо или текст. Объединить несколько кривых сплайна в одну позволяет инструмент Join Segment (Объединить сегмент). Для этого необходимо выделить одну или несколько точек обоих кривых и использовать этот инструмент. При этом начальная точка одной кривой соединится сегментом с конечной точкой другого. Для объединения всех кривых сплайна нужно снять выделение со всех точек.

Обратное действие осуществляет инструмент Break Segment (Разбить сегмент). Используя его для получения новой кривой сплайна, вы выделяете точку или несколько точек, которые хотите отделить, и применяете команду. Сегменты, соединяющие выделенные вершины с кривой, удаляются, и образуется новая кривая.

При использовании инструмента Set First Point (Установить первую вершину) порядок следования вершин перестраивается таким образом, что выделенная вершина становится первой. Визуально это отразится цветом кривой: он изменяется от желтого цвета начальной точки до красного цвета конечной.

Инструмент Reverse Sequence (Обратить последовательность) перестраивает порядок следования вершин так, что начальная точка становится конечной, а конечная – начальной.

Инструмент Move Down Sequence (Переместить последовательность вниз) смещает порядок следования вершин таким образом, что первая точка становится второй, вторая – третьей и так далее. Последняя точка становится первой.

Инструмент Move Up Sequence (Переместить последовательность вверх) осуществляет обратное действие. При его использовании первая точка становится последней, вторая – первой и т.д. Последняя точка становится предпоследней.

Инструмент Chamfer (Скругление) разбивает выделенную вершину на две, соединенные сегментом с мягкой интерполяцией. Длины всех управляющих ручек первоначальных вершин сплайна обращаются в ноль. Если ни одна точка не выделена, то инструмент применяется ко всем точкам сплайна, кроме начальной и конечной точки для открытого сплайна. При создании скругления вы можете управлять его радиусом, если, удерживая нажатой кнопку мыши, будете перетаскивать курсор. Радиус скругления ограничивается в поле Radius вкладки Attribute в режиме (Mode) Tool (рис. 4.26). Там же находится флажок Flat (Плоское), при установке которого образуется прямолинейная фаска вместо скругления.


Рис. 4.26. Настройка инструмента Chamfer

С помощью инструмента Create Outline (Создать контур) вы можете быстро создать контур сплайна, подобный ему (рис. 4.27). Выбрав этот инструмент, щелкните кнопкой мыши и, удерживая ее, переместите курсор. Образуется новая кривая, которая будет соединена с концами открытого сплайна или в виде отдельной кривой для замкнутого.


Рис. 4.27. Создание контура с помощью инструмента Create Outline

Програмирование с использованием OpenGL

Cinema 4D Практическое руководство стр.13


Orientation - задает расположение плоскости рельефа в пространстве. .

Spherical - позволяет обернуть рельеф вокруг сферы. На рис 2.39 приведен вид рассмотренного выше рельефа, обернутого вокруг сферы.

Имеются также три ручки интерактивного регулирования размеров рельефа (рис. 2.40).

Кроме рассмотренных параметрических примитивов, в Cinema 4D применяются сплайны. Сплайны - это кривые, которые образуются отрезками линий, соединяющими контрольные точки. С помощью контрольных точек можно


регулировать степень сглаженности сплайна. Имеется

5 типов сплайнов и обширная коллекция сплайновых форм. Особое внимание следует обратить на неоднородные рациональные В-сплайны, сокращенно NURBS (Non-Uniform Rational B-Splines), которые позволяют получать более реалистические поверхности объектов, чем полигональные структуры. Сплайнам посвящена следующая глава.

2.2. Сплайны

Сплайн строится соединением точек (вершин) линиями (сегментами). Название Spline расшифровывается как Segments Point Line - сегментно точечная линия. Сплайны представляют собой линии нулевой толщины, расположенные в двумерном пространстве, не имеющие третьего измерения. Объекты, получаемые из сплайнов, создаются как ткань из ниток - множество сплайнов, расположенных рядом, создают двумерную поверхность, из которой в свою очередь строится трехмерный объект.

Так как сегмент соединяет две соседние точки, то от типа сегмента, его кривизны зависит и форма всего сплайна. Типы сплайнов перечислены в меню Objects -> Create Spline (рис. 2.41).

Тип Freehand позволяет рисовать сплайн в окне проекций двумя способами: не отпуская левой кнопки мыши и по точкам, удерживая нажатой клавишу Ctrl (рис. 2.42).

Тип Bezier позволяет с помощью ручек управления задавать радиус кривизны линии в этой вершине и направление кривизны.


Ручки управления появляются при создании и выделении вершины.

Выберите сплайн Bezier в меню Objects -> Create Spline-> Bezier.

Щелкните левой кнопкой мыши в точке окна проекций, из которой собираетесь начать построение сплайна. Не отпуская левой кнопки мыши, передвиньте мышь в произвольном направлении. Появятся две ручки управления розового цвета (рис. 2.43). Чтобы настроить радиус кривизны сегмента в этой вершине, следует изменить длину ручек, а чтобы настроить направление кривизны, измените направление ручек. Задайте произвольные радиус и направление кривизны.

Отпустите левую кнопку мыши и щелкните в следующей точке, в которой вы предполагаете расположить вторую вершину кривой, и так далее. Чтобы закончить построение, нажмите клавишу Enter. В результате получится кривая белого цвета (рис. 2.44).

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

Чтобы изменить направление кривизны, поверните ручку вокруг центральной точки (рис. 2.46). В данном случае ручка повернута по часовой


стрелке. Чтобы получить точное значение, например, угла поворота ручек, обратитесь к окну менеджера Coordinates к параметру Rotation (рис. 2.47).

Читайте также: