Рис. 3.1. Контрольная точка с рычагами Рычаги — это элементы, позволяющие управлять изгибом кривой между контроль- ными точками. Каждая вершина снабжается двумя рычагами, которые ответствен- ны за свой сегмент. Таким образом, процесс редактирования сплайнов Безье заключается в размещении ключевых вершин в нужных местах и регулирования переходов между ними с по- мощью рычагов. Blender предлагает несколько типов рычагов для разных нужд. Automatic (Автоматический). Используется по умолчанию. В этом режиме оба рычага взаимосвязаны и при изменении положения одного, равноценно меняют- ся координаты второго. Кривые, поверхности NURBS 97 Vector (Векторный). Рычаг всегда смотрит в сторону следующей контрольной точки. Соответствующим образом изменяется и кривая. Этим способом можно добиться острых углов у сплайна. Aligned (Выровненный). В этом режиме рычаг устанавливается параллельно по отношению к соседнему рычагу. Free (Свободный). В отличие от остальных типов здесь рычаги полностью неза- висимы друг от друга. Заметьте, что применение типа возможно как для одного рычага в отдельности, так и к выделенной группе контрольных точек. Это позволяет по-разному конструиро- вать форму кривой. К примеру, если с одной стороны от вершины нужен прямой сегмент, а с другой извилистый, то применяются типы Vector и Free к соответст- вующим рычагам. Выбор типа рычага осуществляется в меню Curve | Control Points | Set Handle Type (Кривая | Контрольные точки | Установить тип рычага) или с помощью кон- текстного меню, вызываемого горячей клавишей . Добавить кривую или поверхность можно стандартным способом из меню Add. Blender предлагает пять примитивов для сплайнов и шесть — для NURBS. Примитивы Curve: Bezier — простая кривая с двумя контрольными точками; Circle — замкнутая окружность с четырьмя управляющими вершинами; Nurbs Curve — простая кривая NURBS с 4 вершинами; Nurbs Cicle — замкнутая окружность с восьмью контрольными точками; Path — вспомогательная кривая для создания траектории движения другого объекта. Примитивы Surface: NURBS Curve (Кривая); NURBS Circle (Окружность); NURBS Surface (Поверхность); NURBS Cylinder (Цилиндр); NURBS Sphere (Сфера); NURBS Torus (Тор). 3.2. Простейшие операции со сплайнами Если добавить в сцену кривую и попробовать обработать, то в итоге получите пус- той экран. Дело в том, что сплайны Безье часто используются как вспомогательные объекты в анимации или при деформации Mesh. Для использования их в качестве зрительных объектов необходимо добавить глубину (Depth). Этот и иные парамет- ры доступны на панели Object Data окна Properties (рис. 3.2).
98 Глава 3 Рис. 3.2. Настройки кривой Так как сплайн является объектом двухмерным, а мы все же работаем в 3D-про- странстве, то разработчики озаботились возможностью переключения его из режи- ма 2D в 3D. Переключение относится только к возможностям манипуляции. К при- меру, если работа идет над созданием плоского логотипа, то удобнее включить ре- жим 2D. В этом случае не будет возможности перемещать вершины кривой по координате Z, что исключит случайное искажение формы. Причем это касается только редактирования. Перемещать по сцене кривую можно как заблагорассудит- ся. Выбор режима осуществляется в настройках сплайна кнопками 2D и 3D. ЭТО ВАЖНО! Если, при редактировании кривой вершины объекта располагаются на разной высоте по Z, то переключение в режим 2D выстроит все контрольные точки на одной плос - кости. Простейшая модель, которую можно сделать из кривой (конкретно имеется в виду примитив Bezier), — это волос, провод, труба и все остальное в таком роде. Blender предлагает два варианта создания объема у сплайнов: Extrude (Выдавливания) (рис. 3.3) и Depth (Глубина) (рис. 3.4). Обе опции находятся в закладке Geometry (Геометрия) окна Properties (см. рис. 3.2). Если функция Extrude выдавливает объем по координате Z, то Depth производит это с "гранями" кривой. Слово "грани" не зря взято в кавычки, ведь по умолчанию у сплайнов их просто нет. Но если представить кривую как набор близко стоящих сфер, то можно понять, как Depth изменяет примитив. Кривые, поверхности NURBS 99 Рис. 3.3. Результат изменения Extrude Рис. 3.4. Результат изменения Depth
100 Глава 3 Странный вид кривой после изменения Depth объясняется текущими атрибутами заливки. Возможные варианты находятся в группе Fill (см. рис. 3.2): Half (Половина); Front (Спереди); Back (Сзади); Full (Полностью); Fill Deformed (Заливка после деформации). Используется для корректировки после применения некоторых модификаторов или при анимации. Для получения желаемого вида провода нужно выбрать в меню Fill пункт Full (рис. 3.5). Рис. 3.5. Кривая после установки параметра Fill Квадратность модели объясняется низким разрешением у кривой, которое стоит по умолчанию. Для изменения этого свойства имеется поле Resolution (Разрешение) в группе Geometry. Увеличение его приведет к нужному результату (рис. 3.6). По сравнению с Mesh функции редактирования у сплайнов весьма небогатые, но их достаточно для воплощения любой задумки. Возьмем опять за образец примитив Bezier. По умолчанию он имеет всего две контрольные вершины. В некоторых слу- чаях этого явно недостаточно. Самый простой способ добавления новой точки — это выполнить хорошо знакомую функцию Subdivide. В отличие от Mesh, жела- тельно разбивать сегмент между двумя вершинами, а не по всему объекту. Делается
Кривые, поверхности NURBS 101 это просто: выделяются две смежные контрольные точки, между которыми нужна еще одна, нажимается клавиша и выбирается пункт Subdivide (кнопка с таким же названием присутствует и в Tool Shelf). Удаление ненужной вершины выполня- ется с помощью стандартной команды Delete (). Рис. 3.6. Провод из сплайна Можно также использовать команду Extrude. Применять ее следует к крайним вершинам. В этом случае будет создан новый сегмент с добавлением контрольной точки. Иногда бывает нужно сделать кривую замкнутой. Такая функция в Blender имеется и называется Toggle Cуclic (Переключение зацикливания). Выполнить ее можно только в режиме редактирования. Смысл работы заключается в том, что между крайними вершинами прокладывается еще один сегмент и таким образом фигура замыкается. Причем интересно, что для ее выполнения необходимо выделение хотя бы одной контрольной точки, неважно какой. Вторичный вызов Toggle Cуclic вернет кривую в первоначальное состояние. Запомните еще одну особенность — результат работы этой команды различен для режимов 2D и 3D. В первом случае вы получите замкнутую кривую с заливкой, во втором — просто окружность (рис. 3.7).
102 Глава 3 Рис. 3.7. Объект слева в 3D , справа — 2D 3.3. Деформация объектов с помощью кривой Часто кривую используют как вспомогательный примитив для деформации иного объекта. Причем в качестве второго могут служить как сплайны, так и Mesh. С помощью этого способа можно с легкостью добиться поразительных успехов. Начнем сначала с деформации сплайнов. Допустим, нужно деформировать примитив Bezier Circle. Как правило, в качестве вспомогательного объекта берут простую кривую Bezier, но ничто не мешает ис- пользовать любой сплайновый примитив. На панели настроек Bezier Circle в группе Geometry есть два поля: Taper Object и Bevel Object (см. рис. 3.2).Именно там выбирается вспомогательный объект в сцене. Как вы уже знаете, группа Bevel управляет созданием кромки. Если просто изме- нить параметр Depth, то окружность получит вид, как на рис. 3.8. Теперь если создать в сцене примитив Bezier и выбрать его в поле Bevel Object, то окружность изменится в соответствии с формой вспомогательной кривой (рис. 3.9). Э ТО ВАЖНО ! Если поле Depth у объекта имеет значение, отличное от нулевого, то выбор вспомога- тельной кривой в Bevel Object сбросит параметр Depth. Управление деформацией объекта осуществляется путем манипулирования формы кривой в режиме редактирования. Кроме того, на конечный результат влияет и масштаб вспомогательного примитива.
Кривые, поверхности NURBS 103 Рис. 3.8. Результат изменения Depth у примитива Bezier Circle Рис. 3.9. Bezier Circle приняла форму кривой Путем несложных манипуляций с вершинами кривой можно быстро получить при- емлемый результат. Так, на рис. 3.10 изображена тарелка, созданная с помощью описанного способа. Причем основной объект Bezier Circle не подвергался ника- кому редактированию (рис. 3.10). Слово "Taper" с английского можно перевести как "сужать". В принципе, это и происходит при активации опции Taper Object. Главное условие его использова- ния — это наличие объема у исходного примитива. Возьмем, к примеру, две кри-
104 Глава 3 вые Безье, где одна будет вспомогательной, а другая основная. Установим для вто- рого объекта параметр Depth равным 1, а Extrude — равным 0. Выравним обе кри- вые с помощью режима рычагов Vector и добавим в поле Taper Object вспомога- тельный примитив. В итоге получится ламповый абажур (рис. 3.11). Рис. 3.10. Слева вспомогательная кривая, а справа деформированный примитив Circle Рис. 3.11. Абажур из кривой Безье с помощью Taper Object
Кривые, поверхности NURBS 105 Ко всему сказанному нужно добавить, что кривые можно использовать для дефор- мации объектов Mesh. Вот только для них существует специальный модификатор Curve (Кривая) (рис. 3.12). Достаточно указать в поле Object нужную кривую и выбрать ось, вдоль которой будет происходить деформация. Принцип работы простой: изменяете форму кри- вой — меняется сам объект (рис. 3.13). Рис. 3.12. Настройки модификатора Curve Рис. 3.13. Сверху вниз показаны фазы движения сферы вдоль кривой СОВЕТИспользуйте механизм Snap (Привязка) для совмещения центров двух объектов. Ина- че рискуете получить непонятное поведение контролируемого объекта. 3.4. Создание объемных моделейУже понятно, что сплайны удобно использовать для создания плоских моделей или объемных фигур с помощью дополнительной кривой. И все же возникает мысль о некоторой ущербности такого рода моделирования, по сравнению с возможно- стями Mesh. Так можно ли сделать что-либо серьезное с их помощью? 106 Глава 3 Оказывается, да. Сплайны — это мощнейший инструмент для создания обтекае- мых, объемных моделей... все тех же Mesh. И не в качестве вспомогательных объ- ектов, а как основа создания модели. Во многих книгах по 3D-моделированию в различных программах рассказывается о способе создания таких моделей, как ваза, бокал, кувшин. И это вовсе не зря. Мо- делирование этих объектов — сложное и муторное дело, если использовать стан- дартные функции редактирования примитивов Mesh. То же самое относится и к Blender. Допустим, нужно сделать трехмерный стакан. Первая идея — это воспользоваться объектом Circle из группы Mesh. Кажется, нет ничего сложного. Выдавливаем из него форму по координате Z, если нужно, немного расширяем путем масштабиро- вания верхнюю часть, улучшаем внешний вид с помощью Multeres и вуаля, объект готов! А если понадобится смоделировать кувшин или обычную бутылку с их неравно- мерной формой? Данный способ явно не годится. Примитивы Mesh имеют замечательную функцию Spin (Вращение). Суть ее за- ключается в том, что она создает копии объекта в процессе вращения на опреде- ленный градус. В итоге получается, что достаточно сделать один сегмент модели и провернуть его вокруг оси. Можно, конечно, данный образец сделать изначально в Mesh. Но сплайны имеют одно неоспоримое преимущество перед Mesh- объектами — они оптимально подходят для создания плавных изгибов фигуры. Рассмотрим на практике, как можно создать ту же саму бутылку. Для начала найдите в качестве образца любую фотографию с бутылкой или возь- мите готовую из папки Scenes\glava3\bottle.jpg из архива примеров к этой книге (см. приложение 2). Создайте новый проект и удалите куб из сцены. Теперь установите картинку в качестве фона окна 3D View на панели свойств ( ). Переключитесь в режим вида Front View () в ортогональной проекции (). Добавьте в сцену примитив Add | Curve | Bezier. По умолчанию он располагается в плоскости XY. Поэтому нужно развернуть его "лицом" к себе. Установите на па- нели свойств в группе Rotation следующие значения: X = 90 Y = –90 Z = 0 Увеличьте масштаб кривой так, чтобы она по вертикали совпадала с образцом (рис. 3.14). Настало время создать контур бутылки, причем не всей, а только одной из сторон, скажем, левой. По умолчанию сплайн имеет всего две контрольные точки, чего яв- но мало. Поэтому в режиме редактирования () выделите все клавишей и нажмите . В появившемся меню Specials выберите функцию Subdivide. Итак, уже стало три вершины. Теперь можно новую вершину подгонять под контур при-
108 Глава 3 Рис. 3.15. Кривая обрисовывает одну из сторон бутылки Рис. 3.16. Готовая кривая
110 Глава 3 3.5. Знакомимся с поверхностями NURBSНовички при знакомстве с NURBS часто недоумевают, для чего столь непослуш- ный и сложный инструмент может понадобиться. В действительности NURBS по- зволяет создавать сложные формы за считанные мгновения. Правда, для этого нуж- но обладать определенным пространственным воображением, уметь представлять будущую модель в разрезе, ведь технология моделирования с NURBS сильно отли- чается от уже привычного Mesh. В отличие от рассмотренных кривых Безье, NURBS имеют совершенно иную структуру, способы редактирования. Это не значит, что функции редактирования и манипуляции у них в корне иные. Просто нужно учитывать определенные правила работы. Если кривые NURBS в работе особо не отличаются от Bezier, то с поверх- ностями совсем другая ситуация. По сравнению с Безье, поверхности можно рассматривать как трехмерные объекты, но с очень большой натяжкой. С одной стороны, у них есть дополнительное изме- рение, с другой стороны, все поверхности, даже зацикленные, не имеют объема. По логике, трехмерными объектами могут называться только те, что имеют объем. И все же в сравнении с простыми кривыми перейти в каталог файлов |