Елочное украшение «Звезда»
Поддерживая начатую новогоднюю тему, выберем в качестве объекта для экспериментов очередное елочное украшение — звезду. Однако будем стараться сделать не геометрически строгую и потому холодную в своей правильности звезду, а как бы мягкую, живую звездочку (рис. 9.67), пять лучей которой можно рассматривать как руки, ноги и голову некоего простейшего трехмерного персонажа. Куски Безье прекрасно подходят для моделирования именно такого типа объектов, относящихся к разряду «органики».
Рис. 9.67. Звездочка, вылепленная из треугольных кусков Безье, машет вам лучом-«рукой»
Наша звезда имеет вертикальную плоскость зеркальной симметрии, разделяющую ее на фронтальную и тыльную половины. Применим в связи с этим уже опробованный нами прием: будем создавать только одну зеркальную половинку звезды, затем выполним ее копирование и соединим половинки вместе.
Выполняйте вместе со мной следующие действия:
1. Как обычно, выполните перезагрузку mах 7.5 и сохраните пустую сцену под именем Zvezda.max.
2. Создайте в окне проекции Front (Вид спереди) вблизи от начала глобальной системы координат стандартный объект типа Tri Patch (Треугольный кусок) размером приблизительно 12x12 см. Вы, конечно, помните о том, что этот примитив на самом деле представляет собой два треугольных куска Безье, соединяющихся вдоль общей диагонали. Преобразуйте объект к типу Editable Patch (Редактируемый кусок) и поверните сетку на 45°, чтобы диагональ, разделяющая куски, разместилась вертикально. Убедитесь в этом, переключившись на командной панели Modify (Изменить) на уровень выделения подобъектов Patch (Кусок) и выделив один из двух кусков Безье, из которых состоит прямоугольная сетка. Переключитесь на уровень выделения подобъектов-вершин, выделите все четыре угловые вершины двух кусков и преобразуйте их к типу Corner (С изломом), используя четвертное меню. Перемещая вершины и манипулируя маркерами касательных векторов, придайте сетке кусков форму, подобную показанной на рис. 9.68. Это будет заготовка лицевой половины верхнего из пяти лучей звезды. Обратите внимание на то, что верхняя и нижняя вершины, лежащие на концах диагонали, разделяющей два треугольных куска Безье, имеют по три касательных вектора. Это поможет нам на следующем шаге упражнения придать выпуклость заготовке луча.
Рис. 9.68. Форма стандартной сетки из двух треугольных кусков Безье, повернутой на 45°, настроена за счет перемещения угловых вершин и их касательных векторов
3. На виде спереди сетка приняла нужные формы, но она пока остается совершенно плоской, в чем легко убедиться, заглянув, скажем, в окно проекции Тор (Вид сверху). Чтобы придать сетке нужную выпуклость, придется работать сразу с несколькими окнами проекций. Выделите верхнюю вершину сетки в окне вида спереди. Перейдите в окно проекции вида справа или слева. Пусть для определенности это будет вид справа. Плоская сетка в таком окне будет, естественно, выглядеть как отрезок вертикальной линии. Найдите маркер касательного вектора, исходящего из верхней вершины вниз, вдоль диагонали сетки, и переместите его влево. Контролируйте результат, глядя не только в окно вида справа, но и в окно вида сверху. Затем выделите нижнюю вершину сетки и также переместите ее влево. Теперь поработайте с маркерами касательных векторов двух боковых вершин, придав сетке примерно такую форму, какая показана на рис. 9.69. Ориентировочные направления перемещения вершины и маркеров показаны на рисунке стрелками.
Рис. 9.69. Сетке верхнего луча придана выпуклость за счет перемещения нижней вершины и маркеров нескольких касательных векторов в направлениях, показанных стрелками
4. Для дальнейшего наращивания сетки можно использовать две альтернативы. Один способ состоит в том, чтобы выделить нужное боковое ребро куска Безье и присоединить к нему новый кусок, используя в нашем случае инструмент Add Tri (Добавить треугольный). Вторая возможность заключается в копировании обоих кусков, из которых состоит верхний луч, перемещении их в нужную позицию и присоединении к исходной сетке. Испытаем в учебных целях оба варианта действий. Сначала попробуем присоединять кусок за куском. Переключитесь на уровень выделения подобъектов Edge (Ребро). Выделите в окне проекции вида спереди правое нижнее ребро сетки и щелкните на кнопке Add Tri (Добавить треугольный) в свитке Geometry (Геометрия). К выделенному ребру автоматически присоединится новый треугольный кусок Безье. Этот кусок размещается программой так, чтобы без перегибов наследовать форму исходной сетки, как показано на рис. 9.70. В нашем случае, однако, это не совсем то, что нам нужно. Форму нового куска требуется подправить.
Рис. 9.70. К правому нижнему ребру сетки присоединен новый треугольный кусок, наследующий ее форму
5. Переключитесь на уровень выделения подобъектов-вершин. Перемещая на виде спереди крайнюю вершину нового куска и манипулируя маркерами касательных векторов этой и двух других его вершин, придайте сетке форму, похожую на изображенную на рис. 9.71. Не забывайте, что мы создаем пока сетку только одной зеркальной половины звезды, так что на краю сетки, вдоль которого пойдет сшивка зеркальных половинок, вершины кусков должны лежать приблизительно в одной плоскости. Этого следует добиться, настраивая положение крайней вершины и ее векторов в окне вида сверху. На рис. 9.64 видно ориентировочное расположение маркеров касательных векторов угловых вершин добавленного куска Безье.
Рис. 9.71. Вид сетки после редактирования формы нового куска. На виде сверху крайняя вершина нового куска должна лежать на линии симметрии звезды
6. Переключившись на уровень работы с ребрами, выделите нижнее из свободных ребер только что добавленного куска и снова щелкните на кнопке Add Tri (Добавить треугольный). Произойдет дальнейшее наращивание площади сетки за счет добавления еще одного треугольного куска Безье. Вернувшись на уровень выделения вершин, настройте форму добавленного куска за счет перемещения маркеров касательных векторов. Не забудьте переместить нижнюю угловую вершину нового куска в окне вида сверху на линию зеркальной симметрии половинок создаваемой звезды. В итоге сетка должна принять вид, похожий на рис. 9.72. Можно продолжать дальнейшее наращивание сетки аналогичным способом, начав с ребра, указанного на рисунке стрелкой. Мы, однако, перейдем к освоению второго обозначенного выше способа моделирования сетки из кусков Безье за счет присоединения готовых элементов.
Рис. 9.72. Второй луч звезды сформирован из двух новых треугольных кусков Безье. Стрелка указывает на ребро, с которого следует продолжать наращивание сетки
7. Чтобы присоединить к сетке целый готовый фрагмент, переключитесь на уровень выделения подобъекта Patch (Кусок). Выделите оба куска, составляющих первый луч звезды. Нажав и удерживая клавишу Shift, переместите копию пары кусков в сторону, а затем поверните и расположите их примерно так, как показано на рис. 9.73. Теперь можно произвести прикрепление нового фрагмента из двух кусков к остальной части сетки. Переключитесь на уровень выделения подобъекта Vertex (Вершина). Выделите две пары вершин на концах тех двух ребер, вдоль которых должно произойти слияние основной сетки и нового фрагмента. Убедитесь, что в нижней части свитка Selection (Выделение) имеется сообщение 4 Vertices Selected (Выделены 4 вершины).
Рис. 9.73. Два куска Безье, образующие верхний луч звезды, скопированы и размещены в нужной позиции для прикрепления. Стрелками показаны вершины, которые нужно слить
8. В разделе Weld (Слить) свитка Geometry (Геометрия) установите в счетчике справа от кнопки Selected (Выделенные) величину порогового расстояния между вершинами, которые будут слиты в одну после щелчка на упомянутой кнопке. В нашем случае достаточно будет задать пороговое расстояние равным 1 см. Щелкните на кнопке Selected (Выделенные). Вершины попарно сольются, а сообщение в нижней части свитка Selection (Выделение) будет читаться как 2 Vertices Selected (Выделены 2 вершины). Слияние вершин ведет к органичному прикреплению нового фрагмента к основной сетке с заменой двух соединявших пары вершин ребер на одно новое. Остается только настроить форму вновь созданного луча примерно так, как показано на рис. 9.74, перемещая вершины кусков и манипулируя маркерами касательных векторов. При таком способе наращивания сетки не нарушается выравнивание вершин вдоль плоскости симметрии звезды. В этом легко убедиться, заглянув в окно вида сверху. В нашем конкретном случае это, несомненно, удобно, так как сокращает усилия по настройке формы сетки.
Рис. 9.74. Создан еще один луч звезды
9. Продолжите наращивание сетки, добавляя новые куски любым из возможных способов, показавшимся вам более простым и подходящим. В итоге фронтальная половинка звезды будет выглядеть так, как показано на рис. 9.75.
Рис. 9.75. Сетка фронтальной половинки звезды построена полностью
ЗАМЕЧАНИЕ Хочу напомнить, что мы задавались целью построить звездочку, напоминающую некий прообраз простейшего компьютерного персонажа. В связи с этим нет никакой необходимости стараться обеспечивать строгую геометрическую правильность конструкции объекта. Очевидно, если бы требовалось сформировать геометрически правильную звезду, нам следовало бы выбрать иной метод моделирования, например выдавливание сплайнового пятиконечного примитива Star (Звезда) с последующей правкой полученной сетки на уровне вершин и граней. |
10. Чтобы еще чуть оживить модель, настройте форму одного из лучей-«рук» звезды так, как будто она приветливо помахивает зрителям. Что-то подобное показано ранее на рис. 9.60. Для этого имеет смысл увеличить сегментацию кусков, составляющих этот луч. Выделите нужные куски па уровне подобъекта Patch (Кусок) и щелкните на кнопке Subdivide (Подразделить), расположенной в свитке Geometry (Геометрия) и уже опробованной нами в предыдущем упражнении. Получив в свое распоряжение дополнительные вершины и касательные векторы, настройте форму луча, проявив творческую фантазию (рис. 9.76).
Рис. 9.76. Сегментация одного из лучей увеличена, что позволило звезде помахать нам этим лучом как рукой
11. Теперь остается только создать зеркальную копию сформированной половинки звезды и соединить обе половины вместе. Переключитесь на уровень выделения объекта Editable Patch (Редактируемый кусок) в целом. Убедитесь, что вся сетка кусков выделена. Активизируйте окно вида справа. Щелкните на кнопке Mirror Selected Objects (Отразить выделенные объекты) главной панели инструментов. В появившемся окне диалога установите переключатель Clone Selection (Тип отражения) в положение Сору (Копия) и щелкните на кнопке ОК. Будет создана зеркальная копия половники звезды. Чтобы слить вершины новой сетки кусков с вершинами первой половины звезды, требуется предварительно включить новую половину в состав исходной сетки. Щелкните на кнопке Attach (Прикрепить) свитка Geometry (Геометрия), а затем — на исходной половинке звезды.
12. Перейдя на уровень выделения подобъектов-вершин, выделите с помощью рамки в окне вида справа, слева или сверху все вершины кусков, лежащие вдоль линии стыка двух половин звезды. Последите за числом выделенных вершин по сообщению в нижней части свитка Selection (Выделение). У меня оказались выделенными 24 вершины. Щелкните на кнопке Selected (Выделенные) в разделе Weld (Слить) свитка Geometry (Геометрия). Убедитесь в том, что число вершин после слияния уменьшилось ровно в два раза. Если этого не произошло, то проверьте, достаточно ли плотно сдвинуты половинки перед слиянием вершин, или увеличьте пороговое расстояние слияния. В итоге трехмерная звездочка должна получиться похожей на ту, которая была показана ранее на рис. 9.67. Впрочем, допускаю, что ваше произведение будет выглядеть гораздо лучше и интереснее.
ЗАМЕЧАНИЕ Итоговую модель звезды можно найти в файле Zvezda.max, хранящемся в папке Scenes\ Glava_09 компакт-диска, прилагающегося к книге. |
Итак, попытка построить объект методом «лепки» из стандартных кусков успешно завершена. Надеюсь, что у творческих натур уже рождаются в голове идеи насчет того, как применить рассмотренный метод для «лепки» более сложных объектов, например, таких, как голова некоего компьютерного существа. Попробуйте самостоятельно поэкспериментировать в данном направлении, используя уже не треугольные, а четырехугольные куски Безье.
Ну а пока мы переходим к освоению следующего продвинутого метода моделирования — метода «натягивания» оболочки в виде сетки кусков Безье на трехмерный сплайновый каркас.