|
||||
|
Часть 2Практический курс Глава 7. Освещение Глава 8. Анимация сцен Глава 9. Практическое моделирование Глава 10. Текстурирование Глава 11. Визуализация До сих пор речь шла об интерфейсе программы и методах работы – теперь же вы с головой окунетесь в мир моделирования. Все упражнения, представленные в книге, не зависят друг от друга, поэтому вам не обязательно выполнять их последовательно. Каждое упражнение посвящено определенной теме создания трехмерной графики. Опыт практической работы с приложением показал, что каждый урок рождает новые идеи, которые могут быть в дальнейшем использованы в ваших собственных работах. Все главы сопровождаются файлами упражнений, находящимися на прилагаемом к книге DVD. Там же можно посмотреть и цветные иллюстрации. Глава 7Освещение • Основы освещения в трехмерной графике • Луч лазера • Объемный свет • Использование базовых источников света в интерьере Правильное освещение значительно усиливает впечатление от простой сцены. Оно не только позволяет лучше передать форму предметов, но и создает общее настроение в сцене. При помощи ярких цветов и обилия света можно получить эффект праздника, а приглушенный свет и затененные предметы создадут ощущение напряженности и тревоги. Свет – это мощный инструмент в руках разработчика трехмерной графики, нужно только уметь правильно им пользоваться. В этой главе вы научитесь правильно ставить свет и строить тени, а также познакомитесь с объемным (видимым) светом. Основы освещения в трехмерной графикеПравильно установленный свет может значительно улучшить посредственную сцену, и, наоборот, если источники света расставлены произвольным образом, даже хорошо смоделированная сцена покажется «бедной». Грамотное освещение определяет общую атмосферу изображения. При помощи света можно передать настроение, напряженность, радость, тоску, подчеркнуть достоинства и скрыть недостатки, а также сделать многое другое. Существует несколько вариантов освещения. Наиболее часто встречаются два из них: трехточечное и местное (зонное). Местное применяется для освещения отдельных участков сцены и используется чаще всего в случае, когда сцена большая и ее невозможно эффективно осветить при помощи трехточечного освещения. Трехточечное освещение является базовым в трехмерном моделировании. В его основе лежат три источника света: ключевой, контурный и заполняющий (иногда можно встретить другие определения). Ключевой свет является основным. Обычно это самый яркий и освещающий большую часть сцены свет. Кроме того, это тот источник света, благодаря которому предметы в сцене отбрасывают тень. Контурный свет используется для разделения предметов и фона, что, в свою очередь, определяет глубину пространства. Такой источник света обычно находится позади объектов сцены и по интенсивности слабее ключевого света.
Освещение часто является фундаментом для цветового моделирования, придающего сцене акцент и глубину. Предметы в сцене не будут выглядеть плоскими, если их прорисовать светотенью, то есть распределить освещенность по форме в зависимости от положения ее различных поверхностей по отношению к источнику света. Чтобы предметы выглядели объемными, на них должны присутствовать свет, блик, полутон, а на самой затененной части поверхности – собственная тень (рис. 7.1). Последняя всегда в той или иной степени подсвечена светом, отраженным от других предметов, так называемым рефлексом. Наконец, предметы отбрасывают от себя на соседние предметы падающую тень, которая обычно бывает темнее собственной тени. Только при правильном соотношении этих световых фаз можно с предельной правдоподобностью передать объем предмета. Рис. 7.1. Градации светотени В природе каждый объемный предмет определенного цвета ограничивается кривыми или плоскими поверхностями, которые при освещении попадают в разные световые и цветовые условия. Лучи света, падая на различные поверхности предметов, освещают их неравномерно, отчего поверхности выглядят различными по тону и цвету. Одни части поверхности получают больше света, другие – меньше. Степень освещенности предмета изменяется прежде всего в зависимости от расстояния до источника света: чем ближе находится источник света, тем сильнее освещение. Степень освещенности поверхности зависит от угла падения лучей света на поверхность, а также от фактуры и цвета самой поверхности. Гладкая, полированная поверхность лучше отражает свет, чем шероховатая или матовая. Поверхность темного цвета поглощает больше света, чем светлая. На очень темных и на очень светлых поверхностях светотеневые градации видны плохо, так как глаз не способен различать переходы слишком слабых (рис. 7.2) или сильных (рис. 7.3) световых оттенков. Рис. 7.2. Затемненная поверхность предмета Рис. 7.3. Засвеченная поверхность предмета Задача разработчика трехмерной графики состоит в том, чтобы найти правильное соотношение световых фаз за счет настроек и расположения источников света в пространстве виртуальной сцены, а также использования ее общей освещенности и создания эффекта глобального освещения. На предметах со сложным рельефом или орнаментом наиболее ясно детали видны в полутени, в тени их четкость понижена. Собственная тень всегда в той или иной степени подсвечена светом, отраженным от других предметов. Падающая тень не имеет резких разграничений с собственной тенью. Тональности их сближены, контуры основания предмета сливаются с горизонтальной плоскостью. Чем ближе к предмету падающая тень, тем она темнее. Такая закономерность сохраняется на переднем плане. Внутри и на дальнем плане тень высветляется рефлексами от окружения (рис. 7.4). Рефлексы не только высветляют тени, но также придают им свой цветовой оттенок. Свет, полутень, тень имеют на поверхности предмета определенное местоположение, а блик – нет, так как зависит не только от направления источника света, но и от местоположения камеры (точки в пространстве, с которой мы видим предмет). На предметах с блестящими (глянцевыми) поверхностями блики и рефлексы ярче и определеннее по своим границам, чем на матовых и шероховатых. Форма и цвет их находятся в прямой зависимости от формы и цвета прямого или отраженного источника света. Рис. 7.4. Падающая тень Чтобы лучше понять принцип действия источников света, создайте сцену. Используйте для этого простые примитивы Plane (Плоскость) и Teapot (Чайник). Расположите камеру и источники света так, как показано на рис. 7.5 и 7.6. Рис. 7.5. Вид сцены в окне проекции Top (Cверху) Рис. 7.6. Вид сцены в окне проекции Front (Спереди) Рассмотрим более подробно процесс создания сцены, с которой вы будете работать в дальнейшем. Последовательность создания любой сцены приблизительно такова: сначала создаются объекты, затем располагается и настраивается камера, и только после этого ставится свет. Прежде всего создадим плоскость, на которой будет располагаться чайник. Для этого выполните команду Create > Standard Primitives > Plane (Создать > Простые примитивы > Плоскость) главного меню и в окне проекции Top (Сверху) постройте плоскость произвольного размера. Для создания примитива Teapot (Чайник) выполните команду Create > Standard Primitives > Teapot (Создание > Простые примитивы > Чайник). В данном случае размер и плотность сетки чайника не имеют значения. Единственное требование – чтобы он располагался на плоскости и был сопоставим с ней по размерам.
Камера создается аналогичным способом. Выполните команду Create > Cameras > Target Camera (Создание > Камеры > Направленная камера). После того как построен объект и в сцене установлена камера, направленная на объект-чайник, можно переходить к созданию источников света. Прежде чем создавать источники света, нужно отметить, что освещение сцены зависит также от настроек подсветки в окне Environment and Effects (Окружающая среда и эффекты), которые равномерно распределяют начальный уровень освещенности всех объектов. Начинать расстановку источников света в сцене следует с основного освещения, то есть с ключевого. Примерно 80 % сцены будет освещено именно этим источником света, поэтому необходимо правильно расположить его в сцене. Он должен в целом освещать всю сцену (или нужную часть). Такой источник света не должен быть слишком ярким, чтобы не засветить предметы, или темным, иначе исчезнет объем в визуализированном изображении. На рис. 7.7 показано, что получилось у меня после визуализации сцены с одним ключевым источником света. В данном случае я использовал Target Spot (Направленный с целью) с затуханием, чтобы оттенить задний план, на котором ничего нет (если бы в глубине сцены присутствовали другие объекты, то необходимо было бы их показать, увеличив световое пятно). Для его построения выполните команду Create > Lights > Standard Lights > Target Spotlight (Создание > Источники света > Стандартные источники света > Направленный с целью). Первое, что бросается в глаза при взгляде на готовое изображение, – отсутствие падающей тени, непонятное положение чайника в пространстве (он то ли стоит на плоскости, то ли висит в воздухе). Активизируйте в настройках источника света тень. Для этого в области Shadows (Тени) свитка General Parameters (Общие параметры) настроек источника света в нижней части командной панели установите флажок On (Включить). Это позволит источнику света генерировать простые тени от объектов сцены (рис. 7.8). Рис. 7.7. Сцена, освещенная ключевым источником света Рис. 7.8. Появилась тень, и положение чайника на плоскости стало более естественным Теперь чайник не «висит» в воздухе, а стоит на плоскости. Но вместе с тем он стал сливаться с тенью, в результате чего частично пострадало восприятие объема. Добавим в сцену источник света для контурного освещения. Для этой цели используем еще один Target Spot (Направленный с целью) (на рис. 7.5 и 7.6 он расположен справа от камеры). Естественно, что интенсивность его несколько ниже, чем ключевого источника, так как этот источник света является второстепенным и его основная задача в данном случае – «оторвать» чайник от фона. Чтобы дать общее представление о том, какая интенсивность построенных источников света у меня в сцене, приведу значения параметров Multiplier (Яркость): для контурного источника света – 0,52, для ключевого – 1,3. Выполните последнюю настройку для данного источника света, сняв флажок Specular (Цвет блеска), который находится в свитке Advanced Effects (Дополнительные эффекты). Для наших целей достаточно, чтобы этот источник света освещал область диффузного отражения, не создавая области зеркального отражения. В реальности это обычно отраженный свет от других предметов, который не имеет большой интенсивности и не способен генерировать яркие блики. Как только вы добавили этот источник света, объекты приобрели объем, а сцена – пространство (рис. 7.9). Применим небольшой трюк, который поможет улучшить восприятие предмета и сделать его цвет более естественным. Для этого сделаем источник контурного света цветным, что поможет передать цвет, отраженный от поверхности, на которой стоит чайник. Естественно, применяемый к источнику света цвет должен соответствовать цвету той поверхности, которая будет отражать свет (в нашем случае это плоскость, на которой стоит чайник). Цвет этой поверхности красно-коричневый, значит, именно такой цвет должен присутствовать в свитке Intensity/Color/ Attenuation (Интенсивность/цвет/затухание) (рис. 7.10).
Рис. 7.9. Падающая тень Рис. 7.10. Цвет, добавленный источнику света, придал чайнику более естественную окраску Общее восприятие картины немного портит то, что на чайнике слишком темная собственная тень. Исправить положение поможет третий источник света – заполняющий. Его назначение – смягчить тени и полутени на предмете. Как и контурный, заполняющий свет не должен быть ярким и не должен создавать на поверхности объектов блики. В данном случае для построения источника освещения воспользуемся точечным источником света Omni (Всенаправленный). Для этого выполните команду Create > Lights > Standard Lights > Omni (Создание > Источники света > Стандартные источники света > Всенаправленный). Данный источник освещения должен находиться между двумя существующими источниками и быть позади камеры. Как уже говорилось выше, назначение его заключается в том, чтобы равномерно заполнить светом промежуток между самым ярким местом на объекте и его собственной тенью. Как и для контурного, запретите в настройках заполняющего источника света создание области зеркального отражения, сняв флажок Specular (Цвет блеска). После этого можно посмотреть на результаты сделанных настроек (рис. 7.11). Рис. 7.11. В сцену добавлен заполняющий свет Правильное расположение теней очень влияет на восприятие сцены зрителем. Управление тенями играет ключевую роль в использовании источников света. С чрезмерным или недостаточным количеством теней сцена не будет выглядеть реалистичной и убедительной. Отбрасывание теней представляет собой сложный процесс, именно тени добавляют в завершенную сцену реализм. Тени, построенные посредством трассировки лучей, требуют большого количества времени для визуализации, a Shadow Map (Карта теней) в дополнение к используемому времени визуализации – еще и ресурсов памяти. Ограничение падения точечного света только той областью, которая требует теней, сэкономит время визуализации. Уменьшение количества объектов, отбрасывающих тени, при помощи настроек объекта или источника света также сократит расходы ресурсов на визуализацию. По умолчанию источники света работают с тенью Shadow Map (Тип отбрасываемой тени). Это относительно быстрая для просчета тень, но вместе с тем и наименее точная с точки зрения трассировки лучей и качества. Более правильную с физической точки зрения тень дает Ray Traced Shadows (Трассированная тень), но она так же, как и тень Shadow Map (Тип отбрасываемой тени), не становится светлее по мере удаления от предмета. Появление типа Area Shadows (Площадная тень) решило эту проблему. В некоторой степени недостатком Shadow Map (Тип отбрасываемой тени) и Area Shadows (Площадная тень) является значительное увеличение времени просчета сцены, особенно если в ней используется несколько источников света с такой тенью, а у Area Shadows (Площадная тень) указано большое значение размытия тени на краях. До создания таких теней существовали подключаемые модули или сценарии, которые генерировали по кругу дополнительные источники света на небольшом расстоянии друг от друга. Таким образом, тени, создаваемые многими источниками, перекрывались при визуализации и давали размытый контур. Существует более простой и, что самое приятное, легкоуправляемый способ, который, однако, имеет некоторые ограничения. Он заключается в том, чтобы назначить источнику света с отрицательным значением параметра Multiplier (Яркость) созданную пользователем текстурную карту Projector Map (Карта проектора). Для построения такой карты нужно выделить источник света, который будет отбрасывать тень, и в любом окне проекции (например, в окне Left (Cлева)) выбрать вид из этого источника. Для этого щелкните на названии окна проекции правой кнопкой мыши, в результате чего появится контекстное меню (рис. 7.12), в котором следует выбрать нужный источник света (в моем случае это Spot01), выполнив команду Views > Spot01 (Вид > Объект Spot01). Если вы все сделали правильно, то в окне проекции будет такой вид, как будто мы смотрим из камеры (рис. 7.13). Рис. 7.12. Контекстное меню для выбора вида отображения Рис. 7.13. Вид со стороны источника света Spot01 Далее нужно исключить из визуализации все объекты, которые не будут отбрасывать тень. Сцена содержит всего два геометрических объекта: Plane (Плоскость) и Teapot (Чайник), но их может быть гораздо больше. Чтобы исключить объект из визуализации, выполните следующие действия. 1. Щелкните на нужном объекте правой кнопкой мыши. 2. В появившемся контекстном меню выберите пункт Object Properties (Свойства объекта). В результате откроется одноименное окно. 3. Снимите флажок Renderable (Визуализируемый) в области Rendering Control (Управление визуализацией). 4. Щелкните на кнопке OK для подтверждения выполненных изменений.
Визуализируйте стандартными средствами вид из окна, в котором установлен источник света, с типовым значением разрешающей способности 800 х 600. После этого сохраните изображение в формате, поддерживающем альфа-канал (например, TIFF). Откройте сохраненный файл в программе растровой графики, допустим Adobe Photoshop, и, выделив альфа-канал, залейте его белым цветом. Если фон не черного цвета, то инвертируйте выделение и залейте все остальное черным цветом (то есть объекты сцены должны быть белыми, а фон черным, как показано на рис. 7.14). Как только вы это сделаете, можно переходить к созданию размытых краев в изображении. Это можно сделать разными способами, например воспользоваться программой Photoshop, где применить для выделения градиентную маску, а затем использовать фильтр размытия по Гауссу. Важно, чтобы по мере удаления от основания объекта (от плоскости, на которой чайник стоит и на которую будет отбрасывать тень) размытие становилось более заметным (рис. 7.15). Рис. 7.14. Карта теней на начальном этапе Рис. 7.15. Законченная карта теней Как только размытие будет готово, сохраните его в любом удобном для вас формате и продолжите работу в 3ds Max. Вернувшись в программу, нужно клонировать источник света, благодаря которому образуется тень (в данном случае это ключевой свет). Для этого выполните следующие действия. 1. Выделите источник света, который необходимо клонировать. 2. Выполните команду Edit > Clone (Правка > Клонирование) и в появившемся окне Clone Options (Параметры клонирования) выберите тип создаваемых при дублировании объектов, установив переключатель в положение Copy (Независимая копия объекта). 3. В окне Clone Options (Параметры клонирования) также задайте объекту значимое имя, чтобы впоследствии было легче выбирать его из списка, например shadow. После этого активизируйте источник света (если он до сих пор не выбран) и разверните свиток Advanced Effects (Дополнительные эффекты), где в качестве Projector Map (Карта прожектора) выберите вашу карту тени (рис. 7.16). В свитке Intensity/Color/Attenuation (Интенсивность/цвет/затухание) установите отрицательное значение параметра Multiplier (Яркость) (у меня эта величина равна –1,25). Исключите из освещения чайник (чтобы тень ложилась не на него, а только на плоскость). Для этого щелкните в свитке General Parameters (Общие параметры) на кнопке Exclude (Исключение) и в появившемся окне Exclude/Include (Исключение/включение) исключите чайник из визуализации (рис. 7.17). Рис. 7.16. Свиток Advanced Effects (Дополнительные эффекты) для карты теней Рис. 7.17. Окно Exclude/Include (Исключение/включение) с исключенным из освещения чайником Теперь можно выполнить финальную визуализацию сцены (рис. 7.18). Рис. 7.18. Результат финальной визуализации сцены Конечно, кроме достоинств, этот метод имеет и недостатки, один из которых – невозможность формирования падающих на объект теней от самого себя (как в данном случае с ручкой крышки). Однако часто можно добиться великолепных результатов при минимальных затратах сил, времени и компьютерных ресурсов.
Луч лазераЕсли вы решили создать заставку в стиле «Звездных войн» или нестандартно анимировать надпись, то вам не обойтись без такого эффекта, как луч лазера. В этом небольшом упражнении мы научимся создавать такой луч простыми средствами 3ds Max. Начнем с моделирования объектов сцены. Для этого постройте в начале координат примитив Teapot (Чайник), выбрав его из главного меню Create > Standard Primitives > Teapot (Создать > Простые примитивы > Чайник) с параметрами, показанными на рис. 7.19. Излучение лазера можно представить в виде плотного луча направленного света, поэтому для его имитации как нельзя лучше подойдет направленный источник света с цилиндрическим излучением – Target Direct (Нацеленный направленный источник света).
Для построения источника света, имитирующего луч, произведите следующие действия. 1. Выполните команду главного меню Create > Lights > Standard Lights > Target Directional (Создать > Источники света > Стандартные источники света > Нацеленный направленный). 2. Постройте в окне проекции Top (Cверху) источник света таким образом, чтобы луч проходил через примитив Teapot (Чайник). Сразу подкорректируйте положение источника света и его цели и в других окнах проекций. 3. В свитке Intensity/Color/Attenuation (Интенсивность/цвет/затухание) задайте параметру Multiplier (Усилитель) значение 5, а цвет луча сделайте ярко-красным (Red (Красный) – 255; Green (Зеленый) – 0; Blue (Синий) – 0) (рис. 7.20). Рис. 7.19. Свиток Parameters (Параметры) настроек примитива Teapot (Чайник) Рис. 7.20. Свиток Intensity/Color/Attenuation (Интенсивность/цвет/затухание) с настройками для источника света 4. В свитке Directional Parameters (Параметры направленного источника света) задайте параметру Hotspot/Beam (Яркое пятно/луч) значение 0,5, а Falloff/Field (Край пятна/область) – 2,5. Если сейчас выполнить визуализацию (например, нажав сочетание клавиш Shift+Q), то результатом будет небольшой красный круг на черном фоне. Это связано с тем, что единственный источник света, который мы используем в сцене, не освещает ничего, кроме небольшого участка на поверхности примитива Teapot (Чайник). В связи с этим необходимо добавить в сцену как минимум еще один источник – ключевой свет с небольшим значением параметра Multiplier (Усилитель), что позволит частично осветить объекты, а затем получить более контрастный луч лазера.
На рис. 7.21 представлена визуализация сцены после добавления плоскости и двух источников света. Перейдем к построению видимого луча света. Для этого выделите направленный источник света Direct01 и в свитке Atmospheres & Effects (Атмосфера и эффекты) командной панели щелкните на кнопке Add (Добавить). В открывшемся окне Add Atmosphere or Effect (Добавить атмосферу или эффект) выберите строку Volume Light (Объемное освещение) и щелкните на кнопке OK (рис. 7.22). В результате в списке свитка Atmospheres & Effects (Атмосфера и эффекты) отобразится строка Volume Light (Объемное освещение). Рис. 7.21. Визуализация сцены с расставленными источниками света Рис. 7.22. Окно Add Atmosphere or Effect (Добавить атмосферу или эффект) Для настройки параметров эффекта выделите строку Volume Light (Объемное освещение) и щелкните в нижней части свитка Atmospheres & Effects (Атмосфера и эффекты) на кнопке Setup (Настройки). В результате откроется окно Environment and Effects (Окружающая среда и эффекты). В области Volume (Объем) свитка Volume Light Parameters (Параметры объемного освещения) окна Environment and Effects (Окружающая среда и эффекты) задайте параметру Density (Плотность) значение, равное 12 (рис. 7.23). В принципе, на этом можно было бы закончить настройку, однако существует область параметров, на которую хотелось бы обратить ваше внимание, – это Noise (Шум). Иногда требуется создать эффект прохождения светового луча в задымленной или туманной среде. Именно настройка параметров области Noise (Шум) позволяет добиться такого эффекта. Примените этот эффект к лучу, для чего выполните следующие действия. 1. В области Noise (Шум) свитка Volume Light Parameters (Параметры объемного освещения) установите флажок Noise On (Включить шум). 2. Установите переключатель типа зашумления в положение Turbulence (Турбулентный). 3. Задайте параметру Levels (Уровни) значение 6, а Size (Размер) – 15. Сейчас можно выполнить окончательную визуализацию (рис. 7.24). В этом небольшом упражнении вы научились делать лучи прожектора видимыми. Используя данный метод, можно добиться потрясающих эффектов не только в статичных, но и в анимированных сценах. Например, таким образом можно анимировать разрезание лазером, луч прожектора, устремленный в ночное небо, полет трассирующей пули или луч солнца.
Рис. 7.23. Настройки цвета и плотности светового луча Рис. 7.24. Окончательная визуализация луча лазера Объемный светОчень часто в процессе моделирования для придания сцене каких-то индивидуальных особенностей приходится применять различные трюки и эффекты. Одним из таких приемов является Volume Light (Объемный свет). Наверное, любой человек хотя бы раз в жизни наблюдал, как солнечный луч, проходя через оконное стекло запыленной комнаты, выхватывает из атмосферы взвешенные частицы пыли, создавая тем самым светящуюся область пространства. Это и есть эффект объемного освещения. Пытаясь воссоздать интерьер заброшенной комнаты или мастерскую художника, в окно которой пробиваются лучи утреннего солнца, вам не обойтись без объемного освещения. Оно также применяется для создания эффектных рекламных надписей и т. д. В этом разделе будет рассмотрено создание витража, наподобие тех, которые до сих пор еще можно увидеть на окнах старинных церквей.
Вам не понадобится моделировать отдельные части витража, так как вы можете использовать растровое изображение stainglass.jpg, которое находится на прилагаемом к книге DVD в папке Examples\Глава 07\Volume_light. Прежде всего необходимо построить модель комнаты с окном. Для этого подойдет примитив Box (Параллелепипед) с пропорциями, соответствующими комнате, которую вы хотите моделировать.
Чтобы создать параллелепипед, выполните команду Create > Standard Primitives > Box (Создание > Простые примитивы > Параллелепипед). После построения объекта, имитирующего внешнюю стену комнаты, вам понадобится еще один для внутренней стены (объемные стены нужны для последующего применения булевой операции для вырезания окна). Чтобы не строить второй параллелепипед, клонируем первый. Для этого, выделив объект, выполните команду Edit > Clone (Правка > Клонировать) и в появившемся окне Clone Options (Параметры клонирования) установите переключатель в положение Copy (Независимая копия объекта). Далее, не снимая выделения с вновь созданного объекта, щелкните на кнопке Select and Uniform Scale (Выделить и равномерно масштабировать) панели инструментов. Кнопка станет оранжевой. Щелкните на объекте и немного уменьшите его, переместив указатель вниз.
Не снимая выделения с вновь созданного параллелепипеда, примените к нему модификатор Normal (Нормаль). Для этого выберите его в раскрывающемся списке вкладки Modify (Изменение) командной панели. В свитке Parameters (Параметры) настроек модификатора установите флажок Flip Normals (Обратить нормали) (рис. 7.25). Рис. 7.25. Настройки модификатора Normal (Нормаль) После этого выделите внутреннюю и внешнюю стены и соедините их. Для этого перейдите на вкладку Utilities (Утилиты) командной панели и щелкните на кнопке Collapse (Свернуть). Раскроется свиток Collapse (Свернуть), в котором нажмите кнопку Collapse Selected (Свернуть выделенное).
Теперь создайте еще один параллелепипед по форме окна и расположите его в пространстве так, чтобы он пересекался со стеной, в которой будет располагаться окно. Выделите комнату. Перейдите на вкладку Create (Создание) командной панели, щелкните на кнопке Geometry (Геометрия), выберите из раскрывающегося списка строку Compound Objects (Составные объекты) и нажмите кнопку ProBoolean (Pro Булев). В результате появится панель с настройками булевых операций (рис. 7.26). Рис. 7.26. Панель с настройками булевых операций В свитке Pick Boolean (Указать булев) щелкните на кнопке Start Picking (Указать) и выберите параллелепипед, построенный по форме окна. В результате этих операций в стене образуется оконный проем. Чтобы видеть интерьер комнаты, расположите внутри нее камеру и источник света (например, Omni (Всенаправленный)). Снаружи напротив окна нужно установить еще один источник света. Это должен быть Target Spot (Направленный с целью), расположенный в пространстве таким образом, чтобы лучи света, проходя через окно, падали на пол комнаты (рис. 7.27). Рис. 7.27. Взаимное расположение камеры и источников света в сцене Чтобы «застеклить» окно, воспользуйтесь примитивом Plane (Плоскость), подогнав его размер под форму оконного проема. После этого можно переходить к настройкам объемного света. Сделайте световое пятно на полу комнаты от направленного источника света, находящегося за окном. Для этого создайте новый материал с текстурной картой витража и присвойте его окну следующим образом. 1. В окне Material Editor (Редактор материалов) выберите свободный материал. 2. Щелкните на кнопке рядом с Diffuse Color (Цвет рассеивания) в свитке Maps (Карты текстур). 3. В появившемся окне Material/Map Browser (Окно выбора материалов и карт) дважды щелкните на строке Bitmap (Растровое изображение). 4. В открывшемся окне Select Bitmap Image File (Выбор растрового изображения) укажите путь к файлу с изображением витража. 5. Вернитесь к настройкам материала, щелкнув на кнопке Go to Parent (Вернуться к исходному). 6. Щелкните на кнопке Filter Color (Светофильтр) в свитке Maps (Карты текстур) и повторите операции п. 3, 4 и 5.
7. Установите флажок 2-Sided (Двусторонний) в свитке Shader Basic Parameters (Основные параметры затенения). 8. Задайте параметру Opacity (Непрозрачность) значение 50, что позволит свету проходить через окно в комнату (рис. 7.28). Рис. 7.28. Настройки материала витража Перед тем как выполнить первую визуализацию, настройте тени для источника света, который светит в окно, и цвет окружающей среды. Чтобы увидеть на полу световое пятно, необходимо включить отбрасывание теней при помощи данного источника света, причем тени должны быть типа Ray Traced Shadows (Трассированные тени). Чтобы витраж не казался темным и за ним угадывался яркий солнечный день, нужно в настройках окружающей среды изменить фоновый цвет на белый или светло-желтый. Для этого выполните команду Rendering > Environment (Визуализация > Окружающая среда). Откроется окно Environment and Effects (Окружающая среда и эффекты), где в свитке Common Parameters (Общие параметры) вкладки Environment (Окружающая среда) (рис. 7.29) сделайте необходимые изменения. Рис. 7.29. Свиток Common Parameters (Общие параметры) вкладки Environment (Окружающая среда) Задав все настройки, можно визуализировать сцену. Если все было сделано правильно, то должно получиться цветное световое пятно на полу комнаты (рис. 7.30). Рис. 7.30. Результат визуализации витража с трассированными тенями Осталось добавить изображению объемный свет. Для этого необходимо сделать два изменения: добавить источнику света Projector Map (Карта прожектора) и эффект Volume Light (Объемный свет). Чтобы добавить Projector Map (Карта прожектора), выделите в сцене объект Direct01 (источник света за окном) и в свитке Advanced Effects (Дополнительные эффекты) настроек этого источника света щелкните на кнопке, расположенной рядом с полем Map (Карта текстуры). В результате откроется окно Material/Map Browser (Окно выбора материалов и карт), в котором дважды щелкните на Bitmap (Растровое изображение) и выберите файл с изображением витража. Это позволит сделать лучи объемного света цветными (в соответствии с растровой картой) (рис. 7.31). Рис. 7.31. Свиток Advanced Effects (Дополнительные эффекты) настроек источника света, располагающегося за окном Перейдем к настройкам атмосферных эффектов. Для этого выполните команду Rendering > Environment (Визуализация > Окружение), после чего появится окно Environment and Effects (Окружающая среда и эффекты). Здесь в свитке Atmosphere (Атмосфера) вкладки Environment (Окружение) щелкните на кнопке Add (Добавить) и в открывшемся окне Add Atmospheric Effect (Добавить атмосферный эффект) выберите Volume Light (Объемный свет). Задайте настройки объемного света, как показано на рис. 7.32. После этого выполните финальную визуализацию (рис. 7.33). Рис. 7.32. Свитки настроек объемного освещения для осветителя Direct01 Рис. 7.33. Результат финальной визуализации
При желании вы можете использовать дополнительные настройки и получить новые эффекты. Например, применив Noise (Шум), можно получить эффект прохождения лучей света сквозь дым, а при помощи затухания добиться более реалистичного восприятия картины. Использование базовых источников света в интерьереСовременные визуализаторы, такие как mental ray, V-Ray, finalRender, Maxwell и др., могут использовать в расчетах глобальное освещение, что существенно облегчает работу, связанную с освещением, и повышает степень реалистичности визуализированных изображений. Со временем мы все больше и больше предоставляем программному обеспечению решать, как будет освещена и как будет выглядеть сцена при финальной визуализации. Все меньше времени мы затрачиваем на размещение и настройку источников света, и все еще значительное время требуется программе для того, чтобы рассчитать освещенность. Сейчас достаточно поместить в сцену один источник света, имитирующий солнце, и вся сцена будет заполнена отраженным светом – совсем как в жизни. Однако еще не так давно, выполняя визуализацию интерьера (или другую серьезную работу), приходилось настраивать десятки источников света, чтобы получить приемлемый результат. Использование базовых источников света является основополагающим в изучении и понимании освещения сцены. В данном разделе мы рассмотрим принципы расстановки и настройки источников света программы 3ds Max 9 для освещения интерьера и создания эффекта глобального освещения. В качестве примера я собираюсь использовать вариант визуализации интерьера кухни, выполненный при помощи подключаемого визуализатора V-Ray (рис. 7.34). Рис. 7.34. Модель интерьера кухни, визуализированная при помощи модуля V-Ray
Освещение сцены стандартными источниками света отличается от того, которое рассчитывается с учетом GI (Global Illumination) (Глобальное освещение). В этом упражнении мы попытаемся максимально имитировать GI, которое учитывает в своих расчетах отраженный свет. Для выполнения урока нам понадобится сцена, которую можно найти на прилагаемом к книге DVD в папке Examples\Глава 07\Kitchen. Файл называется kitchen start.max.
Рис. 7.35. Окно Viewport Configuration (Конфигурирование окна проекции) Начните упражнение с открытия в программе 3ds Max 9 сцены и выделения стен, пола и потолка помещения. Для этого можно воспользоваться окном Select From Scene (Выбор из сцены), для вызова которого нажмите клавишу H. В этом окне выберите из списка два объекта с именами Walls (Стены) и Ceiling (Потолок) и нажмите OK для подтверждения выбора. Затем в любом из окон проекций щелкните на выделенном объекте правой кнопкой мыши и выберите из контекстного меню строку Hide Unselected (Спрятать невыделенное). В результате у вас должны остаться в сцене только два объекта, имитирующие стены, пол и потолок кухни. Первое, что необходимо выполнить, настраивая освещение внутренних помещений при помощи стандартных источников света, – это создать общую освещенность сцены. Такая освещенность задает общее настроение в сцене и помогает зрителю определить время суток. Например, для яркого солнечного дня характерны теплые тона, а для искусственного освещения лампами дневного света – холодные. Создайте всенаправленный источник света, для чего выполните команду Create > Lights > Standard Lights > Omni (Создать > Источники света > Стандартные источники света > Всенаправленный) главного меню и в окне проекции Top (Cверху) щелкните на левой половине модели кухни – именно там будем настраивать освещение сцены.
Теперь необходимо выполнить предварительную настройку источника света. Поскольку мы будем создавать дневную освещенность с использованием солнечного света и гамма цветов пола, мебели и стен, которая преобладает в сцене, является в большей степени зеленовато-коричневой, значит, и цвет окружающего освещения должен быть именно таким. Чтобы настроить созданный источник света, сделайте следующее. 1. Выделите построенный источник света и перейдите на вкладку Modify (Изменение) командной панели. 2. В свитке Intensity/Color/Attenuation (Интенсивность/цвет/затухание) задайте параметру Multiplier (Усилитель) значение 0,9 и выберите цвет со следующими характеристиками: Red (Красный) – 223; Green (Зеленый) – 210; Blue (Синий) – 191.
3. В области Far Attenuation (Затухание вдали) свитка Intensity/Color/Attenuation (Интенсивность/цвет/затухание) установите флажки Use (Использовать) и Show (Показывать), что позволит управлять распространением освещения в пространстве и сделать затемненными углы комнаты. Значения этих параметров должны быть такими, чтобы начало области затухания находилось внутри комнаты, на небольшом расстоянии от внутренних стен, а окончание области затухания – за пределами кухни на значительном расстоянии. Например, значение Start (Начало) равно 3600 мм, а End (Конец) – 8500 мм. 4. В свитке Advanced Effects (Дополнительные эффекты) установите флажок Ambient Only (Только подсветка) (рис. 7.36). Рис. 7.36. Настройки источника света общей освещенности
5. Перейдите в окно проекции Front (Спереди) и, используя инструмент Select and Uniform Scale (Выделить и равномерно масштабировать) масштабируйте источник света по вертикали. Это необходимо для того, чтобы граница начала затухания оказалась между полом и потолком комнаты. 6. Переместите источник света Omni01 вверх так, чтобы большая часть освещения попадала на потолок (рис. 7.37). Это вызвано тем, что потолок белого цвета и для передачи его освещенности требуется значительная интенсивность источника, в то время как пол будет дополнительно освещаться солнечным светом, проходящим через окна, и большая контрастность только усилит эффект солнечного освещения. Рис. 7.37. Расположение в сцене источника света Omni01 Проведите тестовую визуализацию вида из камеры, для чего выполните команду Rendering > Render (Визуализация > Визуализировать) главного меню, в области Output Size (Выходной размер) открывшегося окна выберите требуемый размер и щелкните на кнопке Render (Визуализировать).
Сравните полученное изображение с оригиналом и убедитесь в том, что цвет и яркость света созданного светильника соответствуют поставленным задачам. На рис. 7.38 показано визуализированное изображение помещения, которое должно получиться после настройки источника света Omni01. Рис. 7.38. Помещение кухни, освещенное всенаправленным источником света Обратите внимание на следующие советы по настройке окружающего света. ¦ Располагая источник света в комнате, смещайте его относительно центра ближе к потолку и стене, где расположены окна. Потолок, как правило, светлее стен и пола, а стена, на которой расположены окна, получает больше отраженного света, попадающего через эти окна в комнату. По мере удаления от окон свет постепенно затухает. ¦ Настраивайте области затухания источника света с таким расчетом, чтобы углы и удаленные от дневного света участки комнаты имели значительные затемнения. ¦ При необходимости масштабируйте источник света, чтобы получить желаемые области затухания. ¦ Задавайте такой цвет источнику, чтобы он не только создавал общее настроение в картине, но и имитировал отраженный свет. В нашем случае преобладание деревянной мебели и пола создает теплую светло-коричневую гамму, а зеленый цвет рабочей области кухни придает этому тону зеленоватый оттенок. ¦ Устанавливайте такое значение параметра Multiplier (Усилитель) источника света, которое создаст освещение, похожее на освещение итогового изображения. Причем созданное освещение должно быть немного темнее итогового, так как в сцену еще будут помещены локальные источники света, которые увеличат общее освещение сцены. Если результат настройки общего освещения вас удовлетворил, можно переходить к созданию источника направленного света, имитирующего солнце. Для этого сделайте следующее. 1. Выполните команду Create > Lights > Standard Lights > Target Directional (Создать > Источники света > Стандартные источники света > Нацеленный направленный) и в окне проекции Top (Cверху) постройте светильник так, чтобы излучатель находился за пределами левой стены с окнами, а цель, на которую он направлен, – внутри помещения. 2. В окне проекции Front (Спереди) скорректируйте положение источника света так, чтобы угол, образованный источником света и полом комнаты, составлял около 35-40° (рис. 7.39). Рис. 7.39. Расположение направленного источника света в окне проекции Front (Спереди) 3. Перейдите на вкладку Modify (Изменить) командной панели, в свитке Intensity/Color/Attenuation (Интенсивность/цвет/затухание) задайте параметру Multiplier (Усилитель) значение, равное 2, и выберите цвет с такими параметрами: Red (Красный) – 233; Green (Зеленый) – 249; Blue (Синий) – 250. Настройка параметров свитка Intensity/Color/Attenuation (Интенсивность/цвет/ затухание) позволит создать яркий пучок света, проходящий через окна кухни и оставляющий на полу световое пятно. Cветло-голубой цвет источника света создает дополнительный эффект отраженного неба. Выполните тестовую визуализацию и убедитесь, что все настройки сделаны правильно (рис. 7.40). Солнечный свет, попадающий в комнату, оставляет не только яркое световое пятно на полу и предметах быта, но и усиливает освещение предметов, расположенных в непосредственной близости от окна. В нашем случае это означает, что как минимум стены в оконном проеме и потолок должны получить дополнительное освещение. Рис. 7.40. Сцена, освещенная двумя источниками света
Чтобы осветить оконный проем, необходимо построить два источника света: один для освещения простенков, а второй – для оконного переплета. 1. Постройте свободный источник света, для чего выполните команду Create > Lights > Standard Lights > Free Spotlight (Создать > Источники света > Стандартные источники света > Направленный без цели) и в окне проекции Right (Справа) щелкните кнопкой мыши на середине оконного проема. 2. В окне проекции Top (Cверху) разместите построенный источник света так, чтобы он находился внутри комнаты на небольшом расстоянии от оконного проема. 3. В свитке Intensity/Color/Attenuation (Интенсивность/цвет/затухание) настроек свободного источника задайте параметру Multiplier (Усилитель) значение 0,6. В свитке Advanced Effects (Дополнительные эффекты) установите флажок Ambient Only (Только подсветка). 4. В свитке Spotlight Parameters (Параметры прожектора) установите переключатель в положение Rectangle (Прямоугольник), а параметру Aspect (Пропорции) задайте значение 0,71 (рис. 7.41). 5. Параметрам Hotspot/Beam (Яркое пятно/луч) и Falloff/Field (Край пятна/область) задайте такие значения, чтобы освещение простенков начиналось от угла, не затрагивая стен кухни. В моем случае это 144,5 и 147,4 соответственно. В вашем случае могут быть несколько иные значения, которые зависят от удаленности источника света от оконного проема, на который он светит. 6. В свитке General Parameters (Общие параметры) щелкните на кнопке Exclude (Исключение) и в открывшемся окне Exclude/Include (Исключение/включение) выберите из списка, расположенного слева, объект curtains (Шторы). Щелкните на кнопке >> для перемещения его в список объектов, на которые не должен влиять источник света. Размещенный в окнах проекций и настроенный источник света Fspot01 должен выглядеть, как показано на рис. 7.42. Рис. 7.41. Свиток Spotlight Parameters (Параметры прожектора) с настройками нацеленного источника света Рис. 7.42. Расположение источника света Fspot01 в окне проекции Perspective (Перспектива) Если сейчас выполнить тестовую визуализацию, можно обратить внимание на то, что не только простенки приобрели соответствующее освещение, но и оконная рама стала белого цвета, то есть пересвечена. Исправить положение поможет создание источника света с отрицательным значением параметра Multiplier (Усилитель). В данном случае оптимальным будет использование источника света с параллельными лучами, чтобы освещение по всей поверхности оконной рамы оставалось равномерным. Для построения такого источника света сделайте следующее. 1. Выполните команду Create > Lights > Standard Lights > Directional (Создать > Источники света > Стандартные источники света > Направленный источник света) и в окне проекции Right (Cправа) щелкните кнопкой мыши в середине оконного проема (в месте расположения светильника Fspot01). 2. В окне проекции Top (Cверху) переместите источник света по оси X так, чтобы он занял свое положение в середине оконного проема. 3. В свитке Intensity/Color/Attenuation (Интенсивность/цвет/затухание) задайте параметру Multiplier (Усилитель) значение, равное -0,45. 4. В свитке Directional Parameters (Параметры прожектора) установите переключатель в положение Rectangle (Прямоугольник), а параметру Aspect (Пропорции) задайте такое же значение, как и для предыдущего светильника, – 0,71. Настройте также значения параметров Hotspot/Beam (Яркое пятно/луч) и Falloff/ Field (Край пятна/область) таким образом, чтобы светильник охватывал всю поверхность оконной рамы. В моем случае эти значения равны 670 и 720 соответственно. Выполните тестовую визуализацию и оцените результат настроек источников света для освещения окна (рис. 7.43). Рис. 7.43. Визуализация вида из камеры с установленными светильниками для дальнего окна Если все сделано правильно, то можно переходить к созданию источника света, который будет играть роль засветки потолка от окна.
Если вы когда-нибудь рассматривали потолок своей квартиры в солнечный день, то могли обратить внимание, что свет от окна распределяется в виде трапеции и затухает по мере удаления в глубь комнаты. Такой эффект может создать нацеленный источник света. Для его построения сделайте следующее. 1. Выполните команду Create > Lights > Standard Lights > Target Spotlight (Создать > Источники света > Стандартные источники света > Направленный с целью), в окне проекции Top (Сверху) щелкните кнопкой мыши с внешней стороны оконного проема и, переместив указатель мыши по другую сторону окна в помещение кухни, щелкните еще раз для создания цели. 2. Расположите построенный источник света и его цель в окне проекции Front (Спереди) так, чтобы он светил через оконный проем на потолок (рис. 7.44). Рис. 7.44. Расположение источника света, направленного на потолок 3. В свитке Intensity/Color/Attenuation (Интенсивность/цвет/затухание) задайте параметру Multiplier (Усилитель) значение 0,75. В области Decay (Ослабление) выберите из списка Type (Тип) строку Inverse (Обратное), а параметру Start (Начало) задайте значение, равное 900. Таким образом, по мере удаления от источника света освещенность потолка будет ослабевать. Кроме того, для источника света можно выбрать светло-голубой цвет, что соответствует дневному свету в яркий солнечный день. 4. В свитке Spotlight Parameters (Параметры прожектора) установите переключатель в положение Rectangle (Прямоугольник), а параметру Aspect (Пропорции) задайте значение, равное 0,78. Для параметров Hotspot/Beam (Яркое пятно/луч) и Falloff/Field (Край пятна/область) выберите такие значения, чтобы освещение потолка начиналось недалеко от места пересечения его со стеной и, расширяясь, уходило в глубь комнаты. В окне проекции Top (Cверху) границы светового пятна должны определять угол распространения света, начиная от оконного проема. В моем случае эти значения равны 30 и 65 соответственно.
5. В свитке General Parameters (Общие параметры) щелкните на кнопке Exclude (Исключение) и в открывшемся окне Exclude/Include (Исключение/включение) выберите из списка, расположенного слева, объекты Carniz (Карниз) и Ceiling (Потолок). Щелкните на кнопке >> для перемещения этих объектов в правый список. Здесь также установите переключатель в положение Include (Включить) для использования этих объектов в освещении. Все остальные объекты сцены будут игнорироваться. 6. В области Shadows (Тени) свитка General Parameters (Общие параметры) настроек источника света установите флажок On (Включить) и выберите из раскрывающегося списка строку Shadow Map (Карта тени). 7. Перейдите к свитку Shadow Map Params (Параметры карты тени) и задайте параметру Sample Range (Диапазон выборки) значение 40, что позволит получить мягкие размытые тени от карнизов на потолке. После того как будут выполнены предварительные настройки, скопируйте три только что созданных источника света, предназначенных для освещения окна и потолка, для второго окна кухни. Это можно сделать, воспользовавшись командой главного меню Edit > Clone (Правка > Клонировать). В появившемся окне Clone Options (Параметры клонирования) выберите тип создаваемых при дублировании объектов Instance (Образец), что позволит в дальнейшем изменять параметры освещения сразу двух окон. Теперь нужно выполнить тестовую визуализацию, перед которой следует отобразить карниз и шторы, чтобы увидеть, как освещение окна выглядит в целом. Для этого перейдите на вкладку Display (Отображение) командной панели и в свитке Hide (Спрятать) щелкните на кнопке Unhide by Name (Отобразить по имени). В появившемся окне Unhide Objects (Отобразить объекты) выберите два объекта – Carniz (Карниз) и curtains (Шторы). Визуализируйте вид из камеры. Затем сравните с результатом, который получил я (рис. 7.45). В представленном изображении явно виден недостаток освещенности стены рядом со шторами. Дело в том, что солнечный свет, попадая через окно на белые шторы, неминуемо вызовет отражение света, которое создаст светлые области на стене в местах расположения штор. Осветлить стены можно при помощи всенаправленного источника света. 1. Выполните команду Create > Lights > Standard Lights > Omni (Создать > Источники света > Стандартные источники света > Всенаправленный) и в окне проекции Right (Справа) щелкните на середине одной из штор. В окне проекции Top (Cверху) переместите источник света по оси X так, чтобы он занял свое место между шторой и стеной. Рис. 7.45. Визуализация сцены с установленными источниками света для окон кухни 2. В свитке Intensity/Color/Attenuation (Интенсивность/цвет/затухание) задайте параметру Multiplier (Усилитель) значение, равное 0,15. В области Far Attenuation (Затухание вдали) установите флажки Use (Использовать) и Show (Показывать). 3. При помощи инструмента Select and Uniform Scale (Выделить и равномерно масштабировать) масштабируйте источник света в вертикальной и горизонтальной плоскости так, чтобы область распространения света оказалась немного больше шторы (рис. 7.46). Рис. 7.46. Форма и положение в пространстве источника света Omni02 4. В свитке Advanced Effects (Дополнительные эффекты) установите флажок Ambient Only (Только подсветка), чтобы получить равномерно ослабевающее освещение стены в местах размещения штор. 5. Cкопируйте источник света Omni02, чтобы разместить аналогичное освещение по всем сторонам, где находятся шторы. Как при настройке освещения оконных проемов, в окне Clone Options (Параметры клонирования) установите переключатель Object (Объект) в положение Instance (Образец), что в дальнейшем позволит редактировать параметры сразу всех источников света, расположенных в районе штор.
Выполните тестовую визуализацию и при необходимости подкорректируйте параметры источников света. Освещенность сцены должна быть такой, как показано на рис. 7.47. Рис. 7.47. Сцена с дополнительными источниками света, расположенными позади штор Рассмотрим еще одну особенность применения стандартных источников света для освещения объектов сцены. На сей раз создадим эффект затенения, который можно наблюдать позади предметов, расположенных в непосредственной близости от стен. Чтобы продолжить упражнение, перейдите на вкладку Display (Отображение) командной панели. В свитке Hide (Спрятать) щелкните на кнопке Unhide by Name (Отобразить по имени). В появившемся окне Unhide Objects (Отобразить объекты) выберите объект Picture (Картина). Если сейчас выполнить визуализацию, то окажется, что созданные источники света не влияют на отображение картины и она скорее напоминает аппликацию, чем объемный предмет. Вокруг картины должна быть тень, так как она расположена близко к стене и помещена в черную рамку. Эту тень несложно создать при помощи направленного света с отрицательным значением параметра Multiplier (Усилитель). 1. В окне проекции Right (Cправа) создайте источник света Directional (Направленный) и расположите его в середине картины. В окне проекции Top (Cверху) переместите его по оси X так, чтобы он расположился впереди картины на небольшом расстоянии. 2. В свитке Directional Parameters (Параметры направленного источника света) установите переключатель в положение Rectangle (Прямоугольник), а параметру Aspect (Пропорции) задайте значение, равное 0,75. Для параметров Hotspot/Beam (Яркое пятно/луч) и Falloff/Field (Край пятна/область) подберите такие значения, чтобы световой луч находился на краях либо внутри картины, а край пятна – на небольшом расстоянии от нее (рис. 7.48). В моем случае эти значения равны 218 и 273 соответственно. Рис. 7.48. Направленный источник света, расположенный перед объектом Picture (Картина) 3. В свитке Intensity/Color/Attenuation (Интенсивность/цвет/затухание) задайте параметру Multiplier (Усилитель) значение –0,1. 4. В свитке Advanced Effects (Дополнительные эффекты) установите флажок Ambient Only (Только подсветка). Если сейчас выполнить визуализацию, то вы увидите, что картина, висящая на стене, приобрела объем, которого ей не хватало. Аналогичным способом выполняется установка и настройка источника света между холодильником и стеной (рис. 7.49). Рис. 7.49. Визуализация с затенением, созданным источниками света с отрицательным значением параметра Multiplier (Усилитель)
Чтобы вы могли создавать и настраивать источники света в собственных сценах, необходимо рассмотреть еще два способа настройки стандартных источников. Откройте спрятанные в самом начале упражнения объекты сцены и выполните тестовую визуализацию. Внимательно рассмотрите полученное изображение и сравните его с оригинальным (см. рис. 7.34), выполненным при помощи визуализатора V-Ray. Первое, что бросается в глаза, – это отсутствие у визуализированного изображения теней, позволяющих подчеркнуть объем предметов, присутствующих в сцене (рис. 7.50). Свет, проходящий на кухню через окна, должен усиливать освещенность фасадов кухни и затенять боковые стороны. Это же правило относится и ко всем остальным предметам сцены. Первое, что необходимо сделать, – использовать источник света с отрицательным значением параметра Multiplier (Усилитель) для затенения боковых сторон объектов, аналогично тому, что мы делали для картины, висящей на стене. В данном случае источник света должен располагаться правее и немного ниже всех объектов, таким образом, чтобы в зоне его действия оказались нижние плоскости подвесных шкафчиков, боковые стенки и стол со стульями (рис. 7.51). Рис. 7.50. Визуализация сцены без настроек освещения мебели и бытовых приборов Рис. 7.51. Расположение направленного источника света, затеняющего стороны объектов, противоположные стене с окнами Кроме того, для данного источника света следует исключить из освещения объекты Walls (Стены) и Ceiling (Потолок). Сделать это можно, щелкнув в свитке General Parameters (Общие параметры) на кнопке Exclude (Исключить). Откроется окно Exclude/Include (Исключение/включение), где следует переместить из левого списка в правый объекты, на которые не должно распространяться освещение. Следующим шагом будет моделирование еще одного источника света, на сей раз создающего мягкую подсветку со стороны окон и размытые тени вокруг объектов сцены. В роли такого источника снова будет выступать Target Directional (Нацеленный направленный). Постройте уже известным вам способом источник света. Расположите его со стороны окон и направьте на кухонную мебель. Ширина светового пятна должна быть такой, чтобы покрыть всю площадь от холодильника до противоположной стены (рис. 7.52). Рис. 7.52. Расположение направленного источника света для создания дополнительной подсветки кухонной мебели Настройте следующие параметры источника света. 1. В свитке General Parameters (Общие параметры) построенного источника света щелкните на кнопке Exclude (Исключение). В открывшемся окне Exclude/ Include (Исключение/включение) выберите из списка, расположенного слева, объекты, которые необходимо исключить из освещения. В нашем случае это Walls (Стены), Table&Chair (Стол и стулья), curtains (Шторы) и Ceiling (Потолок). 2. В области Shadows (Тени) свитка General Parameters (Общие параметры) настроек источника света установите флажок On (Включить) и выберите из раскрывающегося списка строку Shadow Map (Карта тени). 3. В свитке Intensity/Color/Attenuation (Интенсивность/цвет/затухание) установите значение параметра Multiplier (Усилитель) равным 0,2. Небольшое значение этого параметра объясняется тем, что мы создаем иллюзию непрямого освещения и нет необходимости высвечивать объекты. 4. В свитке Advanced Effects (Дополнительные эффекты) задайте параметру Soften Diff. Edge (Размытие краев диффузного света) значение 100, что позволит смягчить границы диффузного отражения и подсветки. 5. В области Object Shadows (Тень объекта) свитка Shadow Parameters (Параметры тени) задайте параметру Dens. (Плотность) значение -0,3 и измените цвет тени на белый или светло-серый.
6. Разверните свиток Shadow Map Params (Параметры карты тени) и задайте параметру Sample Range (Диапазон выборки) значение 40, а параметру Size (Размер) – значение 600, что позволит получить мягкие размытые края. После установки всех настроек выполните тестовую визуализацию и оцените полученный результат. Изображение, которое получилось у меня после создания и настройки вышеописанного источника света, представлено на рис. 7.53. Рис. 7.53. Визуализированное изображение с тенями и дополнительной подсветкой Изображение стало выглядеть значительно лучше, но все еще не хватает общей глубины тени и теней от мелких и тонких объектов, например от ручек шкафчиков.
Для усиления затененных участков необходимо установить еще как минимум два Directional (Направленный источник света) с отрицательным значением параметра Multiplier (Усилитель). Их следует расположить в проеме между шкафчиками над вытяжкой (направленный вниз) и возле правой стороны холодильника (вертикальный источник света, направленный в сторону кухни). Тень для мелких предметов можно создать двумя способами. ¦ Сделать источник света со значением параметра Multiplier (Усилитель) близким к нулю (чтобы не оказывать дополнительное влияние на общую освещенность сцены) и отрицательным значением параметра Dens. (Плотность). ¦ Создать два источника света, один из которых является копией другого, с той лишь разницей, что он имеет противоположное значение параметра Multiplier (Усилитель), а в области Shadows (Тени) свитка General Parameters (Общие параметры) снят флажок On (Включить). Рассмотрим первый вариант как более простой и менее очевидный. Создайте новый объект Target Directional (Нацеленный направленный) или скопируйте последний построенный. Размеры и расположение в сцене должны быть приблизительно такими, как и у предыдущего источника света. В результате строящиеся тени будут соответствовать размытым, построенным ранее. Задайте параметру Multiplier (Усилитель), расположенному в свитке Intensity/Color/Attenuation (Интенсивность/цвет/затухание), значение -0,01. Осталось настроить параметры тени. Для этого выполните следующие действия. 1. В области Shadows (Тени) свитка General Parameters (Общие параметры) установите флажок On (Включить) и выберите из раскрывающегося списка строку Area Shadows (Площадная тень). 2. В области Object Shadows (Тень объекта) свитка Shadow Parameters (Параметры тени) задайте параметру Dens. (Плотность) значение -0,1 и измените цвет тени на белый или светло-серый. 3. Параметрам свитка Area Shadows (Площадная тень) укажите значения, представленные на рис. 7.54. Рис. 7.54. Параметры свитка Area Shadows (Площадная тень) для точной настройки теней После изменений настроек источника света можно выполнить окончательную визуализацию (см. рис. 7.34). Подведем итоги выполненного упражнения. Одна и та же сцена может быть освещена различными способами, причем если у вас нет в наличии модулей для визуализации с использованием глобального освещения или вы не умеете ими пользоваться, то вполне можно обойтись стандартными источниками света. Кроме того, такое решение подразумевает творческий подход и максимальную свободу использования света. Не лишним будет сказать, что тестовая сцена с использованием визуализатора V-Ray на компьютере с 2 Гбайт оперативной памяти и процессором 3,2 ГГц просчитывалась 1 час 28 минут, а с использованием стандартных источников света – 7 минут.
Глава 8Анимация сцен • Анимация с использованием деформируемой геометрии • Анимация взрыва • Два варианта анимации страницы книги • Анимация рукописного шрифта • Использование модификатора Cloth (Ткань) для симуляции поведения тканей • Анимация движения танковой гусеницы • Звук в 3ds Max • Песочные часы • Текст, уносимый порывами ветра В этой главе будут рассмотрены примеры создания анимации. Начнем знакомство с самого простого примера – анимации с применением деформируемой геометрии. Анимация с использованием деформируемой геометрииВ данном разделе мы опишем, насколько просто в 3ds Max 9 можно создать интересную анимацию с использованием модификаторов и объектов группы Geometric/ Deformable (Деформируемая геометрия) категории Space Warps (Пространственные деформации). Мы создадим анимацию движения капли жидкости сквозь твердый объект и смоделируем движение твердого объекта в мягкой оболочке при помощи объектов FFD (Box) (FFD-контейнер (прямоугольный)), FFD (Cyl) (FFD-контейнер (цилиндрический)) и модификатора Taper (Заострение). Начнем с построения простых объектов. Для первой анимации нам понадобятся два параметрических объекта: Sphere (Сфера) и Tube (Труба). Для создания сферы перейдите в окно проекции Top (Сверху) и выполните команду главного меню Create > Standard Primitives > Sphere (Создание > Простые примитивы > Сфера). На вкладке Modify (Изменение) командной панели задайте параметру Radius (Радиус) значение, равное 20, а Segments (Количество сегментов) оставьте равным по умолчанию – 32 (рис. 8.1). Расположите построенную сферу в начале координат. Для этого выделите сферу в одном из окон проекций и щелкните правой кнопкой мыши на кнопке Select and Move (Выделить и переместить) В области Absolute:World (Абсолютные: глобальные) открывшегося окна Move Transform Type-In (Ввод данных преобразования перемещения) всем параметрам установите нулевые значения. Создайте объект Tube (Труба). Для этого выполните команду Create > Standard Primitives > Tube (Создание > Простые примитивы > Труба) главного меню и в окне проекции Top (Сверху) постройте объект произвольных размеров. В свитке Parameters (Параметры) настроек объекта Tube (Труба) на командной панели задайте параметрам значения, показанные на рис. 8.2. Мы задали построенному объекту большое количество сегментов по высоте. Это объясняется тем, что для плавного изменения формы объекта необходимо иметь достаточное количество полигонов в области деформации. Расположите сферу в середине трубы, для чего воспользуйтесь инструментом Align (Выравнивание) расположенным на главной панели инструментов. После создания и выравнивания объектов можно приступать к анимации. Рассмотрим два варианта прохождения твердого объекта (сферы) сквозь эластичную трубу. Рис. 8.1. Параметры объекта Sphere (Сфера) Рис. 8.2. Параметры объекта Tube (Труба) Первый вариант (с использованием модификатора)Примените к объекту Tube01 модификатор Taper (Заострение), выполнив команду меню Modifiers > Parametric Deformers > Taper (Модификаторы > Параметрические деформации > Заострение). Перейдите на уровень редактирования подобъектов модификатора Taper (Заострение). Для этого в стеке модификаторов щелкните на плюсике, расположенном слева от имени модификатора, и в раскрывшемся списке выберите строку Center (Центр). Цвет маркера (перекрестие у основания значка осей) изменится на желтый (по умолчанию). Нажмите кнопку Select and Move (Выделить и переместить) на панели инструментов и переместите центр модификатора по вертикали до нижней границы объекта Tube01 (рис. 8.3). Перейдите к редактированию габаритного контейнера модификатора. Для этого выделите в стеке модификаторов строку Gizmo (Габаритный контейнер) – в результате контейнер, охватывающий трубу, изменит цвет на красный. Снова воспользуйтесь инструментом перемещения и сместите габаритный контейнер вверх до того места, где сфера пересекается с внутренней стенкой трубы (рис. 8.4). Нажмите на панели инструментов кнопку Select and Uniform Scale (Выделить и равномерно масштабировать) Масштабируйте габаритный контейнер по вертикали до тех пор, пока верхний край контейнера не опустится до уровня пересечения внутренних стенок трубы со сферой (то есть масштабируйте габаритный контейнер по оси Y примерно до 12 %). Проконтролировать параметры масштабирования можно в строке состояния, расположенной в нижней части окна программы. Рис. 8.3. Расположение центра воздействия модификатора Taper (Заострение) Рис. 8.4. Положение габаритного контейнера относительно сферы Задайте модификатору Taper (Заострение) значения параметров, показанные на рис. 8.5. В результате труба деформируется по форме сферы. Для создания анимации сделайте следующее. 1. Передвиньте ползунок таймера анимации на 85 кадр. 2. Включите автоматическую запись ключей анимации, щелкнув на кнопке Auto Key (Автоключ). Кнопка выделится цветом, указывая на то, что она находится в активном состоянии. 3. Передвиньте контейнер модификатора Taper (Заострение) вниз до положения, когда его верхний край сместится за пределы трубы. Обратите внимание на то, что при этом вы должны находиться на уровне подобъектов Gizmo (Габаритный контейнер) модификатора. Рис. 8.5. Форма габаритного контейнера и параметры модификатора Taper (Заострение) 4. Передвиньте ползунок таймера анимации на 15 кадр и снова сместите габаритный контейнер модификатора, но теперь вверх, до тех пор, пока модификатор не покинет пределы трубы. 5. Выделите и удалите первый ключ, созданный программой автоматически. 6. Передвиньте ползунок таймера анимации на последний 100 кадр и переместите сферу вниз за пределы трубы на небольшое расстояние. 7. Сместите ползунок таймера анимации на нулевой кадр и передвиньте сферу вверх за пределы трубы на небольшое расстояние. 8. Перейдите в 20 кадр анимации и уточните положение сферы относительно деформированного места трубы так, чтобы сфера находилась внутри деформированного участка. То же самое сделайте и для 80 кадра. 9. Выключите запись ключей анимации, повторно щелкнув на кнопке Auto Key (Автоключ). 1 0. Щелкните на кнопке Play Animation (Воспроизвести анимацию) для просмотра выполненной анимации. Рассмотрим второй способ создания анимации с помощью объекта FFD (Box) (FFD-контейнер (прямоугольный)), используя те же объекты: сферу и трубу. Второй вариант (с использованием объектов категории Geometric/Deformable (Деформируемая геометрия))Для продолжения упражнения необходимо выполнить одно из двух действий: создать новый объект Tube (Труба) или копировать существующий и удалить назначенный ему модификатор. Если вы решили создать копию существующего объекта, то сделайте следующее. 1. В одном из окон проекций выделите построенный ранее объект Tube01. 2. Выполните команду меню Edit > Clone (Правка > Клонирование) и в появившемся окне Clone Options (Параметры клонирования) выберите тип создаваемых при дублировании объектов Copy (Независимая копия объекта). 3. Спрячьте одну из копий трубы. Для этого щелкните на ней правой кнопкой мыши и выберите из контекстного меню строку Hide Selection (Спрятать выделенное). 4. Удалите из стека модификаторов ранее присвоенный Taper (Заострение). Автоматически удалится вся анимация, относящаяся к деформации трубы. Анимация объекта Sphere01 нам пригодится в дальнейшей работе, поэтому все, что было сделано с этим объектом, должно оставаться таким, как есть. Единственное, что нужно сделать, – перейти в 50 кадр анимации, чтобы сфера оказалась внутри объекта Tube01. Теперь необходимо построить новый объект – FFD (Box) (FFD-контейнер (прямоугольный)). Для этого выполните команду меню Create > SpaceWarps > Geometric/ Deformable > FFD (Box) (Создание > Пространственные деформации > Деформируемая геометрия > FFD-контейнер (прямоугольный)) и в окне проекции Top (Сверху) создайте прямоугольный контейнер с параметрами, представленными на рис. 8.6. Разместите его в середине сферы. Рис. 8.6. Параметры и положение в пространстве относительно сферы объекта FFD01 Теперь габаритный контейнер необходимо связать с объектом, на который будет направлено воздействие трансформации, и отредактировать форму самого контейнера в соответствии с формой сферы. Для этого нужно выполнить следующее. 1. Свяжите объект FFD01 с трубой. Для этого нажмите кнопку Bind to Space Warp (Связать с воздействием) затем в одном из окон проекций щелкните на объекте FFD01 и, когда указатель примет соответствующий вид, перетащите его на трубу. 2. Перейдите на уровень редактирования контрольных точек контейнера, для чего в стеке модификаторов щелкните на плюсике слева от строки FFD (box) 4x4x4 (FFD-контейнер (прямоугольный) 4x4x4) и в раскрывшемся списке выберите Control Points (Контрольные точки). 3. Выделите два средних ряда контрольных точек и, используя инструмент Select and Uniform Scale (Выделить и равномерно масштабировать) главной панели инструментов, равномерно масштабируйте точки до 130 %. 4. Выйдите из режима редактирования контрольных точек контейнера, вернувшись на верхний уровень стека модификаторов. Для этого щелкните в стеке на строке FFD (box) (FFD-контейнер (прямоугольный)). Таким образом, габаритный контейнер после редактирования будет описывать форму сферы, а труба в месте воздействия контейнера деформации примет нужную форму (рис. 8.7). Рис. 8.7. Форма трубы после применения модификатора пространственной деформации Осталось связать контейнер трансформации с анимированной сферой, расположенной внутри трубы, и анимация будет закончена. Чтобы создать такую связь, необходимо выделить габаритный контейнер, нажать кнопку Select and Link (Выделить и связать) главной панели инструментов и указать на сферу.
Запустите воспроизведение анимации и убедитесь, что все было сделано правильно. В процессе воспроизведения габаритный контейнер вместе со сферой будет опускаться через трубу, деформируя ее в месте своего прохождения.
Анимация формы сферыПри выполнении предыдущего примера мог возникнуть вопрос, можно ли при помощи FFD (Box) (FFD-контейнер (прямоугольный)) трансформировать сферу, проходящую через трубу. Ответ – да, можно. Рассмотрим, как сделать такую анимацию. Создайте новую сцену с теми же объектами: сфера и труба. Вы можете воспользоваться старой сценой, удалив модификатор FFD (Box) (FFD-контейнер (прямоугольный)) из стека. Трубе необходимо придать форму воронки. Для этого следует или применить модификатор Taper (Заострение), или отредактировать положение верхнего ряда вершин. Я воспользовался первым вариантом (рис. 8.8), чтобы потом при необходимости можно было вернуться на уровень редактирования параметров объекта Tube (Труба). Рис. 8.8. Форма трубы и параметры ее модификатора Taper (Заострение) Если вы заново создавали сцену, то анимируйте сферу таким образом, чтобы в первом кадре ее положение относительно трубы было выше, а в последнем – ниже. Для этого достаточно воспользоваться автоматической записью ключей анимации, как мы это делали ранее (установить соответствующее положение объекта в пространстве – остальное программа сделает автоматически). Постройте объект FFD (Cyl) (FFD-контейнер (цилиндрический)) и разместите его относительно трубы следующим образом. 1. Выполните команду меню Create > SpaceWarps > Geometric/Deformable > FFD(Cyl) (Создание > Пространственные деформации > FFD-контейнер (цилиндрический)) и в окне проекции Top (Сверху) постройте объект произвольной формы. 2. Используя инструмент Select and Move (Выделить и переместить) или Align (Выравнивание) расположите габаритный контейнер так, чтобы он находился в середине трубы. 3. В свитке FDD Parameters (FDD-параметры) построенного объекта задайте такие значения параметров, чтобы его диаметр соответствовал внутреннему диаметру в самой широкой части воронки (вверху), а по высоте – высоте трубы. Кроме того, важным является то, сколько разбиений по высоте будет иметь этот контейнер. Расстояние между первым и вторым рядом должно равняться высоте сужающейся части воронки. В моем случае это такое же количество рядов, как и у трубы (то есть равно значению параметра Height Segments (Количество сегментов по высоте)). Их можно установить, воспользовавшись кнопкой Set Numbers of Points (Установить количество точек) области Dimensions (Размеры).
Далее необходимо связать габаритный контейнер со сферой и отредактировать его. 1. Свяжите габаритный контейнер со сферой. Для этого щелкните на кнопке Bind to Space Warp (Связать с воздействием) на панели инструментов, выделите габаритный контейнер и, когда указатель примет соответствующий вид, удерживая кнопку мыши, подведите его к сфере. 2. Перейдите на уровень редактирования контрольных точек контейнера, для чего в стеке модификаторов щелкните на плюсике, расположенном слева от имени модификатора, и в раскрывшемся списке выберите строку Control Points (Контрольные точки). 3. Выделяя по очереди все ряды контрольных точек, кроме первого, масштабируйте их до внутреннего размера трубы (рис. 8.9). Для этой операции воспользуйтесь инструментом Select and Uniform Scale (Выделить и равномерно масштабировать) Рис. 8.9. Форма и положение габаритного контейнера
4. Выйдите из режима редактирования контрольных точек контейнера, щелкнув в стеке на имени модификатора. Запустите воспроизведение анимации, воспользовавшись кнопкой Play Animation (Воспроизвести анимацию) и убедитесь, что все сделано правильно.
При желании вы можете улучшить анимацию. Для этого нужно перейти в кадр, в котором сфера появляется из трубы, и изменить значение параметра Falloff (Спад) в области Deform (Деформация) настроек объекта FFD(Cyl) (FFD-контейнер (цилиндрический)). В результате сфера будет плавно изменять форму во времени. Анимация взрываРассматривая разные варианты анимации объектов, можно заметить, что для ее создания не обязательно прибегать к каким-то ухищрениям, часто достаточно стандартных средств. В предыдущем упражнении мы именно так и поступили – создали анимацию с использованием параметрических объектов и модификаторов. В этом разделе мы рассмотрим один из вариантов создания анимации взрыва при помощи все тех же средств. Начните с того, что загрузите в программу 3ds Max сцену bombstart.max, находящуюся в папке Examples\Глава 08\Bomb прилагаемого DVD (рис. 8.10). Рис. 8.10. Объекты сцены, предназначенные для анимации Итак, у нас есть сфера и цилиндр, играющие роль бомбы, и сплайн пути для запального шнура. Сначала построим запальный шнур и анимируем его. 1. В окне проекции Top (Сверху) постройте параметрический объект Cylinder (Цилиндр) произвольных размеров. 2. Перейдите на вкладку Modify (Изменение) командной панели и в свитке Parameters (Параметры) настроек построенного цилиндра задайте параметрам Radius (Радиус), Height (Высота) и Height Segments (Количество сегментов по высоте) значения согласно рис. 8.11. 3. Примените к цилиндру модификатор деформации по траектории, выполнив команду главного меню Modifiers > Animation > Path Deform (WSM) (Модификаторы > Анимация > Деформация по траектории (WSM)). 4. В свитке Parameters (Параметры) настроек модификатора Path Deform (WSM) (Деформация по траектории (WSM)) щелкните на кнопке Pick Path (Указать путь) и выберите в одном из окон проекций сплайн пути для запального шнура. 5. Щелкните на кнопке Move to Path (Передвинуть на путь), чтобы цилиндр занял на сплайне формы правильное положение (рис. 8.12). 6. Активизируйте автоматическую запись ключей анимации, щелкнув на кнопке Auto Key (Автоключ), и передвиньте ползунок таймера анимации на последний кадр. Рис. 8.11. Параметры построенного цилиндра Рис. 8.12. Цилиндр, деформированный по сплайну пути 7. Перейдите к свитку Parameters (Параметры) настроек цилиндра, для чего в стеке модификаторов щелкните на строке Cylinder (Цилиндр), в результате чего строка выделится цветом. 8. Задайте параметру Height (Высота) значение, равное 0. 9. Выключите запись ключей анимации, для чего повторно щелкните на кнопке Auto Key (Автоключ). 10. Проверьте правильность выполненных действий, запустив проигрывание анимации кнопкой Play Animation (Воспроизвести анимацию) Запальный шнур должен уменьшаться и исчезнуть в 100 кадре. Как видите, совсем простыми действиями мы создали анимацию сгорающего шнура. Чтобы усилить эффект горения, можно добавить на окончание запального шнура систему частиц, которая будет имитировать разлетающиеся в стороны искры. Система частиц должна базироваться на выделенных подобъектах (например, полигонах) либо на объекте в целом. В данном случае выделить полигоны на конце запального шнура невозможно, так как в верхней строке стека модификаторов находится модификатор Path Deform (WSM) (Деформация по траектории (WSM)). По этой причине необходимо построить и анимировать еще один объект. 1. Создайте сферу такого же размера, как и запальный шнур. В моем случае радиус равен 1,8. 2. Примените к построенной сфере модификатор Path Deform (WSM) (Деформация по траектории (WSM)). 3. В свитке Parameters (Параметры) настроек модификатора Path Deform (WSM) (Деформация по траектории (WSM)) щелкните на кнопке Pick Path (Указать путь) и выберите в одном из окон проекций сплайн пути для запального шнура. 4. Щелкните на кнопке Move to Path (Передвинуть на путь), чтобы сфера заняла на сплайне формы правильное положение. 5. Задайте такое значение параметра Percent (Проценты), при котором сфера в нулевом кадре шкалы анимации переместится в начало запального шнура. У меня это значение равно 88,3 (рис. 8.13). Рис. 8.13. Свиток Parameters (Параметры) настроек модификатора Path Deform (WSM) (Деформация по траектории (WSM)) 6. Активизируйте автоматическую запись ключей анимации, щелкнув на кнопке Auto Key (Автоключ), и передвиньте ползунок таймера анимации на последний кадр. 7. Задайте параметру Percent (Проценты) значение, равное 0. 8. Проверьте анимацию. Сфера должна перемещаться по сплайну пути вместе с запальным шнуром. Сфера используется как вспомогательный объект для построения системы частиц, поэтому нет необходимости в ее визуализации. Ее можно спрятать, воспользовавшись командой Hide Selection (Спрятать выделенное) контекстного меню, вызываемого щелчком правой кнопки мыши на объекте.
Теперь займемся искрами. Для этого выполним простую анимацию системы частиц. Выполните команду Create > Particles > PArray (Создание > Частицы > Массив частиц) и в произвольном месте любого окна проекции создайте значок массива частиц (рис. 8.14). В свитке Basic Parameters (Базовые параметры) настроек системы частиц PArray01 щелкните на кнопке Pick Object (Указать объект) и выберите в одном из окон проекций построенную ранее сферу. Перейдите к свитку Particle Generation (Генерация частиц) настроек системы частиц и задайте значения параметров создаваемых частиц: увеличьте количество генерируемых частиц до 150, измените скорость движения частиц, продлите время окончания их генерации до последнего кадра, уменьшите время жизни до двух кадров и т. д. (рис. 8.15). Рис. 8.14. Значок системы частиц, расположенный в окне проекции Front (Спереди) Рис. 8.15. Параметры системы частиц в свитке Particle Generation (Генерация частиц)
Переключатель Standard Particles (Типовые частицы) свитка Particle Type (Тип частиц) установите в положение Special (Специальный), что позволит задать форму частиц в виде пересекающихся плоскостей. В области Spin Axis Controls (Управление осями вращения) свитка Rotation and Collision (Поворот и столкновения) установите переключатель в положение Direction of Travel/Mblur (Направление движения/размывание движения). Параметру Stretch (Растяжение) задайте значение, равное 50. Изменение значений этих параметров позволит получить протяженное размытие частиц по мере удаления от источника. Настроив основные параметры системы частиц, визуализируйте статичный кадр в середине анимации и убедитесь, что все выполнено правильно. Если результат вас не удовлетворит, проведите дополнительную настройку параметров системы частиц. Следующим шагом будет создание анимации самого взрыва. В данном случае нам поможет объект Bomb (Бомба), относящийся к Space Warps (Пространственные деформации). Для создания и настройки анимации взрыва сделайте следующее. 1. Выполните команду Create > SpaceWarps > Geometric/Deformable > Bomb (Создание > Пространственные деформации > Деформируемая геометрия > Бомба). 2. Разместите созданный значок бомбы внутри сферы (рис. 8.16). Рис. 8.16. Расположение значка объекта Bomb (Бомба) 3. Свяжите объекты GeoSphere01 и Cylinder01 с воздействием. Для этого щелкните на кнопке Bind to Space Warp (Связать с воздействием) на панели инструментов, затем в одном из окон проекций на бомбе (GeoSphere01) и, когда указатель примет соответствующий вид, перетащите его на значок объекта Bomb (Бомба). Проделайте те же операции и для цилиндра, расположенного в верхней части бомбы (его также необходимо взорвать). 4. В одном из окон проекций выделите значок объекта Bomb (Бомба) и перейдите к свитку Bomb Parameters (Параметры бомбы), расположенному на вкладке Modify (Изменение) командной панели. 5. В области Explosion (Взрыв) задайте параметрам Strength (Мощность) и Spin (Вращение) значения, равные 1,5. 6. В области Fragment Size (Размер фрагментов) задайте параметрам Min (Минимум) и Max (Максимум) значения 1 и 5 соответственно. 7. В поле Detonation (Детонация) области General (Общие) укажите номер кадра, в котором произойдет взрыв. В нашем случае это 100 кадр, в котором запальный шнур догорит до конца. 8. Увеличьте количество кадров анимации. Для этого щелкните на кнопке Time Configuration (Настройка временных интервалов) в правой нижней части окна 3ds Max и в поле End Time (Время окончания) области Animation (Анимация) открывшегося окна введите количество кадров, равное 200. 9. Проверьте анимацию. С 1 по 100 кадр будет гореть запальный шнур, а начиная с 200 кадра должна взорваться бомба. Таким образом, мы построили простой взрыв. Его реалистичность можно повысить, воспользовавшись эффектом Fire Effect (Эффект огня) (в предыдущих версиях программы 3ds Max он был известен как Combustion (Горение)). Для этого необходимо предварительно построить габаритный контейнер, который будет определять зону действия атмосферного эффекта Fire Effect (Эффект огня). Выполнить это можно при помощи команды главного меню Create > Helpers > Atmospherics > Sphere Gizmo (Создание > Вспомогательные объекты > Атмосферные эффекты > Сферический контейнер). После построения расположите габаритный контейнер так, чтобы бомба находилась в его середине (рис. 8.17). При активном габаритном контейнере SphereGizmo01 перейдите на вкладку Modify (Изменение) командной панели и в свитке Atmospheres & Effects (Атмосфера и эффекты) щелкните на кнопке Add (Добавить). В открывшемся окне Add Atmosphere (Добавить атмосферный эффект) выберите из списка строку Fire Effect (Эффект огня) и щелкните на кнопке OK для подтверждения выбора. В результате этих действий в список эффектов габаритного контейнера добавится эффект огня (рис. 8.18). Рис. 8.17. Расположение габаритного контейнера относительно объекта-бомбы Рис. 8.18. Габаритный контейнер с добавленным эффектом огня Теперь следует настроить параметры эффекта для взрыва. 1. В свитке Atmospheres & Effects (Атмосфера и эффекты) выделите строку с именем добавленного эффекта и щелкните на кнопке Setup (Настройки). 2. Убедитесь в том, что в области Shape (Форма) открывшегося окна Environment and Effects (Окружающая среда и эффекты) переключатель Flame Type (Тип огня) установлен в положение Fireball (Облако пламени). 3. В этой же области задайте параметру Regularity (Регулярность) значение 0,6, что позволит придать эффекту форму, близкую к форме габаритного контейнера (значение, равное 1, создаст абсолютно круглый огненный шар). 4. В области Explosion (Взрыв) установите флажок Explosion (Взрыв). В результате программа будет рассматривать эффект огня как взрыв. 5. В этой же области щелкните на кнопке Setup Explosion (Настройки взрыва) и в открывшемся окне Setup Explosion Phase Curve (Настройки кривой фаз взрыва) задайте параметрам Start Time (Время начала) и End Time (Время окончания) значения, равные 100 и 180 соответственно. Эти значения определяют начало и окончание действия эффекта взрыва. Остальные параметры эффекта взрыва могут оставаться заданными по умолчанию, а если вам не понравится результат, вы всегда можете поменять их на свои. Активизируйте окно перспективного вида, переместите ползунок таймера анимации на 102 кадр (начало взрыва) и выполните визуализацию (рис. 8.19). Рис. 8.19. Визуализация эффекта взрыва в 102 кадре анимации
Как видно из визуализации, размера эффекта взрыва недостаточно. Сделать его большим можно, увеличив размеры габаритного контейнера SphereGizmo01. Для этого выделите этот объект и в свитке Sphere Gizmo Parameters (Параметры сферического габаритного контейнера) задайте параметру Radius (Радиус) значение 130. Повторите визуализацию эффекта и убедитесь в том, что размер облака пламени приблизительно равен радиусу разлетающихся осколков бомбы (рис. 8.20). Рис. 8.20. Визуализация взрыва с измененным радиусом габаритного контейнера Для проверки выполненной анимации визуализируйте и другие кадры анимации. При необходимости измените настройки эффекта или размер габаритного контейнера. Визуализируйте все кадры и сохраните анимацию как последовательность изображений или видеоролик.
Два варианта анимации страницы книгиАнимацию модели книги, как и многие другие задачи, можно выполнить разными способами. Например, использовать примитив Box (Параллелепипед) для моделирования корешка книги и неподвижно лежащих листов, а для создания переворачивающихся листов – объект Plane (Плоскость) с достаточно плотной сеткой полигонов, чтобы сделать корректный изгиб. После этого применить модификатор FFD (Box) (FFD-контейнер (прямоугольный)) и, манипулируя вершинами контейнера, создать ключи анимации. Можно анимировать параметры модификатора Bend (Изгиб). Я хочу предложить вам собственный способ моделирования книги и два способа анимации переворачивающихся страниц. Один способ анимации основан на смешанной технике моделирования с последующей анимацией вершин, составляющих поверхность листа. При этом вам не придется сидеть и скрупулезно подгонять вершины по форме изгиба страницы, как это неизбежно было бы в случае с полигональным объектом. Для этих целей будет использована поверхность, форма которой описывается математическими выражениями, – NURBS-поверхность. При помощи второго способа анимации вы построите лофт-поверхность по четырем кривым. В этом случае анимация листа книги будет осуществляться не перемещением кривых или их контрольных точек в пространстве, а поворотом этих кривых вокруг точки, расположенной у основания корешка книги. Таким образом, мы создадим и анимируем реалистично выглядящую модель книги, используя простые решения. Основу книги составит лофт-объект, а страницы, подлежащие анимации, – NURBS-поверхность.
Моделирование начинается с построения сплайнового прямоугольника. Выполните команду Create > Shapes > Rectangle (Создание > Формы > Прямоугольник), щелкните в левом верхнем углу окна проекции Front (Спереди) и перетащите указатель вправо и немного вниз, создавая тем самым заготовку для боковой стороны книги (рис. 8.21). Рис. 8.21. Онлайновый прямоугольник, с которого начинается моделирование книги Преобразуйте прямоугольник в редактируемый сплайн, чтобы иметь возможность менять его форму и размеры. Для этого щелкните на нем правой кнопкой мыши и в появившемся контекстном меню выполните команду Convert To > Convert to Editable Spline (Преобразовать > Преобразовать в редактируемый сплайн). В результате в стеке модификаторов на вкладке Modify (Изменение) командной панели появится строка Editable Spline (Редактируемый сплайн). Щелкните на плюсике возле этой строки и в развернувшемся списке выберите Vertex (Вершина). В результате вы переключитесь в режим редактирования вершин сплайна. Находясь в режиме редактирования вершин, добавьте несколько вершин сплайну и измените его форму. Для этого щелкните на кнопке Refine (Уточнить) в свитке Geometry (Геометрия) настроек сплайна. Это позволит добавлять новые опорные точки в промежутках между имеющимися. Щелкните на сплайне в том месте, где нужно добавить точку. Отредактируйте кривизну сплайна и положение вершин в пространстве. Для этого нажмите еще раз кнопку Refine (Уточнить), чтобы отключить режим создания новых точек, а затем щелкните на вершине, которую нужно отредактировать. Когда вершина выделена, вы можете перемещать ее в пространстве и редактировать кривизну сплайна, используя манипуляторы кривой Безье. В результате этого редактирования вы должны построить профиль книги в разрезе (рис. 8.22). Рис. 8.22. Профиль сечения книги Осталось применить к созданному сплайну модификатор Extrude (Выдавить). Для этого выполните команду меню Modifiers > Mesh Editing > Extrude (Модификаторы > Редактирование сетки > Выдавить). Задайте такое значение величины выдавливания в настройках модификатора Extrude (Выдавить), чтобы она соответствовала пропорциям книги (рис. 8.23). Рис. 8.23. Книга после применения модификатора Extrude (Выдавливание) Таким образом, мы создали форму книги, то есть ту ее часть, которая не будет анимироваться. Теперь займемся построением анимируемых страниц. Первый вариантЧтобы создать страницу, выполните следующие действия. 1. Щелкните на кнопке Geometry (Геометрия) вкладки Create (Создание) командной панели и выберите в раскрывающемся списке строку NURBS Surfaces (NURBS-поверхности). 2. Щелкните на кнопке CV Surf (CV-поверхность), чтобы указать, какие поверхности мы собираемся строить. 3. Перейдите в окно проекции Top (Cверху) и щелкните в верхней точке середины книги, после чего переместите указатель к правому нижнему углу. Таким образом, мы построили поверхность, но пока она ровная и мало похожа на страницу книги. Чтобы придать странице нужную форму, перейдите на уровень редактирования подобъектов Surface CV (Управляющие вершины поверхности) на вкладке Modify (Изменение) командной панели и переместите точки плоскости так, чтобы она приняла форму поверхности, на которую будет ложиться (рис. 8.24). Рис. 8.24. Лист, уложенный в книгу Выделяйте и перемещайте управляющие вершины в окне фронтального вида, что позволит манипулировать всем столбцом вершин сразу.
Перед тем как переходить к анимации страницы, нужно сделать еще одно уточнение – переместить ось вращения на край страницы в середине книги. 1. Перейдите на вкладку Hierarchy (Иерархия) командной панели и щелкните на кнопке Affect Pivot Only (Только опора), что позволит воздействовать только на опорную точку. 2. Переместите опорную точку листа в крайнее левое положение. 3. Щелкните на кнопке Affect Pivot Only (Только опора) еще раз, чтобы закрепить новое положение опорной точки в пространстве. Все готово для начала построения анимации. Передвиньте ползунок таймера анимации на 60 кадр. Щелкните на кнопке Auto Key (Автоключ), после этого нажмите кнопку Select and Rotate (Выделить и повернуть) на панели инструментов. Поворачивая манипулятор против часовой стрелки, разверните страницу в левую сторону. Не выключая запись ключей анимации, отредактируйте положение управляющих вершин в пространстве относительно левой стороны книги (рис. 8.25). Рис. 8.25. Лист, уложенный на левую сторону книги Если все было сделано правильно, то, передвигая ползунок шкалы анимации, вы увидите, как переворачивается лист. Базовая анимация сделана (рис. 8.26). Как только вы закончите редактировать положение управляющих вершин, еще раз щелкните на кнопке Auto Key (Автоключ), чтобы выключить автоматическую запись всех изменений. Если вы хотите улучшить анимацию и постараться добиться более реалистичного вида листа во время поворота, нужно добавить новые ключевые кадры в промежутке между первым и последним. Однако старайтесь не перегружать анимацию ключевыми кадрами, так как слишком большое количество ключевых кадров создаст трудности с их редактированием. Оптимальный вариант – установка ключей только там, где без них не обойтись, остальное 3ds Max сделает автоматически. Самый простой вариант проследить, как переворачивается лист, – взять в руки книгу и перевернуть ее лист, обращая внимание на изменение его формы в пространстве. Рис. 8.26. Анимированный лист книги
Второй вариантВ предыдущем примере для контроля формы объекта и его положения в пространстве использовались управляющие вершины. Рассмотрим другой способ анимации страниц книги: при помощи лофт-поверхности. Для продолжения работы выполните одно из трех действий: ¦ выделите анимированный лист и, используя команду Hide Selection (Спрятать выделенное) контекстного меню, спрячьте его; ¦ удалите анимированный лист из сцены; ¦ загрузите начальную сцену из файла bookstart.max, находящегося в папке Examples\Глава 08\Воок прилагаемого DVD. Для создания анимированной страницы нам понадобится построить лофт-поверхность по четырем управляющим кривым. Для этого сделайте следующее. 1. Щелкните на кнопке Shapes (Формы) вкладки Create (Создание) командной панели и выберите из раскрывающегося списка строку NURBS Curves (NURBS-кривые). 2. Нажмите кнопку CV Curve (CV-кривая) для выбора типа кривой. 3. Перейдите в окно проекции Top (Сверху), щелкните в верхнем углу книги, вертикально переместите указатель до нижнего края и щелкните еще раз для построения второй точки кривой. Нажмите правую кнопку мыши для завершения построения.
4. Копируйте созданную кривую, выполнив команду Edit > Clone (Правка > Клонирование), и в появившемся окне Clone Options (Параметры клонирования) установите переключатель в положение Copy (Независимая копия объекта). 5. Повторите описанные в п. 4 действия два раза для создания третьей и четвертой копий кривой. После этого разместите построенные кривые так, чтобы первая кривая находилась в области корешка книги, а остальные приблизительно соответствовали положению строящейся страницы (рис. 8.27). Теперь необходимо создать NURBS-поверхность. Для этого выделите в окне проекции Perspective (Перспектива) первую кривую и в свитке General (Общие) щелкните на кнопке NURBS Creation Toolbox (Инструменты создания NURBS-объектов) для вызова плавающей панели NURBS с инструментами создания кривых и поверхностей. На плавающей панели NURBS нажмите кнопку Create U Loft Surface (Создать поверхность методом U-лофтинга) (рис. 8.28), после чего указатель примет соответствующий вид. Рис. 8.27. Положение кривых перед построением поверхности Рис. 8.28. Плавающая панель NURBS с нажатой кнопкой Create U Loft Surface (Создать поверхность методом U-лофтинга) Подведите указатель мыши к первой кривой (расположенной в районе корешка), в результате чего она подсветится цветом, и щелкните на ней. Затем щелкните на соседней кривой. В результате этих действий между первой и второй кривой образуется поверхность.
Продолжите выделение оставшихся двух кривых и создание поверхности страницы, образованной всеми кривыми. После завершения построения щелкните на окне проекции правой кнопкой мыши. Теперь можно окончательно отредактировать положение кривых в пространстве. Для этого перейдите на уровень редактирования подобъектов Curve (Кривая) выделенного объекта. В окне проекции Front (Спереди) передвиньте кривые так, чтобы поверхность листа приняла более естественный вид и при этом не пересекалась со статичной геометрией (рис. 8.29). Все подготовительные действия выполнены – можно приступать к анимации. Передвиньте ползунок шкалы анимации на 60 кадр. Щелкните на кнопке Auto Key (Автоключ). Перейдите на уровень редактирования подобъектов Curve (Кривая) и в окне проекции Front (Спереди) выделите вторую управляющую кривую (в активном состоянии все кривые будут обозначены кружками). Нажмите кнопку Select and Rotate (Выделить и повернуть) на панели инструментов и выберите из раскрывающегося списка Reference Coordinate System (Система координат) пункт Local (Локально) (рис. 8.30). Рис. 8.29. Расположение управляющих кривых в окне проекции Front (Спереди) Рис. 8.30. Раскрывающийся список Reference Coordinate System (Система координат) Поворачивая манипулятор против часовой стрелки, разверните управляющую кривую в левую сторону. Проделайте те же действия для оставшихся двух кривых. Не выключая запись ключей анимации, при необходимости отредактируйте положение управляющих кривых в пространстве относительно левой стороны книги (рис. 8.31). Рис. 8.31. Положение управляющих кривых на левой стороне книги Подводя итоги выполненной анимации листа книги, можно заметить, что второй способ более простой и легкоуправляемый. В общем случае для такой анимации достаточно трех управляющих кривых и создания ключей анимации в первом и последнем кадрах анимации, а небольшое изменение кривой трансформации поворота в Curve Editor (Редактор кривых) позволяет получить реалистичное движение листа при минимальных трудозатратах.
Анимация рукописного шрифтаВ предыдущем разделе мы рассмотрели два варианта анимации страниц книги. А что если пойти дальше и смоделировать процесс письма шариковой ручкой? А может быть, вспомнить время, когда наши родители, дедушки и бабушки писали перьевыми ручками, аккуратно выводя ровным почерком слово за словом? С точки зрения моделирования и анимации такой текст более сложный, но вместе с тем и более интересный. Рассматривая варианты такой анимации, я пришел к выводу, что сделать ее можно как минимум пятью способами: ¦ анимируя параметр Length (Длина) примитива Cylinder (Цилиндр) с одновременным использованием модификатора Path Deform (Деформация по траектории); ¦ анимируя параметры объекта Loft (Лофтинговые); ¦ применив альфа-канал материала в качестве средства анимации; ¦ воспользовавшись анимированной текстурой; ¦ применив модификатор Sweep (Шаблон) совместно с анимированной текстурой прозрачности. Каждый способ имеет свои достоинства и недостатки, но вместе с тем каждый из них может решать конкретные задачи. Мы не станем рассматривать все варианты, а остановимся лишь на том, который предоставляет наибольшую гибкость в работе, но требует больше времени и сил для создания такой анимации. Кроме того, интересным дизайнерским решением может явиться анимация не только самого шрифта, но и ручки, пишущей этот текст. В данном разделе мы не станем рассматривать процесс моделирования объектов, поэтому для работы вам необходимо загрузить сцену animated_text_start.max, которая находится в папке Examples\Глава 08\Text прилагаемого к книге DVD (рис. 8.32). Рис. 8.32. Вид сцены animated_text_start.max в окне проекции Perspective (Перспектива) Все, что нам необходимо для начала выполнения упражнения, – это три объекта: лист бумаги (создан при помощи примитива Plane (Плоскость)), любой каллиграфический шрифт (сплайн Text (Текст) с использованием шрифта, установленного на вашем компьютере) и модель перьевой ручки. Вы можете применить любой текст или шрифт. Я создал также дополнительные объекты – чернильницу и плоскость стола. Способ анимации появляющегося шрифта, который я собираюсь описать, основан на использовании модификатора Loft (Лофтинговые), поэтому необходимо построить сплайн пути. Но, прежде чем начать какое бы то ни было моделирование, следует подготовить сцену. На самом деле нам нужно убрать из сцены неиспользуемые объекты и заблокировать текст от случайного смещения. Чтобы выполнить первое, щелкните на тексте правой кнопкой мыши и выберите в контекстном меню строку Hide Unselected (Спрятать невыделенное). Для блокирования текста можно воспользоваться командой Freeze Selection (Заморозить выделенное) контекстного меню текста. После этих подготовительных действий выполните команду главного меню Create > Shapes > Line (Создание > Формы > Линия), в результате чего на вкладке Create (Создание) командной панели появятся свитки параметров строящейся линии. Установите в свитке Creation Method (Метод создания) переключатели Initial Type (Начальный тип) и Drag Type (Вершина при перетаскивании) в положение Smooth (Сглаживание) для построения сглаженных вершин в процессе создания сплайна. Перейдите в окно проекции Top (Cверху). Постройте сплайн пути таким образом, чтобы он начинался в левой части текста и проходил по середине шрифта (рис. 8.33). Рис. 8.33. Сплайн, построенный для первых трех символов текста Построение удобнее всего вести, развернув окно проекции во весь экран монитора. Для этого необходимо нажать сочетание клавиш Alt+W. Можно также использовать режим эксперта – сочетание клавиш Ctrl+X. При создании сплайна часть шаблона, по которому происходит построение, может оказаться за пределами окна проекции. В этом случае, дойдя до края окна проекции, нажмите клавишу I, и указатель вместе с изображением переместится в середину окна проекции. Если во время построения сплайна вам понадобится удалить последнюю вершину или несколько вершин, то сделать это можно, не выходя из режима построения, нажав клавишу Backspace. Сначала построения ведутся достаточно приблизительно, чтобы создать общую форму сплайна с расчетом на последующее редактирование. Обратите внимание на то, что последовательность создания сплайна должна быть такой же, как и при написании текста пером, то есть как мы построим сплайн, так он будет затем появляться при анимации.
После того как будет построена базовая форма, переходите к ее редактированию. Для этого выделите сплайн, перейдите на вкладку Modify (Изменение) командной панели и в свитке Selection (Выделение) щелкните на кнопке Vertex (Вершина), чтобы перейти в режим редактирования вершин. Теперь можно более точно расположить вершины внутри текста, при необходимости удаляя лишние (клавиша Delete) или добавляя новые (кнопка Refine (Уточнить) из свитка Geometry (Геометрия)).
В результате у вас должен получиться непрерывный сплайн (рис. 8.34). Теперь необходимо создать сплайн сечения. Для этого воспользуемся формой Ellipse (Эллипс), построить которую можно, выполнив команду Create > Shapes > Ellipse (Создание > Формы > Эллипс). Строить необходимо в окне проекции Front (Спереди). Это имеет существенное значение для построения лофт-объектов, так как форма сечения должна располагаться перпендикулярно форме пути. Задайте эллипсу следующие значения параметров: Length (Длина) – 0,2 и Width (Ширина) – 3,5. Рис. 8.34. Сплайн пути, созданный на основе стандартного шрифта
Чтобы построить надпись по созданным сплайнам пути и сечения, сделайте следующее. 1. Выделите сплайн пути. Перейдите на вкладку Create (Создание) командной панели, щелкните на кнопке Geometry (Геометрия) и в раскрывающемся списке выберите строку Compound Objects (Составные объекты). 2. В свитке Object Type (Тип объекта) щелкните на кнопке Loft (Лофтинговые). В результате в области свитков на командной панели появятся свитки параметров для создания лофт-объектов. 3. В свитке Creation Method (Метод создания) нажмите кнопку Get Shape (Взять форму) и в окне проекции Front (Спереди) щелкните на эллипсе для построения формы надписи. 4. В области Mapping (Проекционные координаты) свитка Surface Parameters (Свойства поверхности) установите флажок Apply Mapping (Применить проекционные координаты), а в области Output (Вывод) – переключатель в положение Mesh (Сетка) (рис. 8.35). 5. В свитке Skin Parameters (Параметры поверхности) задайте основные параметры отображения поверхности созданного объекта (рис. 8.36). Рис. 8.35. Свиток Surface Parameters (Свойства поверхности) построенного лофт-объекта Рис. 8.36. Свиток Skin Parameters (Параметры поверхности) настроек лофт-объекта Проанализируйте полученную поверхность надписи, особенно в том окне проекции, в котором будет создана анимация. В общем случае полученный результат является удовлетворительным для анимации среднего плана, но если вы хотите улучшить форму лофт-объекта, то воспользуйтесь трансформацией масштаба (Scale (Масштабирование)) или трансформацией скручивания (Twist (Скручивание)) из свитка Deformations (Деформации) настроек лофт-объекта на вкладке Modify (Изменение) командной панели. То, что получилось у меня после небольшого редактирования формы текста, представлено на рис. 8.37. Рис. 8.37. Текст, полученный при использовании составных объектов Создадим материал для шрифта. Как я уже говорил ранее, это будет материал с анимированной прозрачностью, которая позволит создать эффект написания (последовательного появления букв). Для этого сделайте следующее. 1. Откройте окно Material Editor (Редактор материалов), выполнив команду Rendering > Material Editor (Визуализация > Редактор материалов). 2. Выберите свободную ячейку с образцом материала. В свитке Blinn Basic Parameters (Базовые параметры раскраски по Блинну) для параметра Diffuse (Цвет рассеивания) выберите фиолетовый цвет. Он будет определять цвет чернил. В области Self-Illumination (Самосвечение) задайте параметру Color (Цвет) значение 100, чтобы при визуализации цвет текста на всей его поверхности оставался постоянным (рис. 8.38). 3. Щелкните на кнопке None (Отсутствует) рядом с Opacity (Непрозрачность) в свитке Maps (Карты текстур). 4. В открывшемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка Gradient Ramp (Усовершенствованный градиент). 5. Настройте параметры карты Gradient Ramp (Усовершенствованный градиент), как показано на рис. 8.39. Рис. 8.38. Свиток Blinn Basic Parameters (Базовые параметры раскраски по Блинну) с настройками материала чернил Рис. 8.39. Настройки карты Gradient Ramp (Усовершенствованный градиент) Рассмотрим некоторые выполненные настройки. Использование для создания градиентного перехода двух цветов (белого и черного) обусловлено тем, что белый цвет в канале Opacity (Непрозрачность) соответствует непрозрачности объекта, а черный – полной прозрачности. Причем положение флага для черного цвета в настоящее время не имеет принципиального значения. Тип градиента – Linear (Прямой), интерполяция – Solid (Постоянная), таким образом, прозрачность будет изменяться линейно по мере прохождения по объекту от начала до конца. Параметр Blur (Размытие) должен иметь минимальное значение, для того чтобы граница непрозрачности была как можно более четкой. После того как будут выполнены все настройки, можно анимировать параметр изменения положения маркера цвета. Для этого достаточно включить запись ключей анимации (нажать кнопку Auto Key (Автоключ)) и передвинуть ползунок таймера анимации в крайнее правое положение. После этого в окне Material/Map Browser (Окно выбора материалов и карт) передвиньте средний флаг (черного цвета) в конец шкалы градиента, что вызовет создание для этого параметра ключа анимации. В результате в строке треков появятся два ключа анимации: в начальном и последнем кадрах. Если сейчас передвинуть ползунок таймера анимации вперед или назад, то и шкала градиента в свитке Gradient Ramp Parameters (Параметры усовершенствованного градиента) должна меняться соответственно. Выключите запись кадров (еще раз щелкните на кнопке Auto Key (Автоключ)).
Теперь нужно подкорректировать ключи анимации. Для этого откройте окно редактирования кривых, выполнив команду Graph Editors > Track View – Curve Editor (Графические редакторы > Просмотр треков – редактирование кривых). В левой части окна найдите анимированную текстуру (ей в данном случае соответствует строка Gradient Ramp (Усовершенствованный градиент)) и параметр Position (Граница) для третьего флага градиента (рис. 8.40). Рис. 8.40. Окно Track View – Curve Editor (Просмотр треков – редактирование кривых) В правой части окна выделите первый ключ анимации, введите в выделенное поле значение 0 и щелкните на кнопке Set Tangents to Linear (Установить линейное управление для касательных) Затем выделите второй ключ анимации, задайте для него значение, равное 100, и также установите линейное управление для касательных. Таким образом, положение флага черного цвета будет равномерно изменяться в диапазоне от 0 до 100. После настроек анимации необходимо присвоить материал тексту, для чего достаточно перетащить мышью материал из окна редактора на объект в окне проекции. Если сейчас выполнить тестовую визуализацию в 50 кадре анимации, то в результате половина текста окажется невидимой (рис. 8.41). Рис. 8.41. Результат визуализации текста в 50 кадре анимации Казалось бы, с анимацией текста можно заканчивать, но осталась еще одна досадная деталь – отображение геометрии между словами. Оказывается, эту неприятность можно легко устранить: достаточно к лофт-объекту применить модификатор редактирования геометрии Edit Mesh (Редактирование поверхности) и, выделив на уровне редактирования полигонов все ненужные участки поверхности, удалить их (рис. 8.42). При этом текстурные координаты объекта сохранятся и, следовательно, анимация нисколько не пострадает. Рис. 8.42. Текст после редактирования поверхности После анимации появляющегося текста можно переходить к анимации ручки. Прежде всего необходимо отобразить спрятанные ранее ручку и сплайн текста. Для этого перейдите на вкладку Display (Отображение) командной панели и в свитке Hide (Спрятать) щелкните на кнопке Unhide by Name (Отобразить по имени). В открывшемся окне выберите нужные объекты и нажмите кнопку Unhide (Отобразить). В качестве пути, по которому будет двигаться перо, можно было бы использовать созданный ранее сплайн для лофт-объекта (шрифта). Но поскольку я собираюсь немного подкорректировать вершины сплайна в промежутках между словами и для большей реалистичности изменить сплайн так, чтобы получить движение пера по направлению к чернильнице и обратно к тексту, то необходимо создать копию этого сплайна.
Прежде всего необходимо выделить вершины сплайна, находящиеся на концах сегментов между словами, и, щелкнув на выделении правой кнопкой мыши, выбрать из контекстного меню тип Bezier Corner (Безье угловая) (рис. 8.43). Это необходимо для того, чтобы, редактируя промежуточные сегменты, не нарушить форму сплайна, описывающего буквы. Рис. 8.43. Выделенные вершины сплайна, расположенные на границах между словами, после присвоения им типа Bezier Corner (Безье угловая) В окне проекции Front (Спереди) переместите манипуляторы выделенных вершин (только с внутренней стороны сегментов, расположенных между словами) вверх так, чтобы впоследствии перо, проходя по сплайну, в этих местах отрывалось от бумаги (рис. 8.44). Можно улучшить анимацию, дополнительно отредактировав сплайн на отрезке между буквами o и m, чтобы перо ручки окунулось в чернильницу, а затем продолжило писать. Но в этом случае длина сплайна существенно изменится, что повлияет на скорость движения ручки вдоль текста. Рис. 8.44. Форма сплайна с выделенными управляющими вершинами в окне проекции Perspective (Перспектива) (сверху) и в окне проекции Front (Спереди) (снизу)
При изменении длины сплайна нужно компенсировать анимацию отображения текста. Для этого необходимо в начале и в конце участка, на котором будет происходить движение ручки к чернильнице и обратно, установить дополнительные ключи анимации. Отследить положение центральной точки воспроизведения анимации будет проще всего после создания вспомогательного объекта и анимации его по сплайну пути. Чтобы создать такую анимацию, сделайте следующее. 1. Постройте вспомогательный объект, выполнив команду Create > Helpers > Dummy (Создание > Вспомогательные объекты > Пустышка). Задайте этому объекту размер, равный половине толщины текста (так будет легче отследить траекторию движения). 2. Создайте анимацию движения объекта-пустышки (в нашем случае Dummy01) по сплайну пути. Для этого выполните команду Animation > Constraints > Path Constraint (Анимация > Ограничения > Ограничение по пути) и в любом из окон проекций выберите в качестве пути отредактированный сплайн. В результате этих действий вспомогательный объект переместится в начало сплайна, а при перемещении ползунка таймера анимации будет двигаться вдоль сплайна пути. 3. Активизируйте окно перспективной проекции и запустите воспроизведение анимации, щелкнув на кнопке Play Animation (Воспроизвести анимацию) Обратите внимание на то, что при воспроизведении анимации вспомогательный объект очень быстро проходит по всему пути. Для написания пером это слишком большая скорость движения – необходимо ее замедлить. Это можно сделать, увеличив время воспроизведения анимации следующим образом. 1. Нажмите кнопку Time Configuration (Конфигурация времени) или щелкните правой кнопкой мыши на любой из кнопок управления анимацией. 2. В окне Time Configuration (Конфигурация времени) нажмите кнопку Re-scale Time (Сменить масштаб времени). 3. В области New (Новое) открывшегося окна Re-scale Time (Сменить масштаб времени) задайте параметру End Time (Время окончания) значение, равное 600 (рис. 8.45). Рис. 8.45. Окно Re-scale Time (Сменить масштаб времени) Запустите воспроизведение анимации в окне проекции Respective (Перспектива) и посмотрите, устроит ли вас время воспроизведения.
После того как результат по времени воспроизведения анимации покажется вам удовлетворительным, передвиньте ползунок таймера анимации так, чтобы вспомогательный объект сместился на начало сегмента между буквами o и m (в моем случае это 399 кадр анимации) (рис. 8.46). Откройте окно редактирования графов для карты Gradient Ramp (Усовершенствованный градиент), которую мы построили ранее, выполнив команду Graph Editors > Track View – Curve Editor (Графические редакторы > Просмотр треков – редактирование кривых) главного меню. В левой части окна выберите строку с анимацией положения третьего флага градиента. Затем в окне редактирования кривых в месте положения текущего кадра анимации, обозначенного двумя белыми вертикальными линиями, создайте ключ. Для этого нужно нажать кнопку Add Keys (Добавить ключи) и щелкнуть кнопкой мыши на кривой в том месте, где должен быть создан ключ (рис. 8.47). Рис. 8.46. Положение вспомогательного объекта Dummy01 в 399 кадре анимации Рис. 8.47. Окно Track View – Curve Editor (Просмотр треков – редактирование кривых) с ключом в 399 кадре анимации Передвиньте ползунок анимации так, чтобы вспомогательный объект переместился к началу буквы m (в моем случае это 428 кадр), и снова создайте ключ анимации для третьего флага карты Gradient Ramp (Усовершенствованный градиент), щелкнув на кривой анимации. Таким образом, мы создали два ключа анимации для карты Gradient Ramp (Усовершенствованный градиент), которые позволят нам скорректировать синхронное отображение текста и перемещение ручки по этому тексту. Сейчас можно вернуться к редактированию сплайна пути и добавить к сегменту между буквами o и m три новые точки (команда Refine (Уточнить)) с таким расчетом, чтобы перо, проходя по этому сплайну, попадало в чернильницу (рис. 8.48). Рис. 8.48. Новая форма сегмента между буквами о и m Если сейчас, передвигая ползунок таймера, обратить внимание на то, каким кадрам анимации соответствует положение вспомогательного объекта Dummy01 в начале и в конце редактируемого сплайна, то можно заметить, что они больше не соотносятся с ключами в 399 и 428 кадрах. Увеличив длину сплайна, мы изменили время прохождения контрольных точек. Исправить это можно, отредактировав созданные ключи анимации для градиента. Но прежде будет не лишним изменить скорость прохождения вспомогательного объекта на отрезке к чернильнице и обратно, так как написание текста занимает больше времени, чем перемещение ручки в пространстве, а движение вспомогательного объекта (соответственно, и ручки) сейчас постоянно. Создадим два новых ключа анимации для вспомогательного объекта Dummy01. 1. Передвигая ползунок таймера, перейдите в кадр, где Dummy01 становится в начало движения к чернильнице (у меня – 279). 2. Откройте окно редактирования графов и выберите в левой части окна строку с анимацией объекта Dummy01. В области редактирования кривых в месте положения текущего кадра анимации (кадр 279), обозначенного двумя белыми вертикальными линиями, создайте ключ. 3. Передвиньте ползунок таймера анимации к тому месту, где начинается сплайн буквы m (в моем случае это 480 кадр), и повторите процедуру создания ключа (рис. 8.49). Рис. 8.49. Дополнительные ключи анимации, созданные для объекта Dummy01 4. В строке треков (в нижней части окна 3ds Max) переместите вновь созданные ключи с 279 кадра на 390 и с 480 на 450 кадр. Таким образом мы уменьшим время на прохождение этого участка. Теперь нужно синхронизировать отображение текста с измененным движением объекта Dummy01 и можно приступать к анимации ручки. Это можно сделать, снова воспользовавшись редактором кривых. На сей раз необходимо передвинуть ключи для третьего флага карты Gradient Ramp (Усовершенствованный градиент) в положение 390 и 450 кадров (рис. 8.50). Рис. 8.50. Окно Track View – Curve Editor (Просмотр треков – редактирование кривых) после редактирования ключей анимации
Для создания более реалистичных движений ручки понадобится еще один сплайн, который будет управлять перемещением в пространстве ее второго (верхнего) конца. Сделать такой сплайн совсем не сложно: достаточно зеркально отобразить сплайн, по которому проходит перо, увеличить сплайн в два раза по оси Y и разместить его немного выше ручки (рис. 8.51). Рис. 8.51. Форма и положение сплайна, предназначенного для управления анимацией верхнего конца ручки
Создадим второй вспомогательный объект Dummy02 для верхнего сплайна. Его, как и Dummy01, необходимо анимировать по пути при помощи команды Animation > Constraints > Path Constraint (Анимация > Ограничения > Ограничение по пути), а в качестве пути выбрать верхний сплайн. Если сейчас просмотреть анимацию, передвигая ползунок таймера анимации, то можно заметить, что движения по сплайнам первого и второго вспомогательных объектов не совпадают. Это вызвано тем, что для Dummy01 мы ранее устанавливали на пути следования ключи анимации и редактировали их положение. Сейчас то же самое необходимо сделать и для Dummy02 при помощи редактора кривых. Это легко выполнить, если в местах расположения ключей Dummy01 создать ключи для Dummy02 и переместить их в вертикальной плоскости, контролируя изменение положения вспомогательного объекта в окне проекции Top (Cверху). Продолжим создание анимации. Создайте еще один вспомогательный объект Dummy03 размером в 2-3 раза больше первого (Dummy01) и разместите в пространстве так, чтобы опорные точки его и вспомогательного объекта Dummy01 совпадали (рис. 8.52), для чего можно воспользоваться инструментом Align (Выравнивание) расположенным на главной панели инструментов. Рис. 8.52. Взаимное расположение вспомогательных объектов Dummy01 и Dummy03 в окне проекции Pespective (Перспектива) Привяжите вспомогательный объект Dummy03 к первому вспомогательному объекту Dummy01. Для этого выделите Dummy03, нажмите кнопку Select and Link (Выделить и связать) и укажите в окне проекции на Dummy01. Сразу же после привязки проверьте анимацию, передвинув ползунок таймера. Если все было выполнено правильно, оба вспомогательных объекта будут передвигаться по пути синхронно. Третий вспомогательный объект мы создали из-за необходимости позиционирования верхней части ручки на объект Dummy02, расположенный на верхнем сплайне. В этом должен помочь контроллер LookAt Constraint (Ограничение по линии взгляда). Для этого выполните следующие действия. 1. Расположите ручку в первом кадре анимации так, чтобы перо ручки находилось в середине вспомогательного объекта Dummy03 (иначе говоря, в начале текста). 2. При помощи Select and Link (Выделить и связать) привяжите ручку к объекту Dummy03. 3. Проверьте анимацию. Ручка должна двигаться по сплайну, находясь в вертикальном положении. 4. Выделите вспомогательный объект Dummy03. Рис. 8.53. Свиток LookAt Constraint (Ограничение по линии взгляда) вспомогательного объекта Dummy03 5. Выполните команду меню Animation > Constraints > LookAt Constraint (Анимация > Ограничения > Ограничение по линии взгляда) и укажите в окне проекции объект Dummy02, на который будет направлен взгляд. 6. В свитке LookAt Constraint (Ограничение по линии взгляда) на командной панели установите ось направления взгляда Z (рис. 8.53), в результате чего ручка повернется в направлении верхнего вспомогательного объекта Dummy02. На этом процесс создания анимации можно считать законченным. Осталось только выполнить визуализацию и сохранить результат в файл.
Использование модификатора Cloth (Ткань) для симуляции поведения тканейРассмотрим работу с модификатором Cloth (Ткань). В отличие от одноименного оператора модуля reactor, этот модификатор в первую очередь призван облегчить создание и анимацию одежды моделируемых персонажей. Данный модификатор имеет достаточно широкие возможности, которые можно довольно долго описывать, я же хочу показать, как при помощи модификатора Cloth (Ткань) можно легко и просто создавать объекты, имитирующие поведение ткани. Мы опишем, как создать два объекта: скатерть и развевающийся флаг. Для создания модели скатерти нам понадобится простая сцена, состоящая из двух объектов: столешницы и скатерти. Для построения первого объекта воспользуйтесь параметрическим объектом Box (Параллелепипед). В качестве второго будет использован объект формы Rectangle (Прямоугольник). Создайте оба объекта в окне проекции Top (Сверху). Расположите прямоугольник относительно объекта столешницы сверху и центрируйте по осям X и Y (рис. 8.54).
Рис. 8.54. Взаимное расположение объектов в сцене На основе объекта Rectangle (Прямоугольник) необходимо создать поверхность. Самый легкий способ – преобразовать прямоугольник в полигональную поверхность. Однако при этом мы потеряем дополнительные возможности объекта формы. Лучшим выбором в данном случае будет использование модификатора Garment Maker (Моделирование одежды). Чтобы присвоить этот модификатор, выделите в одном из окон проекций прямоугольник и выполните команду главного меню Modifiers > Cloth > Garment Maker (Модификаторы > Ткань > Моделирование одежды). Обратите внимание, что два из четырех углов стали закругленными. Избавиться от этого можно, выполнив разбиение вершин этих углов, что приведет к созданию самостоятельных сплайнов на уровне подобъектов формы. Для этого перейдите в стеке модификаторов на нижний уровень (то есть выделите в стеке строку Rectangle (Прямоугольник)), щелкните на раскрывающемся списке Modifier List (Список модификаторов) и выберите из списка модификатор Edit Spline (Редактирование сплайна) (рис. 8.55). Рис. 8.55. Положение модификатора Edit Spline (Редактирование сплайна) в стеке Для редактирования прямоугольника перейдите на уровень подобъектов Vertex (Вершина), для чего щелкните в настройках модификатора Edit Spline (Редактирование сплайна) на кнопке Vertex (Вершина) в свитке Selection (Выделение) или нажмите горячую клавишу 1. Выделите все четыре вершины прямоугольника, перейдите к свитку Geometry (Геометрия) и щелкните на кнопке Break (Разбить). После этого выйдите из режима редактирования вершин, повторно щелкнув на кнопке Vertex (Вершина), и вернитесь к модификатору Garment Maker (Моделирование одежды). Для продолжения работы необходимо обновить созданную модификатором поверхность и увеличить ее топологию. Для этого в свитке Main Parameters (Основные параметры) настроек модификатора Garment Maker (Моделирование одежды) щелкните на кнопке Mesh It! (Рассчитать сетку) и увеличьте значение параметра Density (Плотность) до 2.
В результате все углы станут ровными, а плотность сетки повысится, что позволит получить сглаженные складки поверхности ткани. На рис. 8.56, слева показан фрагмент прямоугольника с примененным модификатором Garment Maker (Моделирование одежды) до редактирования, а на рис. 8.56, справа – после. Рис. 8.56. Фрагмент прямоугольника до редактирования (слева) и после него (справа) Применим к прямоугольнику модификатор Cloth (Ткань), выполнив команду главного меню Modifiers > Cloth > Cloth (Модификаторы > Ткань > Ткань). Для настройки поведения ткани выполните следующие действия. 1. В свитке Object (Объект) настроек модификатора Cloth (Ткань) щелкните на кнопке Object Properties (Свойства объекта). 2. В появившемся окне Object Properties (Свойства объекта) выберите из списка доступных объектов прямоугольник (объект с именем Rectangle01) и установите переключатель в положение Cloth (Ткань). 3. В области Cloth Properties (Свойства ткани) из раскрывающегося списка Presets (Предустановки) выберите строку Default (Исходный) (рис. 8.57). Рис. 8.57. Настройка свойств объекта Rectangle01 4. Чтобы использовать в расчетах поведения ткани поверхности стола (в нашем случае это построенный ранее параллелепипед), в окне Object Properties (Свойства объекта) щелкните на кнопке Add Objects (Добавить объекты), в появившемся окне Add Objects to Cloth Simulation (Добавить объекты к расчетам динамики ткани) выберите объект Box01 и нажмите кнопку Add (Добавить). 5. Для объекта Box01 установите переключатель в положение Collision Object (Объект столкновения) и оставьте значения, принятые по умолчанию (рис. 8.58). Рис. 8.58. Настройка свойств объекта Box01 6. Щелкните на кнопке OK для закрытия окна Object Properties (Свойства объекта). Все готово к расчетам динамики ткани. Чтобы запустить эти расчеты, необходимо в области Simulation (Моделирование) свитка Object (Объект) щелкнуть на кнопке Simulate (Моделирование) или на кнопке Simulate Local (Локальное моделирование) (если не планируете создавать анимацию поведения ткани во времени).
На рис. 8.59 показан результат расчета динамики ткани. Рис. 8.59. Результат расчетов модификатора Cloth (Ткань)
Рассмотрим еще один вариант использования модификатора Cloth (Ткань): создадим модель развевающегося флага. В этом нам поможет замечательная особенность данного модификатора, позволяющая взаимодействовать со стандартными объектами категории Force (Сила). Как всегда, начнем с построения объектов. Для имитации флага нам понадобятся два объекта: Plane (Плоскость), имитирующий полотно флага, и Wind (Ветер), который будет удерживать флаг в горизонтальном положении (по умолчанию на объекты, к которым применен модификатор Cloth (Ткань), действует сила тяжести). Для построения плоскости переключитесь в окно проекции Front (Спереди) и выполните команду главного меню Create > Standard Primitives > Plane (Создание > Простые примитивы > Плоскость). В свитке Parameters (Параметры) построенного объекта установите желаемые размеры флага и увеличьте значения параметров Length Segs (Количество сегментов по длине) и Width Segs (Количество сегментов по ширине) до 20-25. Это позволит получить более естественную деформацию ткани. Для построения объекта, имитирующего ветер, необходимо выполнить команду главного меню Create > SpaceWarps > Forces > Wind (Создание > Пространственные деформации > Силы > Ветер) и в окне проекции Top (Сверху) построить значок ветра, развернув его по направлению к флагу (рис. 8.60). Рис. 8.60. Взаимное расположение плоскости и значка ветра Назначьте плоскости модификатор ткани. Для этого в одном из окон проекций выделите плоскость и выполните команду главного меню Modifiers > Cloth > Cloth (Модификаторы > Ткань > Ткань). Настройте модификатор следующим образом. 1. Перейдите на уровень редактирования подобъектов модификатора Cloth (Ткань), для чего щелкните на плюсике, расположенном слева от имени модификатора в стеке, и выделите строку Group (Группа). 2. Выделите слева верхнюю и нижнюю боковые вершины и щелкните на кнопке Make Group (Создать группу) в свитке Group (Группа). В результате откроется окно Make Group (Создать группу), в котором необходимо указать имя группы. Таким образом мы создадим группу из двух точек, которые будут крепиться к древку флага и не будут участвовать в расчетах динамики. 3. После создания группы щелкните на кнопке Drag (Помеха) в свитке Group (Группа). При этом созданная группа должна быть активной (рис. 8.61). 4. Выйдите из режима редактирования подобъектов, для чего щелкните в стеке модификаторов на строке Cloth (Ткань). 5. В свитке Object (Объект) щелкните на кнопке Cloth Forces (Силы, воздействующие на ткань). 6. В левой части открывшегося окна Forces (Силы) щелкните на строке Wind01 и нажмите кнопку >, в результате чего Wind01 переместится в список Forces in Simulation (Симуляция сил). 7. Вернитесь к свитку Object (Объект) настроек модификатора Cloth (Ткань) и щелкните на кнопке Object Properties (Свойства объекта). 8. В открывшемся окне Object Properties (Свойства объекта) выделите строку Plane01 и установите переключатель в положение Cloth (Ткань). 9. Из раскрывающегося списка в области Cloth Properties (Свойства ткани) выберите строку Silk (Шелк). Таким образом, объекту Plane (Плоскость) будут присвоены свойства шелковой ткани (рис. 8.62). Рис. 8.61. Свиток Group (Группа) с созданной группой из двух точек Рис. 8.62. Свойства ткани, настроенные для объекта Plane01 10. Подтвердите выполненные изменения щелчком на кнопке OK. Все предварительные настройки произведены, осталось только увеличить силу ветра и запустить выполнение расчетов динамики ткани. Для этого выделите в одном из окон проекций значок ветра и в свитке Parameters (Параметры) настроек данного объекта увеличьте значение параметра Strength (Мощность) до 5. Чтобы запустить расчет динамики, вернитесь к модификатору Cloth (Ткань) и в свитке Object (Объект) щелкните на кнопке Simulate (Моделирование). На рис. 8.63 представлен флаг, полученный при помощи модификатора Cloth (Ткань). Рис. 8.63. Флаг, полученный при помощи модификатора Cloth (Ткань) Мы рассмотрели только малую часть того, что можно сделать при помощи модификатора Cloth (Ткань). Симуляция реального поведения ткани требует более детальных настроек с большим количеством экспериментов. В качестве самостоятельного задания вы можете попробовать выполнить расчеты с другими видами ткани и даже составить и сохранить свои собственные настройки для их последующего применения.
Анимация движения танковой гусеницыЕсли вы занимаетесь моделированием и анимацией в программе 3ds Max, вы, скорее всего, уже хотя бы раз создавали колесную и гусеничную технику. Выполняя модели такого уровня сложности, всегда хочется добавить в них какую-нибудь «изюминку». Таким дополнением может послужить анимация движения. В данном разделе рассмотрим один из способов создания и анимации танковой гусеницы. Для выполнения данного упражнения необходимо загрузить начальную сцену trackstart.max с объектами, которые нам понадобятся в работе (рис. 8.64). Она находится на прилагаемом к книге DVD в папке Examples\Глава 08\Track. Рис. 8.64. Окно проекции Perspective (Перспектива) после загрузки стартовой сцены Сначала необходимо построить последовательность гусеничных звеньев. Это можно сделать двумя способами: ¦ создать длинную цепочку из повторяющихся элементов, а затем деформировать ее по сплайну; ¦ используя сплайн, анимировать одно звено, а затем создать копии этого звена со смещением: один кадр анимации – одно звено. Воспользуемся вторым способом для создания статической геометрии, а затем создадим и анимируем звенья танковой гусеницы с помощью сценария. Сначала необходимо вычислить количество копий звена, которые нам понадобятся, а затем анимировать звено гусеницы по сплайну пути. Для этого выполните следующее. 1. В окне проекции Top (Сверху) увеличьте масштаб звена гусеницы так, чтобы оно заняло максимально возможную площадь (так будет проще выполнять измерения, и они будут точнее). 2. Измерьте поперечную ширину звена, исключая размер выступающих шипов (реальный размер, который будут иметь звенья, составленные в цепочку). Для этого воспользуйтесь командой главного меню Tools > Measure Distance (Инструменты > Измерить расстояние). После выполнения команды щелкните на начальной и конечной точках замеряемого участка и на строке состояния. В результате в поле ввода макрокоманды появится необходимая цифра. В моем случае это 3,805 (рис. 8.65). Рис. 8.65. Строка состояния с результатами замера 3. Узнайте длину сплайна, который является формой пути для гусеницы. Для этого достаточно выделить сам сплайн и воспользоваться утилитой Measure (Линейка), находящейся на вкладке Utilities (Утилиты) командной панели. В области Shapes (Формы) будет указана длина сплайна (рис. 8.66). 4. Разделите длину сплайна на ширину звена, и вы получите необходимое количество копий, а также кадров анимации. Я округлил значение, и в результате у меня получилось 90. 5. Измените количество кадров анимации до 90. Для этого нажмите кнопку Time Configuration (Настройка временных интервалов) в правом нижнем углу окна 3ds Max. В открывшемся окне задайте параметру End Time (Время окончания) области Animation (Анимация) значение 90 (рис. 8.67). Рис. 8.66. Настройки утилиты Measure (Линейка) Рис. 8.67. Окно Time Configuration (Настройка временных интервалов) с измененным количеством кадров анимации Для создания анимации сделайте следующее. 1. В одном из окон проекций выделите звено. 2. Выполните команду Animation > Constraints > Path Constraint (Анимация > Ограничения > Ограничение по пути) и укажите на сплайн trackpath. В результате он будет использован в качестве формы пути. 3. В свитке Path Parameters (Параметры пути) настроек контроллера на командной панели установите флажок Follow (Следовать), чтобы объект поворачивался вместе с поворотом кривой. Установите также флажок Allow Upside Down (Разрешить переворачиваться) (по умолчанию контроллер придерживается одной локальной оси, а у нас замкнутая кривая), выберите ось Y и установите флажок Flip (Обратить) (рис. 8.68). 4. Выделите звено и создайте его копию. Для этого воспользуйтесь командой главного меню Tools > Snapshot (Инструменты > Снимок). В открывшемся одноименном окне установите переключатель в положение Range (Диапазон) и задайте следующие значения параметрам: From (От) – 0, To (До) – 89 и Copies (Копии) – 90. В качестве метода клонирования выберите Instance (Образец) (рис. 8.69). Рис. 8.68. Свиток Path Parameters (Параметры пути) настроек контроллера Рис. 8.69. Настройки создаваемых копий в окне Snapshot (Снимок)
Результат клонирования одного звена представлен на рис. 8.70. Таким же образом строятся и другие статические последовательности объектов, например элементы ограждения, столбы, кнопки и даже ресницы. Рис. 8.70. Копии звеньев, созданные с помощью инструмента Snapshot (Снимок) Итак, приступим к анимации. Выполнить вручную анимацию такого количества объектов достаточно сложно, даже если речь идет о простом повторении нескольких операций. Все было бы просто, если бы нам пришлось настроить анимацию двух или даже десяти звеньев, но у нас их девяносто. Придется обратиться к макросценарию, который позволит автоматизировать этот процесс. Звучит пугающе, но попробуем все сложности свести к минимуму. Сохраните и закройте выполненную сцену. Затем загрузите с прилагаемого DVD начальный файл данного упражнения trackstart.max из папки Examples\Глава 08\Track. Программа 3ds Max обладает возможностью отслеживать и записывать почти все команды и действия, выполняемые в процессе работы. Делается это при помощи модуля MAXScript Listener (Интерпретатор MAXScript). Его окно можно открыть, выполнив команду главного меню MAXScript > MAXScript Listener (MAXScript > Интерпретатор MAXScript) или нажав клавишу F11. Мы используем его в качестве основного источника списка будущих макрокоманд. Но сначала рассмотрим кратко, что нам надо будет сделать для создания анимированной гусеницы. В первую очередь нам понадобится анимировать имеющееся звено при помощи контроллера Path Constraint (Ограничение по пути). Затем, используя единственный анимированный параметр этого контроллера (процент пути, пройденный звеном гусеницы в пределах анимированного участка), привяжем к нему созданные копии этого объекта, выполнив их относительное смещение. Таким образом, мы получим один родительский объект, который позволит управлять скоростью движения всей гусеницы путем изменения времени прохождения этим объектом полного цикла. Иными словами, изменяя время, за которое одно звено гусеницы пройдет полный круг. Начнем с настройки записи макрокоманд. Откройте окно MAXScript Listener (Интерпретатор MAXScript), для чего используйте либо одноименную команду главного меню MAXScript, либо клавишу F11. В появившемся окне выполните команду меню MacroRecoder > Enable (Запись макроса > Включить) для включения записи всех производимых команд (рис. 8.71). Рис. 8.71. Настройки меню MacroRecoder (Запись макроса) В результате окно интерпретатора разделится на две части: в верхней будут выводиться макрокоманды, соответствующие выполняемым действиям, а в нижней – отладочная информация. Одновременно нижнее окно является и полем для ввода макрокоманд. Посмотрим, как это все работает. Выделите в окне проекции Top (Сверху) сцены звено гусеницы и копируйте его через буфер обмена (или любым доступным способом) с помощью сочетаний клавиш копирования Ctrl+N и вставки Ctrl+V. В результате в верхней части окна появится запись, состоящая из четырех строк. Для исполнения этого кода откройте окно редактора макрокоманд, выполнив команду главного меню MAXScript > New Script (MAXScript > Создать макрос). В окне отладчика выделите строки, созданные программой автоматически, и перетащите их в окно редактора. Закомментируйте вторую строку, поставив перед ней два минуса, так как она вызывает окно диалога клонирования объекта и нам не нужна (рис. 8.72). Выполните макрос, воспользовавшись командой меню данного окна Tools > Evaluate All (Инструменты > Оценить все) и предварительно удалив построенную ранее копию звена. Проверьте список объектов, вызвав его кнопкой Select by Name (Выделить по имени) и убедитесь в том, что макрос создал копию объекта track. Рис. 8.72. Окно редактора макрокоманд Итак, вы написали свой первый макрос (если, конечно, не делали этого ранее) и проверили его исполнение. Дополним его необходимыми командами и напишем полный цикл создания и редактирования новых звеньев. В первую очередь нужно анимировать движение звена по пути и получить эту часть макрокоманды для записи в код. Для этого выполните следующее. 1. В одном из окон проекций выделите звено (объект track). 2. Перейдите на вкладку Motion (Движение) командной панели и в свитке Assign Controller (Назначить контроллер) выберите строку Position: Position XYZ (Положение: положение по XYZ) (рис. 8.73). 3. В этом же свитке щелкните на кнопке Assign Controller (Назначить контроллер) и в появившемся окне Assign Position Controller (Назначить контроллер положения) выберите строку Path Constraint (Ограничение по пути) (рис. 8.74). 4. В свитке Path Parameters (Параметры пути) щелкните на кнопке Add Path (Добавить путь) и в одном из окон проекций укажите на сплайн пути track_path. 5. В этом же свитке в области Path Options (Параметры пути) установите флажки Follow (Следовать) и Allow Upside Down (Разрешить переворачиваться). В области Axis (Оси) выберите ось Y и установите флажок Flip (Обратить). Как вы видите, настройки такие же, как и для построения статических копий звена (см. рис. 8.68). После выполнения описанных операций откройте окно MAXScript Listener (Интерпретатор MAXScript). Выделите и переместите в окно редактора макрокоманд пять последних строк, относящихся к выбору и настройке контроллера Path Constraint (Ограничение по пути) (рис. 8.75). Если бы мы сейчас запустили на выполнение этот код, то у нас было бы создано еще одно звено, а копии звена с именем track01 был бы присвоен контроллер Path Constraint (Ограничение по пути). Но обратите внимание на то, что, когда мы выбирали сплайн пути, интерпретатор не внес соответствующую строку в список выполненных операций. В связи с этим в конец кода необходимо дописать в окно редактора следующую строку: $.pos.controller.path=$track path. Рис. 8.73. Свиток Assign Controller (Назначить контроллер) настроек объекта track Рис. 8.74. Окно Assign Position Controller (Назначить контроллер положения) Рис. 8.75. Окно редактора макрокоманд после добавления кода У контроллера Path Constraint (Ограничение по пути) существует один анимируемый параметр – Percent (Проценты), который определяет проценты пройденного объектом пути. Этому параметру автоматически было задано значение нулевого и последнего кадра анимации. Но нам не нужна анимация, устанавливаемая по умолчанию, мы собираемся привязывать все копируемые объекты к одному звену – track. В связи с этим нам необходимо удалить сгенерированные автоматически ключи анимации. Это можно сделать, добавив в код еще одну строку – deleteKeys $.pos.controller.percent.keys.
Если сейчас запустить код на исполнение, то мы получим копию объекта track, к которому будет применен контроллер движения вдоль пути track_path, и все ключи анимации будут удалены из контроллера. Далее нужно построить зависимость, при которой созданная копия объекта будет следовать за основным объектом. Для этого необходимо выполнить следующее. 1. Выделите в одном из окон проекций или выберите из списка скопированный объект track01. 2. Перейдите к свитку Assign Controller (Назначить контроллер), щелкните на плюсике, расположенном рядом со строкой Position: Path Constraint (Положение: ограничение по пути), и выберите в открывшемся списке строку Percent: Linear Float (Проценты: линейное значение с плавающей точкой) (рис. 8.76). 3. Щелкните на кнопке Assign Controller (Назначить контроллер) и в появившемся окне Assign Float Controller (Назначить контроллер с плавающей точкой) выберите строку Float Script (Сценарий, использующий значения с плавающей точкой). 4. Щелкните на кнопке OK – откроется окно для ввода сценария. Закройте это окно. 5. Обратитесь к окну MAXScript Listener (Интерпретатор MAXScript), выделите и переместите в окно редактора макрокоманд последнюю строку кода. То, что мы сейчас сделали, позволило нам записать в окно редактора макрокоманд строку кода, меняющую контроллер, созданный по умолчанию, на свой, который можно редактировать с использованием сценария. На рис. 8.77 представлен вид редактора со всеми полученными до настоящего момента командами. Теперь нужно добавить в окно редактора несколько строк, написанных самостоятельно, без помощи окна MAXScript Listener (Интерпретатор MAXScript). 1. Добавьте первой строкой for i = 1 to 90 do(. Таким образом мы создаем цикл, выполняющий выражение, которое находится внутри круглых скобок, начиная от 1 до 90. Число 90 – это количество копий звена танковой гусеницы (если помните, мы рассчитали их ранее). 2. Удалите закомментированную вторую строку. 3. В конце кода допишите: $.pos.controller.percent.controller.script ="at time (currenttime) $track.pos.controller.percent*0.01+ 0.011*"+i as string. В первой части этого выражения мы обращаемся к контроллеру управления по коду, созданному в предыдущей строке, и присваиваем ему строковое выражение, находящееся в правой части. Это означает следующее. В текущий момент времени (at time (currenttime) ) контроллеру выделенного объекта, управляющему процентами ($.pos.controller.percent.controller.script), присваиваем значение процентов контроллера объекта track ($track.pos. controller.percent), деленное на 100 (так как на самом деле значение процентов считается не от 0 до 100, а от 0 до 1, то есть используем выражение *0.01), и задаем смещение на одно звено (общие проценты пути, деленные на количество звеньев: 1/90=0.011). Затем это выражение умножаем на порядковый номер (он же номер кадра), который в первой строке присваивается переменной i. Но так как код записывается в виде строковой переменной, числовое значение необходимо вынести за кавычки и обозначить как строковую переменную (i as string), оставив в кавычках знак умножения. Умножение на число i позволит каждому новому звену смещаться на соответствующую величину. Рис. 8.76. Свиток Assign Controller (Назначить контроллер) настроек объекта track01 Рис. 8.77. Окно редактора макрокоманд на данном этапе 4. И наконец, две последние строки кода будут указывать на то, что вся анимация до первого ключевого кадра и после последнего будет повторяться, то есть станет непрерывной, вне зависимости от положения ключевых кадров на шкале анимации. Добавьте эти строки: • setBeforeORT $.pos.controller.percent.controller #cycle • setAfterORT $.pos.controller.percent.controller #cycle 5. Завершает код закрывающая круглая скобка (рис. 8.78).
Код готов, но прежде, чем запускать его, необходимо выполнить некоторую подготовительную работу. Выделите объект track и переместите правый ключ анимации объекта в 400 кадр анимации или дальше. Чем дальше расположить этот ключ, тем медленнее будет двигаться гусеница танка, причем ее движение можно ускорить, переместив этот же ключ к началу временного диапазона. Рис. 8.78. Окончательный код в окне редактора макрокоманд
Для этого задайте общее количество кадров анимации равным не менее 400. Для этого откройте окно Time Configuration (Настройка временных интервалов) и в поле End Time (Время окончания) введите значение 400. После этого в одном из окон проекций выделите объект track и передвиньте ключевой кадр из 100, созданного по умолчанию, в 400.
Теперь необходимо установить зацикливание для анимации главного звена. Для этого выделите объект track и откройте окно редактора кривых командой Graph Editors > Track View – Curve Editor (Графические редакторы > Просмотр треков – редактирование кривых). В левой части появившегося окна выберите анимированный трек для выделенного объекта (рис. 8.79). Рис. 8.79. Окно редактора кривых с выделенным треком анимации процентов контроллера Path Constraint (Ограничение по пути) В окне редактора кривых щелкните на кнопке Parameter Curve Out-of-Range Types (Типы экстраполяции параметрических кривых) В открывшемся окне Param Curve Out-of-Range Types (Типы экстраполяции параметрических кривых) щелкните на кнопках со стрелками под значком Cycle (Циклический) (рис. 8.80). Рис. 8.80. Окно Param Curves Out-of-Range Types (Типы экстраполяции параметрических кривых) с установленным параметром циклического повторения анимации Теперь все готово к выполнению сценария. Очистите сцену от созданных в процессе экспериментов с кодированием объектов и запустите выполнение сценария. В результате будет создано 90 копий звена гусеницы, распределенных по всей длине сплайна. Запустите воспроизведение анимации и убедитесь, что анимация работает и гусеница движется по сплайну.
Сейчас анимируем вращение колес, по которым движется гусеница. Очевидно, что колесо выполнит столько оборотов за один оборот гусеницы, сколько длин окружностей колеса укладывается в длине сплайна. Разберемся в этом на практике. Сначала узнаем диаметр колеса. Для этого выделите большое колесо и на вкладке Utilities (Утилиты) командной панели щелкните на кнопке Measure (Линейка). В области Dimensions (Размеры) посмотрите размер колеса по осям Y и Z. Таким образом, диаметр колеса в нашем случае – 16,693. Как известно, длина окружности составляет ? ¦ D, где число ? – постоянная величина, а D – диаметр колеса. Таким образом, длина окружности большого колеса равна 3,14 • 16,693 = 52,4066. Разделив длину сплайна пути trackpath на полученную величину, узнаем, сколько оборотов сделает колесо за один оборот гусеницы: 344,721 /52,4066 = 6,578. Теперь нужно привязать вращение колеса к скорости движения гусеницы. Это можно сделать, воспользовавшись анимацией процентов пройденного пути.
Для этого сделайте следующее. 1. Выделите колесо Wheel01 и перейдите к свитку Assign Controller (Назначить контроллер) вкладки Motion (Движение) командной панели. 2. В свитке Assign Controller (Назначить контроллер) раскройте список контроллеров для осей поворота и выберите строку Y Rotation: Bezier Float (Y-поворот: значение Безье с плавающей точкой) (рис. 8.81). Рис. 8.81. Свиток Assign Controller (Назначить контроллер) объекта Wheel01 3. Щелкните на кнопке Assign Controller (Назначить контроллер) и выберите из появившегося списка контроллер Float Expression (Выражение с плавающей точкой). Щелкните на кнопке OK для подтверждения выбора. 4. В области Create Variables (Создать переменную) открывшегося окна Expression Controller (Контроллер выражения) создайте переменную pathPerc. Для этого в поле Name (Имя) введите имя переменной и щелкните на кнопке Create (Создать) (рис. 8.82). 5. В нижней части окна щелкните на кнопке Assign to Controller (Назначить контроллеру) и в появившемся окне Track View Pick (Выбрать трек) выберите объект track. Раскройте списки его параметров и активизируйте строку Percent: Linear Float (Проценты: линейное значение с плавающей точкой) (рис. 8.83). Рис. 8.82. Переменная pathPerc, созданная в окне Expression Controller (Контроллер выражения) Рис. 8.83. Окно Track View Pick (Выбрать трек) 6. В области Expression (Выражение) окна Expression Controller (Контроллер выражения) введите следующее выражение: degToRad(6.578*360*pathPerc) и щелкните на кнопке Evaluate (Оценить). Разберем это выражение. Функция degToRad(), как вы уже знаете, переводит градусы, которыми удобно оперировать пользователю, в радианы, с которыми работает 3ds Max. Выражение в скобках определяет угол поворота колеса в градусах: количество оборотов колеса на один оборот гусеницы, рассчитанный нами ранее (6,578), умноженное на 360° (один полный оборот в градусах) и на процент пройденного пути, который мы получаем от объекта track, используя созданную нами переменную pathPerc. 7. Проверьте анимацию, нажав кнопку Play Animation (Воспроизвести анимацию) Колесо должно вращаться вместе с вращением гусеницы. Теперь нужно связать анимированное колесо с остальными колесами. Это просто сделать, если воспользоваться окном Parameter Wire Dialog (Окно параметров связей) следующим образом. 1. Выполните команду меню Animation > Wire Parameters > Parameter Wire Dialog (Анимация > Параметры связей > Окно параметров связей). 2. В левой части открывшегося окна Parameter Wiring (Связываемые параметры) выберите из списка анимированное колесо (Wheel01). Разверните список параметров выбранного объекта, щелкнув на плюсе слева от имени, и выберите из списка строку Y Rotation: Float Expression (Y-поворот: выражение с плавающей точкой). 3. В правой части окна Parameter Wiring (Связываемые параметры) выберите из списка следующее большое колесо – Wheel02. Разверните список его параметров и выберите строку Y Rotation: Bezier Float (Y-поворот: значение Безье с плавающей точкой). 4. Щелкните на кнопке со стрелкой, направленной вправо. В результате выбранный параметр объекта слева будет управлять выбранным параметром объекта справа. 5. Щелкните на кнопке Connect (Соединить) для завершения создания связи (рис. 8.84). 6. Повторите вышеописанные операции назначения связей для двух оставшихся больших колес. В моем случае это колеса Wheel03 и Wheel04. Для меньших колес, расположенных в верхней части гусеницы, необходимо изменить выражение в поле Expression for Y_Rotation (Функция для поворота по оси Y) на следующее: Y Rotation+degToRad((7.379-6.578)*360) (рис. 8.85). Это выражение означает, что угол поворота по оси Y малого колеса будет равняться углу поворота большого колеса плюс угол, который получился из разницы количества оборотов большого и малого колес, умноженной на 360°. Количество оборотов малого колеса считается по той же формуле, что и для большого, то есть длина пути делится на длину окружности колеса. Рассмотрим, как повысить реалистичность сцены и внести изменения в анимацию гусеницы для учета неровности дороги. Это можно сделать при помощи управления положением вершин сплайна пути trackpath, привязанным к колесам. Для этого выполните следующее. 1. Нажмите на панели инструментов кнопку Select by Name (Выделить по имени) и выберите из списка все объекты, в имени которых есть слово track, то есть все звенья танковой гусеницы. Рис. 8.84. Окно Parameter Wiring (Связываемые параметры) для большого колеса Рис. 8.85. Окно Parameter Wiring (Связываемые параметры) для малого колеса 2. Щелкните на выделении правой кнопкой мыши и выберите из контекстного меню команду Hide Selection (Спрятать выделенное). 3. В окне проекции Left (Слева) немного выше правого верхнего колеса постройте объект Rectangle (Прямоугольник) небольшого размера (рис. 8.86). Форма и размер этого объекта не имеют принципиального значения, так как он играет роль вспомогательного объекта, к которому будут привязываться вершины сплайна пути. Рис. 8.86. Прямоугольник, построенный над колесом 4. Выделите созданный прямоугольник, если он не остался выделенным после построения, и перейдите на вкладку Utilities (Утилиты) командной панели. В одноименном свитке щелкните на кнопке Reset XForm (Сбросить преобразования).
5. В окне проекции Left (Слева) выберите сплайн пути (track_path) и перейдите на вкладку Modify (Изменение) командной панели. 6. Перейдите на уровень редактирования вершин и выберите две вершины, расположенные рядом с правым верхним колесом (рис. 8.87). 7. Примените к выбранным вершинам модификатор Linked XForm (Связанное преобразование), выбрав его из списка модификаторов вкладки Modify (Изменение). 8. В свитке Parameters (Параметры) настроек модификатора Linked XForm (Связанное преобразование) щелкните на кнопке Pick Control Object (Указать контролирующий объект) и в одном из окон проекций выберите построенный прямоугольник (рис. 8.88). Рис. 8.87. Вершины, выбранные для редактирования Рис. 8.88. Свиток Parameters (Параметры) настроек модификатора Linked XForm (Связанное преобразование) 9. Проверьте сделанную привязку, для чего в окне проекции Left (Слева) выделите и произвольно переместите прямоугольник. Вместе с прямоугольником должны перемещаться вершины сплайна пути. 1 0. Отмените выполненные перемещения, чтобы вершины сплайна пути вернулись в исходное состояние. 1 1. Привяжите к прямоугольнику правое верхнее колесо. Для этого нажмите кнопку Select and Link (Выделить и связать) на главной панели инструментов, затем щелкните на колесе и, когда указатель примет соответствующий вид, перетащите его на прямоугольник. 1 2. Снова проверьте правильность привязки, перемещая прямоугольник: теперь вместе с вершинами сплайна будет перемещаться колесо. Далее необходимо выполнить такие же привязки для всех остальных колес. Отличие состоит лишь в том, что для выбора необходимых вершин применяется модификатор SplineSelect (Выбор сплайна) или Edit Spline (Редактирование сплайна). Рассмотрим пример привязки следующего колеса. 1. Скопируйте прямоугольник или постройте новый и разместите его напротив второго колеса (рис. 8.89). Рис. 8.89. Расположение второго управляющего прямоугольника 2. Если вы построили новый прямоугольник, то сбросьте преобразования, для чего перейдите на вкладку Utilities (Утилиты) командной панели и в одноименном свитке щелкните на кнопке Reset XForm (Сбросить преобразования). 3. Вернитесь к стеку модификаторов сплайна пути, для чего выделите сплайн track_path и перейдите на вкладку Modify (Изменение) командной панели. 4. Выберите из списка модификаторов строку SplineSelect (Выбор сплайна) и перейдите на уровень редактирования вершин. 5. Выделите две вершины, расположенные у основания второго колеса. 6. Примените к выбранным вершинам модификатор Linked XForm (Связанное преобразование), выбрав его из списка модификаторов. В результате стек модификаторов будет выглядеть, как показано на рис. 8.90. Рис. 8.90. Стек модификаторов объекта track_path после привязки второй группы вершин 7. В свитке Parameters (Параметры) настроек модификатора Linked XForm (Связанное преобразование) щелкните на кнопке Pick Control Object (Указать контролирующий объект) и в одном из окон проекций выберите второй прямоугольник. 8. Привяжите ко второму прямоугольнику второе колесо. Для этого нажмите кнопку Select and Link (Выделить и связать) на главной панели инструментов, затем щелкните на колесе и, когда указатель примет соответствующий вид, перетащите его на прямоугольник. 9. Проверьте анимацию. После анимирования всех необходимых объектов можно переходить к тонкой настройке анимации, включая скорость движения, положение в пространстве и т. д., а затем визуализировать ее.
Звук в 3ds МахНаверное, любой специалист, занимающийся видеороликами, скажет, что проще всего звук накладывать в программах постобработки, то есть после того, как выполнена вся анимация. И будет прав, однако бывают случаи, когда необходимо настраивать под звуковую дорожку движения персонажей или объектов. При этом не обойтись без звука в самом приложении. В данном разделе мы рассмотрим возможность использования звука в 3ds Max для создания анимации вибрирующих динамиков и анализатора частотного спектра аудиоаппаратуры. Как обычно, для выполнения упражнения понадобится базовая сцена, которую вы можете загрузить из папки Examples\Глава 08\Sound_wave прилагаемого к книге DVD. Файл называется sound_wave_start.max. Все, что нам необходимо для работы, – это модель акустического динамика и параметрический объект Plane (Плоскость), на основе которого будем строить анализатор частотных характеристик звука. Начнем с анимации динамика. В первую очередь необходимо заставить мембрану динамика двигаться в такт музыке. Это проще всего сделать, анимировав выделенные вершины при помощи модификатора Linked XForm (Связанное преобразование) и контроллера AudioFloat (Звук, использующий значения с плавающей точкой). Для этого сделайте следующее. 1. В окне проекции Top (Сверху) постройте вспомогательный объект-пустышку, выполнив команду Create > Helpers > Dummy (Создание > Вспомогательные объекты > Пустышка). 2. Используя инструмент Select and Move (Выделить и переместить) переместите построенный объект Dummy01 так, чтобы он находился прямо перед динамиком (рис. 8.91). 3. В одном из окон проекций выделите динамик (объект speakerR) и в стеке модификаторов вкладки Modify (Изменение) командной панели щелкните на плюсике в строке Editable Poly (Редактируемая полигональная поверхность), а в раскрывшемся списке выберите строку Vertex (Вершина). 4. В окне проекции Front (Спереди) выделите вершины, находящиеся внутри динамика (рис. 8.92) (при необходимости обратитесь к цветной иллюстрации, расположенной на диске в папке Images\Глава 08). Рис. 8.91. Положение объекта Dummy01 в окне проекции Top (Сверху) Рис. 8.92. Восемь рядов вершин, выделенных внутри динамика
Можно также выделить одну точку, расположенную в середине динамика, и в свитке Selection (Выделение) щелкнуть восемь раз на кнопке Grow (Увеличить), увеличив выделяемую область до нужного размера. 5. Назначьте выделению модификатор Linked XForm (Связанное преобразование), выполнив команду Modifiers > Animation > Linked XForm (Модификаторы > Анимация > Связанное преобразование). 6. В свитке Parameters (Параметры) настроек модификатора Linked XForm (Связанное преобразование) щелкните на кнопке Pick Control Object (Указать контролирующий объект) и в одном из окон проекций выберите объект Dummy01. 7. На главной панели инструментов активизируйте инструмент Select and Move (Выделить и переместить) и в окне проекции Left (Слева) переместите вспомогательный объект-пустышку Dummy01 в сторону от динамика. При перемещении пустышки должна двигаться и привязанная к ней часть вершин динамика. Если этого не происходит, повторите привязку вершин к вспомогательному объекту. 8. Верните объект-пустышку в первоначальное положение, выполнив команду Undo (Отменить) или воспользовавшись сочетанием клавиш Ctrl+Z. Далее необходимо назначить вспомогательному объекту Dummy01 контроллер управления положением по звуку.
Программа 3ds Max поддерживает два формата звуковых файлов: WAV и AVI. В связи с этим необходимо конвертировать имеющуюся звуковую дорожку в один из этих форматов. Для этого можно использовать как специализированные программы редактирования звука (такие как Sound Forge), так и простые проигрыватели (например, Winamp). Увеличьте время анимации до двух с половиной минут. Именно такое время длится звуковая дорожка, которую мы будем использовать в данном упражнении. Для увеличения времени анимации щелкните на кнопке Time Configuration (Настройка временных интервалов) и в области Animation (Анимация) открывшегося окна измените значение параметра End Time (Время окончания) на 4500 кадров (из расчета 30 кадров в секунду). Можно также установить отображение единиц времени в минутах, секундах и тиках, соответственно, в таком же формате устанавливается значение счетчика End Time (Время окончания). Вернемся к анимации. Прежде всего необходимо «заморозить» трансформацию положения вспомогательного объекта Dummy01, чтобы обнулить все значения координат по осям X, Y и Z. Это облегчит работу с контроллером, использующим звуковую дорожку. Кроме того, следует загрузить в программу звуковой файл, чтобы иметь возможность контролировать процесс анимации не только визуально, но и вместе со звуком. Для этого выполните следующие действия. 1. В одном из окон проекций выделите объект-пустышку Dummy01. 2. Удерживая нажатой клавишу Alt, щелкните правой кнопкой мыши в окне проекции. В результате появится контекстное меню. Рис. 8.93. Контекстное меню с выбором команды, замораживающей все трансформации 3. В группе transform (Трансформации) щелкните на строке Freeze Transform (Заморозить трансформацию) (рис. 8.93), после чего откроется окно с предупреждением о том, что могут быть утеряны ранее выполненные трансформации или анимация. В данном случае это как раз то, что нам нужно. На вопрос о том, желаете ли вы продолжить, ответьте утвердительно. 4. Откройте редактор кривых командой Graph Editors > Track View – Curve Editor (Графические редакторы > Просмотр треков – редактирование кривых). 5. В левой части редактора кривых выберите строку Sound (Звук) (рис. 8.94) и щелкните на ней правой кнопкой мыши, в результате чего откроется контекстное меню. Рис. 8.94. Окно редактора кривых 6. В контекстном меню выберите строку Properties (Свойства). 7. В открывшемся окне Sound Option (Свойства звука) щелкните на кнопке Choose Sound (Выбор звука) и укажите путь к звуковому файлу. Вы можете выбрать собственный звуковой файл или воспользоваться файлом Sound.wav, расположенным в папке Examples\Глава 08\Sound_wave прилагаемого к книге DVD. 8. Протестируйте выполненные действия, запустив воспроизведение анимации. Во время проигрывания анимации должен звучать выбранный звуковой файл. Теперь можно продолжить присвоение объекту Dummy01 контроллера, управляющего перемещением по оси Y (перпендикулярно динамику). 1. Выделите вспомогательный объект Dummy01 (если он не выделен) и перейдите на вкладку Motion (Движение) командной панели. 2. В свитке Assign Controller (Назначить контроллер) щелкните на плюсике, расположенном рядом со строкой Position: Position List (Положение: список положения), для раскрытия списка контроллеров положения. 3. Раскройте строку Zero Pos XYZ: Position XYZ (Нулевое положение по XYZ: положение по XYZ) и выберите строку Y Position (Положение по оси Y). 4. Щелкните на кнопке Assign Controller (Назначить контроллер) и в раскрывшемся окне Assign Float Controller (Назначить контроллер с плавающей точкой) выберите строку AudioFloat (Звук, использующий значения с плавающей точкой) (рис. 8.95). 5. В появившемся окне Audio Controller (Контроллер звука) щелкните на кнопке Choose Sound (Выбор звука) и укажите путь к звуковому файлу. 6. В области Controller Range (Диапазон контроллера) увеличьте значение параметра Max (Максимум) до 30. В зависимости от уровня записи, которую вы используете, величина максимального значения может быть меньше или больше. 7. В области Channel (Канал) установите переключатель в положение Right (Правый) (рис. 8.96). Рис. 8.95. Окно Assign Float Controller (Назначить контроллер с плавающей точкой) Рис. 8.96. Настройки окна Audio Controller (Контроллер звука) для правого динамика 8. Закройте окно Audio Controller (Контроллер звука) и проверьте анимацию. Объект-пустышка и связанный с ним динамик должны колебаться в такт музыке. Скопируйте динамик вместе с объектом-пустышкой. Для этого в окне проекции Front (Спереди) выделите оба объекта и, удерживая нажатой клавишу Shift, переместите их вправо на 680 единиц (величину смещения можно увидеть в строке информации в нижней части окна 3ds Max). В качестве способа копирования укажите Copy (Независимая копия объекта).
После копирования новый динамик унаследует старые связи, что вызовет нежелательную трансформацию. Избавиться от них просто – достаточно на вкладке Modify (Изменение) командной панели переопределить объект контроля. Для этого в свитке Parameters (Параметры) настроек модификатора Linked XForm (Связанное преобразование) необходимо щелкнуть на кнопке Pick Control Object (Указать контролирующий объект) и в одном из окон проекций указать на новый вспомогательный объект-пустышку Dummy02. Последнее, что осталось сделать для анимации динамиков, – изменить для вновь построенного динамика звуковой канал. Для этого выполните следующее. 1. Выделите новый объект-пустышку Dummy02. 2. Перейдите на вкладку Motion (Движение) командной панели и в свитке Assign Controller (Назначить контроллер) выберите строку с именем Y Position (Положение по оси Y), расположенную внутри списка Zero Pos XYZ: Position XYZ (Нулевое положение по XYZ: положение по XYZ). 3. Щелкните на строке Y Position (Положение по оси Y) правой кнопкой мыши и выберите из контекстного меню строку Properties (Свойства). 4. В области Channel (Канал) открывшегося окна Audio Controller (Контроллер звука) установите переключатель в положение Left (Левый) (рис. 8.97). Рис. 8.97. Окно Audio Controller (Контроллер звука) с установленным каналом для левого динамика 5. Закройте окно и проверьте анимацию. Оба динамика должны вибрировать в такт музыке. В начале данного раздела мы говорили о том, что будем анимировать не только динамики, но и анализатор частотного спектра аудиоаппаратуры. На самом деле это будет не настоящий анализатор частоты, а только его имитация, так как все, что мы можем получить от звукового файла, – это характеристики каналов и их смешанное значение, которые не имеют никакого отношения к частотным характеристикам звука. Перейдите на вкладку Display (Дисплей) командной панели и в свитке Hide (Спрятать) щелкните на кнопке Unhide by Name (Отобразить по имени), в результате чего откроется окно со списком спрятанных объектов. Выберите из него объект analyzer_wave и щелкните на кнопке Unhide (Отобразить). Этот объект – будущая панель анализатора спектра, разделенная на десять сегментов по горизонтали (по количеству каналов, которые мы будем анимировать). Рассмотрим, как будет работать наш анализатор. Есть несколько способов отображения и передачи информации звукового контроллера параметрам объекта. Мы будем использовать анимированный материал. Такой подход позволит получить приемлемый результат, не создавая дополнительной геометрии. Можно построить сложный материал, основанный на серии масок для каждого канала, однако такой способ может оказаться достаточно трудным для начинающих. По этой причине мы создадим многокомпонентный материал, каждый компонент которого будет являться копией одного материала с измененными параметрами звукового контроллера (для получения колебаний различной амплитуды). 1. В одном из окон проекций выделите объект analyzer_wave и перейдите на вкладку Modify (Изменение) командной панели. 2. Выберите из списка модификаторов (или выполните соответствующую команду главного меню) модификатор Edit Mesh (Редактирование поверхности). 3. Перейдите на уровень редактирования полигонов, для чего в свитке Selection (Выделение) щелкните на кнопке Polygon (Полигон) 4. В окне проекции Front (Спереди) выделите первый полигон и присвойте ему первый идентификатор материала, для чего задайте параметру Set ID (Установить идентификатор материала) из свитка Surface Properties (Свойства поверхности) значение 1 (рис. 8.98) и нажмите на клавиатуре Enter для подтверждения внесенных изменений. 5. Выделите второй полигон объекта analyzer_wave и установите идентификатор материала равным 2. 6. Проделайте вышеописанные операции для оставшихся восьми полигонов, присвоив им идентификаторы материала согласно порядку их следования. Для создания и настройки базовых параметров материала сделайте следующее. 1. Откройте редактор материалов, выполнив команду Rendering > Material Editor (Визуализация > Редактор материалов) или нажав клавишу M. Рис. 8.98. Установка идентификатора материала для первого полигона анализатора спектра 2. Выберите ячейку со свободным материалом и щелкните на кнопке Standard (Стандартный), расположенной справа от имени материала. 3. В появившемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка материал Multi/Sub-Object (Многокомпонентный). На вопрос Keep old material as sub-material? (Оставить старый материал в качестве компонента?) ответьте утвердительно. 4. В свитке Multi/Sub-Object Basic Parameters (Базовые параметры многокомпонентного материала) щелкните на кнопке с именем первого материала. В результате появятся его настройки. 5. В области Self-Illumination (Собственное свечение) свитка Blinn Basic Parameters (Базовые параметры раскраски по Блинну) задайте параметру Color (Цвет) значение 100. Это позволит имитировать яркий светящийся индикатор. 6. В свитке Maps (Карты текстур) нажмите кнопку None (Отсутствует), расположенную справа от Diffuse Color (Цвет рассеивания). 7. В открывшемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка карту Gradient Ramp (Улучшенный градиент) (рис. 8.99) и щелкните на кнопке OK для подтверждения выбора и закрытия окна. 8. После выбора карты Gradient Ramp (Улучшенный градиент) в окне редактора материалов автоматически отобразятся свитки параметров этой карты. В свитке Gradient Ramp Parameters (Параметры улучшенного градиента) необходимо настроить следующие цвета флагов градиента: • для первого флага, расположенного в позиции 0, установите зеленый цвет со значениями Red (Красный) – 0, Green (Зеленый) – 255, Blue (Синий) – 0. Для этого дважды щелкните на флаге и в открывшемся окне Color Selector (Выбор цвета) задайте значения цветовых каналов; Рис. 8.99. Выбор карты улучшенного градиента в окне Material/Map Browser (Окно выбора материалов и карт) • для флага, расположенного в позиции 100, задайте красный цвет: Red (Красный) – 255, Green (Зеленый) – 0, Blue (Синий) – 0; • флаг, расположенный посередине (в позиции 50), передвиньте в позицию 70 и установите желтый цвет: Red (Красный) – 255, Green (Зеленый) – 220, Blue (Синий) – 20.
9. Поверните градиентную карту в вертикальное положение, задав параметру W области Angle (Угол) свитка Coordinates (Координаты) значение -90 (рис. 8.100). 10. Вернитесь к свитку Maps (Карты текстур), щелкнув на панели инструментов редактора материалов на кнопке Go to Parent (Вернуться к исходному) Перейдем к настройке карты прозрачности, которая будет не только имитировать разбиение полоски анализатора на отдельные сегменты, но и управлять их отображением. Для этого нам понадобится составная карта Mask (Маска), построением которой мы сейчас и займемся. 1. В свитке Maps (Карты текстур) щелкните на кнопке None (Отсутствует), расположенной справа от Opacity (Непрозрачность). 2. В открывшемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка карту Gradient Ramp (Улучшенный градиент) и щелкните на кнопке OK для подтверждения выбора и закрытия окна. 3. В свитке Coordinates (Координаты) задайте следующие значения параметров: • для координат по горизонтали (U) установите смещение (Offset (Смещение)) равным 0,05 и количество повторений (Tiling (Повторения)) – 10, по количеству каналов анализатора. Смещение позиционирует маску в середине используемого полигона; • для координат по вертикали (V) установите смещение (Offset (Смещение)) равным 0,025 и количество повторений (Tiling (Повторения)) – 20, по количеству сегментов одного канала анализатора. 4. В этом же свитке укажите минимальное размытие карты, задав параметру Blur (Размытие) значение 0,01. 5. В свитке Gradient Ramp Parameters (Параметры улучшенного градиента) установите для первого флага белый цвет (карта прозрачности работает с градациями монохромного цвета от белого до черного). 6. Передвиньте второй флаг, который находится в позиции 50, в позицию 80 и установите для него черный цвет. 7. В этом же свитке выберите из списка Gradient Type (Тип градиента) строку Box (Параллелепипед), а из списка Interpolation (Интерполяция) – строку Solid (Сплошной) (рис. 8.101). 8. Перейдем к построению составной карты, для чего справа от имени градиентной карты прозрачности, с которой мы работали, щелкните на кнопке Gradient Ramp (Улучшенный градиент). 9. В открывшемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка карту Mask (Маска) и щелкните на кнопке OK для подтверждения выбора и закрытия окна. В результате выполненных действий появится окно с вопросом Keep old material as sub-material? (Оставить старый материал в качестве компонента?). Ответьте на него утвердительно. 10. После выбора карты Mask (Маска) в окне редактора материалов автоматически появятся параметры этой карты. В свитке Mask Parameters (Параметры маски) щелкните на кнопке None (Отсутствует) справа от Mask (Маска) и выберите в открывшемся окне Material/Map Browser (Окно выбора материалов и карт) еще одну карту Gradient Ramp (Улучшенный градиент). Рис. 8.100. Настройки карты Gradient Ramp (Улучшенный градиент) для основного цвета Рис. 8.101. Настройка параметров градиентной карты для создания сегментов анализатора 11. Как и для предыдущей карты градиента, в свитке Gradient Ramp Parameters (Параметры улучшенного градиента) для первого флага установите белый цвет. 12. Для второго флага задайте черный цвет. Его положение не имеет значения. 13. Щелкните на втором флаге правой кнопкой мыши и выберите из контекстного меню строку Edit Properties (Правка свойств). 1 4. В появившемся окне Flag Properties (Свойства флага) в поле имени наберите новое имя флага, например LevelMask (рис. 8.102). Это позволит при последующей анимации проще находить нужные объекты. Закройте окно Flag Properties (Свойства флага). 15. В свитке Gradient Ramp Parameters (Параметры улучшенного градиента) выберите из списка Interpolation (Интерполяция) строку Solid (Сплошной). 16. В свитке Coordinates (Координаты) задайте параметру W столбца Angle (Угол) значение –90, что позволит развернуть карту в вертикальное положение (рис. 8.103). 17. Вернитесь на верхний уровень к многокомпонентной карте, для чего трижды щелкните на кнопке Go to Parent (Вернуться к исходному), расположенной на панели инструментов редактора материалов. Итак, мы создали составной материал на основе трех градиентных карт и карты маски. Их хватит для решения наших задач. На рис. 8.104 показано дерево материала на данном этапе редактирования. Чтобы посмотреть дерево материалов, щелкните на кнопке Material/Map Navigator (Путеводитель по материалам/картам текстур) Если вы все сделали правильно, то у вас должно быть точно такое же изображение. Рис. 8.102. Окно Flag Properties (Свойства флага) Рис. 8.103. Настройки градиентной карты маски Сейчас необходимо анимировать положение флага LevelMask в соответствии с уровнями кривой звукового контроллера. Можно было бы использовать один из контроллеров Audio Controller (Контроллер звука), присвоенных вспомогательным объектам для управления динамиками, но я хочу показать, как можно создавать собственные параметры объекта и использовать их для решения задач анимации. В одном из окон проекций выделите объект analyzer_wave. Выполните команду Animation > Parameter Editor (Анимация > Редактор параметров), в результате откроется окно Parameter Editor (Редактор параметров). В свитке Attribute (Свойства) выберите из раскрывающегося списка Add to Type (Добавить к типу) строку Selected Object’s Material (Материал выделенного объекта). Это позволит добавить создаваемый параметр материалу анализатора звука – объекту analyzer_wave. Введите в поле Name (Имя) значимое имя параметра, например soundwave (рис. 8.105). В свитке Attribute (Свойства) щелкните на кнопке Add (Добавить), и новый параметр будет добавлен к выделенному объекту analyzer_wave. В результате в редакторе материалов в настройках многокомпонентного материала, присвоенного объекту, появится свиток Custom Attributes (Пользовательские свойства) с соответствующим параметром. Нам нужно присвоить этому значению Audio Controller (Контроллер звука), для этого обратимся к редактору кривых. Рис. 8.104. Окно Material/Map Navigator (Путеводитель по материалам/картам текстур) на данном этапе редактирования многокомпонентного материала Рис. 8.105. Окно Parameter Editor (Редактор параметров) 1. Выполните команду Graph Editors > Track View – Curve Editor (Графические редакторы > Просмотр треков – редактирование кривых). 2. В левой части редактора кривых перейдите по дереву иерархии к многокомпонентному материалу объекта analyzer_wave, выберите строку sound_wave (созданный нами атрибут) (рис. 8.106) и щелкните на ней правой кнопкой мыши. Рис. 8.106. Окно редактора кривых с выделенным дополнительным параметром 3. В появившемся контекстном меню выберите строку Assign Controller (Назначить контроллер). В открывшемся окне Assign Float Controller (Назначить контроллер с плавающей точкой) выберите из списка строку AudioFloat (Звук, использующий значения с плавающей точкой). 4. В открывшемся окне Audio Controller (Контроллер звука) щелкните на кнопке Choose Sound (Выбор звука) и укажите путь к звуковому файлу. 5. В области Controller Range (Диапазон контроллера) увеличьте значение параметра Max (Максимум) до 5. Данное значение можно впоследствии скорректировать с таким расчетом, чтобы колебания уровней анализатора звука длительное время не превышали максимального значения. 6. Установите переключатель Channel (Канал) в положение Mix (Смешивание). Для строящегося анализатора звука мы возьмем один смешанный канал, хотя можно было бы использовать все три. 7. В области Sample (Выборка) задайте параметру Oversampling (Усреднение) значение 500 (рис. 8.107). Для имитации анализатора частотных характеристик звука мы используем кривую уровня звука, поэтому увеличение значения этого параметра позволит частично сгладить пороговые значения кривой. Рис. 8.107. Настройки окна Audio Controller (Контроллер звука) для атрибута sound_wave 8. Закройте окно Audio Controller (Контроллер звука). В окне редактора кривых присвоим флагу LevelMask карты улучшенного градиента, используемого в канале прозрачности, контроллер Float Expression (Выражение с плавающей точкой). Для этого в левой части редактора кривых выберите из иерархического списка объект analyzer_wave и, передвигаясь по его компонентам, перейдите к параметру Position (Положение) флага LevelMask из канала прозрачности первого материала (рис. 8.108). Рис. 8.108. Окно редактора с активным параметром Position (Положение) флага LevelMask Щелкните на выбранном параметре Position (Положение) правой кнопкой мыши и выберите строку Assign Controller (Назначить контроллер) в контекстном меню. В появившемся окне Assign Float Controller (Назначить контроллер с плавающей точкой) выберите из списка строку Float Expression (Выражение с плавающей точкой). В области Create Variables (Создать переменную) открывшегося окна Expression Controller (Контроллер управления по алгоритмическому выражению) введите в поле Name (Имя) имя создаваемой переменной (например, wave) и щелкните на кнопке Create (Создать). В результате будет создана пользовательская переменная, которой необходимо присвоить значение контроллера звука. Для этого щелкните на кнопке Assign to Controller (Назначить контроллеру) и укажите в открывшемся окне Track View Pick (Выбрать трек) на трек с именем созданного нами атрибута sound_wave (рис. 8.109). В поле Expression (Выражение) запишите формулу, которая будет управлять поведением флага LevelMask согласно звуковой волне: floor(wave/0.05)*0.05 (рис. 8.110). Щелкните на кнопке Evaluate (Оценить) для присвоения функции анимируемому параметру. Разберем записанную формулу. Начнем с параметров. Несмотря на то что в настройках диапазона звукового контроллера мы задали максимальное значение равным 5, позиция флага градиентной карты использует значение от 0 до 1. Кроме того, наш анализатор звука имеет 20 сегментов, и смещение значений положения флага должно происходить с учетом количества этих сегментов. Таким образом, первое, что мы делаем в этой функции, – округляем в меньшую сторону значение звукового контроллера (присвоенное переменной wave), деленное на 20 частей (floor(wave/0.05)). Для округления необходимо, чтобы значение было больше нуля, что мы и делаем, используя для деления значение, уменьшенное в 100 раз, но для возврата к прежнему уровню уже округленного значения нам необходимо умножить полученный результат на 0,05. Таким образом, полностью выражение выглядит как floor(wave/0.05)*0.05. В результате расчетов значение положения флага LevelMask в каждом кадре анимации становится кратным 0,05. Рис. 8.109. Окно Track View Pick (Выбрать трек) Рис. 8.110. Окно Expression Controller (Контроллер управления по алгоритмическому выражению) после выполнения всех настроек Теперь следует в настройках многокомпонентного материала анализатора в окне Material Editor (Редактор материалов) скопировать первый материал и вставить вместо расположенных ниже девяти материалов.
Для создания копий настроенного материала перейдите к верхнему уровню многокомпонентного материала. В свитке Multi/Sub-Object Basic Parameters (Базовые параметры многокомпонентного материала) щелкните на кнопке с именем первого материала и, не отпуская кнопку мыши, перетащите ее на кнопку с именем второго материала. После того как вы отпустите кнопку мыши, появится окно, в котором в качестве метода копирования выберите Copy (Независимая копия объекта). Новый материал для второго канала создан. Теперь необходимо изменить настройки этого материала, чтобы анимация уровней каналов отличалась друг от друга. Для этого обратитесь к редактору кривых и выберите из иерархического списка анимированный флаг LevelMask для градиентной карты второго материала (рис. 8.111). Перейдите к параметру Position (Положение) этого флага и, щелкнув на нем правой кнопкой мыши, выберите из контекстного меню строку Properties (Свойства). В результате откроется окно Expression Controller (Контроллер управления по алгоритмическому выражению). После копирования это окно содержит функцию и параметры анимации первой карты. Изменить значения анимации можно следующим образом: ¦ изменить время, задаваемое в поле Tick Offset (Смещение в тиках) области Variable Parameters (Параметры переменной) для созданной нами переменной; ¦ изменить значение переменной wave в записанной формуле. На рис. 8.112 представлен пример измененного контроллера Expression Controller (Контроллер управления по алгоритмическому выражению) с использованием описанных выше способов. Повторите копирование и настройку анимации для оставшихся восьми материалов. В результате вы получите готовый анализатор частотного спектра, а точнее, его имитацию. На рис. 8.113 представлен кадр из получившейся анимации. Рис. 8.111. Редактор кривых с выделенным флагом LevelMask второго материала Рис. 8.112. Окно контроллера Expression Controller (Контроллер управления по алгоритмическому выражению) с измененными параметрами для второго материала И в завершение несколько советов к данному упражнению. Кривая звука имеет нерегулярную форму, что вызывает изменения значений в каждом кадре анимации. Контроллер, который мы использовали, округляет значения кривой до цифры, кратной 0,05 (это необходимо для того, чтобы маска всегда открывала полные сегменты анализатора), но не отслеживает частые скачки значений. Частично сгладить кривую и сделать более плавную анимацию можно при помощи контроллера Float Script (Сценарий, использующий значения с плавающей точкой). В этом случае можно получать значения из кадров до и после текущего и усреднять их. Такой код может выглядеть, как на рис. 8.114. Аналогичным способом можно написать более сложный код, который будет не только получать значения кривой звука в определенные промежутки времени, но и строить собственную кривую на основе этих значений. Рис. 8.113. Визуализация одного из кадров анимации Рис. 8.114. Окно контроллера Float Script (Сценарий, использующий значения с плавающей точкой) Более простой способ сглаживания анимации анализатора – при котором визуализируется каждый третий кадр анализатора. Естественно, что в этом случае необходимо использовать раздельную анимацию, при которой анализатор визуализируется с альфа-каналом для последующего совмещения его с остальной композицией в программе постобработки или в модуле Video Post (Видеомонтаж). При добавлении такой анимации в качестве нового слоя необходимо увеличить в три раза отображение каждого кадра. В модуле Video Post (Видеомонтаж) это делается при помощи параметра Multiplier (Усилитель) в окне Image File List Control (Файл контроля списка изображений) при выборе последовательности кадров. Улучшить эффект анимации анализатора можно, добавив к анимации эффект Glow (Сияние). Проще всего для этого использовать одну из программ постобработки (например, Combustion), предварительно выполнив послойную визуализацию. Можно также применить модуль Video Post (Видеомонтаж), но в данном случае мы используем для анимации один объект и несколько карт прозрачности, что может создать определенные трудности при непосредственной анимации всей сцены. Для создания такого эффекта можно также применить предварительно визуализированные в отдельном слое кадры с анимацией анализатора.
Песочные часыПри создании анимации песочных часов нужно будет анимировать три объекта: песок в верхней части колбы, сыплющийся песок и горку песка внизу. Если с сыплющимся песком все более-менее понятно (это может быть только система частиц), то остальной песок можно создать различными способами. Наиболее сложной, но и самой реалистичной с точки зрения отображения и контроля может быть анимация, созданная при помощи морфинга (Morph) или булевых вычитаний, с анимацией операндов и их подобъектов. В данном разделе мы рассмотрим более простые, но не менее интересные подходы к анимации песка. Загрузите с DVD, который прилагается к книге, файл sandglass_start.max, находящийся в папке Examples\Глава 08\sandglass (рис. 8.115). Прежде всего необходимо смоделировать песок в верхней и нижней частях стеклянной колбы. С учетом особенностей анимации создадим их различными способами. Начнем с верхнего. Для его моделирования сделайте следующее. 1. В окне проекции Front (Спереди) выделите стеклянную колбу часов или выберите ее (объект Glass) из списка объектов сцены, воспользовавшись клавишей H. 2. Создайте копию объекта, выполнив команду Tools > Snapshot (Инструменты > Снимок). В открывшемся окне Snapshot (Снимок) переключатель в области Snapshot (Снимок) должен быть установлен в положение Single (Единичный), а переключатель Clone Method (Метод клонирования) – в положение Mesh (Сетка). Щелкните на кнопке OK. 3. Используя клавишу H, откройте окно Select From Scene (Выбор из сцены) и выберите в нем созданную копию – объект Glass01. 4. Перейдите в режим изоляции объекта, для чего воспользуйтесь сочетанием клавиш Alt+Q. В результате в окнах проекций останется только выбранный объект, что облегчит режим его редактирования. 5. Перейдите на вкладку Modify (Изменение) командной панели и переключитесь в режим редактирования подобъектов Element (Элемент). 6. В любом из окон проекций щелкните на объекте Glass01, в результате чего выделится внешняя поверхность стекла (стекло имеет толщину). 7. Удалите выделенный элемент, нажав клавишу Delete. 8. Снова щелкните на объекте для выделения внутренней поверхности стекла и в области Normals (Нормали) свитка Surface Properties (Свойства поверхности) нажмите кнопку Flip (Обратить). Таким образом мы установим правильное направление нормалей (у внутренней поверхности стекла они были обращены внутрь). 9. Перейдите на уровень редактирования вершин, выделите нижнюю половину оставшейся внутренней поверхности стекла и удалите ее. 10. Используя инструмент Select and Uniform Scale (Выделить и равномерно масштабировать) масштабируйте три или четыре нижних ряда вершин таким образом, чтобы получилась замкнутая форма (причем нижний ряд необходимо свести в точку), и, используя кнопку Selected (Выделенное) области Weld (Слияние) свитка Edit Geometry (Редактирование геометрии), объедините образующие ее вершины (рис. 8.116). Рис. 8.115. Визуализация модели песочных часов 11. Выйдите из режима редактирования вершин, повторно щелкнув в свитке Selection (Выделение) на кнопке Vertex (Вершина) 12. Установите режим использования центра трансформаций на середину выделения, для чего щелкните на кнопке Use Selection Center (Использовать центр выделения) главной панели инструментов. Рис. 8.116. Нижняя часть отредактированного объекта 13. Используя инструмент Select and Uniform Scale (Выделить и равномерно масштабировать) уменьшите объект на небольшую величину (например, до 99,5 %).
Для окончания редактирования этого объекта дайте ему более понятное имя, например Sandtop, и присвойте ему материал песка. Используя клавишу M, откройте редактор материалов, выберите материал Sand и перетащите его на объект Sand_top в одном из окон проекций. Затем вернитесь к отображению полной сцены, для чего щелкните на кнопке Exit Isolation Mode (Выйти из режима изолирования). Анимируем построенный объект следующим образом. 1. Выделите объект Sand_top, если он не остался выделенным. 2. Назначьте ему модификатор Slice (Сечение), выполнив команду Modifiers > Parametric Deformers > Slice (Модификаторы > Параметрические деформации > Сечение). 3. В свитке Slice Parameters (Параметры сечения) установите переключатель в положение Remove Top (Отсечь верх). 4. Перейдите на уровень редактирования подобъектов модификатора Slice (Сечение), для чего в стеке модификаторов щелкните на плюсике рядом с именем модификатора и выберите строку Slice Plane (Секущая плоскость). 5. Используя инструмент Select and Rotate (Выделить и повернуть), в окне проекции Left (Слева) поверните секущую плоскость на 90° по оси X или Y и передвиньте ее вверх так, чтобы она заняла горизонтальное положение в середине объекта Sand_top (рис. 8.117). Рис. 8.117. Положение секущей плоскости в пространстве и ее параметры
Анимируем секущую плоскость таким образом, чтобы она с течением времени срезала все большую часть объекта Sand_top. 1. Передвиньте ползунок таймера анимации в 280 кадр. 2. Активизируйте запись ключей анимации. Для этого щелкните на кнопке Auto Key (Автоключ), в результате чего кнопка выделится цветом 3. Передвиньте секущую плоскость вниз так, чтобы она оказалась в середине стеклянной колбы, а песок в верхней части часов был полностью отрезан секущей плоскостью. В результате будет создано два ключа анимации: в нулевом и 280 кадре. 4. Выключите запись ключей анимации, повторно щелкнув на кнопке Auto Key (Автоключ). 5. Проверьте выполненную анимацию, передвинув ползунок таймера вдоль шкалы. Если все было сделано правильно, то вы увидите, как песок начинает уменьшаться в объеме по мере прохождения кадров. Два небольших штриха помогут нам получить законченную анимацию. Отредактируйте кривую анимации. Для этого откройте редактор кривых, выполнив команду Graph Editors > Track View – Curve Editor (Графические редакторы > Просмотр треков – редактирование кривых). В левой части открывшегося окна выберите объект Sand_top и далее строку с именем Y Position (Положение по оси Y). В результате в правой части окна Track View – Curve Editor (Просмотр треков – редактирование кривых) появится кривая. Манипулятор второй точки необходимо опустить вниз, чтобы получилась плавная кривая, постепенно поднимающаяся вверх (рис. 8.118). Рис. 8.118. Кривая анимации положения секущей плоскости В результате по мере уменьшения диаметра стекла песок будет быстрее уменьшаться в объеме так же, как это было бы в реальных песочных часах. И последнее, что необходимо сделать для объекта Sand_top, – применить к нему модификатор Cap Holes (Накрыть отверстия), чтобы закрыть дыру, образованную секущей плоскостью (рис. 8.119). Теперь можно переходить к моделированию песка внизу. Воспользуемся объектом Top, который создан при помощи вращения профиля кривой. Он до сих пор был спрятан и не показывался в окнах проекций. Для его отображения перейдите на вкладку Display (Отображение) командной панели и в свитке Hide (Спрятать) щелкните на кнопке Unhide All (Отобразить все). Рис. 8.119. Стек модификаторов объекта Sand_top Учитывая форму стекла часов, песок в нижней части проще всего анимировать при помощи булевой операции. 1. Используя горячую клавишу H, откройте окно Select From Scene (Выбор из сцены) и выберите в нем объект Glass. 2. Скопируйте его при помощи команды Snapshot (Снимок) меню Tools (Инструменты) таким же образом, как мы это делали для песка в верхней части часов. 3. Еще раз откройте окно Select From Scene (Выбор из сцены) и выберите в нем объекты Glass01 (скопированный объект) и Top. 4. Перейдите в режим изолированного отображения объектов, нажав сочетание клавиш Alt+Q, и выделите объект Glass01. 5. Откройте вкладку Modify (Изменение) командной панели и перейдите в режим редактирования подобъектов Element (Элемент). 6. В любом из окон проекций щелкните на объекте Glass01, в результате чего выделится внешняя поверхность стекла. Удалите выделенный элемент. 7. Снова щелкните на объекте Glass01 для выделения внутренней поверхности стекла и в области Normals (Нормали) свитка Surface Properties (Свойства поверхности) нажмите кнопку Flip (Обратить).
8. Выполните команду Create > Compound > Boolean (Создание > Составные объекты > Булев), в результате чего на командной панели появятся свитки для работы с составным объектом. 9. Щелкните на кнопке Pick Operand B (Указать операнд Б) и в одном из окон проекций выберите объект Top. 10. В свитке Parameters (Параметры) установите переключатель Operation (Операция) в положение Intersection (Пересечение). 11. Уменьшите немного масштаб объекта, воспользовавшись инструментом Select and Uniform Scale (Выделить и равномерно масштабировать) Как я уже говорил, такое уменьшение предотвратит появление артефактов при визуализации. 1 2. Используя описанные выше действия, примените к построенному объекту материал песка Sand. 13. Переименуйте построенный объект в Sand_bottom и вернитесь к отображению полной сцены, для чего щелкните на кнопке Exit Isolation Mode (Выйти из режима изолирования). Сцена на данном этапе моделирования и анимации показана на рис. 8.120. Рис. 8.120. Объекты сцены в нулевом кадре на данном этапе моделирования Анимируем построенный объект. Это можно сделать, анимировав перемещение одного из операндов в вертикальной плоскости. 1. Перейдите на вкладку Modify (Изменение) командной панели и переключитесь в режим редактирования подобъектов, выделив строку Operands (Операнды). 2. В области Operands (Операнды) свитка Parameters (Параметры) выделите операнд Top (рис. 8.121). 3. Передвиньте ползунок таймера анимации в 20 кадр и включите запись ключей анимации, воспользовавшись кнопкой Auto Key (Автоключ) 4. Используя инструмент Select and Move (Выделить и переместить) главной панели инструментов, переместите операнд To p вниз на такую величину, чтобы он скрылся за нижней кромкой стекла. 5. Выключите запись ключей анимации, повторно щелкнув на кнопке Auto Key (Автоключ). 6. Выделите ключ, автоматически созданный в нулевом кадре, и переместите его в последний (300) кадр шкалы анимации. 7. Запустите воспроизведение анимации, воспользовавшись кнопкой Play Animation (Воспроизвести анимацию), и проверьте правильность выполненных действий: верхняя часть песка должна уменьшаться, а нижняя, наоборот, увеличиваться. Рис. 8.121. Свиток Parameters (Параметры) настроек объекта Sand_bottom С нулевого по двадцатый кадр песок будет падать, пока не достигнет дна стеклянной колбы. Именно тогда он начнет накапливаться в нижней части часов (это мы сделали, анимировав операнд Top). Аналогичным образом мы создали анимацию и для верхней горки песка, закончив ее анимацию в 280 кадре. Оставшееся время песок находится в полете.
Перейдем к третьей фазе анимации часов: созданию системы частиц, изображающих песчинки в полете. Начнем с построения основного и вспомогательных объектов сцены. Нам понадобится система частиц, объект, который будет играть роль излучателя частиц, и два объекта пространственных деформаций. 1. Выполните команду Create > Particles > PArray (Создание > Частицы > Массив частиц) главного меню и в произвольном месте окна проекции Top (Сверху) постройте значок массива частиц. 2. При помощи команды Create > SpaceWarps > Forces > Gravity (Создание > Пространственные деформации > Силы > Сила тяжести) главного меню в произвольном месте окна проекции Top (Сверху) постройте значок силы тяжести. 3. Выполните команду Create > SpaceWarps > Deflectors > UDeflector (Создание > Пространственные деформации > Отражатели > U-отражатель) главного меню и снова воспользуйтесь окном проекции Top (Сверху) для построения значка отражателя частиц. 4. При помощи команды главного меню Create > Standard Primitives > Cylinder (Создание > Простые примитивы > Цилиндр) постройте в окне проекции Top (Cверху) цилиндр с высотой, равной 0, и диаметром, соответствующим размеру внутреннего отверстия стекла в самом узком месте. Сразу же расположите построенный цилиндр в месте предполагаемого излучения частиц – немного выше середины стеклянной колбы (объект Glass). На рис. 8.122 представлены созданные объекты в окне проекции Top (Сверху). Все готово для выполнения анимации сыплющегося песка. Начнем с настройки системы частиц. 1. В окне проекции Top (Сверху) выделите значок системы частиц (объект PArray01) и перейдите на вкладку Modify (Изменение) командной панели. Рис. 8.122. Вспомогательные объекты в окне проекции Top (Сверху) 2. В свитке Basic Parameters (Базовые параметры) щелкните на кнопке Pick Object (Указать объект) и выберите в качестве излучателя построенный цилиндр.
3. Привяжите к системе частиц гравитацию, для чего на главной панели инструментов нажмите кнопку Bind to Space Warp (Связать с воздействием) и в окне проекции Top (Сверху) щелкните кнопкой мыши сначала на значке системы частиц (PArray01), а затем на значке силы тяготения (Gravity01). 4. Аналогичным образом привяжите систему частиц к отражателю (UDeflector01), указав соответствующий значок в одном из окон проекций.
5. Вернитесь к настройкам объекта PArray01 (выделив в стеке модификаторов соответствующую строку) и в свитке Particle Generation (Генерация частиц) задайте параметрам следующие значения: • параметру Use Rate (Использовать коэффициент) в области Particle Quantity (Количество частиц) – 50; • всем параметрам в области Particle Motion (Движение частиц) – 0; • в области Particle Timing (Время частиц) установите такие значения: Emit Start (Начало излучения) – 0, Emit Stop (Конец излучения) – 280, Display Unit (Отображение единиц) – 300, а Life (Время жизни) – 20; • параметру Size (Размер) в области Particle Size (Размер частиц) – 0,36 мм. 6. Переключатель Standard Particles (Типовые частицы) в свитке Particle Type (Тип частиц) установите в положение Cube (Куб).
Рассмотрим выполненные настройки. Начиная с нулевого кадра, каждый кадр генерирует по 50 частиц, каждая из которых после 20 кадров исчезнет. Такое излучение частиц будет происходить до 280 кадра, а затем прекратится, но оставшиеся частицы будут продолжать двигаться, пока в 300 кадре не исчезнут полностью. Для завершения настройки анимации частиц необходимо подкорректировать параметры гравитации и отражения частиц следующим образом. 1. Передвиньте ползунок таймера анимации в 20 кадр. В этом кадре, по нашему замыслу, частицы долетят до дна колбы, и с этого же кадра начнет расти горка песка в нижней части часов. 2. В окне проекции Top (Сверху) выделите значок объекта Gravity01 и перейдите на вкладку Modify (Изменение) командной панели. 3. В области Force (Сила) свитка Parameters (Параметры) задайте параметру Strength (Сопротивление) значение с таким расчетом, чтобы нижние частицы достигали дна колбы (рис. 8.123). В моем случае это значение равно 0,13. 4. В окне проекции Top (Сверху) выделите значок объекта UDeflector01 и перейдите на вкладку Modify (Изменение) командной панели. 5. В свитке настроек Basic Parameters (Базовые параметры) щелкните на кнопке Pick Object (Указать объект) и выберите в качестве отражателя частиц объект Sand_bottom. 6. В области Particle Bounce (Отскоки частиц) свитка Basic Parameters (Основные параметры) установите следующие значения параметров: Bounce (Отскоки) – 0,1, Friction (Сила трения) – 20, оставшиеся значения должны быть равны нулю. Рис. 8.123. Положение частиц в 20 кадре анимации Таким образом, частицы, попадая на растущую горку песка, будут отскакивать от нее на небольшую величину, постепенно исчезая (рис. 8.124). Рис. 8.124. Поведение частиц в 160 кадре анимации Запустите воспроизведение анимации и проверьте правильность выполненных действий. Присвойте частицам материал песка. Для этого откройте редактор материалов, нажав клавишу M, выберите материал с именем Sand и перетащите его на значок PArray01 в одном из окон проекций. Теперь можно визуализировать последовательность кадров с дальнейшей сборкой их в одной из программ постобработки или сразу создать файл анимации. На рис. 8.125 представлен кадр из анимации, выполненной с применением модификатора Noise (Шум) для создания неравномерности в верхней и нижней горках песка. Рис. 8.125. Визуализация песочных часов, выполненных с применением системы частиц
Текст, уносимый порывами ветраНа примере, описанном в данном разделе, я покажу, как простыми средствами можно получить эффект рассеивания, применяемый при анимации природных или иных явлений. Одним из вариантов такой анимации может служить сигаретный дым. Для выполнения упражнения нам понадобится простая сцена – какой-нибудь объект, например текст (рис. 8.126). Для анимации нужно будет создать не только систему частиц, но и силы, действующие на эти частицы. Для построения вспомогательных объектов сделайте следующее. 1. Выполните команду главного меню Create > SpaceWarps > Deflectors > SDeflector (Создание > Пространственные деформации > Отражатели > Сферический отражатель) и в окне проекции Top (Сверху) постройте значок объекта. 2. Используя инструмент Select and Move (Выделить и переместить), расположите значок в середине текста. 3. Активизируйте инструмент Select and Uniform Scale (Выделить и равномерно масштабировать) и масштабируйте значок SDeflector01 таким образом, чтобы он оказался немного больше объекта Text01 (рис. 8.127). Рис. 8.126. Текст, подготовленный для выполнения упражнения Рис. 8.127. Расположение значка отражателя SDeflector01 относительно объекта Text01 4. Создайте три объекта Wind (Ветер). Для этого выполните команду Create > SpaceWarps > Forces > Wind (Создание > Пространственные деформации > Силы > Ветер) и постройте значки в окне проекции Top (Сверху). 5. Выделите один из построенных объектов Wind (Ветер). Используя инструмент Select and Move (Выделить и переместить), переместите его так, чтобы он находился слева от текста. При помощи инструмента Select and Rotate (Выделить и повернуть) поверните значок Wind (Ветер) на 90° таким образом, чтобы направление ветра приходилось на текст (рис. 8.128). Рис. 8.128. Расположение значков ветра и их ориентация в окне проекции Front (Спереди) 6. Создайте еще один вспомогательный объект – Drag (Помеха). Для этого выполните команду Create > SpaceWarps > Forces > Drag (Создание > Пространственные деформации > Силы > Помеха) и постройте объект в произвольном месте окна проекции Top (Сверху). Анимируем отражатель следующим образом. 1. Передвиньте ползунок таймера в пятый кадр анимации. 2. Активизируйте запись ключей анимации. Для этого щелкните на кнопке Auto Key (Автоключ), в результате чего кнопка выделится цветом 3. Выделите отражатель (объект SDeflector01) и в окне проекции Front (Спереди) передвиньте его вправо на такое расстояние, чтобы он оказался за пределами текста. 4. Выключите запись ключей анимации, повторно щелкнув на кнопке Auto Key (Автоключ). 5. Выделите ключ, созданный автоматически в нулевом кадре, и передвиньте его в последний кадр строки треков (в моем случае это 200 кадр). 6. Проверьте созданную анимацию. В первом кадре отражатель SDeflector01 должен находиться за пределами текста, а начиная с пятого кадра перемещаться на текст, полностью перекрывая его. Создадим систему частиц и необходимые операторы. Выполним все эти действия при помощи окна Particle View (Окно системы частиц), которое можно открыть, выполнив команду Graph Editors > Particle View (Графические редакторы > Окно системы частиц). В окне Particle View (Окно системы частиц) сделайте следующее. 1. Для создания излучателя частиц перетащите из списка операторов, находящегося в нижней части окна, в окно событий объект Empty Flow (Пустой поток) (рис. 8.129). Рис. 8.129. Окно Particle View (Окно системы частиц) с построенным излучателем частиц PF Source (Источник потока частиц) 2. В окно событий также перетащите оператор Birth (Рождение), который автоматически создаст список событий с оператором отображения частиц. 3. Свяжите список событий с источником частиц, для чего щелкните на выступающем круглом элементе списка событий (в результате вид указателя изменится) и перетащите его на объект PF Source 01. В результате образуется связь между источником частиц и списком событий (рис. 8.130). 4. Таким же образом добавьте к списку событий следующие операторы: • Position Object (Положение объекта) – позволяет расположить частицы по форме выбранного объекта; • Shape (Форма) – задает форму отображения частиц при визуализации; • Collision (Столкновения) – позволяет управлять отражателями частиц. Рис. 8.130. Список событий, связанный с источником частиц 5. Добавьте к потоку частиц PF Source 01 оператор Material Static (Статический материал) – материал, используемый для отображения частиц при визуализации (рис. 8.131). 6. Последнее, что необходимо добавить в окно событий, – объект Force (Сила), который связывается с оператором Collision (Столкновения) (рис. 8.132).
Займемся настройкой параметров системы частиц. Начнем со списка событий Event 01. Выделите оператор Birth 01 (Рождение 01), в результате чего в правой части окна Particle View (Окно системы частиц) появится свиток Birth 01 (Рождение 01). В этом свитке установите значения параметров Emit Start (Начало излучения) и Emit Stop (Конец излучения) равными нулю, а Amount (Величина) – 40 000. Это означает, что сразу все частицы будут генерироваться в нулевом кадре анимации. Выделите оператор Position Object 01 (Положение объекта 01). В области Emitter Objects (Объекты-источники) свитка его настроек в правой части окна Particle View (Окно системы частиц) щелкните на кнопке By List (Из списка). В открывшемся окне выберите объект Text01. В результате частицы покроют объект Text01, расположившись на его поверхности. Объект Text01 не должен участвовать в визуализации, поэтому его можно спрятать. Для этого выделите его в одном из окон проекций, щелкните правой кнопкой мыши и выберите в контекстном меню команду Hide Selection (Спрятать выделенное). Рис. 8.131. Окно Particle View (Окно системы частиц) после обновления списка событий Рис. 8.132. Окончательный вид окна событий после добавления всех операторов
Следующий оператор, который нужно настроить, – Shape 01 (Форма 01). Выделите его и в свитке Shape 01 (Форма 01) выберите из списка Shape (Форма) строку Cube (Куб), а параметру Size (Размер) задайте значение 0,4. Еще один оператор в списке событий Event 01 (Событие 01), требующий настройки, – Collision 01 (Столкновение 01). Выделите его, в свитке его параметров щелкните на кнопке By List (Из списка) и выберите объект SDeflector01 из списка появившегося окна. В свитке Collision 01 (Столкновение 01) выберите из раскрывающегося списка Speed (Скорость) строку Continue (Продолжать). Таким образом, частицы при столкновении с отражателем будут продолжать свое движение. Перейдите ко второму списку событий Event 02 (Событие 02). Выделите в этом списке событие Force 01 (Сила 01). В свитке его настроек в правой части окна Particle View (Окно системы частиц) щелкните на кнопке By List (Из списка) и выберите в раскрывшемся окне все объекты: три объекта, имитирующих ветер, и объект Drag (Помеха). Остался последний оператор, требующий настройки, – Material Static 01 (Статический материал 01). Для присвоения частицам материала, который будет отображаться в окнах проекций, сделайте следующее. 1. Откройте редактор материалов, для чего воспользуйтесь клавишей M. 2. Выберите любой свободный материал и задайте параметру Diffuse (Цвет рассеивания) цвет, отличный от черного (по умолчанию черным является цвет фона). 3. Задайте параметру в области Self-Illumination (Собственное свечение) значение 100. 4. Присвойте материалу какое-нибудь значимое имя, например particle. 5. Вернитесь к окну Particle View (Окно системы частиц) и выберите оператор Material Static 01 (Статический материал 01). 6. В свитке Material Static 01 (Статический материал 01) в правой части окна Particle View (Окно системы частиц) щелкните на кнопке None (Отсутствует). 7. В появившемся окне Material/Map Browser (Окно выбора материалов и карт) установите переключатель Browse From (Просмотреть из) в положение Mtl Editor (Редактор материалов) и выберите из списка материал с именем particle (рис. 8.133). Рис. 8.133. Окно Material/Map Browser (Окно выбора материалов и карт) с выбранным материалом Если сейчас переместить ползунок таймера анимации, то вы увидите, как при наезде значка отражателя на текст начинается рассеивание частиц, находящихся в этом месте. Пока это не совсем то, что нам нужно, так как на частицы действуют слишком большие силы. В связи с этим необходимо подкорректировать параметры объектов Wind (Ветер) и Drag (Помеха). Начнем с параметров ветра. Они должны быть совсем небольшими, чтобы ветер лишь отрывал частицы от генерирующего их объекта и уносил на небольшое расстояние. На рис. 8.134 показаны примерные настройки ветра, причем Wind01 и Wind02 действуют в вертикальной плоскости, и Wind03 – в горизонтальной и направлен в сторону текста. Для объекта Drag (Помеха) существенными являются характеристики затухания, настройки которого находятся в области Damping Characteristics (Характеристики затухания) свитка Parameters (Параметры). Установите переключатель в этой области в положение Linear Damping (Линейное затухание) и параметрам X Axis (Ось X), Y Axis (Ось Y) и Z Axis (Ось Z) задайте значения 20, 15 и 7 соответственно.
Рис. 8.134. Настройки объектов Wind01 (а), Wind02 (б) и Wind03 (в) При анимации частиц такого рода очень уместно использовать эффект размытия в движении. Такой эффект появляется при съемке движения реальной камерой или фотоаппаратом, так как за то время, пока шторка аппарата находится в открытом состоянии, движущийся объект проходит некоторое расстояние, и в результате его границы размываются. В 3ds Max такой эффект можно создать несколькими способами, мы рассмотрим самый простой и быстрый с точки зрения визуализации. 1. Откройте окно редактирования системы частиц, выполнив команду меню Graph Editors > Particle View (Графические редакторы > Окно системы частиц). 2. В окне событий выделите PF Source 01, щелкнув на нем. В результате цвет контура объекта изменится на белый. Щелкните на нем правой кнопкой мыши и выберите из контекстного меню строку Properties (Свойства) (рис. 8.135). 3. В области Motion Blur (Размытие движения) открывшегося окна Object Properties (Свойства объекта) установите переключатель в положение Image (Изображение), задайте параметру Multiplier (Усилитель) значение 12 и проследите, чтобы флажок Enable (Включить) был установлен. 4. Откройте окно Render Scene (Визуализация сцены), для чего воспользуйтесь клавишей F10, и перейдите на вкладку Renderer (Визуализатор). 5. В области Image Motion Blur (Размытие картинки в движении) установите флажок Apply (Применить). На рис. 8.136 показан кадр из анимации, создание которой было описано в данном разделе. Рис. 8.135. Контекстное меню объекта PF Source01 Рис. 8.136. Визуализация 48 кадра анимации
Глава 9Практическое моделирование • Натюрморт • Моделирование лофт-объектов • Моделирование штор • Полигональное моделирование телефонной трубки • Моделирование микроволновой печи • Комплексный подход к моделированию: создание крана для ванной Нет ничего более увлекательного при работе с программами трехмерного моделирования, чем создание объектов сцены. Именно в процессе моделирования обретают форму фантазии и мечты. Нет необходимости говорить о том, что для создания модели, способной удивить зрителя, надо обладать большим терпением и определенным багажом знаний. В этой главе вы научитесь основным приемам моделирования, начиная с простых упражнений и постепенно переходя к решению более сложных задач. Мы рассмотрим сплайновое, полигональное, Surface– и NURBS-моделирование. Полученные в этой главе знания помогут вам создавать более сложные модели, о которых пойдет речь в следующих главах. Эти базовые знания станут основой для моделирования автомобиля и головы персонажа, о чем будет рассказано в третьей части книги. НатюрмортИзучая моделирование трехмерных объектов, мы стремимся создавать большие и сложные работы, но оказывается, что простыми средствами можно добиться вполне приемлемых результатов. Ключ к успеху не только в том, чтобы модель или сцена была сложной, но и в том, как подать эту сцену, как расположить источники света и выполнить текстурирование. Рассмотрим упражнение по моделированию натюрморта простыми и доступными всем средствами программы 3ds Max. На рис. 9.1 показан результат визуализации сцены, выполненной с использованием инструментов и модификаторов, доступных еще во второй версии программы. Рис. 9.1. Натюрморт Если внимательно посмотреть на эту сцену, то можно увидеть, что все объекты выполнены на основе примитивов или при помощи стандартных модификаторов и не представляют большой сложности в исполнении. Центральное место в композиции занимает бронзовая ваза – с нее и начнем моделирование. Вы уже знаете, что проще всего симметричные предметы, имеющие ось вращения, строить с использованием модификатора Lathe (Вращение). Не станет исключением и ваза для фруктов. Начнем моделирование с построения ее профиля при помощи сплайна. Для этого сделайте следующее. 1. Выполните команду Create > Shapes > Line (Создать > Формы > Линия) и в окне проекции Front (Спереди) начните построение сплайна формы вазы (рис. 9.2). Рис. 9.2. Профиль будущей вазы
2. Примените к построенному сплайну модификатор Lathe (Вращение), для чего выполните команду Modifiers > Patch/Spline Editing > Lathe (Модификаторы > Редактирование патчей/сплайнов > Вращение). 3. В области Align (Выравнивание) свитка Parameters (Параметры) щелкните на кнопке Min (Минимум), чтобы установить ось вращения по левой стороне объекта.
4. Параметру Segments (Количество сегментов) свитка Parameters (Параметры) задайте значение от 30 до 40, чтобы избежать неровностей на краях построенного объекта. 5. При необходимости перейдите в стеке модификаторов на уровень редактирования кривой и, нажав кнопку Show end result on/off toggle (Показать конечный результат вкл/выкл), которая находится под стеком модификаторов, измените форму кривой так, чтобы получить приемлемый результат (рис. 9.3). Рис. 9.3. Ваза, построенная при помощи модификатора Lathe (Вращение) Ваза построена, пришло время наполнить ее фруктами. Вспомните процесс моделирования яблока, рассмотренный во второй главе. В том случае мы строили параметрический объект Sphere (Сфера) и при помощи плавного выделения изменили положение выделенных вершин, чтобы получить форму яблока. После этого для придания модели большей реалистичности применили модификатор Noise (Шум). Еще одним простым способом построения модели яблока может быть применение модификатора Lathe (Вращение), который мы только что использовали для создания вазы. Для построения модели яблока сделайте следующее. 1. В окне проекции Front (Спереди) постройте сплайн формы яблока уже известным вам способом (рис. 9.4). Рис. 9.4. Профиль для построения модели яблока 2. Примените к сплайну модификатор Lathe (Вращение). В свитке Parameters (Параметры) настроек модификатора задайте значения параметров, аналогичные тем, которые применялись для построения вазы. 3. При необходимости вернитесь на уровень редактирования вершин сплайна и уточните форму профиля. 4. Примените к объекту модификатор Noise (Шум) для создания неровностей на поверхности модели, для чего из списка модификаторов вкладки Modify (Изменение) командной панели выберите строку Noise (Шум). 5. В свитке Parameters (Параметры) настроек модификатора Noise (Шум) задайте параметру Scale (Масштаб) значение, равное 100, а параметрам X, Y и Z области Strength (Численность) – 175, 140 и 135 соответственно (рис. 9.5). Осталось добавить яблоку небольшой хвостик. 1. Создайте объект Cylinder (Цилиндр), для чего выполните команду Create > Standard Primitives > Cylinder (Создание > Простые примитивы > Цилиндр) и в окне проекции Top (Сверху) постройте цилиндр в месте крепления хвостика к яблоку. 2. В окне проекции Front (Спереди) при помощи инструмента Select and Move (Выделить и переместить) переместите построенный объект в вертикальной плоскости так, чтобы он занял свое место в углублении яблока. 3. При необходимости уточните значения радиуса и высоты цилиндра в свитке Parameters (Параметры). Они должны иметь пропорции, соответствующие размеру яблока. Рис. 9.5. Модель яблока после применения модификатора Noise (Шум) 4. В свитке Parameters (Параметры) настроек цилиндра задайте параметру Height Segments (Количество cегментов по высоте) значение, равное 10. Это позволит в дальнейшем получить равномерный изгиб объекта. 5. Примените к построенному цилиндру модификатор Taper (Заострение). 6. Закончите построение хвостика применением модификатора Bend (Изгиб) (рис. 9.6). Рис. 9.6. Модель яблока с хвостиком Таким образом, мы построили модель яблока. Однако для создания натюрморта одной модели будет мало. При помощи модификатора FFD Box (Произвольно деформируемый контейнер (прямоугольный)) можно легко это исправить, создав яблоко другой формы. 1. Скопируйте модель яблока вместе с хвостиком, для чего выделите оба объекта и, удерживая нажатой клавишу Shift, в окне проекции Top (Сверху) переместите объекты в сторону. В появившемся окне Clone Options (Параметры клонирования) укажите Copy (Копия). 2. Выделите модель яблока и примените к ней модификатор FFD Box (Произвольно деформируемый контейнер (прямоугольный)), для чего выполните команду Modifiers > Free Form Deformers > FFD Box (Модификаторы > Произвольные деформации > Произвольно деформируемый контейнер (прямоугольный)). 3. В области Dimensions (Размеры) свитка FFD Parameters (Параметры произвольно деформируемого контейнера) щелкните на кнопке Set Numbers of Points (Установить количество точек) и в появившемся окне Set FFD Dimensions (Установить размеры произвольно деформируемого контейнера) задайте всем параметрам значение, равное 5. 4. В стеке модификаторов перейдите на уровень редактирования подобъектов Set Volume (Установить объем) и, используя инструмент масштабирования Select and Uniform Scale (Выделить и равномерно масштабировать) откорректируйте форму произвольно деформируемого контейнера так, чтобы она в общих чертах повторяла форму яблока (рис. 9.7). Рис. 9.7. Форма произвольно деформируемого контейнера (слева) и окно стека модификатора FFD Box (Произвольно деформируемый контейнер (прямоугольный)) (справа) 5. В стеке модификаторов перейдите на уровень редактирования подобъектов Control Points (Контрольные точки) и выделите в верхнем ряду четыре вершины, равноудаленные от центра, в один ряд. 6. Используя инструмент Select and Move (Выделить и переместить) переместите выделенные точки немного вверх, формируя модель яблока в области хвостика (рис. 9.8). Рис. 9.8. Результат формирования верхней части яблока 7. Выделите в нижнем ряду такие же четыре точки произвольно деформируемого контейнера и сместите их немного вниз для получения окончательной формы яблока (рис. 9.9). Рис. 9.9. Окончательная модель яблока Сгруппируйте яблоко и хвостик (в первом и втором вариантах), чтобы иметь возможность манипулировать группой и сделать несколько копий для натюрморта.
Создадим модель груши. Процесс построения этой модели совершенно такой же, как и для яблока: начинаем с построения профиля при помощи сплайна, затем применяем модификатор Lathe (Вращение) и, наконец, уточняем форму модели при помощи модификатора Noise (Шум) или FFD Box (Произвольно деформируемый контейнер (прямоугольный)) (рис. 9.10). Рис. 9.10. Модель груши Рассмотрим процесс построения виноградной грозди. На самом деле нам понадобится создать лишь стебель и одну ягоду, скопировав которую, получим целую гроздь. Для построения модели винограда сделайте следующее. 1. В окне проекции Top (Сверху) постройте объект Sphere (Сфера).
2. Используя инструмент Select and Uniform Scale (Выделить и равномерно масштабировать) масштабируйте сферу в вертикальной плоскости так, чтобы она приобрела вытянутую форму (рис. 9.11). При желании ее можно уточнить, используя дополнительно модификаторы поверхности. Рис. 9.11. Форма ягоды винограда, построенная из сферы 3. В окне проекции Front (Спереди) известным вам способом постройте сплайн, который послужит формой пути лофт-объекта для хвостика, находящегося в верхней части ягоды (рис. 9.12). Рис. 9.12. Форма сплайна пути для построения лофт-объекта 4. В окне проекции Top (Сверху) постройте окружность, которая будет являться формой поперечного сечения хвостика, для чего выполните команду Create > Shapes > Circle (Создание > Формы > Окружность). 5. Выделите сплайн пути (если он не выделен) и выполните команду Create > Compound > Loft (Создание > Составные объекты > Лофтинговые). 6. В свитке Creation Method (Метод создания) нажмите кнопку Get Shape (Взять форму) и в одном из окон проекций щелкните на окружности. 7. Перейдите на вкладку Modify (Изменить) командной панели и в свитке Deformations (Деформации) щелкните на кнопке Scale (Масштаб), в результате чего откроется окно Scale Deformation (Деформация масштаба). 8. Измените форму кривой графика так, чтобы сплайн в окне проекции приобрел нужную форму (рис. 9.13). Рис. 9.13. Окно Scale Deformation (Деформация масштаба) с уточненной формой хвостика В результате ягода винограда должна выглядеть, как показано на рис. 9.14. Более сложным объектом для моделирования может показаться банан. Но и здесь можно обойтись построением лофт-объекта с последующей деформацией масштаба, аналогично тому, что мы делали для винограда. Чтобы построить модель банана, сделайте следующее. 1. В окне проекции Top (Сверху) постройте сплайн пути, который представляет собой немного искривленную линию. 2. В окне проекции Front (Спереди) создайте форму поперечного сечения, для чего выполните команду Create > Shapes > NGon (Создать > Формы > Многоугольник). 3. Параметру Sides (Количество сторон) свитка Parameters (Параметры) настроек многоугольника задайте значение, равное 6 (рис. 9.15). 4. Постройте лофт-объект, для чего выделите сплайн пути и выполните команду Create > Compound > Loft (Создание > Составные объекты > Лофтинговые). Рис. 9.14. Ягода винограда Рис. 9.15. Сплайны форм пути и поперечного сечения для построения модели банана 5. В свитке Creation Method (Метод создания) настроек лофт-объекта нажмите кнопку Get Shape (Взять форму) и в одном из окон проекций щелкните на многоугольнике. 6. В свитке Deformations (Деформации) настроек лофт-объекта на вкладке Modify (Изменение) командной панели щелкните на кнопке Scale (Масштаб). В результате откроется окно Scale Deformation (Деформация масштаба). 7. При помощи редактирования кривой измените форму сплайна так, чтобы получился банан (рис. 9.16). Редактируя сплайн, контролируйте изменение формы объекта в окнах проекций. 8. Чтобы сгладить резко очерченные грани модели, необходимо применить модификатор Relax (Ослабление), выбрав его из списка модификаторов на вкладке Modify (Изменение). Рис. 9.16. Окно Scale Deformation (Деформация масштаба) с измененной формой банана 9. В свитке Parameters (Параметры) настроек модификатора Relax (Ослабление) подберите такие значения параметров Relax Value (Величина ослабления) и Iterations (Количество итераций), чтобы получилось небольшое сглаживание на краях (рис. 9.17). Рис. 9.17. Банан, полученный с использованием составных объектов (слева), и его параметры (справа) В качестве самостоятельного задания создайте дополнительные объекты сцены. Например, сферу можно использовать для моделирования нескольких объектов: апельсина, мандарина, вишен, клубники и даже половинки лимона и киви. При этом для создания мандарина необходимо применить инструмент Select and Uniform Scale (Выделить и равномерно масштабировать), чтобы сжать сферу в вертикальной плоскости, а половинка киви получается после задания параметру Hemisphere (Полусфера) свитка Parameters (Параметры) настроек сферы значения, равного 0,5. Мандарин, как и некоторые другие объекты, можно построить путем редактирования вершин на уровне подобъектов модификатора Edit Mesh (Редактирование поверхности). В большинстве случаев такой подход дает максимальный контроль над созданием объектов сцены и, как следствие, лучший результат. На рис. 9.18 представлен натюрморт, который получился после создания дополнительных объектов. Рис. 9.18. Сцена с расставленными объектами Подводя итоги, можно заметить, что очень часто использования стандартных параметрических объектов и простых методов редактирования вполне достаточно для создания хорошей сцены. В следующей главе, посвященной работе с редактором материалов, мы рассмотрим текстурирование созданной в данном упражнении сцены.
Моделирование лофт-объектовДопустим, необходимо создать объект, напоминающий машиностроительную деталь. Можно моделировать при помощи разбиений, но, как мне кажется, намного легче и проще будет сделать это при помощи лофтинга. Что же такое лофт-объекты? Представьте корпус корабля, разделенный шпангоутами (поперечными ребрами). Это и есть классический пример лофтинга, где в качестве формы пути выступает киль, а поперечных сечений – шпангоуты. Создание лофт-объектов происходит аналогичным способом. Сначала создается сплайн, являющийся путем, на который нанизывается любое количество поперечных сечений (форм). При построении лофт-объектов можно использовать практически любую форму для поперечного сечения или пути. Если соблюдать некоторые несложные ограничения, можно добиться впечатляющих результатов. Рассмотрим эти ограничения. Что касается формы пути, есть лишь одно ограничение – она может состоять только из одного сплайна. Если при попытке использовать сплайн в качестве формы пути 3ds Max отказывается его воспринимать, это первый признак того, что форма содержит более одного сплайна. Ко всем формам поперечного сечения применяется два ограничения: ¦ они должны содержать одинаковое количество сплайнов; ¦ должны иметь одинаковый порядок вложения. Если первая форма на пути содержит три сплайна внутри другого сплайна (рис. 9.19), то все последующие формы также должны содержать три сплайна внутри другого сплайна. Впрочем, это ограничение можно обойти, используя разомкнутый внешний сплайн. Рис. 9.19. Вложенные сплайны Основной недостаток разомкнутых сплайнов – они не могут иметь крышки на концах объектов. По этой причине, если возникает необходимость закрыть торцы такого объекта, приходится использовать модификатор Edit Mesh (Редактирование поверхности) с последующим редактированием вручную или назначать модификатор Cap Holes (Накрытие отверстий). Можно также применять деформацию масштабирования для лофт-объекта, изменяя параметр деформации до 0 % на концах объекта или любым доступным способом. Часто форма ведет себя необъяснимо из-за эффектов трансформаций, применяемых к исходным объектам. Они игнорируются впоследствии при создании лофт-объекта. Такие трансформации, как Move (Перемещение), Rotate (Вращение) и Scale (Масштабирование), не передаются с формой в лофт-объект (это концептуально заложено в потоковой схеме объекта). Если вам все-таки необходимо (в чем я очень сомневаюсь) произвести какие-либо трансформации, то выполняйте их после применения модификатора XForm (Преобразование). Кроме того, можно изменять форму лофтинга на уровне подобъектов внутри самого лофт-объекта. Формы можно строить в любом окне проекции, однако полезно придерживаться следующих правил: ¦ форма пути для горизонтальных объектов строится от основания объекта до его верха или от задней части к передней; ¦ формы поперечных сечений строятся в тех окнах проекций, которые наиболее согласуются с видом объекта сверху или спереди. Таким образом, лучше всего строить формы пути и поперечного сечения в разных окнах проекций. Рассмотрим пример создания простого лофт-объекта – карандаша. Для этого в окне проекции Front (Спереди) создайте четыре сплайна (хотя можно обойтись и тремя) (рис. 9.20). Четвертый сплайн – копия шестиугольника со сдвинутыми вверх манипуляторами Безье во всех шести точках сплайна. На рис. 9.21 в окне проекции To p (Сверху) изображена форма, которая получилась у меня. В окне проекции To p (Сверху) также следует построить сплайн, который будет формой пути для карандаша. Рис. 9.20. Сплайны, определяющие профиль модели карандаша Рис. 9.21. Форма сплайнов в окне проекции Top (Сверху) После построения всех сплайнов можно приступать к созданию лофт-объекта. Для этого выполните следующие действия. 1. В окне проекции Top (Сверху) выделите сплайн пути (прямую). 2. На вкладке Geometry (Геометрия) командной панели выберите из раскрывающегося списка Compound Objects (Составные объекты). 3. Щелкните на кнопке Loft (Лофтинговые), чтобы активизировать режим построения лофтинговых объектов. 4. В свитке Creation Method (Метод создания) щелкните на кнопке Get Shape (Взять форму), после чего указатель мыши перейдет в режим выбора. 5. Щелкните кнопкой мыши на первой форме поперечного сечения (окружности большего диаметра). В результате лофт-объект примет форму цилиндра. 6. В свитке Path Parameters (Параметры пути) введите значение Path (Путь), равное 5. Так мы определили местоположение второго сечения. 7. Снова нажмите кнопку Get Shape (Взять форму) и выберите вторую форму (плоский шестиугольник, расположенный слева). После этого лофт-объект станет шестигранной формы. 8. Задайте параметру Path (Путь) значение, равное 85 (расстояния по умолчанию вводятся в процентах от всего пути). 9. Щелкните на кнопке Get Shape (Взять форму) и выберите в окне проекции Front (Спереди) правый шестигранник. 1 0. Задайте параметру Path (Путь) значение, равное 100, и выберите последнюю форму – маленькую окружность. Теперь лофт-объект похож на карандаш (рис. 9.22).
Прежде чем приступить к моделированию следующего объекта более сложной формы, необходимо рассмотреть, как согласовать первые вершины каждой формы поперечного сечения. Любой сплайн имеет первую вершину, которая обозначается квадратиком в точке ее расположения. Чтобы не происходило скручивание лофт-объекта от формы к форме, необходимо выровнять первые вершины. Делается это одним из двух способов: ¦ назначением первой вершины в необходимом месте; ¦ вращением сплайна вокруг своей оси в режиме SubObject (Подобъект) модификатора Loft (Лофтинговые), то есть когда он уже принадлежит лофт-объекту (помните, трансформации в лофт-объект не передаются, поэтому нет смысла вращать сам сплайн). Возьмем для примера два сплайна (допустим, окружность и квадрат) и посмотрим, как выглядят несогласованные и согласованные первые вершины у лофт-объекта. На рис. 9.23, слева изображено расположение первых вершин по умолчанию, а на рис. 9.23, справа – результат такого расположения вершин. Рис. 9.22. Карандаш, построенный при помощи объекта Loft (Лофтинговые) Рис. 9.23. Сплайн с несогласованными вершинами (слева) и объект, построенный на основе такого сплайна (справа) Если согласовать расположение первых вершин, то получится правильная форма (рис. 9.24). Иначе говоря, если соединить первые вершины, начиная от основания к верху объекта, воображаемыми отрезками, то должна получиться прямая линия. Перейдем к созданию более сложных форм лофт-объектов. Одним из классических примеров сложного объекта является вилка. В данном случае, кроме того, что сплайн имеет более сложную форму, присутствует большее количество сплайнов внутри формы поперечного сечения. Особенность построения такого лофт-объекта заключается в том, что нужно подогнать количество сплайнов внутри каждого поперечного сечения по максимальному количеству сплайнов в форме. Например, в вилке максимальное количество сплайнов поперечного сечения – три (в зубцах вилки – по одному на каждый зубец). Чтобы получить более сглаженную форму, я использовал четыре сплайна (средний овал разделен на два сплайна). Исходя из этого все остальные формы также должны иметь по четыре сплайна.
На рис. 9.25 показаны формы поперечных сечений в окне проекции Front (Спереди). Рис. 9.24. Сплайн с согласованными вершинами (слева) и лофт-объект, построенный на основе такого сплайна (справа) Рис. 9.25. Формы поперечных сечений, подготовленные для моделирования вилки На окружностях, образующих ручку, в режиме редактирования Vertex (Вершина) необходимо добавить дополнительные точки, а затем разделить сплайн на четыре части (выделить нужные точки и применить к ним команду Break (Разбить)). То же самое необходимо сделать и с прямоугольником. В процессе создания лофтобъекта можно редактировать как расположение поперечных сечений вдоль пути, так и их форму. Вместе с тем вы можете уточнять форму сплайна пути, поэтому совсем не обязательно все тщательно подгонять с самого начала.
На рис. 9.26 показана схема расположения поперечных сечений на сплайне. Еще одной замечательной особенностью лофт-объектов является то, что при помощи комбинации разомкнутых и замкнутых сплайнов можно строить поверхности с разрезами и разрывами. Если необходимо построить поверхность с множеством отверстий, нужно разделить замкнутые формы на равное количество сплайнов (не забывая о согласовании первых вершин и порядке следования сплайнов внутри формы). На рис. 9.27 показаны сплайны, из которых я смоделировал лофт-объект с разрывом посередине. Рис. 9.26. Вилка, построенная при помощи лофт-объекта Рис. 9.27. Сплайны формы, подготовленные для моделирования детали с дырой Рисунок 9.28 дает представление о взаимном расположении сплайнов формы, нанизанных на сплайн пути, и визуализированном изображении лофт-объекта с дырой.
Еще одним классическим примером лофт-объекта является ложка. Несмотря на то что на первый взгляд она мало напоминает лофт-объект, ее достаточно просто строить при помощи команды Fit (Подогнать). Рис. 9.28. Схема расположения сплайнов вдоль пути (слева) и результат визуализации объекта с дырой (справа) Деформация подгонки имеет несколько ограничений (однако это не мешает ей оставаться быстрым и мощным средством для построения объектов сложной формы): ¦ формы подгонки должны быть одиночными замкнутыми сплайнами; ¦ искривленные сегменты не должны расширяться за пределы первой и последней вершины формы на оси X; ¦ формы подгонки не должны иметь подрезаний, то есть если зрительно провести вертикальную линию, проходящую через сплайн, то она не должна разрезать форму более чем в двух местах; ¦ формы вида сверху и вида сбоку должны иметь одинаковую длину. Последнее требование не является обязательным, так как 3ds Max может автоматически масштабировать вторую форму, подогнав ее под длину первой, однако в результате могут возникнуть непредвиденные искажения. Для построения модели ложки выполните следующие действия. 1. В окне проекции Тор (Сверху) постройте две формы подгонки – контуры будущей ложки вида сверху и сбоку. 2. В этом же окне проекции постройте прямую – форму пути (рис. 9.29). 3. В окне проекции Left (Слева) постройте три формы поперечного сечения (на самом деле при построении таких объектов их может быть сколько угодно) (рис. 9.30). Рис. 9.29. Формы подгонки для построения модели ложки Рис. 9.30. Формы поперечного сечения модели ложки 4. Постройте лофт-объект по классической схеме (как строили карандаш): выделив сплайн пути, нажмите кнопку Get Shape (Взять форму), после чего щелкайте кнопкой мыши на сплайнах поперечных сечений, не забывая при этом смещать положение точки пути. В результате должна получиться форма, показанная на рис. 9.31. Рис. 9.31. Начальная форма ложки после применения сплайнов поперечного сечения Для дальнейшего моделирования ложки сделайте следующее. 1. В свитке Deformations (Деформации) щелкните на кнопке Fit (Подогнать), в результате чего появится окно деформации подгонки. 2. В окне деформации подгонки нажмите кнопку Make Symmetrical (Сделать симметричным) чтобы запретить симметричное построение для обеих осей. 3. Щелкните на кнопке Display X Axis (Отобразить ось Х) чтобы загрузить форму подгонки по оси O. 4. Нажмите Get Shape (Взять форму) и в окне проекции Top (Сверху) выберите форму ложки (рис. 9.32). Рис. 9.32. Форма ложки в окне подгонки деформации по оси X 5. Проделайте вышеописанные действия для формы подгонки по оси Y, выбрав при этом сплайн вида сбоку. 6. При необходимости уточните положение точек на профилях (их также можно добавить или удалить). На рис. 9.33 показано окончательное изображение визуализированной модели ложки.
Вернемся к построению лофт-объектов, имеющих разомкнутый внешний сплайн. На рис. 9.34 представлены две формы поперечного сечения, каждая из которых состоит из трех сплайнов. Рис. 9.33. Готовая модель ложки Рис. 9.34. Две формы с разомкнутым сплайном При построении этих форм использовались скругленные прямоугольники и сплайны окружностей. Прямоугольники имеют разрывы в точках, расположенных на сплайне справа (могут быть в любом месте, но обязательно согласованы). Чтобы выполнить разрыв сплайна, выделите точку на сплайне, затем в свитке Geometry (Геометрия) щелкните на кнопке Break (Разбить). Сам лофт-объект строится обычным способом – при помощи сплайна пути и сплайна формы (рис. 9.35). Остановимся подробнее на моделировании лофт-объектов с возвратными путями. Данный способ позволяет во многих случаях избежать применения булевых операций и получить предсказуемую и легко настраиваемую модель. В качестве объекта для моделирования возьмем головку для накидного гаечного ключа. Начнем моделирование с создания сплайнов. Для этого выполните следующие действия. 1. В окне проекции To p (Сверху) постройте две окружности диаметром 70 и 50. Для этого выполните команду Create > Shapes > Circle (Создание > Формы > Окружность), после чего щелкните в окне проекции Top (Сверху) и переместите указатель в сторону для построения окружности. 2. Для моделирования прямоугольника выполните команду Create > Shapes > Rectangle (Создание > Формы > Прямоугольник) и постройте в окне проекции To p (Сверху) прямоугольник размером 50 х 50. 3. Чтобы создать внутреннее отверстие, понадобится сплайн Star (Звезда) с параметрами, показанными на рис. 9.36. Он строится аналогично предыдущим объектам. Рис. 9.35. Деталь, построенная с использованием разомкнутых сплайнов Рис. 9.36. Настройки сплайна Star (Звезда) 4. Постройте сплайн возвратного пути. Для этого в окне проекции Front (Спереди) поставьте точку, которая будет служить основанием сплайна, затем точку вверху и опять у основания. В итоге внизу получатся две точки (первая и последняя), а вверху – одна (там сплайн меняет направление на противоположное). На предложение объединить вершины ответьте отрицательно.
правой кнопкой мыши и установите в открывшемся окне флажок Grid Points (Точки сетки). На рис. 9.37 показаны сплайны, построенные для моделирования детали. Помните, что обязательно нужно согласовывать первые вершины. Желательно, чтобы количество сегментов (вершин) у всех сплайнов формы сечения также совпадало (для получения сглаженной формы). Чтобы количество сегментов было одинаковым во всех сплайнах, выполните следующие действия. 1. Конвертируйте все формы в Editable Spline (Редактируемый сплайн) командой Convert To > Convert to Editable Spline (Преобразовать > Преобразовать в редактируемый сплайн) контекстного меню. 2. Выделите сегменты объекта Star (Звезда) (потому что этот сплайн содержит наибольшее количество сегментов) и в свитке Selection (Выделение) посмотрите статистику выделенных сегментов. Их количество – 32. Именно к такому количеству сегментов нужно привести остальные сплайны. 3. Выделите прямоугольник и затем в режиме редактирования подобъектов Segment (Сегмент) – все его сегменты (четыре). После этого в поле рядом с кнопкой Divide (Разделить) свитка Geometry (Геометрия) наберите цифру 7 и щелкните на кнопке Divide (Разделить). В результате в квадрате получится 32 сегмента. 4. Проведите те же операции для двух оставшихся окружностей. 5. Согласуйте все первые вершины, для чего выставьте их у всех сплайнов, например, справа. Теперь можно приступать к построению лофт-объекта. Схема распределения путей такова: ¦ 0 % – большая окружность; ¦ 27 % – большая окружность; ¦ 27,1 % – меньшая окружность (уменьшается диаметр поверхности детали); ¦ 50 % – меньшая окружность; ¦ 50,1 % – квадрат (в этом месте путь меняет направление на противоположное и получается внутреннее отверстие); ¦ 75 % – квадрат; ¦ 75,1 % – звезда (отверстие из квадратного превращается в многогранное); ¦ 99,9 % – звезда; ¦ 100% – большая окружность (закрываем пустоту между внешним и внутренним отверстиями). Чтобы закончить построение объекта, внесите следующие изменения. В свитке Skin Parameters (Параметры поверхности) снимите флажки Cap Start (Закрыть начало) и Contour (Контур). Готовый лофт-объект показан на рис. 9.38. Рис. 9.37. Сплайны для построения ключа Рис. 9.38. Схема расположения сплайнов вдоль пути (слева) и сам объект (справа)
Подводя итоги, стоит сказать, что при помощи лофт-моделирования можно создавать не только простые, но и достаточно сложные геометрические формы. Кроме того, осталась нерассмотренной такая возможность, как анимация пути, но это тема для отдельного упражнения. Моделирование шторМоделирование любого объекта сцены должно начинаться с предварительного анализа. Такой подход позволяет экономить и время, и ресурсы компьютера. Итак, что же такое шторы с точки зрения трехмерного объекта? Наверное, проще всего представить штору как прямоугольник с вертикальными складками. В связи с этим встает следующий вопрос: а как же проще всего получить такие складки? При ответе на этот вопрос вы должны определиться в том, насколько хорошо вы знаете возможности программы и какие способы моделирования предпочитаете. Например, я знаю как минимум четыре способа моделирования шторы. ¦ Моделирование профиля при помощи сплайнов с последующим применением модификатора Extrude (Выдавливание) или объекта Loft (Лофтинговые) и редактирования поверхности при помощи модификатора FFD Box (Произвольно деформируемый контейнер (прямоугольный)) для придания шторе окончательного вида. ¦ Создание объекта Plane (Плоскость) со значительным количеством вертикальных полигонов, затем редактирование положения вершин в пространстве и применение модификатора MeshSmooth (Сглаженная поверхность) для сглаживания граней. В данном случае вы можете максимально контролировать итоговую геометрию, но теряете значительное количество времени по сравнению с предыдущим вариантом. ¦ Моделирование на основе NURBS-объекта с использованием верхнего и нижнего профиля и последующим применением команды Ruled Surface (Поверхность по краям). Именно использование двух профилей позволяет получить более естественный вид подвешенной к карнизу шторы. ¦ Создание Surface-поверхности. В этом случае также используются два сплайна профиля – верхний и нижний – с последующим применением модификаторов CrossSection (Поперечное сечение) и Surface (Поверхность). Рассмотрим два последних варианта. Первый вариантКак я уже говорил выше, для моделирования NURBS-поверхности понадобится создать два профиля. Построение необходимо проводить в окне проекции Top (Cверху), а в качестве кривой должна использоваться CV Curve (CV-кривая), для построения которой выполните команду главного меню Create > NURBS > CV Curve (Создать > NURBS > CV-кривая). Я думаю, вы знаете, как выглядят шторы, поэтому не стану рассказывать вам о том, что они собой представляют и каким образом крепятся. Замечу лишь, что в верхней части складки обычно более плотные, что обусловлено способом крепления шторы к карнизу (кольца, зажимы и т. д.). В нижней части штора свободно свисает под воздействием силы гравитации, а те физические законы, которые заставляют ткань распрямляться, в некоторой степени сглаживают неровности, создаваемые в местах крепления. Таким образом, складки нижней части шторы должны в целом соответствовать верхним, но иметь более свободную форму (рис. 9.39). Рис. 9.39. Форма CV-кривых для верхнего и нижнего края шторы На самом деле верхняя кривая (на рис. 9.39 она белая) может выглядеть иначе. Я в данном случае предположил, что в качестве шторы у меня используется гладкое полотно (не имеющее декоративной отделки), которое крепится к карнизу зажимами (без создания предварительных складок). В результате, если немного собрать такую штору, как раз получится волна.
При желании можно создать эффект подвешенной ткани. Обычно в области изгиба ткани, максимально удаленной от места крепления, возникает провисание. Такое провисание ткани легко получить путем выделения среднего ряда вершин (в местах крепления к карнизу) и небольшого смещения их вверх (рис. 9.41). Кривые готовы. Не забывайте о том, что они должны быть расположены в одной плоскости относительно вертикали и расстояние между ними должно составлять высоту шторы. Рис. 9.40. Уровень подобъектов Curve CV (Управляющие вершины кривой) для редактирования кривой Рис. 9.41. Результат перемещения среднего ряда управляющих вершин верхнего сплайна Осталось совсем немного – создать поверхность между двумя кривыми. Для этого как нельзя лучше подойдет инструмент Ruled Surface (Поверхность по краям), но прежде необходимо объединить построенные кривые в один объект. Сделать это можно путем присоединения одной кривой к другой. Для этого выделите одну кривую, нажмите кнопку Attach (Присоединить), расположенную в свитке General (Общие) настроек кривой, и щелкните в окне проекции на второй кривой. Щелкните на кнопке Create Ruled Surface (Создать поверхность по краям) расположенной на плавающей палитре инструментов NURBS1, и выберите в окне проекции одну кривую, а затем вторую. В результате вышеописанных операций вы получите готовую поверхность шторы (рис. 9.42).
1 Плавающую палитру NURBS можно вызвать щелчком на кнопке NURBS Creation Toolbox (Панель инструментов создания NURBS-объекта), расположенной в свитке General (Общие) настроек NURBS-кривой на вкладке Modify (Изменение) командной панели. Рис. 9.42. Штора, построенная по двум кривым Этим можно было бы ограничиться, но я хотел бы еще в общих чертах описать, как изменить геометрию шторы, если она собрана у основания или в другой части. Наверное, вы уже успели заметить, что NURBS-поверхность не имеет других контрольных точек, кроме тех, которые расположены на сплайнах в верхней и нижней частях шторы. Этого явно недостаточно для того, чтобы редактировать поверхность в горизонтальной плоскости. В связи с этим первое, что необходимо сделать, – это добавить управляющие вершины в среднюю часть. Для этого выполните следующие действия. 1. В стеке модификаторов перейдите на уровень редактирования подобъектов Surface (Поверхность). 2. Выделите поверхность и в свитке Surface Common (Общие свойства поверхности) щелкните на кнопке Make Point (Создать точку) (рис. 9.43), в результате чего откроется окно Make Point Surface (Создать точки поверхности). Рис. 9.43. Свиток Surface Common (Общие свойства поверхности) настроек построенной шторы 3. Значение параметра Number In U (Количество по горизонтали) окна Make Point Surface (Создать точки поверхности), который определяет количество точек поверхности по горизонтали, оставьте заданным по умолчанию. Параметру Number in V (Количество по вертикали) задайте значение в пределах от 10 до 20, в зависимости от стоящей перед вами задачи. Я задал значение, равное 14. Этого вполне достаточно, чтобы собрать штору в нижней ее части. После того как будут добавлены точки поверхности, их можно редактировать, для чего необходимо перейти на уровень подобъектов Point (Точка) и воспользоваться инструментами перемещения, масштабирования и поворота. На рис. 9.44 представлена штора, которую я получил при помощи перемещения точек и использования параметра Soft Selection (Плавное выделение). Рис. 9.44. Модель шторы после редактирования вершин Второй вариантВторой вариант моделирования шторы в общих чертах напоминает описанный выше, но имеет свои особенности. Как и в первом варианте, необходимо построить кривую, которая будет являться профилем модели шторы. Чтобы ее создать, необходимо воспользоваться командой главного меню Create > Shapes > Line (Создать > Формы > Линия) и построить кривую в окне проекции Top (Сверху). Скопируйте построенную кривую со смещением по вертикали и отредактируйте ее форму так, чтобы получить геометрию нижнего края.
Для продолжения моделирования нужно, как и в предыдущем случае, чтобы оба сплайна принадлежали одному объекту. Сделать это просто: достаточно выделить один из сплайнов, затем в свитке Geometry (Геометрия) его настроек нажать кнопку Attach (Присоединить) и в окне проекции щелкнуть на втором сплайне. После этого можно перейти к созданию поверхности, которая строится при помощи двух модификаторов: CrossSection (Поперечное сечение) и Surface (Поверхность) (рис. 9.45). Рис. 9.45. Стек модификаторов шторы В результате применения модификаторов вы получите поверхность шторы, а после небольшого редактирования вершин сплайнов – оригинальную форму. Как и в предыдущем варианте, вы можете редактировать не только вершины верхнего и нижнего рядов, но и всю поверхность. Необходимо лишь применить к объекту соответствующий модификатор, например Edit Patch (Редактирование кусков) или Edit Poly (Редактирование полигонов).
На рис. 9.46 представлен второй вариант модели шторы. Рис. 9.46. Второй вариант модели шторы
cuteДля ознакомления с первым и вторым вариантами модели шторы вы можете обратиться к файлам curtain v1.max и curtain v2.max, расположенным в папке Examples\Глава 09\Curtain прилагаемого к книге DVD. Полигональное моделирование телефонной трубкиВ этом упражнении рассмотрим создание модели телефонной трубки при помощи полигонального моделирования (рис. 9.47). Рис. 9.47. Модель телефонной трубки Начнем моделирование с построения примитива Box (Параллелепипед). В свитке Parameters (Параметры) его настроек укажите габариты объекта и количество его сегментов по длине, ширине и высоте (рис. 9.48). Телефонная трубка имеет изгиб. Чтобы создать его, примените модификатор Bend (Изгиб), выполнив команду Modifiers > Parametric Deformers > Bend (Модификаторы > Параметрические деформации > Изгиб). В результате в стеке модификаторов появится требуемый элемент. Задайте его параметры согласно изображенным на рис. 9.49. Рис. 9.48. Параметры примитива Box (Параллелепипед) для построения трубки телефона Рис. 9.49. Параметры модификатора Bend (Изгиб) Больше свойства параметрического объекта вам не понадобятся. Дальнейшая работа будет проходить на уровне редактирования подобъектов – вершин, ребер, полигонов и т. д. Чтобы преобразовать объект в редактируемую поверхность, щелкните на параллелепипеде правой кнопкой мыши. Появится контекстное меню, в котором выполните команду Convert To > Convert to Editable Poly (Преобразовать > Преобразовать в редактируемую полигональную поверхность).
Перейдите на уровень редактирования вершин, для чего щелкните на кнопке Vertex (Вершина) в свитке Selection (Выделение). После этого в окне проекции Left (Слева) отредактируйте три верхних ряда вершин так, чтобы получился изгиб трубки в поперечном сечении (рис. 9.50). Далее создайте таким же способом изгибы формы на торцах трубки, с той лишь разницей, что основание, которым трубка ставится на базу, должно быть выгнуто меньше, нежели верх (рис. 9.51). Рис. 9.50. Редактирование изгиба верхней части трубки Рис. 9.51. Редактирование вершин в окне проекции Top (Сверху) Чтобы скруглить объект, перейдите на уровень редактирования граней. Для этого нажмите кнопку Edge (Ребро) в свитке Selection (Выделение). Перед тем как начать выделение граней, установите флажок Ignore Backfacing (Без обратной ориентации), что позволит избежать случайного выбора граней, лежащих на противоположных сторонах геометрии. Для выделения необходимых ребер, удерживая клавишу Ctrl, щелкайте поочередно на одном из ребер каждой стороны. Таким образом вы добавите их к выделению. После этого в свитке Selection (Выделение) нажмите кнопку Loop (Петля), чтобы автоматически выбрать остальные ребра (рис. 9.52). Помните, что в процессе выбора ребер нужно контролировать область выделения во всех окнах проекций. После выделения необходимых ребер можно применить к ним команду Chamfer (Фаска). Для этого разверните свиток Edit Edges (Редактирование ребер) настроек объекта и щелкните на кнопке Settings (Настройки) рядом с кнопкой Chamfer (Фаска). В появившемся окне Chamfer Edges (Фаска ребер) задайте параметру Chamfer Amount (Величина фаски) значение, равное 4. Щелкните на кнопке OK. В результате на краях появятся закругления. Их можно увидеть, установив для объекта сглаживание. Для этого в свитке Subdivision Surface (Поверхности с разбиением) установите флажок Use NURMS Subdivision (Использовать NURMS-разбиения), а в области Display (Отображение) задайте параметру Iterations (Количество итераций) значение, равное 2. Поверхность станет сглаженной (рис. 9.53). Рис. 9.52. Выделенные ребра верхних и боковых граней для формирования фаски Рис. 9.53. Поверхность после применения фаски и сглаживания Повторим те же действия для нижних ребер. 1. Выберите ребра, расположенные по периметру нижней плоскости. 2. Вызовите окно Chamfer Edges (Фаска ребер). 3. Задайте параметру Chamfer Amount (Величина фаски) значение, равное 2. 4. Подтвердите внесенные изменения, щелкнув на кнопке OK. В результате вы получите скругления на нижней части трубки, но с меньшим радиусом (рис. 9.54). Мы сделали приблизительную форму трубки телефона. Теперь нужно добавить вершины для редактирования. Это можно сделать разными способами, но мы воспользуемся самым простым и удобным в данном случае – секущей плоскостью. Для выполнения сечения поверхности плоскостью сделайте следующее. 1. Вернитесь на уровень редактирования вершин, щелкнув на кнопке Vertex (Вершина) в свитке Selection (Выделение). 2. В свитке Edit Geometry (Редактирование геометрии) щелкните на кнопке Slice Plane (Секущая плоскость). В результате кнопка подсветится цветом, а в горизонтальной плоскости объекта появится секущая плоскость. 3. На панели инструментов щелкните на кнопке Angle Snap Toggle (Переключатель угловых привязок) что позволит проще поворачивать на заданные углы. 4. Щелкните на кнопке Select and Rotate (Выделить и повернуть) и поверните секущую плоскость на 90° (рис. 9.55). 5. Нажмите кнопку Slice (Срез) в свитке Edit Geometry (Редактирование геометрии). 6. Щелкните на кнопке Slice Plane (Секущая плоскость) в свитке Edit Geometry (Редактирование геометрии), чтобы отключить создание сечений. Рис. 9.54. Фаска на нижних гранях трубки относительно объекта-трубки Рис. 9.55. Положение секущей плоскости Прежде чем наращивать плотность сетки полигонов, необходимо отредактировать положение вершин в пространстве с учетом добавленных. Для этого в окне проекции Front (Спереди) переместите группы вершин, сформировав таким образом область расположения динамика. Перед этим не забудьте снять флажок Ignore Backfacing (Без обратной ориентации), чтобы можно было выбирать группы вершин по всему сечению (рис. 9.56). Для формирования мест для кнопок вам понадобится сделать еще пять сечений плоскостью в окне проекции Front (Спереди).
Как делать сечения, вы уже знаете. На рис. 9.57 показана та часть трубки, на которой нужно их сделать. Расстояния между ними должны быть приблизительно одинаковыми. Рис. 9.56. Отредактированная поверхность после разреза секущей плоскостью Рис. 9.57. Дополнительные сечения для формирования мест для кнопок Перейдем к формированию углубления, в которое обычно встраивается дисплей. У меня трубка старого образца, поэтому на этом месте находится всего лишь логотип фирмы Panasonic и индикатор разрядки батареи. Чтобы сформировать углубление, выполните следующие действия. 1. Перейдите на уровень редактирования вершин и установите флажок Ignore Backfacing (Без обратной ориентации), чтобы случайно не выбрать лишние вершины. 2. В окне проекции Bottom (Снизу) передвиньте три средние вершины вправо так, чтобы сформировать изгиб нижней части углубления (рис. 9.58). 3. Перейдите на уровень редактирования полигонов, щелкнув на кнопке Polygon (Полигон) в свитке Selection (Выделение). 4. Выделите четыре полигона, расположенных левее места изгиба. 5. В свитке Edit Polygons (Редактирование полигонов) щелкните на кнопке Settings (Настройки) рядом с кнопкой Inset (Смещение внутрь). 6. В появившемся окне Inset Polygons (Сместить полигоны внутрь) задайте параметру Inset Amount (Величина смещения) значение, равное 1,5, и подтвердите внесенные изменения, щелкнув на кнопке OK. В результате будут построены новые полигоны, смещенные внутрь (рис. 9.59). Чтобы закончить формирование углубления, выполните следующие действия. 1. Не снимая выделение с полигонов, щелкните на кнопке Settings (Настройки) рядом с кнопкой Extrude (Выдавливание). 2. В открывшемся окне Extrude Polygons (Выдавить полигоны) задайте параметру Extrude Height (Высота выдавливания) значение -7. Рис. 9.58. Начало формирования углубления Рис. 9.59. Полигоны для формирования углубления 3. Подтвердите внесенные изменения, щелкнув на кнопке OK. 4. Перейдите на уровень редактирования вершин, нажав кнопку Vertex (Вершина) в свитке Selection (Выделение). 5. В окне проекции Front (Спереди) отредактируйте положение вершин, как показано на рис. 9.60. Если сейчас посмотреть на созданное углубление, то можно увидеть, как его внутренние грани формируют скругления большого радиуса. В нашем случае, наоборот, внутренние грани по периметру должны образовывать четкую границу плоскостей. Чтобы это сделать, нужно увеличить плотность сетки в местах изгибов. Повысить плотность полигонов можно несколькими способами, но я воспользуюсь уже знакомым вам методом формирования фаски на уровне ребер. Для построения такой фаски выделите внутренние грани по периметру углубления, исключая сторону изгиба, и примените к ним Chamfer Edges (Фаска ребер). Введите значение Chamfer Amount (Величина фаски), равное 0,5. В результате углубление примет более реалистичный вид (рис. 9.61). Рис. 9.60. Положение вершин, формирующих углубление Рис. 9.61. Формирование фаски внутри отверстия Впечатление о проделанной работе портят внешние углы, которые имеют слишком большой радиус закругления. Чтобы избавиться от этого, примените к ребрам, формирующим эти углы, Chamfer Edges (Фаска ребер) с величиной смещения, равной 0,5 (рис. 9.62). Теперь можно переходить к формированию углубления в месте нахождения динамика. Легче всего его создать при помощи булевой операции Cut (Вычитание), но, как правило, это искажает полигональную сетку модели, превращая ее в «месиво» из вершин, ребер и полигонов и затрудняя дальнейшее редактирование. Данную операцию можно было бы применить в конце моделирования, но нужно еще сделать отверстия для кнопок, отделку и т. д., поэтому выполним углубление, сформировав его в существующей сетке. Чтобы облегчить построение окружности, создайте в окне проекции Bottom (Снизу) сплайн Circle (Окружность) с радиусом, равным 17. Для этого выполните команду Create > Shapes > Circle (Создание > Формы > Окружность), затем в окне проекции Bottom (Снизу) щелкните кнопкой мыши на месте расположения будущего углубления и переместите указатель в сторону, формируя окружность (рис. 9.63). В настройках окружности задайте параметру Radius (Радиус) значение, равное 17. Рис. 9.62. Обработка угла Рис. 9.63. Положение шаблона-окружности для формирования углубления в трубке телефона После появления шаблона, по которому можно выверять форму углубления, нужно увеличить плотность сетки полигонов в этом месте. Для этого воспользуйтесь инструментом Cut (Вычитание). Его можно активизировать в свитке Edit Geometry (Редактирование геометрии) на любом из уровней подобъектов, щелкнув на кнопке Cut (Вычитание). В результате кнопка изменит свой цвет, указывая, что она находится в активном режиме. После этого щелкните на ребре или вершине объекта и, не отпуская кнопку мыши, переместите указатель к другому ребру или вершине. Пунктирная линия вслед за указателем определит место, где будет создано новое ребро. Для выключения режима вычитания щелкните правой кнопкой мыши. Чтобы получить отверстие, нужно выполнить разрезы в несколько приемов, промежуточно редактируя вершины. Первые разрезы показаны на рис. 9.64. К диагональным разрезам добавьте разрезы по периметру отверстия. Отредактируйте положение вершин, но не старайтесь делать это максимально точно, так как после очередных разрезов положение вершин придется уточнять снова (рис. 9.65). Рис. 9.64. Разрезы, сделанные для формирования углубления Рис. 9.65. Добавлены новые разрезы по периметру окружности Чтобы получить максимально ровный и сглаженный круг, нужно выполнить еще по одному разрезу внутри сформированных лучей, исходящих из центра окружности. После этого можно переходить к окончательному редактированию вершин. Сейчас их положение должно быть определено шаблоном-окружностью, на котором они находятся, а расстояния между соседними вершинами по возможности должны быть одинаковыми. После того как будут расставлены вершины, можно сформировать внутреннее кольцо ребер. Для этого выделите внутренние полигоны и примените команду Inset (Смещение внутрь) описанным выше способом, но только с величиной сдвига, равной половине радиуса круга (рис. 9.66). Перед тем как перейти к формированию мест для кнопок, выполните сдвиг вершин, расположенных внутри окружности, так, чтобы сформировалась небольшая выемка. К внешнему кольцу из ребер примените Chamfer Edges (Фаска ребер) с очень маленькой величиной среза, чтобы по периметру углубления образовалась фаска (рис. 9.67). Рис. 9.66. Формирование внутренних полигонов углубления Рис. 9.67. Окончательный вид углубления в телефонной трубке Теперь займемся углублениями для кнопок. Прежде чем выдавливать рельеф, нужно построить форму кнопок. Кнопки пульта мы сделаем как отдельные объекты, например с помощью примитива ChamferBox (Параллелепипед с фаской). Из шести построенных ранее сечений для формирования кнопок выделите четыре внутренних поперечных ряда ребер и примените к ним Chamfer Edges (Фаска ребер) с величиной среза, равной 4,5, что задаст ширину посадочного места (рис. 9.68). Выполните те же действия по отношению к продольным ребрам в области построения кнопок. Для этого примените к ним Chamfer Edges (Фаска ребер), но только с величиной среза, равной 6,5. В результате данных операций будет сформирована область выдавливания (рис. 9.69). Рис. 9.68. Применение Chamfer Edges (Фаска ребер) в начале формирования мест для кнопок Рис. 9.69. Применение Chamfer Edges (Фаска ребер) для продольных ребер Таким образом, мы создали общую форму отверстий для кнопок. Размер отверстий по длине примерно в полтора раза превышает ширину, что может сказаться на последующем сглаживании, если не разделить широкие стороны пополам. Воспользуйтесь командой Cut (Вычитание) и сделайте продольные разрезы, соединив противоположные вершины полей, где будут кнопки (рис. 9.70). Кнопки имеют скругленные грани, что относится и к отверстиям, в которых они будут находиться. Их можно сделать, сначала выдавив отверстия, затем выделив внутренние вертикальные грани и применив Chamfer Edges (Фаска ребер). Но можно поступить по-другому – применив к угловым вершинам Chamfer Vertices (Фаска вершин)1 перед выдавливанием. Можете попробовать оба метода, я опишу первый вариант. Чтобы сделать отверстия для кнопок телефонной трубки, выполните следующее. 1. Выделите все полигоны, относящиеся к будущим отверстиям. 2. В свитке Edit Polygons (Редактирование полигонов) щелкните на кнопке Settings (Настройки) рядом с кнопкой Extrude (Выдавливание). 3. В появившемся окне Extrude Polygons (Выдавить полигоны) выставьте величину выдавливания –4 и подтвердите внесенные изменения, щелкнув на кнопке OK. 1 Чтобы вызвать окно Chamfer Vertices (Фаска вершин), следует щелкнуть на кнопке, расположенной рядом с кнопкой Chamfer (Фаска) в свитке Edit Vertices (Редактирование вершин). Теперь необходимо сформировать скругления внутренних углов. Для этого выполните следующие действия. 1. Перейдите на уровень редактирования Edge (Ребро) 2. Выделите все внутренние вертикальные ребра сформированных отверстий. 3. Примените к ним Chamfer Edges (Фаска ребер) и задайте параметру Chamfer Amount (Величина фаски) значение 1.
Продолжим формирование фасок отверстий. Выделите по одному верхнему ребру в каждом отверстии и щелкните на кнопке Loop (Петля), находящейся в свитке Selection (Выделение). В результате должны выделиться все ребра, очерчивающие верхний край отверстия. Примените к ним Chamfer Edges (Фаска ребер) со значением параметра Chamfer Amount (Величина фаски) 0,1. После того как будет сделана фаска для верхних ребер, перейдите на уровень редактирования полигонов, щелкнув на кнопке Polygon (Полигон) Внутренние полигоны все еще должны быть выделены, если это не так, выделите их снова. После этого в свитке Edit Geometry (Редактирование геометрии) щелкните на кнопке Detach (Отделить) и в появившемся окне выберите метод отделения Detach To Element (Отделить в элемент). То, что должно получиться после редактирования полигонов, показано на рис. 9.71. Рис. 9.70. Дополнительные разрезы в области расположения кнопок Рис. 9.71. Окончательно сформированные углубления для кнопок Теперь нужно сделать сами кнопки. Для этого используйте примитив ChamferBox (Параллелепипед с фаской) с параметрами, показанными на рис. 9.72. Можно не изменять созданную кнопку, а преобразовать ее в Editable Mesh (Редактируемая поверхность) и немного изменить положение вершин, чтобы получить небольшое закругление верха кнопки. После того как будет сформирована одна кнопка, сделайте ее копии для всех имеющихся углублений (рис. 9.73). Рис. 9.72. Параметры объекта ChamferBox (Параллелепипед с фаской), использованного для формирования кнопок Рис. 9.73. Окончательный вид кнопок Функциональные кнопки (меньшие по размеру) создаются таким же способом. Теперь пора переходить к антенне, формированию мест для функциональных кнопок, отделке и фирменной надписи Panasonic. Начнем с антенны. Для ее моделирования создайте примитив Box и настройте его параметры, как показано на рис. 9.74. Для дальнейшей работы построенный параллелепипед необходимо преобразовать в Editable Poly (Редактируемая полигональная поверхность). Для этого щелкните на нем правой кнопкой мыши и в открывшемся контекстном меню выполните команду Convert To > Convert to Editable Poly (Преобразовать > Преобразовать в редактируемую полигональную поверхность). Перейдите на уровень редактирования граней, щелкнув в свитке Selection (Выделение) на кнопке Edge (Ребро) После этого выделите все боковые грани и примените к ним Chamfer Edges (Фаска ребер) со значением параметра Chamfer Amount (Величина фаски), равным 2. Затем выделите верхние грани и постройте еще одну фаску, указав величину среза 0,1. На уровне редактирования полигонов при помощи команды Inset (Смещение внутрь) сформируйте внутренний ряд ребер для дальнейшего их выдавливания. Для этого выполните следующие действия. 1. Перейдите на уровень редактирования Polygon (Полигон) I ¦ и выделите наружный торцевой полигон. 2. Щелкните на кнопке Settings (Настройки) рядом с кнопкой Inset (Смещение внутрь), находящейся в свитке Edit Polygons (Редактирование полигонов). 3. В появившемся окне Inset Polygons (Сместить полигоны внутрь) задайте параметру Inset Amount (Величина смещения) значение 1,2 (рис. 9.75). Рис. 9.74. Параметры примитива Box (Параллелепипед), предназначенного для моделирования антенны Рис. 9.75. Формирование внутреннего ряда граней при помощи Inset (Смещение внутрь) При помощи секущей плоскости или вручную разделите моделируемый объект на две части по широкой стороне. Это облегчит процесс дальнейшего формирования закруглений на антенне. Затем при выделенном торцевом полигоне примените к нему команду Bevel (Выдавливание со скосом). Для этого вызовите окно Bevel Polygons (Выдавливание со скосом полигонов), щелкнув на кнопке Settings (Настройки) рядом с кнопкой Bevel (Выдавливание) в свитке Edit Polygons (Редактирование полигонов). Задайте параметрам Height (Высота) и Outline Amount (Величина смещения) значения, показанные на рис. 9.76. После того как будет сформирована внешняя часть антенны, отредактируйте ее окончание, сделав на торцевых ребрах фаску и передвинув вдоль оси антенны наружу центральные вершины для формирования скругления (рис. 9.77). Рис. 9.76. Параметры выдавливания верхней части антенны Рис. 9.77. Окончательный вид антенны Сделаем небольшое декоративное расширение в середине трубки. Для этого выделите средние ребра на боках трубки и примените к ним Chamfer Edges (Фаска ребер) со значением Chamfer Amount (Величина фаски), равным 2 (рис. 9.78). Выделите серединный шов по всему периметру модели и примените к нему Extrude Edges (Выдавить ребра), щелкнув на кнопке Settings (Настройки) рядом с кнопкой Extrude (Выдавливание). В появившемся окне Extrude Edges (Выдавить ребра) следует ввести значения, показанные на рис. 9.79. Рис. 9.78. Применение Chamfer Edges (Фаска ребер) для формирования продольного шва Рис. 9.79. Окно Extrude Edges (Выдавить ребра) с параметрами первого выдавливания Щелкните на кнопке Apply (Применить), чтобы выполнить первое выдавливание. Затем, не меняя выделения и не закрывая диалоговое окно Extrude Edges (Выдавить ребра), введите в поля новые значения высоты и ширины выдавливания (рис. 9.80). Щелкните на кнопке OK для применения изменений. При кажущейся сложности задачи для построения профиля стыка понадобилось всего две операции. Сделайте тестовую визуализацию трубки (рис. 9.81). Рис. 9.80. Окно Extrude Edges (Выдавить ребра) с параметрами второго выдавливания Рис. 9.81. Трубка с боковым швом В трубке есть еще некоторые детали, которые необходимо смоделировать (например, функциональные кнопки, кнопку включения-выключения и т. д.), но я не стану описывать процесс их создания, так как он ничем не отличается от того, который мы рассмотрели, – для основных кнопок трубки. Смоделируем место для функциональных кнопок, выполнив следующие действия. 1. Добавьте еще один поперечный разрез у основания трубки. 2. В продольной плоскости разрежьте полигоны, лежащие по бокам. В результате должен получиться прямоугольник, сформированный ребрами (рис. 9.82). 3. Примените к этим ребрам команду Extrude Edges (Выдавить ребра) так же, как для бокового шва. В результате у вас получится такой же шов, как и боковой, с той лишь разницей, что окажутся сильно сглаженными внутренние углы прямоугольника. Чтобы избавиться от этого эффекта, добавьте угловым ребрам Chamfer Edges (Фаска ребер) (рис. 9.83). Рис. 9.82. Ребра, формирующие площадку для функциональных кнопок Рис. 9.83. Окончательный вид места для функциональных кнопок Последний штрих – создание надписи на корпусе трубки. Ее нужно делать в последнюю очередь, так как после создания объекта ShapeMerge (Объединенные с формой) стек разрушится, и вы не сможете больше редактировать простую форму. Для создания текста сделайте следующее. 1. Выполните команду Create > Shapes > Text (Создание > Формы > Текст). 2. В области Text (Текст) свитка Parameters (Параметры) наберите, например, Panasonic. 3. Задайте параметру Size (Размер), определяющему величину шрифта, значение, равное 25, и выберите гарнитуру Arial Black. 4. Щелкните кнопкой мыши в окне проекции To p (Сверху) для завершения создания текста (рис. 9.84). Чтобы отобразить текст на поверхности трубки, выполните следующие действия. 1. Выделите модель телефонной трубки. 2. Перейдите на вкладку Create (Создание) командной панели, нажмите кнопку Geometry (Геометрия), в раскрывающемся списке выберите строку Compound Objects (Составные объекты) и щелкните на кнопке ShapeMerge (Объединенные с формой). 3. В свитке Pick Operand (Указать булев) нажмите кнопку Pick Shape (Указать форму), после чего щелкните на надписи Panasonic. В результате надпись спроецируется на поверхность трубки (рис. 9.85). Рис. 9.84. Расположение объекта Text (Текст) над корпусом трубки Рис. 9.85. Надпись, спроецированная на поверхность телефонной трубки Далее выполните команду Modifiers > Mesh Editing > Edit Mesh (Модификаторы > Редактирование поверхности > Редактирование поверхности). Затем перейдите на уровень подобъектов редактирования полигонов, щелкнув в свитке Selection (Выделение) на кнопке Polygon (Полигон) ¦ . Сейчас нужно выдавить надпись. По умолчанию она должна быть выделена, поэтому просто щелкните на кнопке Extrude (Выдавливание) и укажите величину выдавливания равной -0,5 (рис. 9.86). Рис. 9.86. Надпись на трубке, сделанная при помощи команды Extrude (Выдавливание) На этом моделирование трубки телефона можно считать законченным.
Моделирование микроволновой печиРассматривая процесс создания освещения в разд. «Использование базовых источников света в интерьере» гл. 7, мы использовали в сцене модели мебели и бытовой техники. Одним из таких объектов была микроволновая печь, о моделировании которой пойдет речь в данном разделе. Модель, которую мы будем строить, имеет средний уровень детализации и позволяет углубить знания по технике моделирования полигональных объектов, описывавшейся в предыдущих уроках. На рис. 9.87 показан результат визуализации микроволновой печи, которую нам предстоит моделировать. Минимум, который нам необходимо знать, прежде чем приступать к моделированию, – это габаритные размеры микроволновой печи. В нашем случае они составляют 325 х 280 х 455 мм. Начнем с моделирования корпуса. Для этого нужно построить примитив Box (Параллелепипед). Параметрами ширины, длины и высоты параллелепипеда будут габариты микроволновой печи (рис. 9.88). Рис. 9.87. Результат визуализации микроволновой печи Рис. 9.88. Свиток Parameters (Параметры) настроек примитива Box (Параллелепипед) Расположите этот параллелепипед в начале координат.
Построенный объект можно переместить в начало координат достаточно простым способом. Для этого нужно выделить объект и, активизировав инструмент Select and Move (Выделить и переместить) на главной панели инструментов, щелкнуть правой кнопкой мыши на стрелках, расположенных справа от полей X, Y и Z в нижнем поле экрана (рис. 9.89). В результате этих действий все значения параметров станут равны 0. Рис. 9.89. Строка состояния с координатами положения объекта в пространстве Дальнейшее редактирование параллелепипеда рассмотрим ниже, а пока продолжим моделирование. Построим улучшенный примитив Chamfer Box (Параллелепипед с фаской), который будет выступать в качестве базовой формы для лицевой панели микроволновой печи. Чтобы его создать, воспользуемся командой главного меню Create > Extended Primitives > Chamfer Box (Создание > Улучшенные примитивы > Параллелепипед с фаской). Его размеры должны быть меньше габаритов корпуса, а его грани – немного закруглены. На рис. 9.90 представлен сам объект и его размеры. Рис. 9.90. Объект ChamferBox (Параллелепипед с фаской) (слева) и его параметры (справа) Обратите внимание на то, что параметр Width Segs (Сегментов по ширине) стал равен 3, а Fillet Segs (Сегментов закругления) – 10. Это объясняется необходимостью увеличения количества полигонов для дальнейшего редактирования объекта. Параметрические свойства обоих объектов нам больше не понадобятся, и их можно конвертировать в Editable Poly (Редактируемая полигональная поверхность). Это проще всего сделать, щелкнув на объекте правой кнопкой мыши и выбрав в контекстном меню строку Convert To > Convert to Editable Poly (Преобразовать > Преобразовать в редактируемую полигональную поверхность). Для дальнейшей работы нам понадобится только объект с именем ChamferBox01, который мы продолжим редактировать на уровне подобъектов. Следовательно, корпус микроволновой печи, построенный ранее (то есть объект Box01), необходимо спрятать. Для этого достаточно выделить его, щелкнуть на нем правой кнопкой мыши и выбрать пункт контекстного меню Hide Selection (Спрятать выделенное). Продолжим моделирование. Выделите ChamferBox01 и перейдите на уровень редактирования полигонов. В окне проекции Left (Слева) выделите закругление, расположенное со стороны корпуса (рис. 9.91), и удалите его. Таким образом, мы уменьшим общее количество полигонов в сцене и немного упростим работу с объектом. Закруглим верхнюю и нижнюю части лицевой панели для придания ей нужной формы. Для изменения формы объекта перейдите на уровень редактирования вершин и выделите в окне проекции Left (Слева) два внутренних горизонтальных ряда вершин (рис. 9.92). Рис. 9.91. Полигоны, выделенные для удаления Рис. 9.92. Внутренние вершины, выделенные для редактирования Раскройте свиток Soft Selection (Плавное выделение) и установите флажок Use Soft Selection (Использовать плавное выделение). Параметрам Falloff (Спад) и Pinch (Сужение) задайте значения, равные 13 и 1 соответственно (рис. 9.93).
Щелкните на кнопке Select and Uniform Scale (Выделить и равномерно масштабировать) главной панели инструментов и маштабируйте выделенные вершины по оси Y (по вертикали) до 93 % (увидеть процент масштабирования можно в поле, расположенном рядом с параметром Y в строке состояния) (рис. 9.94). Рис. 9.93. Настройки свитка Soft Selection (Плавное выделение) и отображение выделенных вершин в окне проекции Рис. 9.94. Скругление, полученное при помощи масштабирования вершин Теперь необходимо разделить лицевую панель на две части: дверцу и панель управления. Именно для этого при построении объекта Chamfer Box (Параллелепипед с фаской) мы задали два разбиения по ширине. Воспользуемся ими. Перейдите на уровень редактирования вершин. В окне проекции Front (Спереди) выделите и переместите левый вертикальный внутренний ряд вершин так, чтобы он оказался на расстоянии 3-4 мм от правого. Это и будет то расстояние, которое образуется между дверцей и панелью управления. Выделите оба вертикальных ряда и переместите их немного вправо, так, чтобы они находились на расстоянии 1/4 от правого края (рис. 9.95). Рис. 9.95. Положение внутренних рядов вершин Чтобы завершить создание шва, необходимо выполнить еще несколько простых операций. 1. Перейдите на уровень редактирования полигонов и выделите полигоны между двумя вертикальными рядами вершин, которые только что редактировались. 2. В свитке Edit Polygons (Редактирование полигонов) щелкните на кнопке рядом с Extrude (Выдавливание). 3. Параметру Extrusion Height (Высота выдавливания) открывшегося окна Extrude Polygons (Выдавливание полигонов) задайте значение, равное -17, после чего нажмите OK (рис. 9.96). Не снимая выделения с полигонов, активизируйте окно проекции Front (Спереди), щелкнув на нем правой кнопкой мыши. В свитке Edit Geometry (Редактирование геометрии) щелкните на кнопке View Align (Выровнять по окну), в результате чего полигоны выровняются в плоскости проекции (рис. 9.97).
Рис. 9.96. Полигоны, выдавленные при помощи команды Extrude (Выдавливание) Рис. 9.97. Выровненные в плоскости полигоны Дальнейшее редактирование объекта будет относиться к его левой части, то есть к дверце, поэтому можно спрятать все лишние элементы. Для этого на уровне редактирования полигонов выделите часть объекта, относящуюся к панели управления, и только что построенный шов, а затем щелкните на кнопке Hide Selected (Спрятать выделенное) в свитке Edit Geometry (Редактирование геометрии). Продолжим моделирование. Дверца имеет прямоугольное окошко с закругленными углами – его нам сейчас и предстоит строить. Однако сначала необходимо создать шаблон, по которому будет выполняться построение. Это достаточно просто выполнить: в окне проекции Front (Спереди) постройте прямоугольник при помощи команды Create > Shapes > Rectangle (Создание > Формы > Прямоугольник) и в свитке Parameters (Параметры) задайте значения параметров, показанные на рис. 9.98. Рис. 9.98. Расположение прямоугольника относительно дверки микроволновой печи (слева) и его параметры (справа) Сейчас, имея шаблон формы окна дверцы, можно сделать соответствующие разрезы на фронтальной плоскости панели. Для этого перейдите на уровень редактирования полигонов и выделите большой внутренний полигон (позади прямоугольника), а затем щелкните на кнопке Slice Plane (Секущая плоскость) в свитке Edit Geometry (Редактирование геометрии). В результате кнопка выделится цветом, а в окнах проекций появится секущая плоскость. При помощи инструментов поворота и перемещения расположите секущую плоскость в вертикальной плоскости напротив правой стороны прямоугольника (рис. 9.99), после чего щелкните на кнопке Slice (Сечение). Переместите секущую плоскость к левой стороне прямоугольника и выполните аналогичный разрез. Поверните секущую плоскость в горизонтальном направлении и проделайте эти же операции над верхней и нижней сторонами прямоугольника. В результате центральный полигон будет иметь четыре новых разреза (рис. 9.100). Для скругления углов необходимо перейти на уровень редактирования вершин и выделить четыре угловые вершины, образованные новыми разрезами. После этого в свитке Edit Vertices (Редактирование вершин) следует щелкнуть на кнопке, расположенной рядом с Chamfer (Фаска). Параметру Chamfer Amount (Величина фаски) открывшегося окна Chamfer Vertices (Фаска вершин) задайте такое значение, чтобы линия, образованная новыми вершинами, касалась закругления сплайнового прямоугольника (рис. 9.101). Рис. 9.99. Положение секущей плоскости относительно прямоугольника Рис. 9.100. Разрезы, выполненные в средней части дверцы Рис. 9.101. Новые вершины, образованные при помощи инструмента Chamfer (Фаска) Щелкните на кнопке Apply (Применить) и задайте такое новое значение параметру Chamfer Amount (Величина фаски), чтобы новые образованные отрезки вновь касались кривой шаблона (рис. 9.102). Рис. 9.102. Новые точки, образующие угол При желании на данном этапе моделирования можно не изменять количество вершин. Однако если вы хотите получить более сглаженное закругление угла, то необходимо увеличить количество разбиений. Построив закругления, можно сохранить полученное расположение вершин. Однако я предпочитаю иметь более упорядоченную и оптимизированную геометрию, поэтому, используя команду Target Weld (Объединить целевую) из свитка Edit Vertices (Редактирование вершин), я соединил все свободные вершины в угловой точке (рис. 9.103). Рис. 9.103. Угол после редактирования вершин
Для продолжения формирования окна в дверце микроволновой печи необходимо выдавить построенный полигон. Для этого перейдите на уровень редактирования полигонов и выделите большой центральный полигон с закругленными углами, после чего примените к нему команду Extrude (Выдавливание) из свитка Edit Polygons (Редактирование полигонов) с величиной выдавливания 10-20 мм (рис. 9.104). После выдавливания выделенный полигон можно удалить, создав таким образом сквозное отверстие, которое впоследствии закроем плоскостью с текстурой решетки и стекла. Создавая модели окружающих нас предметов, мы стараемся сделать их максимально похожими на оригиналы, но часто забываем о мелочах, которые усиливают такое сходство при визуализации. В жизни почти нет предметов с абсолютно ровными и острыми углами. То же самое касается окна в дверце микроволновой печи. Если не оставлять края ровными, а сделать фаску, то при визуализации такая форма значительно выиграет. В этом месте получатся блики, которые подчеркнут геометрию. Рис. 9.104. Формирование углубления для окна Для получения фаски необходимо перейти на уровень редактирования ребер и выделить все ребра, образующие внешний край отверстия.
В свитке Edit Edges (Редактирование ребер) щелкните на кнопке рядом с Chamfer (Фаска) и задайте параметру Chamfer Amount (Величина фаски) появившегося окна значение, равное 1,5. Щелкните на кнопке Apply (Применить), а затем повторите создание фаски, выбрав значение, равное 0,5. Таким образом, вместо одного ребра, формирующего угол, вы получите четыре (рис. 9.105). Сформировав фаску, можно считать работу над дверцей законченной. Теперь следует перейти к моделированию панели управления, расположенной в правой части фасада микроволновой печи. Для этого необходимо открыть спрятанную ранее часть объекта и описанным выше способом спрятать отредактированную дверцу.
Рис. 9.105. Фаска, сформированная при помощи инструмента Chamfer (Фаска) На панели управления микроволновой печи находятся ручки управления таймером и мощностью, а также кнопка для открывания двери. Смоделируем их. Как и в случае с окном дверцы, предварительно построим шаблоны из стандартных форм, по которым будем проводить моделирование. Для этого нам понадобятся два сплайна Circle (Окружность) радиусом 27 мм и один сплайн Rectangle (Прямоугольник) c закругленными углами (рис. 9.106). Рис. 9.106. Расположение сплайнов на панели управления (слева) и параметры прямоугольника (справа) Моделирование углублений для ручек управления и кнопки открывания дверцы начнем с построения разрезов секущей плоскостью.
Прежде чем выполнять разрезы секущей плоскостью, перейдите на уровень редактирования полигонов и выделите центральный полигон, а в свитке Edit Geometry (Редактирование геометрии) нажмите кнопку Slice Plane (Секущая плоскость). В окне проекции Front (Спереди) разместите секущую плоскость так, чтобы она совпадала с одной из сторон прямоугольника, затем щелкните на кнопке Slice (Сечение) для создания разреза. Повторите аналогичные действия для оставшихся сторон прямоугольника (рис. 9.107). После этого сделайте еще три горизонтальных разреза по обе стороны от окружностей и между ними (рис. 9.108). Рис. 9.107. Центральный полигон, разрезанный для построения кнопки открывания двери Рис. 9.108. Расположение горизонтальных разрезов
Закругления вокруг кнопки открывания двери строятся аналогично тому, что мы уже делали на дверце, поэтому лишь напомню последовательность выполнения операций. 1. Перейдите на уровень редактирование вершин. 2. Выделите четыре угловые вершины и дважды (можно и больше, если хотите получить более сглаженное закругление) выполните команду Chamfer (Фаска). 3. При желании отредактируйте положение образованных вершин так, чтобы они сходились в одной или двух точках угла (рис. 9.109). Рис. 9.109. Расположение граней, формирующих кнопку открывания двери Кнопка, которую мы создаем, имеет небольшое декоративное углубление в середине. Для его моделирования нам нужно построить ребра во внутренней части кнопки. Горизонтальные ребра выполним при помощи команды Connect (Соединенные) из свитка Edit Vertices (Редактирование вершин). Для этого необходимо выделить две горизонтальные точки (рис. 9.110) и щелкнуть на кнопке Connect (Соединенные). Проделайте такую же операцию и с двумя другими горизонтальными точками во внутренней части кнопки. В вертикальной плоскости нам не удастся применить команду Connect (Соединенные), потому что между точками проходят ребра. По этой причине воспользуемся инструментом Cut (Вычитание) из свитка Edit Geometry (Редактирование геометрии) и дважды разрежем внутреннее пространство по вертикали (рис. 9.111). Для формирования углубления понадобится еще некоторое количество ребер. Сделаем это в три приема. 1. Выделите внутренний полигон, образованный разрезами, и в свитке Edit Polygons (Редактирование полигонов) щелкните на кнопке рядом с Inset (Смещение внутрь). В появившемся окне задайте параметру Inset Amount (Величина смещения) значение 3. Рис. 9.110. Внутренние вершины, соединенные при помощи команды Connect (Соединенные) Рис. 9.111. Разрезы, выполненные в вертикальной плоскости 2. Не снимая выделения с построенного полигона, щелкните на кнопке, расположенной рядом с Tessellate (Разбиение) в свитке Edit Geometry (Редактирование геометрии). В открывшемся окне установите переключатель в положение Face (Грани) и щелкните на кнопке OK (рис. 9.112). Рис. 9.112. Дополнительные ребра внутри клавиши 3. Сдвиньте выделенные полигоны на маленькое расстояние внутрь, чтобы образовалось небольшое прямоугольное выдавливание. При выделенных полигонах щелкните дважды на кнопке Grow (Увеличить) в свитке Selection (Выделение) для увеличения выделения до границ контура кнопки. После этого щелкните правой кнопкой на объекте и выберите в контекстном меню строку Convert to Edge (Преобразовать в ребра). Чтобы активными остались только внешние границы выделения, удерживая нажатой клавишу Alt, снимите выделение с внутреннего пространства. Далее примените к выделенным ребрам команду Chamfer (Фаска) со значением параметра Chamfer Amount (Величина фаски), равным 0,8 (рис. 9.113). Далее необходимо сделать углубление по периметру кнопки – создать шов между клавишей и корпусом. Выполнить это совсем просто: достаточно выделить внутренние полигоны, образованные построенными ребрами, и применить к ним команду Extrude (Выдавливание) из свитка Edit Polygons (Редактирование полигонов) с высотой выдавливания, равной –5 мм (рис. 9.114). После выдавливания вернитесь на уровень редактирования ребер (у вас должны остаться выделенными ребра по обе стороны шва) и создайте для выделенных ребер закругление, используя все тот же инструмент Chamfer (Фаска) со значением параметра Chamfer Amount (Величина фаски), равным 0,15. Это позволит получить закругления на краях, а следовательно, и более реалистичный вид модели после визуализации (рис. 9.115). Рис. 9.113. Применение команды Chamfer (Фаска) к выделенным ребрам Рис. 9.114. Полигоны, выдавленные в области шва
Рис. 9.115. Визуализированная модель передней панели микроволновой печи на данном этапе моделирования Займемся отверстиями, в которых будут находиться ручки управления. Несмотря на то что создание окружностей может показаться сложным, сделать их достаточно легко. Для этого в очередной раз обратимся к инструменту Chamfer (Фаска), но прежде нам необходимо провести небольшую подготовительную работу – разделить полигоны внутри будущих отверстий. Для создания дополнительных ребер внутри полигонов выполните следующие действия. 1. Перейдите на уровень редактирования полигонов и выделите два полигона, расположенных позади сплайнов. 2. В свитке Edit Geometry (Редактирование геометрии) щелкните на кнопке, находящейся рядом с Tessellate (Разбиение). 3. В открывшемся окне Tessellate Selection (Разбиение выделения) установите переключатель в положение Face (Грани) и щелкните на кнопке OK. В результате этих операций каждый полигон будет разделен на четыре части (рис. 9.116). Перейдите на уровень редактирования вершин и выделите две вершины, находящиеся в середине окружностей. После этого примените к ним инструмент Chamfer (Фаска) с такой величиной параметра Chamfer Amount (Величина фаски), чтобы образовавшиеся ребра по меньшей стороне (в нашем случае боковые) касались сплайнов окружности (рис. 9.117). Рис. 9.116. Разбиение полигонов командой Tessellate (Разбиение) Рис. 9.117. Положение вершин после применения инструмента Chamfer (Фаска) Для продолжения деления ребер при помощи инструмента Chamfer (Фаска) необходимо привести положение сторон внутренних полигонов к такому состоянию, при котором все четыре ребра внутренних полигонов будут соприкасаться со сторонами сплайна окружности. Боковые стороны объекта удовлетворяют такому требованию, поэтому остается скорректировать положение вершин по вертикали. Для этого выделите четыре вершины, относящиеся к одной из окружностей, и при помощи инструмента Select and Uniform Scale (Выделить и равномерно масштабировать) масштабируйте их по вертикали. После этого выполните те же операции и для второй окружности (рис. 9.118). Рис. 9.118. Положение скорректированных вершин Перейдите снова на уровень редактирования вершин и, выделив все восемь вершин, которые образовались после применения инструмента Chamfer (Фаска), повторите создание фаски от трех до четырех раз (в зависимости от того, какая детализация вам необходима) (рис. 9.119). Рис. 9.119. Окружность, образованная при помощи инструмента Chamfer (Фаска)
На рис. 9.120 показан фрагмент панели управления после объединения вершин при помощи команды Target Weld (Объединить целевую) из свитка Edit Vertices (Редактирование вершин). Рис. 9.120. Положение вершин после оптимизации
В дальнейшем нам понадобится cкруглить границы окружности, поэтому позаботимся о выделении необходимых ребер заранее следующим образом. 1. Перейдите на уровень редактирования полигонов и в окне проекции Front (Спереди) выделите два полигона в центре окружностей. 2. Щелкните на выделении правой кнопкой мыши и в контекстном меню выберите строку Convert to Edge (Преобразовать в ребра). В результате этих операций выделятся ребра по границам выделенных ранее полигонов. 3. Сохраните выделение, чтобы можно было работать с ним в будущем, и объедините выделенные ребра в именованную группу. Для этого укажите любое имя (лучше значимое, то есть такое, которое в будущем позволит быстро вспомнить, что вы выделяли) в поле Named Selection Sets (Название выделенной области) главной панели инструментов (рис. 9.121), после чего подтвердите сделанные изменения нажатием клавиши Enter. Рис. 9.121. Раскрывающийся список Named Selection Sets (Название выделенной области) Сейчас можно вернуться к выделенным полигонам и продолжить их редактирование. Нам необходимо выдавить окружности с целью получения углубления под ручками регулировки уровня мощности и таймером. Чтобы это сделать, достаточно воспользоваться инструментом Extrude (Выдавливание) из свитка Edit Polygons (Редактирование полигонов) с величиной выдавливания, равной –5 (рис. 9.122). Рис. 9.122. Выдавливание внутренних полигонов окружностей при помощи команды Extrude (Выдавливание) Как и в предыдущих случаях, на краях образованных углублений необходимо создать фаску. Для этого перейдите на уровень редактирования ребер. Если у вас снялось выделение с ребер, образующих верхний край углублений, то воспользуйтесь именованным списком, а затем примените к выделению инструмент Chamfer (Фаска) со значением параметра Chamfer Amount (Величина фаски), равным 0,6 (рис. 9.123). Приступим к моделированию ручек управления, например при помощи примитива Cylinder (Цилиндр). Он должен иметь размеры, позволяющие расположить его внутри образованного углубления, и количество сторон, близкое к тому количеству ребер, которое получилось на границе образованных углублений (рис. 9.124). Рис. 9.123. Визуализация выполненных углублений для ручек управления Рис. 9.124. Положение цилиндра и его параметры Дальнейшая работа предполагает редактирование объекта на уровне подобъектов, поэтому необходимо конвертировать цилиндр в Editable Poly (Редактируемая полигональная поверхность). Кроме того способа конвертации, который мы применяли ранее (использование контекстного меню объекта), эту же операцию можно выполнить при помощи стека модификаторов. Для этого щелкните правой кнопкой мыши на типе объекта в стеке модификаторов и в появившемся списке выберите Editable Poly (Редактируемая полигональная поверхность). Перейдите на уровень редактирования вершин и в свитке Selection (Выделение) установите флажок Ignore Backfacing (Без обратной ориентации). Это позволит выбирать только вершины, находящиеся в лицевой части объекта. Чтобы построить ручку необходимой формы, нам понадобится добавить новые ребра цилиндру в его фронтальной части. Для этого будем выделять попарно противоположные вершины, расположенные в вертикальной плоскости, и соединять их при помощи команды Connect (Соединенные) из свитка Edit Vertices (Редактирование вершин). Нам понадобится соединить все вершины в вертикальной плоскости, кроме двух пар, расположенных по краям (рис. 9.125). Рис. 9.125. Ребра, добавленные командой Connect (Соединенные) Для дальнейшего редактирования объекта нужны еще три горизонтальных разреза в середине цилиндра (рис. 9.126), которые необходимо выполнить при помощи инструмента Cut (Вычитание) из свитка Edit Geometry (Редактирование геометрии). Разрезав объект по горизонтали, перейдите на уровень редактирования полигонов. В окне проекции Front (Спереди) выделите два средних ряда полигонов, начиная со второго и заканчивая предпоследним, а затем примените к выделенным полигонам команду Extrude (Выдавливание) из свитка Edit Polygons (Редактирование полигонов) на величину выдавливания, равную 1,5 мм (рис. 9.127). Теперь изменим положение вершин в пространстве. Нам необходимо расположить передний ряд только что построенных полигонов так, чтобы он образовывал полукруг (рис. 9.128). Легче всего это сделать в окне проекции To p (Сверху), выделяя попарно вершины и двигаясь от края к центру. Рис. 9.126. Горизонтальные разрезы объекта Рис. 9.127. Полигоны, выдавленные в средней части ручки
Рис. 9.128. Расположение вершин в окне проекции Top (Сверху) Немного отредактируем вершины, находящиеся в средней части образованного выступа ручки. Для этого выполните следующие действия. 1. В окне проекции Front (Спереди) выделите средний ряд вершин выступающих вперед полигонов. 2. В окне проекции To p (Сверху) сместите их по координате Y на -2. 3. Вернитесь в окно проекции Front (Спереди) и выделите два внешних ряда вершин выступающих вперед полигонов. 4. При помощи инструмента Select and Uniform Scale (Выделить и равномерно масштабировать) выполните масштабирование по оси X на величину 95 % (рис. 9.129). Это необходимо сделать для того, чтобы выступающая часть ручки получила требуемое закругление. Осталось только сделать фаску по краю ручки и разбить геометрию. Чтобы сделать первое, перейдите на уровень редактирования ребер и выделите одно из ребер, лежащих на внешней окружности ручки управления, а затем щелкните на кнопке Loop (Петля) из свитка Selection (Выделение). В результате выделятся все ребра, лежащие на окружности. Примените инструмент Chamfer (Фаска) со значением параметра Chamfer Amount (Величина фаски), равным 0,6. Чтобы разбить геометрию и получить сглаженный результат, необходимо в свитке Subdivision Surface (Поверхности с разбиением) установить флажок Use NURMS Subdivision (Использовать NURMS-разбиение) и задать количество разбиений равным 2 (рис. 9.130). Копируйте созданную ручку, используя команду главного меню Edit > Clone (Правка > Клонировать), и разместите ее во втором отверстии панели управления. Таким образом, мы закончили моделирование лицевой панели микроволновой печи. Рис. 9.129. Форма ручки управления после редактирования вершин Рис. 9.130. Готовая ручка панели управления Вернемся к самому началу. Еще нужно создать модель корпуса. Параллелепипед для него уже построен. Командой Unhide All (Отобразить все) контекстного меню откройте все ранее спрятанные объекты. Выделите параллелепипед, построенный для корпуса, и преобразуйте его в Editable Poly (Редактируемая полигональная поверхность). Перейдите на уровень редактирования ребер и в окне проекции Top (Сверху) выделите два ребра, расположенных по бокам объекта в верхней его части. Дважды примените к выделенным ребрам фаску со значением параметра Chamfer Amount (Величина фаски), равным 8 и 2,5 (рис. 9.131). Рис. 9.131. Фаска в верхней части корпуса Если бы дверца была непрозрачной, то моделирование корпуса на этом можно было бы считать законченным, но в данном случае необходимо выдавить фронтальный полигон, чтобы в корпусе образовалось внутреннее пространство. Для этого перейдите на уровень редактирования полигонов и в окне проекции Front (Спереди) выделите большой полигон лицевой части корпуса, после чего выполните команду Inset (Смещение внутрь) с величиной смещения 3,5 мм (рис. 9.132). Используя инструмент Extrude (Выдавливание) из свитка Edit Polygons (Редактирование полигонов) с величиной выдавливания, равной -320 мм, сформируйте внутреннее пространство корпуса микроволновой печи. Чтобы закончить моделирование, постройте плоскость, закрывающую окно двери. Для этого выполните команду Create > Standard Primitives > Plane (Создание > Простые примитивы > Плоскость). На рис. 9.133 представлена окончательная модель микроволновой печи.
Рис. 9.132. Создание смещения Рис. 9.133. Результат визуализации готовой модели микроволновой печи В следующей главе мы рассмотрим принципы текстурирования микроволновой печи с использованием процедурных карт и идентификаторов материала. Комплексный подход к моделированию: создание крана для ваннойЯ уже неоднократно говорил, что любое моделирование должно начинаться с анализа будущей модели. Самым простым (и, наверное, самым правильным) способом анализа является попытка мысленно разделить сложную модель на части, для каждой из которых можно применить свой способ моделирования. Именно такой подход к моделированию я называю комплексным. Рассмотрим простой пример – нам необходимо создать модель магнитофона. Выполнив предварительный анализ, можно предположить, что большинство частей являются стандартными (Standard) или улучшенными (Extended) примитивами. Некоторые детали магнитофона могут потребовать более сложного подхода к моделированию, например создания составных объектов (Compound Objects). И лишь в редких случаях, допустим, когда нужно иметь полный контроль над геометрией, моделирование идет за счет наращивания полигонов или уточнения формы на уровне подобъектов по пути «от простого к сложному». Если обобщить вышесказанное, то можно сделать вывод, что комплексный подход к моделированию – это такой подход, при котором сложная модель мысленно разбивается на более простые геометрические формы, для моделирования которых применяются различные средства (использование примитивов, полигональное моделирование, NURBS-моделирование, лофт-моделирование и т. д.). В данном разделе рассмотрим комплексный подход к моделированию на примере крана для ванной (рис. 9.134). Рис. 9.134. Визуализация модели крана для ванной Первое, что я сделал, прежде чем начать моделирование, – пошел в ванную комнату и произвел необходимые замеры.
Замеры получены, с чего начинать? Начинать можно с любой детали (если у вас есть размеры, то вам нет необходимости привязываться к базовой геометрии). Я предпочитаю начинать моделирование с основных форм, постепенно «наращивая» детали. Воспользуемся именно этим способом. Начнем с корпуса крана. Он имеет довольно сложную форму. Казалось бы, здесь не обойтись без NURBS– или Surface-моделирования либо без использования составного объекта. Однако, как показала практика, самым простым способом моделирования в данном случае является полигональное с последующим разделением полигонов.
Построим объект Box (Параллелепипед) с параметрами, представленными на рис. 9.135. Рис. 9.135. Параллелепипед (слева) и его параметры (справа) Обратите внимание на то, что количество сегментов по длине параллелепипеда установлено равным 7, что обусловлено количеством точек, в которых объект меняет свою форму. Построение параллелепипеда и создание нужного количества сегментов – это все, что нам нужно от стандартного примитива. Далее необходимо конвертировать объект в Editable Poly (Редактируемая полигональная поверхность), для чего щелкните на нем правой кнопкой мыши и в появившемся контекстном меню выполните команду Convert To > Convert to Editable Poly (Преобразовать > Преобразовать в редактируемую полигональную поверхность). Перейдите на уровень редактирования подобъектов Polygon (Полигон) выделите четыре полигона – крайние фронтальные и соответствующие им полигоны с противоположной стороны объекта (рис. 9.136). Рис. 9.136. Выделенные полигоны После выделения полигонов перейдите на вкладку Modify (Изменить) командной панели и в свитке Edit Polygons (Редактирование полигонов) щелкните на кнопке, расположенной рядом с кнопкой Inset (Смещение внутрь). В результате появится окно Inset Polygons (Сместить полигоны внутрь), в котором задайте параметру Inset Amount (Величина смещения) значение, равное 0,5 (рис. 9.137). Подтвердите внесенные изменения, щелкнув на кнопке OK. Сейчас можно включить NURMS-сглаживание и посмотреть результат выполненного редактирования. Напомню, что сделать это можно, установив в свитке Subdivision Surface (Поверхности с разбиением) флажок Use NURMS Subdivision (Использовать NURMS-разбиения). В области Display (Отображение) задайте параметру Iteration (Количество итераций) значение, равное 2 (рис. 9.138). Рис. 9.137. Окно Inset Polygons (Сместить полигоны внутрь) Рис. 9.138. Деталь крана после применения NURMS-разбиения Далее необходимо добавить заготовке небольшую «бочковатость» по краям. Именно в этих местах будут крепиться вентили кранов горячей и холодной воды. Сделать это довольно просто: достаточно разрезать три торцевых полигона с двух сторон. Чтобы выполнить такие разрезы, сделайте следующее. 1. На уровне редактирования полигонов выделите шесть полигонов (по три с каждой стороны), образующих торцы детали. 2. В свитке Edit Geometry (Редактирование геометрии) щелкните на кнопке Slice Plane (Секущая плоскость) и в окнах проекций разместите секущую плоскость так, чтобы она, располагаясь вертикально, проходила через середину детали (рис. 9.139). Рис. 9.139. Положение секущей плоскости 3. Нажмите кнопку Slice (Сечение) для создания новых граней, после чего щелкните на кнопке Slice Plane (Секущая плоскость), чтобы выключить режим секущей плоскости. 4. Перейдите на уровень редактирования вершин и сдвиньте наружу на расстояние 3 мм по две построенные вершины торцевых полигонов. На рис. 9.134 видно, что корпус крана имеет заметное утолщение в середине и некоторое сужение ближе к краям. Изменить форму таким образом довольно просто: достаточно передвинуть и масштабировать группы вершин.
На рис. 9.140 показана модель после того, как вершины в средней части были масштабированы и перемещены. Рис. 9.140. Модель после выполненных трансформаций Обратите внимание, что в местах будущего крепления кранов геометрия полученного объекта не представляет собой правильную окружность. Это как раз тот случай, о котором я говорил в самом начале раздела, имея в виду то, что метод полигонального моделирования имеет относительную точность форм. Немного улучшить форму позволит еще одно смещение ребер внутрь четырех полигонов, с которыми мы работали в начале раздела. Выделите их снова и еще раз примените к ним Inset (Смещение внутрь), но уже с большим значением параметра Inset Amount (Величина смещения), например равным 5 (рис. 9.141). Рис. 9.141. Окружности, полученные после второго смещения граней Переходим к моделированию средней части корпуса крана. В этом месте к корпусу крепятся ручка переключения душа, кран и стойка для размещения душа. Нам необходимо создать утолщения в месте крепления этих элементов. Два из них (вертикальные) имеют один размер, а фронтальное (для крепления ручки) немного меньший. Логично сначала построить их одинаковыми, а потом один из них уменьшить. Для придания детали нужной формы выделите три средних полигона (два вертикальных и один фронтальный) и примените к ним Bevel (Скос) из свитка Edit Polygons (Редактирование полигонов), как показано на рис. 9.142. Рис. 9.142. Начало формирования средней части Сразу же, не снимая выделения с выдавленных полигонов, еще раз примените Bevel (Скос) с небольшим значением параметра Height (Высота), завершив таким образом построение средней части корпуса крана (рис. 9.143). Рис. 9.143. Создание еще одного скоса для выступающих частей корпуса крана Осталось масштабировать часть корпуса крана, к которой будет крепиться ручка переключения на душ/кран. Воспользуйтесь для этого инструментом Select and Uniform Scale (Выделить и равномерно масштабировать). На этом построение корпуса крана можно считать законченным (рис. 9.144). Рис. 9.144. Окончательный вид корпуса крана Перейдем к моделированию кранов. Сначала создадим крепление. Внешне оно напоминает гайку, у которой вытянута одна сторона. Думаю, что в данном случае самым простым способом моделирования будет использование Surface-поверхности. Начнем с построения сплайнов. Для формы гайки лучше всего подойдет сплайн формы NGon (Многоугольник). 1. Выполните команду главного меню Create > Shapes > NGon (Создание > Формы > Многоугольник) и постройте в окне проекции Front (Спереди) многоугольник с шестью сторонами и радиусом 16 мм. 2. Создайте еще один шестиугольник радиусом 13 мм, в настройках которого установите флажок Circular (Окружность). 3. Выделите один из построенных многоугольников и преобразуйте его в Editable Spline (Редактируемый сплайн), а затем присоедините к нему второй многоугольник при помощи команды Attach (Присоединить). 4. Перейдите на уровень редактирования Segment (Сегмент), выделите все сегменты обоих сплайнов и разбейте их. Для этого задайте параметру, расположенному возле кнопки Divide (Разделить) в свитке Geometry (Геометрия), значение 1. Затем щелкните на кнопке Divide (Разделить) (рис. 9.145). Рис. 9.145. Многоугольники с разделенными сегментами Сплайны необходимо разбить для того, чтобы иметь возможность имитировать на гайке скос.
Скопируйте созданные сплайны, для чего перейдите на уровень подобъектов Spline (Сплайн) и в окне проекции To p (Cверху), удерживая нажатой клавишу Shift, переместите оба сплайна по координате Y на 10 мм. Кроме того, нам понадобится еще одна окружность меньшего диаметра, для построения копии которой выделите сплайн окружности и переместите его еще на 20 мм относительно предыдущих. Не снимая выделение, уменьшите его при помощи инструмента Select and Uniform Scale (Выделить и равномерно масштабировать). Теперь необходимо изменить форму двух шестигранников для соответствия их строящемуся объекту. Для этого выделите вершины, находящиеся в серединах сегментов (те, которые были построены путем разделения сегментов), и немного сместите их в противоположные стороны (рис. 9.146). Рис. 9.146. Положение и форма сплайнов, подготовленных для создания модели гайки После редактирования положения вершин шестигранников и размера окружностей можно переходить к построению поперечных сечений. В ранних версиях 3ds Max Cross Section (Поперечное сечение) существовала лишь в виде отдельного модификатора, но в последних версиях программы она стала частью редактора сплайнов. Воспользуемся ею для построения поперечных сечений и поверхности. 1. Выделите объект, состоящий из сплайнов, и перейдите к свитку Geometry (Геометрия) настроек объекта на командной панели. В области New Vertex Type (Тип новых вершин) установите переключатель в положение Smooth (Сглаживание).
2. В свитке Geometry (Геометрия) нажмите кнопку Cross Section (Поперечное сечение), в результате чего она выделится цветом. 3. В окне проекции Left (Слева) щелкните на сплайне меньшего радиуса, затем на втором сплайне и на следующем за ним шестиграннике (рис. 9.147). Щелкните правой кнопкой мыши для завершения построения поперечных сечений. Рис. 9.147. Поперечные сплайны для правой части гайки 4. В области New Vertex Type (Тип новых вершин) установите переключатель в положение Linear (Линейная) и продолжите построение поперечных сплайнов для оставшейся части объекта. 5. Создайте поверхность, для чего примените к объекту модификатор Surface (Поверхность), выполнив команду главного меню Modifiers > Patch/Spline Editing > Surface (Модификаторы > Редактирование патчей/сплайнов > Поверхность). 6. При необходимости в свитке Parameters (Параметры) настроек модификатора установите флажок Flip Normals (Обратить нормали). После этого получится почти готовая гайка. Ей лишь недостает четкости граней. Это легко исправить, установив для этой части модели отдельную группу сглаживания. Для этого примените к объекту модификатор Edit Mesh (Редактирование поверхности), перейдите на уровень редактирования полигонов и выберите полигоны, расположенные между двумя шестиугольниками. В области Smoothing Groups (Сглаживание) свитка Surface Properties (Свойства поверхности) щелкните на кнопке Clear All (Очистить все).
В результате этих действий гайка примет окончательный вид (рис. 9.148). Рис. 9.148. Готовая модель гайки Теперь построим четыре гайки: три одинаковые, стандартные гайки и одну cо скосом, находящуюся у основания крана. Их следует моделировать описанным выше способом (кроме того, вы можете немного изменить копию созданной гайки). По этой причине не стану повторяться, а лишь покажу, как должны выглядеть сплайны и готовая поверхность новых гаек (рис. 9.149). Как видно из рис. 9.149, для этого типа гаек нужны пять сплайнов: четыре из них попарно зеркально отраженные и один (окружность меньшего диаметра) дублирован с масштабированием для придания утолщения на гайке (можно вместо этого использовать модификатор Shell (Раковина)). Две такие гайки будут располагаться с противоположной стороны корпуса крана для крепления к стене, а одна – в верхней части для крепления стойки (рис. 9.150). Для нижней гайки характерно небольшое заужение геометрии к низу. Его можно получить, просто переместив последний сплайн на некоторое расстояние вниз и немного уменьшив его размер (рис. 9.151). Между нижней гайкой и корпусом должна располагаться втулка, роль которой в данном случае играет параметрический объект Cylinder (Цилиндр). Рис. 9.149. Форма сплайнов малой гайки Рис. 9.150. Корпус крана с гайками Рис. 9.151. Модифицированная гайка нижней части крана Прежде чем приступить к более сложному моделированию, построим два декоративных элемента, закрывающих места крепления крана к стене. В нашем случае это может быть либо объект, выполненный методом вращения (при помощи модификатора Lathe (Вращение)), либо просто немного деформированная половина сферы. Я решил воспользоваться вторым способом, как более простым. Согласно моим измерениям диаметр окружности «чашки» составляет 70 мм, соответственно, необходимо построить половину сферы (в настройках объекта Sphere (Сфера) установить флажок Hemisphere (Полусфера)) радиусом 35 мм и масштабировать ее по оси вращения (ось Z) (рис. 9.152). Дальнейшее моделирование может показаться вам более сложным. Это объясняется тем, что моделировать придется при помощи NURBS. В 3ds Max это непростая процедура, так как есть некоторые ограничения, которые необходимо учитывать при моделировании. Возможно, у вас появится закономерный вопрос: «А зачем тогда пользоваться этой технологией, если все можно сделать при помощи полигонального моделирования?» Ответ прост: потому, что при правильном использовании форм, которые описываются неоднородными рациональными В-сплайнами (NURBS), результат окажется лучше (более сглаженные формы), к тому же его быстрее можно достичь. Перейдем к моделированию кранов. По сути, это будут поверхности, созданные при помощи вращения кривых, с построения которых мы и начнем. В окне проекции Top (Сверху) постройте NURBS-кривую размером 20 х 17 мм (рис. 9.153). Для этого воспользуйтесь командой Create > NURBS > CV Curve (Создание > NURBS > CV-кривая). Рис. 9.152. Корпус крана с гайками и декоративными элементами Рис. 9.153. CV-кривая, построенная в окне проекции Top (Cверху) Перейдите на вкладку Modify (Изменение). Чтобы создать поверхность, примените к построенной кривой инструмент Create Lathe Surface (Создать поверхность вращением), расположенный на плавающей панели NURBS. В результате должен получиться объект, напоминающий по форме бочонок (рис. 9.154). Теперь нужно создать еще один объект таким же способом, то есть вращением кривой профиля. На сей раз это будет кривая каплевидной формы, построенная при помощи CV Curve (CV-кривая) (рис. 9.155). Рис. 9.154. Основание ручки (слева) и кнопка Create Lathe Surface (Создать поверхность вращением) на панели NURBS (справа) Рис. 9.155. Форма кривой части ручки После создания кривой примените к ней инструмент Create Lathe Surface (Создать поверхность вращением), расположенный на плавающей панели NURBS.
Продолжим моделирование. Теперь следует сделать три копии только что построенного объекта. Эти копии нужно будет расположить по периметру корпуса ручки при помощи инструмента Array (Массив), поэтому сначала необходимо установить опорную точку (Pivot Point) в середину построенного ранее корпуса. Чтобы это сделать, нужно перейти на вкладку Hierarchy (Иерархия) командной панели и нажать кнопку Pivot (Опора). В свитке Adjust Pivot (Настройка опоры) следует щелкнуть на кнопке Affect Pivot Only (Только опора) и переместить в окне проекции Front (Спереди) опорную точку в середину корпуса ручки (рис. 9.156). Рис. 9.156. Опорная точка, размещенная в середине корпуса ручки Теперь можно создать массив из построенной детали. Для этого выполните команду главного меню Tools > Array (Инструменты > Массив), в результате чего откроется окно, в котором необходимо установить параметры, как показано на рис. 9.157. В результате у вас должны получиться три копии объекта, расположенные по периметру корпуса. Остается только добавить фаску, чтобы поверхности объектов, составляющих ручку крана, выглядели более естественно, плавно перетекая одна в другую. Но прежде, чем это делать, необходимо повернуть среднюю часть (корпус) на 45° (рис. 9.158). Это делается для того, чтобы шов, образованный кривой вращения (белая линия, идущая от центра), не попадал в места пересечения объектов, в противном случае возникнут проблемы с созданием фаски. Сделайте копию средней части ручки и одной из пристыкованных деталей, чтобы впоследствии создать ручку переключения на душ/кран. Переходим к созданию фаски. Прежде всего необходимо объединить все детали, относящиеся к ручке, в один объект. Для этого нужно выделить корпус (или любую другую деталь ручки) и, нажав в свитке General (Общие) кнопку Attach (При– соединить), выбрать в окне проекции все необходимые детали, относящиеся к ручке. Только после этого можно воспользоваться инструментом Create Fillet Surface (Создать поверхность-фаску) плавающей палитры NURBS. Выделив инструмент создания фаски, щелкните на одном из внешних объектов ручки (в результате он изменит цвет), а затем на корпусе. В итоге получим фаску, параметры которой необходимо уточнить в свитке Fillet Surface (Поверхность-фаска). Задайте значения величины фаски при помощи параметров Start Radius (Начало радиуса) и End Radius (Конец радиуса) (у меня они равны 3,5). В областях Trim First Surface (Обрезать первую поверхность) и Trim Second Surface (Обрезать вторую поверхность) установите флажки Trim Surface (Обрезать поверхность) (рис. 9.159). Рис. 9.157. Настройки, выполненные в окне Array (Массив) Рис. 9.158. Взаимное расположение объектов, составляющих ручку Рис. 9.159. Параметры фаски (справа) и сопряжение двух деталей, полученных с ее помощью (слева) Возможно, при обрезании поверхности (Trim Surface) вам понадобится установить флажки Flip Trim (Обратить обрезание) или Flip Normals (Обратить нормали) – все будет зависеть от того, как вы построили поверхность и как ее рассчитывает программа. Создание фаски необходимо повторить для всех деталей рукоятки крана. Чтобы закончить с этой деталью, добавим к фронтальной части улучшенный примитив OilTank (Цистерна) с небольшой фаской, выполненной при помощи выдавливания ребер. Для этого используем модификатор Edit Mesh (Редактирование поверхности) (рис. 9.160). Ручка переключения на душ/кран делается из созданной ранее копии двух объектов. Это всего лишь немного модифицированная форма рычага переключения.
Сейчас можно посмотреть на полученную модель крана в целом (рис. 9.161). Прежде чем начинать моделирование стойки, которая представляет собой, пожалуй, самую сложную с точки зрения формы деталь крана, создадим трубку в его нижней части. Самый простой способ построения в данном случае – использование лофтинга с небольшим редактированием формы профиля. Рис. 9.160. Готовая модель рукоятки крана Рис. 9.161. Результат визуализации части крана В окне проекции Left (Слева) постройте сплайн Line (Линия) длиной 360 мм и загибами на концах по 80 мм (это будет сплайн пути), а в окне проекции To p (Cверху) – окружность диаметром 18 мм для формы поперечного сечения (рис. 9.162). Рис. 9.162. Форма сплайна пути Чтобы получить лофт-объект, необходимо выделить сплайн пути и выполнить команду главного меню Create > Compound > Loft (Создание > Составные объекты > Лофтинговые). В результате на командной панели появятся настройки лофт-объекта. В свитке Creation Method (Метод создания) нажмите кнопку Get Shape (Взять форму) и в окне проекции To p (Сверху) щелкните на построенной ранее окружности. В результате у вас должен получиться объект в виде изогнутой трубки.
Но это еще не все. Нам нужно создать утолщение на конце трубки (в том месте, где крепится сетка фильтра). Это проще всего сделать при помощи редактирования деформации масштаба. Чтобы получить доступ к этим параметрам, щелкните на кнопке Scale (Масштаб) в свитке Deformations (Деформации) настроек лофт-объекта. В результате откроется окно Scale Deformation (Деформация масштаба). В нем необходимо добавить в самом конце шкалы (а соответственно, и на самом лофт-объекте) несколько точек и отредактировать их положение так, чтобы профиль кривой повторял форму наконечника трубки (рис. 9.163).
Рис. 9.163. Окно Scale Deformation (Деформация масштаба) После всех вышеописанных операций должен получиться объект, показанный на рис. 9.164. Рис. 9.164. Результат визуализации созданной части крана Моделирование держателя для душа может вызвать определенные затруднения, поэтому рекомендую очень внимательно отнестись к этой части раздела. Начнем с того, что уберем из сцены все объекты, кроме верхней гайки (она нам понадобится для того, чтобы иметь возможность привязаться к размеру ее внутреннего отверстия). В окне проекции To p (Сверху) постройте окружность с диаметром, соответствующим внутреннему диаметру гайки. После создания сплайна конвертируйте его в NURBS, для чего щелкните на нем правой кнопкой мыши и выполните команду Convert To > Convert to NURBS (Преобразовать > Преобразовать в NURBS) контекстного меню. Используя плавающую палитру инструментов NURBS, примените к окружности инструмент Create Extrude Surface (Создать поверхность выдавливанием) на высоту (значение параметра Amount (Величина) настроек кривой на командной панели) 65 мм. После выдавливания скопируйте созданный объект и поверните его на 90°. Таким образом получим ответвление в стойке для присоединения гибкого шланга (рис. 9.165). Чтобы получить сглаженное соединение двух поверхностей, присоедините командой Attach (Присоединить) одну поверхность к другой и создайте между ними фаску, как это было описано выше для ручек. В результате у вас должно получиться основание держателя (рис. 9.166). Рис. 9.165. Начало моделирования стойки Рис. 9.166. Держатель после создания фаски Перейдем к построению верхней части держателя. Ее форма является относительно сложной с точки зрения моделирования стандартными средствами, но можно воспользоваться небольшой хитростью – создать этот объект методом лофтинга. В окне проекции Front (Спереди) постройте сплайн пути, а в окне Left (Cлева) – два сплайна поперечного сечения (рис. 9.167). Создайте лофт-объект, для чего выделите сплайн пути и выполните команду Create > Compound > Loft (Создание > Составные объекты > Лофтинговые). В результате этих операций на командной панели появятся настройки лофт-объекта. В свитке Creation Method (Метод создания) нажмите кнопку Get Shape (Взять форму) и выберите в одном из окон проекций прямоугольник в качестве начальной формы поперечного сечения. После этого в свитке Path Parameters (Параметры пути) задайте параметру Path (Путь) значение, равное 5, затем, щелкнув на кнопке Get Shape (Взять форму), выберите прямоугольник еще раз. Продолжите формирование объекта, задав параметру Path (Путь) значение, равное 15, и выбрав модифицированный прямоугольник (с изогнутыми сторонами). Повторите эту же операцию для пути со значением 85 %. И наконец, последнее значение пути равно 95 % и в качестве формы пути используется правильный прямоугольник (рис. 9.168). Рис. 9.167. Форма сплайнов пути и профиля в окне проекции фронтального вида (а) и вида слева (б) Рис. 9.168. Лофт-объект, построенный в верхней части держателя душа
Теперь необходимо изменить контуры объекта так, чтобы он стал больше похож на реальный держатель. Для этого воспользуемся деформацией масштабирования из свитка Deformations (Деформации). Щелкните на кнопке Scale (Масштаб), в результате чего откроется окно Scale Deformation (Деформация масштаба), в котором нажмите кнопку Display Y Axis (Показать ось Y) и отожмите Make Symmetrical (Сделать симметричным), чтобы деформация происходила только по оси Y. Добавьте кривой, расположенной в окне Scale Deformation (Деформация масштаба), по четыре точки, симметрично расположенные относительно центра, и одну в середине. После этого скорректируйте их положение так, как показано на рис. 9.169. Рис. 9.169. Окно Scale Deformation (Деформация масштаба) В результате этих действий у вас должен получиться почти готовый элемент верхней части опоры (рис. 9.170). Рис. 9.170. Держатель после применения деформации масштаба Далее необходимо сделать углубления в верхней части держателя. Обычно я выполняю подобную работу при помощи редактирования полигональной поверхности на уровне подобъектов. Но есть более простой, хотя и не самый лучший путь – булева операция вычитания.
Постройте цилиндр с радиусом 12,5 мм и расположите его в верхней части держателя так, чтобы ось цилиндра совпадала с его верхней кромкой (рис. 9.171). Рис. 9.171. Объекты, подготовленные для булевой операции вычитания Выделите держатель и выполните команду Create > Compound > Boolean (Создание > Составные объекты > Булев). В свитке Pick Boolean (Указать булев) щелкните на кнопке Pick Operand B (Указать операнд Б) и в одном из окон проекций выберите построенный цилиндр в качестве второго операнда. В результате у вас должна получиться геометрия верхней части держателя, как показано на рис. 9.172. Займемся моделированием ручки душа. Здесь форма объектов сама подсказывает способы моделирования: наконечник с сеткой необходимо выполнять при помощи NURBS, среднюю часть как Surface-поверхность, а конечную – вращением сплайна. Рис. 9.172. Модель на данном этапе
Перейдем к построению NURBS-кривых. Основная форма, завершающаяся сеткой, напоминает колокольчик размером 50 x 55 мм. Ее мы сейчас и построим (рис. 9.173). Рис. 9.173. Форма CV-кривой Постройте NURBS-кривую и примените к ней инструмент Create Lathe Surface (Создать поверхность вращением) плавающей палитры инструментов NURBS так же, как это описано выше для ручек кранов. В результате у вас должен получиться объект, подобный показанному на рис. 9.174. Рис. 9.174. Поверхность, построенная вращением Построение второй CV-кривой у вас не должно вызвать проблем, так как мы уже не раз выполняли такое построение, кроме того, данная кривая имеет простую форму (рис. 9.175). Рис. 9.175. CV-кривая для формы вращения
Как и в предыдущих случаях, необходимо выполнить сглаженное объединение двух построенных объектов. Как вы уже знаете, чтобы построить фаску между двумя объектами, необходимо в первую очередь присоединить одну поверхность к другой (воспрользовавшись иструментом Attach (Присоединить)), а затем применить инструмент Create Fillet Surface (Создать поверхность-фаску) плавающей палитры NURBS. В результате должна получиться законченная верхняя часть ручки душа (рис. 9.176). Для построения средней, пластмассовой, части ручки снова обратимся к Surface-поверхности. В данном случае это будет оптимальный и самый быстрый способ решения проблемы, связанной с нестандартной формой объекта. Начните с того, что в окне проекции Left (Слева) постройте окружность, используя сплайн NGon (Многоугольник) радиусом 10 мм. При этом для получения окружности необходимо в свитке Parameters (Параметры) настроек многоугольника установить флажок Circular (Окружность) (рис. 9.177).
Скопируйте данную или постройте новую окружность, но с радиусом 14 мм. Дальнейшая модификация окружностей не представляет сложности, но будьте внимательны при ее выполнении. 1. Выделите большую окружность (если она еще не выделена). 2. Щелкните на ней правой кнопкой мыши и преобразуйте ее в Editable Spline (Редактируемый сплайн). 3. Перейдите на уровень редактирования вершин и выделите все вершины, относящиеся к сплайну (должно быть шесть). 4. Примените к ним Fillet (Закругление), для чего в свитке Geometry (Геометрия) введите в поле рядом с кнопкой Fillet (Закругление) значение 1 (на рис. 9.178 это внешние парные вершины). 5. Перейдите на уровень редактирования сегментов и выделите шесть больших сегментов сплайна, принадлежащих окружности. Рис. 9.176. Построенная часть ручки душа Рис. 9.177. Окружность, построенная при помощи сплайна NGon (Многоугольник) 6. В поле рядом с кнопкой Divide (Разделить) свитка Geometry (Геометрия) установите значение 1 и щелкните на кнопке Divide (Разделить). В результате большие сегменты разделятся посередине на две части. 7. Перейдите на уровень редактирования вершин и выделите те шесть вершин, которые образовались в результате выполнения предыдущей операции. 8. Используя инструмент Select and Uniform Scale (Выделить и равномерно масштабировать), масштабируйте все выделенные вершины к центру так, чтобы они расположились на линии меньшего сплайна (см. рис. 9.178). Рис. 9.178. Внешняя окружность после редактирования вершин Выполните описанные операции для меньшего сплайна, за исключением того, что для выполнения команды Divide (Разделить) необходимо выделять не большие сегменты, а маленькие, а также того, что смещение вершин не требуется (рис. 9.179). Рис. 9.179. Расположение вершин на меньшей окружности Для построения формы ручки нам потребуется всего пять сплайнов, поэтому после того как будет скорректирована их форма, необходимо копировать сплайны меньшего диаметра для получения еще трех таких же окружностей. Расположите их в окне проекции Top (Сверху) так, чтобы большой сплайн с криволинейной формой находился в середине построенного ранее держателя, а по краям располагались по два меньших сплайна окружности. Причем размеры второго и четвертого сплайнов необходимо немного увеличить. Это нужно для того, чтобы ручка слегка изгибалась по всей длине (рис. 9.180). Рис. 9.180. Расположение сплайнов в окне проекции Top (Сверху) Прежде чем перейти к созданию поверхности, необходимо построить поперечные сплайны, соединяющие только что построенные формы поперечного сечения. Аналогичные действия мы производили уже не раз, поэтому я лишь вкратце напомню последовательность их выполнения и укажу особенности моделирования. 1. Используя команду Attach (Присоединить), объедините все сплайны в один объект. 2. В два этапа постройте поперечные сечения при помощи команды Cross Section (Поперечное сечение) из свитка Geometry (Геометрия): 1) установите переключатель области New Vertex Type (Тип новых вершин) в положение Smooth (Сглаживание) и создайте поперечные сечения для средней части между вторым, третьим и четвертым сплайнами; 2) измените тип строящихся вершин на Linear (Линейная) и закончите построение на краях.
После применения модификатора Surface (Поверхность) к построенным сплайнам должна получиться поверхность средней части ручки, как показано на рис. 9.182. Рис. 9.181. Форма сплайнов поперечного сечения Рис. 9.182. Результат визуализации средней части ручки душа Создадим небольшую деталь, расположенную в месте крепления гибкого шланга. Ее можно сделать при помощи формы вращения. Можно также воспользоваться примитивом Cylinder (Цилиндр), для которого следует немного подкорректировать положение вершин, предварительно применив к нему модификатор Edit Mesh (Редактирование поверхности). Я решил воспользоваться вторым вариантом и построил цилиндр с тремя сегментами по высоте и диаметром немного большим, чем у ручки в месте их соединения. Затем, используя инструмент Select and Uniform Scale (Выделить и равномерно масштабировать), придал нужную форму (рис. 9.183). Мы построили модель почти всего крана, осталось создать шланг для душа. Начнем с моделирования наконечников, которые крепятся к корпусу стойки и ручке душа при помощи резьбы. В данном случае, как и в предыдущем, можно воспользоваться примитивом Cylinder (Цилиндр) с последующей модификацией на уровне подобъектов или построить объект методом вращения профиля (рис. 9.184). Рис. 9.183. Форма детали у основания ручки Рис. 9.184. Форма наконечника шланга
Точно такой же наконечник шланга должен крепиться и к стойке держателя. Нам достаточно просто скопировать уже построенный и поместить в нужное место (рис. 9.185). Рис. 9.185. Держатель и ручка вместе с наконечниками Задача построения металлического шланга кажется сложной, однако решается весьма простым способом – созданием лофт-объекта на основе сплайна Helix (Спираль) и небольшого профиля (рис. 9.186). Высота спирали, ее радиусы и количество оборотов должны быть такими, как показано на рис. 9.186.
На рис. 9.187 показаны основные параметры получившегося объекта и то, как он должен выглядеть. Построив объект при помощи лофтинга, мы получили шланг нужного профиля, однако совершенно прямой, следовательно, его нужно изогнуть. На самом деле это не такая сложная задача, как кажется. Для ее решения необходимо построить сплайн, который бы соответствовал нужной форме и являлся кривой, по которой впоследствии будет деформироваться шланг. Кривая должна начинаться и заканчиваться в середине построенных ранее наконечников (рис. 9.188). Для дальнейшего построения формы сделайте следующее. 1. Выделите построенный лофт-объект и примените к нему модификатор деформации по пути, выполнив команду Modifiers > Animation > Path Deform (WSM) (Модификаторы > Анимация > Деформация по траектории). Рис. 9.186. Форма сплайна (слева) и параметры спирали, подготовленные для построения лофт-объекта (справа) Рис. 9.187. Внешний вид полученного лофт-объекта (слева) и его параметры (справа) 2. В свитке Parameters (Параметры) настроек модификатора щелкните на кнопке Pick Path (Указать путь) и выберите в окне проекции сплайн, соответствующий форме, по которой будет деформироваться шланг. 3. В этом же свитке щелкните на кнопке Move to Path (Передвинуть на путь), чтобы лофт-объект принял форму сплайна (рис. 9.189). Это все, что требовалось сделать для построения модели крана для ванной комнаты. Осталось только открыть все спрятанные ранее объекты и визуализировать модель целиком (рис. 9.190). Рис. 9.188. Форма кривой для деформации шланга Рис. 9.189. Построенный объект (слева) и его стек модификаторов (справа) После того как модель выполнена, можно заняться оптимизацией геометрии, созданием материалов и наложением текстур. В завершение раздела хотелось бы подвести итоги и дать несколько советов. Начнем с того, что целью раздела было показать преимущество комплексного подхода к моделированию объектов сложной формы, в чем, я надеюсь, вы убедились сами на данном примере. В процессе моделирования крана мы применяли полигональное, NURBS– и Surface-моделирование, использовали параметрические объекты и формы, работали с объектами, полученными методом вращения формы и выдавливания, и, наконец, закончили назначением модификатора анимации формы по пути. Все это в целом помогло нам в работе над сложной моделью, выполнение которой при помощи какой-либо одной техники потребовало бы значительно больших усилий. Рис. 9.190. Результат визуализации построенного крана В процессе моделирования крана не стояла задача оптимизации геометрии, поэтому конечный объект получился со значительным количеством полигонов. Если вам нужно создать самостоятельный объект (без окружения), то количество полигонов не является критическим, но если он является частью какой-то сцены, то его необходимо оптимизировать. Чтобы сделать это, в первую очередь убедитесь в том, что вам не понадобится редактировать объект (еще лучше, если вы сделаете резервную копию файла), затем сверните стек всех объектов до состояния Editable Mesh (Редактируемая сетка). Для NURBS-объектов можно предварительно настроить аппроксимацию поверхности и затем привести к редактируемой сетке. Кроме того, создание объектов с использованием методов разбиения сетки ведет к избыточному созданию полигонов по всей поверхности, даже там, где они не нужны для передачи формы (например, на ровных плоских участках). В таком случае для уменьшения количества полигонов можно использовать модификатор Optimize (Оптимизация).
Глава 10Текстурирование • Материал, имитирующий хром • Текстурирование натюрморта • Текстурирование микроволновой печи • Сложное текстурирование Можно сделать замечательную модель, потратив много времени на создание деталей. Можно безукоризненно выставить свет и сделать многое другое, чтобы улучшить работу, но без хороших текстур вы не сможете добиться реалистичности. Создание материала – как правило, долгий и кропотливый процесс с множеством экспериментов. Иногда приходится потратить не один час на то, чтобы сделать приемлемую текстуру. Редактор материалов в 3ds Max настолько хорош, что позволяет получить практически любую текстуру – все зависит только от ваших знаний и воображения. Работа по созданию материалов не ограничивается возможностями программы 3ds Max, вам не обойтись без приложений растровой графики. Кроме того, существуют программы, позволяющие рисовать непосредственно на трехмерных объектах. В этой главе вы познакомитесь с тем, как создавать реалистичные материалы и текстуры средствами программы 3ds Max. Материал, имитирующий хромВ этом разделе рассмотрим, как при помощи небольшого трюка можно создать вполне приемлемый материал хрома. Хромированные детали очень эффектно смотрятся, поэтому их часто применяют в трехмерной сцене. Прежде чем говорить о создании материала, необходимо определиться с понятием хрома. Что такое хром? Это материал с высокой отражающей способностью и контрастностью, поэтому первое правило, которое нужно помнить при его использовании: для хромированного объекта важно окружение, то есть те предметы, которые будут отражаться в хроме. В данном случае возможно два варианта: смоделировать окружение (если его нет) или создать иллюзию присутствия рядом других предметов при помощи соответствующих текстурных карт. Второе правило реалистичного хрома заключается в том, что объект, которому присваивается хромированный материал, должен иметь сглаженные формы. Например, на примитиве Box (Параллелепипед) значительно сложнее создать реалистичный хром, нежели на ChamferBox (Параллелепипед с фаской). Рассмотрим создание материала хрома при помощи процедурной карты, то есть исключительно средствами программы 3ds Max. Первое, что для этого понадобится, – объекты, с которыми вы будете работать. Для их создания сделайте следующее. 1. Выполните команду Create > Extended Primitives > Torus Knot (Создание > Сложные примитивы > Тороидальный узел). 2. Щелкните в окне проекции Top (Cверху) и создайте примитив Torus Knot (Тороидальный узел). 3. На небольшом расстоянии от первого постройте еще один примитив Torus Knot (Тороидальный узел). Два объекта нужны, чтобы они отражались друг в друге. 4. Для создания плоскости, на которой будут располагаться эти объекты, выполните команду Create > Standard Primitives > Plane (Создание > Простые примитивы > Плоскость). 5. Щелкните в левом верхнем углу окна проекции Top (Cверху) и переместите указатель мыши в нижний правый угол так, чтобы построенные ранее примитивы оказались на плоскости (рис. 10.1). Теперь можно переходить к непосредственному созданию материала. Идея использования карты Gradient Ramp (Усовершенствованный градиент) основывается на простом наблюдении. В хромированном предмете, лежащем на плоскости, отражаются три пространства: ¦ снизу отражается плоскость, на которой лежит предмет; ¦ сверху – потолок, небо, то есть что-нибудь светлое; ¦ стороны отражают окружающие предметы и пространство, уходящее вдаль (эти отражения по большей части темные благодаря «жестким» отражениям). Для построения материала хрома нужна бело-черно-белая текстура, которую легко создать и контролировать при помощи карты Gradient Ramp (Усовершенствованный градиент). Чтобы ее создать, выполните следующие действия. 1. Откройте Material Editor (Редактор материалов), щелкнув на кнопке находящейся на панели инструментов, или выполнив команду Rendering > Material Editor (Визуализация > Редактор материалов). 2. Выберите ячейку со свободным материалом. 3. Разверните свиток Maps (Карты текстуры), щелкните на кнопке None (Отсутствует) рядом с картой Reflection (Отражение). 4. В открывшемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка Gradient Ramp (Усовершенствованный градиент). 5. Настройте параметры материала, как показано на рис. 10.2. Разберем подробнее настройки этой карты. Прежде всего нужно в раскрывающемся списке Gradient Type (Тип градиента) выбрать значение Linear (Прямой), а в Interpolation (Интерполяция) – строку Solid (Постоянная). После этого назначьте два цвета: белый и черный (или близкий к черному). Для этого дважды щелкните на ползунке под шкалой градиентного перехода и в открывшемся окне Color Selector (Выбор цвета) выберите нужный цвет. Соотношение цветов должно быть близким к 1:2, то есть белый цвет должен занимать в два раза больше места, чем черный. Затем нужно повернуть карту на 90°, задав значение W для Angle (Угол) равным 90, и установить флажок Mirror (Зеркальное отображение) для координаты U. Чтобы избежать резкого перехода на стыке цветов, можно увеличить значение параметра Blur (Размытие). Можно также использовать карту Noise (Шум), чтобы еще больше сгладить резкий переход. В свитке Coordinates (Координаты) необходимо задать способ использования карты, установив переключатель в положение Environment (Окружающая среда), а из списка Mapping (Проекция), который определяет способ наложения координат, выбрать Spherical Environment (Сферическая фоновая), так как вы создаете карту для окружения. На этом с основными настройками можно закончить. В результате вышеописанных операций у вас должна получиться процедурная карта, подобная показанной на рис. 10.3. Рис. 10.1. Два примитива Torus Knot (Тороидальный узел) и примитив Plane (Плоскость) Рис. 10.2. Настройки карты Gradient Ramp (Усовершенствованный градиент) Следующим шагом разработки материала хрома является создание материала Raytrace (Трассировка), который в качестве карты окружения будет использовать созданную вами градиентную карту. Для этого выполните следующие действия. 1. Щелкните на кнопке выбора материала – Gradient Ramp (Усовершенствованный градиент). 2. В открывшемся окне Material/Map Browser (Окно выбора материалов и карт текстур) выберите из списка карту Raytrace (Трассировка). 3. Ответьте утвердительно на предложение оставить созданную карту Gradient Ramp (Усовершенствованный градиент) в качестве подматериала. В результате в свитке Maps (Карты текстур) стандартного материала в качестве карты Reflection (Отражение) будет загружена карта Raytrace (Трассировка). Можно ограничиться этим, но мы создадим еще материал Raytrace (Трассировка). Отличие карты Raytrace (Трассировка) от материала Raytrace (Трассировка) заключается в том, что материал имеет больше параметров и позволяет получить лучшее качество при визуализации. Для создания материала Raytrace (Трассировка) выполните следующие действия. 1. Выберите в окне Material Editor (Редактор материалов) ячейку со свободным материалом. 2. Щелкните на кнопке Standard (Стандартный) для выбора материала. 3. В открывшемся окне Material/Map Browser (Окно выбора материалов и карт текстур) выберите из списка материал Raytrace (Трассировка). 4. Скопируйте карту Gradient Ramp (Улучшенный градиент), щелкнув правой кнопкой мыши на кнопке Gradient Ramp (Улучшенный градиент), созданной ранее, и из появившегося списка выберите способ копирования Copy (Независимая копия объекта). 5. В свитке Raytrane Basic Parameters (Базовые параметры трассируемого материала) материала Raytrane (Трассируемый) щелкните правой кнопкой мыши на кнопке Environment (Окружающая среда) и из появившегося списка выберите Paste (Copy) (Вставить (копию)). 6. Измените параметры материала Raytrace (Трассировка) так, как показано на рис. 10.4. Рис. 10.3. Процедурная карта Gradient Ramp (Усовершенствованный градиент) после выполнения всех настроек Рис. 10.4. Настройки параметров материала Raytrace (Трассировка) для хрома При желании можно увеличить значение параметра Index Of Refr (Коэффициент преломления). В качестве типа затенения из списка Shading (Затенение) выбран Metal (Металл) – это также не обязательно, но создает более жесткие цветовые переходы, характерные для хрома. Более важным в настройках является параметр Reflect (Отражение), который управляет отражательной способностью материала. В данном случае нужно выбрать светло-серый или серо-голубой цвет (для придания этого оттенка хрому). Назначьте материал объектам (рис. 10.5). Немного усложним объекты и добавим надпись, сделанную при помощи карты Bump (Рельефность) и объекта Text (Текст). Результат показан на рис. 10.6. Рис. 10.5. Объекты сцены после применения материала хрома Рис. 10.6. Результат просчета при помощи стандартного визуализатора с применением параметра Area Shadow (Область тени) Добавлю, что визуализация проводилась стандартным визуализатором программы 3ds Max 9 без применения глобального освещения, каустики и других специальных эффектов, придающих изображению более реалистичный вид. В данной сцене использовалось только трехточечное освещение с применением Area Shadow (Область тени). Еще один способ создания материала хрома – с помощью специальных растровых карт, имитирующих хромированный материал. Как правило, материал на основе таких карт имеет не очень реалистичный вид. Однако у этого способа есть и свои плюсы – минимальное время на настройку и визуализацию. Его использование оправданно для объектов на заднем плане. Неплохого качества визуализации можно достичь, используя HDRI (High Dynamic Range Images – изображение с большим динамическим диапазоном) в качестве карты для материала хрома. Улучшить конечное изображение можно также, применив подключаемый модуль визуализации – V-Ray. На рис. 10.7 показана та же сцена, визуализированная при помощи V-Ray без источников света, но с использованием глобального освещения. Разница заметна, но если для вас имеет значение время визуализации, вы работаете на компьютере со слабым процессором или в сцене большое количество полигонов, то применение стандартного визуализатора вполне приемлемо. При использовании стандартного визуализатора сцена просчитывается быстрее примерно в полтора раза. На рис. 10.8 представлен фрагмент примитива Torus Knot (Тороидальный узел) с надписью. Рис. 10.7. Сцена, визуализированная при помощи подключаемого модуля V-Ray Рис. 10.8. Фрагмент примитива Torus Knot (Тороидальный узел) с надписью Вы можете также попробовать сделать хром на основе карты Swirl (Завихрение) или Noise (Шум). Более сложных эффектов можно достичь, используя различные комбинации процедурных карт.
Текстурирование натюрмортаВ разд. «Натюрморт» предыдущей главы мы простыми средствами моделирования создали сцену, представляющую собой натюрморт из фруктов и ягод. Рассмотрим некоторые способы текстурирования объектов этой сцены стандартными средствами 3ds Max 9. Для выполнения упражнения вам понадобится продолжить работу с созданной в предыдущей главе сценой натюрморта. Вы также можете загрузить сцену fruits_start.max, которая расположена на прилагаемом к книге DVD в папке Examples\Глава 10\Fruits. Прежде чем мы приступим к непосредственному текстурированию объектов сцены, мне бы хотелось напомнить вам о том, что для правильного отображения материалов, содержащих текстурные карты, все моделируемые объекты нуждаются в проекционных координатах. Исключение составляют параметрические объекты, в свойствах которых есть предустановленные проекционные координаты (в свитке Parameters (Параметры) настроек объекта установлен флажок Generate Mapping Coords. (Генерировать координаты проецирования)), объекты, созданные при помощи некоторых модификаторов (например, Loft (Лофтинговые)), или в том случае, когда материал использует процедурные карты (то есть карты текстур, генерируемые программно). Начнем текстурирование с простого объекта – апельсина. Фактура этого объекта не требует обязательного применения текстурной карты, ее можно создать при помощи процедурной карты Noise (Шум). Для текстурирования апельсина сделайте следующее. 1. Откройте Material Editor (Редактор материалов) и выберите ячейку со свободным материалом. 2. В свитке Blinn Basic Parameters (Базовые параметры раскраски по Блинну) щелкните на образце цвета рядом с Diffuse (Цвет рассеивания) для выбора базового цвета апельсина. 3. В открывшемся окне Color Selector: Diffuse Color (Выбор цвета: цвет рассеивания) установите значения составляющих цвета RGB: Red (Красный) – 230, Green (Зеленый) – 130 и Blue (Синий) – 50. 4. В области Specular Highlights (Зеркальные блики) свитка Blinn Basic Parameters (Базовые параметры раскраски по Блинну) задайте значение Specular Level (Уровень блеска) равным 30, а Glossiness (Глянец) – 10 (рис. 10.9). 5. В свитке Maps (Карты текстур) щелкните на кнопке None (Отсутствует) рядом с картой Bump (Рельефность). 6. В открывшемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка карту Noise (Шум). 7. В свитке Noise Parameters (Параметры шума) карты Noise (Шум) установите значение параметра Size (Размер) равным 2. 8. Нажмите кнопку Go to Parent (Вернуться к исходному) и в свитке Maps (Карты текстур) настраиваемого материала установите значение величины рельефности равным -50 (рис. 10.10). Рис. 10.9. Свиток Blinn Basic Parameters (Базовые параметры раскраски по Блинну) настроек материала апельсина Рис. 10.10. Свиток Maps (Карты текстур) настроек материала апельсина Для присвоения материала объектам сцены сделайте следующее. 1. Щелкните на кнопке Select by Name (Выделить по имени) главной панели инструментов и в появившемся окне Select From Scene (Выбор из сцены) выберите из списка объекты Orange_00 и Orange_01. 2. В редакторе материалов щелкните на кнопке Assign Material to Selection (Назначить материал выделенным объектам) После присвоения объектам материала необходимо выполнить тестовую визуализацию и при необходимости подкорректировать параметры материала. При желании можно улучшить отображение апельсина, создав на основе выполненного материала составной материал Blend (Смешанный). Для этого сделайте следующее. 1. Щелкните в окне редактора материалов на кнопке Standard (Стандартный) и в появившемся окне Material/Map Browser (Окно выбора материалов и карт) выберите Blend (Смешанный). В открывшемся окне установите переключатель в положение Keep old material as sub-material? (Оставить старый материал в качестве компонента?). 2. В свитке Blend Basic Parameters (Базовые параметры смешанного материала) щелкните на кнопке первого материала и перетащите его на второй, а в качестве метода копирования укажите Copy (Независимая копия объекта). 3. Выберите темно-оранжевый цвет диффузного рассеивания второго материала – это создаст на поверхности апельсина цветовые переходы. 4. В качестве маски используйте карту Noise (Шум). На рис. 10.11 представлена схема материала Blend (Смешанный) для текстурирования апельсина. Рис. 10.11. Схема материала Blend (Смешанный), назначенного апельсину
Аналогичным образом создается материал для модели мандарина, с той лишь разницей, что цвет диффузного рассеивания должен имеет оттенок ближе к оранжевому, а карта рельефности меньшее значение, так как поверхность мандарина имеет менее выраженную рельефность. Рассмотрим текстурирование яблока с применением текстурной карты. Речь идет об использовании растрового изображения в качестве карты диффузного рассеивания, значит, объекту потребуются проекционные координаты. С этого и начнем. 1. Используя кнопку главной панели инструментов Select by Name (Выделить по имени) выберите из списка три объекта AppleYellow. 2. Перейдите в режим Isolation Mode (Режим изолирования), для чего нажмите сочетание клавиш Alt+Q, что позволяет спрятать все объекты сцены, за исключением выделенного. 3. Выполните команду Group > Open (Группа > Открыть), чтобы получить доступ к объектам группы. 4. В одном из окон проекций выделите яблоко и примените к нему модификатор UVW-проекции, для чего выполните команду Modifiers > UV Coordinates > UVW Map (Модификаторы > UV-координаты > UVW-проекция). 5. В области Mapping (Проекционные координаты) свитка Parameters (Параметры) установите переключатель в положение Spherical (Сферические). Таким образом, объекту были присвоены сферические проекционные координаты. Сейчас можно переходить к непосредственному созданию материала с текстурной картой яблока и назначению его объекту. 1. В окне Material Editor (Редактор материалов) выберите свободный материал. 2. Щелкните на кнопке рядом с Diffuse Color (Цвет рассеивания) в свитке Maps (Карты текстур). 3. В появившемся окне Material/Map Browser (Окно выбора материалов и карт) выберите Bitmap (Растровое изображение). 4. В открывшемся окне Select Bitmap Image File (Выбор растрового изображения) укажите путь к файлу с изображением текстуры яблока. На прилагаемом DVD это AppleYellТех.jpg в папке Examples\Глава 10\Fruits. 5. Присвойте материал модели яблока, перетащив его мышью из окна редактора материалов на объект в окне проекции либо при выделенном объекте щелкнув на кнопке Assign Material to Selection (Назначить материал выделенным объектам) находящейся на панели инструментов окна Material Editor (Редактор материалов). Хвостик яблока – небольшого размера и находится в сцене на значительном расстоянии от камеры, поэтому для его текстурирования можно было бы использовать материал с коричневым цветом диффузного рассеивания. Однако я хочу показать возможность применения для такого рода текстурирования процедурной карты Gradient Ramp (Улучшенный градиент). Создадим материал с такой картой и присвоим его хвостику. 1. В одном из окон проекций выделите хвостик яблока и примените к нему модификатор UVW-проекции, для чего выполните команду Modifiers > UV Coordinates > UVW Map (Модификаторы > UV-координаты > UVW-проекция). 2. В области Mapping (Проекционные координаты) свитка Parameters (Параметры) настроек модификатора установите переключатель в положение Cylindrical (Цилиндрические) как наиболее подходящее для данной формы объекта. 3. В области Alignment (Выравнивание) установите переключатель в положение X и щелкните на кнопке Fit (Подогнать) для выравнивания габаритного контейнера вдоль хвостика. 4. В окне Material Editor (Редактор материалов) выберите свободный материал. 5. Щелкните на кнопке рядом с Diffuse Color (Цвет рассеивания) в свитке Maps (Карты текстур). 6. В появившемся окне Material/Map Browser (Окно выбора материалов и карт) выберите Gradient Ramp (Улучшенный градиент). 7. В свитке Coordinates (Координаты) настроек градиента задайте значение W для Angle (Угол) равным –90. 8. В свитке Gradient Ramp Parameters (Параметры улучшенного градиента) настройте отображение цветов градиента на цветовой шкале. Для этого дважды щелкните на левом ползунке, чтобы вызвать окно Color Selector (Выбор цвета). 9. Выберите цвет со следующими значениям: Red (Красный) – 112, Green (Зеленый) – 122 и Blue (Синий) – 0. 10. Для правого ползунка установите такие значения составляющих цвета RGB: Red (Красный) – 79, Green (Зеленый) – 35 и Blue (Синий) – 0. 11. В раскрывающемся списке Interpolation (Интерполяция) выберите строку Ease In (Усилить) для задания способа перетекания цвета между соседними ползунками цветовой шкалы (рис. 10.12). Рис. 10.12. Свиток Gradient Ramp Parameters (Параметры улучшенного градиента) настроек материала хвостика яблока 12. Присвойте полученный материал хвостику яблока, перетащив его из окна редактора материалов на объект в окне проекции. Теперь можно закрыть группу и выполнить тестовую визуализацию. Если вас удовлетворяет результат, можно переходить к текстурированию других яблок и груш, которые выполняются аналогичным образом (рис. 10.13). Перейдем к настройке материала вазы, имитирующего бронзу. Создание этого материала будет полностью основано на применении процедурных карт. 1. В редакторе материалов выберите ячейку со свободным материалом. 2. В свитке Shader Basic Parameters (Базовые параметры раскраски) выберите из раскрывающегося списка строку Metal (Металл). 3. В области Specular Highlight (Зеркальные блики) свитка Metal Basic Parameters (Базовые параметры раскраски металла) задайте параметру Specular Level (Уровень блеска) значение, равное 80, а Glossiness (Глянец) – 70. 4. Щелкните на кнопке рядом с Diffuse Color (Цвет рассеивания) в свитке Maps (Карты текстур). 5. В появившемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка карту Noise (Шум). Рис. 10.13. Тестовая визуализация с материалами для яблок и груш 6. В свитке Noise Parameters (Параметры шума) карты Noise (Шум) установите переключатель Noise Type (Тип шума) в положение Fractal (Фрактальный). 7. В этом же свитке задайте параметру Size (Размер) значение, равное 15; в области Noise Threshold (Порог уровня шума) параметру High (Высокое) задайте значение, равное 0,8, а Low (Низкое) – 0,4 (рис. 10.14). 8. Щелкните на образце цвета Color #1 (Цвет 1) и в появившемся окне Color Selector (Выбор цвета) установите значения составляющих цвета RGB: Red (Красный) – 85, Green (Зеленый) – 57 и Blue (Синий) – 44. Цвет образца Color #2 (Цвет 2) должен быть черным. 9. Перейдите от компонентного уровня на более высокий, используя кнопку Go to Parent (Вернуться к исходному) 10. В свитке Maps (Карты текстур) настраиваемого материала щелкните на кнопке рядом с Diffuse Color (Цвет рассеивания) и, не отпуская кнопку мыши, перетащите карту Noise (Шум) на кнопку рядом с Bump (Рельефность), а в качестве способа копирования выберите Instance (Образец). 11. Здесь же, в свитке Maps (Карты текстур) настраиваемого материала, установите значение величины рельефности равным 15. 1 2. Щелкните на кнопке рядом с Reflection (Отражение) и в появившемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка карту Gradient (Градиент). 1 3. В свитке Coordinates (Координаты) карты Gradient (Градиент) установите переключатель в положение Environ (Фон) и выберите из списка строку Shrink-wrap Environment (Обтягивающая фоновая). 14. В свитке Gradient Parameters (Параметры градиента) щелкните на кнопке, расположенной справа от Color #1 (Цвет 1), и в открывшемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка карту Noise (Шум). 15. Установите такие же параметры карты зашумления, как мы задали для цвета диффузного рассеивания (см. п. 8). Щелкните на кнопке Go to Parent (Вернуться к исходному) 16. Скопируйте карту зашумления для параметра Color #1 (Цвет 1) в Color #3 (Цвет 3) (рис. 10.15). Рис. 10.14. Настройки свитка Noise Parameters (Параметры шума) Рис. 10.15. Параметры карты Gradient (Градиент) для карты отражения 17. Нажмите кнопку Go to Parent (Вернуться к исходному) и установите значение величины карты Reflection (Отражение) равным 50. 18. Примените созданный материал к объекту Vase. Осталось рассмотреть материалы для листиков и винограда, остальные материалы настраиваются аналогично рассмотренным выше. Лист винограда, лежащий на столе, выполнен на основе параметрического объекта Plane (Плоскость) с одной лишь целью – упростить процесс моделирования и текстурирования. Рассмотрим процесс создания материала листа на основе текстур диффузного рассеивания и прозрачности. 1. В окне Material Editor (Редактор материалов) выберите свободный материал. 2. Щелкните на кнопке рядом с Diffuse Color (Цвет рассеивания) в свитке Maps (Карты текстур). 3. В появившемся окне Material/Map Browser (Окно выбора материалов и карт) выберите Bitmap (Растровое изображение). 4. В открывшемся окне Select Bitmap Image File (Выбор растрового изображения) укажите путь к файлу с изображением текстуры листа. На прилагаемом DVD это Grapes.jpg в папке Examples\Глава 10\Fruits. 5. В свитке Maps (Карты текстур) щелкните на кнопке рядом с Opacity (Непрозрачность) и в появившемся окне Material/Map Browser (Окно выбора материалов и карт) выберите Bitmap (Растровое изображение). 6. В открывшемся окне Select Bitmap Image File (Выбор растрового изображения) укажите путь к файлу с изображением маски прозрачности листа. На прилагаемом DVD это GrapesMask.jpg в папке Examples\Глава 10\Fruits. 7. В свитке Shader Basic Parameters (Базовые параметры раскраски) установите флажок 2-Sided (Двусторонний), чтобы лист, который изгибается, при визуализации был виден с обеих сторон. 8. Примените материал листа к объекту Grape_Leaf. Выполните тестовую визуализацию и проверьте, все ли правильно было настроено в материале листа (рис. 10.16). Рис. 10.16. Визуализация натюрморта на данном этапе текстурирования Перейдем к созданию материала для винограда. Ягода винограда состоит из двух объектов: хвостика и непосредственно ягоды. Как текстурировать хвостик, мы уже рассматривали на примере яблока, поэтому сразу перейдем к созданию материала для ягоды. 1. В окне Material Editor (Редактор материалов) выберите свободный материал. 2. Щелкните на кнопке Standard (Стандартный) для вызова окна Material/Map Browser (Окно выбора материалов и карт). 3. Выберите из списка материал Raytrace (Трассируемый). 4. В свитке Raytrace Basic Parameters (Базовые параметры трассируемого материала) установите флажок 2-Sided (Двусторонний). 5. Щелкните на образце цвета рядом с Diffuse (Цвет рассеивания) для выбора базового цвета ягоды винограда. 6. В открывшемся окне Color Selector: Diffuse (Выбор цвета: цвет рассеивания) укажите значения составляющих цвета: Red (Красный) – 108, Green (Зеленый) – 107 и Blue (Синий) – 10. 7. Щелкните на образце цвета рядом с Reflect (Отражение) для установки отражательной способности материала. 8. В открывшемся окне Color Selector: Reflect (Выбор цвета: отражение) задайте значения составляющих цвета: Red (Красный) – 42, Green (Зеленый) – 42 и Blue (Синий) – 42.
9. Щелкните на образце цвета рядом с Transparency (Прозрачность) для настройки прозрачности материала. 1 0. В открывшемся окне Color Selector: Transparency (Выбор цвета: прозрачность) установите значения составляющих цвета: Red (Красный) – 60, Green (Зеленый) – 60 и Blue (Синий) – 60. 11. В области Specular Highlight (Зеркальные блики) свитка Raytrace Basic Parameters (Базовые параметры трассируемого материала) задайте параметру Specular Level (Уровень блеска) значение, равное 78, а Glossiness (Глянец) – 52. 1 2. Щелкните на кнопке рядом с Environment (Внешняя среда) и в открывшемся окне Material/Map Browser (Окно выбора материалов и карт) выберите Bitmap (Растровое изображение). 13. В появившемся окне Select Bitmap Image File (Выбор растрового изображения) укажите путь к файлу Lake mt.jpg из папки Examples\Глава 10\Fruits. 14. Нажмите кнопку Go to Parent (Вернуться к исходному) 15. В свитке Extended Parameters (Дополнительные параметры) установите значения составляющих образца цвета RGB для Translucency (Просвечивание) и Fluorescence (Флуоресценция): Red (Красный) – 140, Green (Зеленый) – 140 и Blue (Синий) – 35. В результате параметры материала Ray-trace (Трассируемый) должны быть такими, как показано на рис. 10.17. Рис. 10.17. Параметры материала Raytrace (Трассируемый) Примените материал к соответствующим объектам сцены и выполните тестовую визуализацию. Для оставшихся объектов сцены создайте материалы самостоятельно.
Окончательная визуализация натюрморта представлена на рис. 10.18. Рис. 10.18. Визуализация натюрморта Текстурирование микроволновой печиОпишем текстурирование еще одного объекта, создание которого рассмотрено в предыдущей главе, – микроволновой печи. На этом примере покажем принципы создания сложной процедурной карты, применения архитектурных материалов, а также способ наложения материала на часть объекта.
Начнем с простых материалов: стекла и материала корпуса микроволновой печи. Материал стекла можно создать как минимум двумя способами: ¦ при помощи стандартного материала с картами отражения и преломления; ¦ использовать материал Raytrane (Трассируемый); это более ресурсоемко, однако в таком случае доступно большее количество настроек и получается более качественный результат при визуализации. Воспользуемся вторым способом, для чего выполните следующие действия. 1. Откройте Material Editor (Редактор материалов) и выберите ячейку со свободным материалом. 2. Щелкните на кнопке Standard (Стандартный) в окне Material Editor (Редактор материалов) для вызова окна Material/Map Browser (Окно выбора материалов и карт). 3. Выберите из списка материал Raytrace (Трассируемый). 4. Снимите флажок Reflect (Отражение) и в появившемся поле укажите значение отражения, равное 20. 5. Снимите флажок Transparency (Прозрачность) и в появившемся поле укажите значение прозрачности, равное 90 (рис. 10.19). 6. Назначьте материал объекту glass, выбрав его из списка, предварительно щелкнув на кнопке главной панели инструментов Select by Name (Выделить по имени). Выполните тестовую визуализацию, а чтобы определить отражательную способность стекла, создайте перед дверцей любой примитив, который мог бы отражаться в стекле. При необходимости откорректируйте значения параметров Specular Level (Уровень блеска) и Glossiness (Глянец). Для материала корпуса я использовал архитектурный пластик.
Во многих случаях архитектурные материалы с параметрами по умолчанию дают весьма неплохой результат. Применим такой материал к корпусу и лицевой панели нашей модели. 1. Выберите ячейку со свободным материалом. 2. Щелкните на кнопке Standard (Стандартный) в окне Material Editor (Редактор материалов) для вызова окна Material/Map Browser (Окно выбора материалов и карт). 3. Выберите из списка материал Architectural (Архитектурный). 4. В свитке Templates (Образцы) выберите из раскрывающегося списка строку Plastic (Пластик). 5. В свитке Physical Qualities (Физические характеристики) щелкните на образце цвета рядом с Diffuse Color (Цвет рассеивания) для выбора базового цвета корпуса. 6. В открывшемся окне Color Selector: Diffuse (Выбор цвета: цвет рассеивания) выберите белый цвет (рис. 10.20). 7. Примените полученный материал ко всем объектам, которые должны иметь белый цвет. Рис. 10.19. Настройки материала стекла Рис. 10.20. Параметры материала пластика Аналогичным образом можно создать материал для поверхности стола, на котором стоит микроволновая печь. Выполните тестовую визуализацию. На данном этапе изображение должно выглядеть, как показано на рис. 10.21. Рис. 10.21. Результат визуализации микроволновой печи на данном этапе текстурирования Если вы могли заметить, в оригинальном изображении (см. цветной рис. 9.87 на прилагаемом DVD) микроволновой печи есть индикаторы. Создадим их. 1. В окне проекции выделите лицевую панель микроволновой печи. 2. Перейдите на уровень редактирования полигонов и выделите все полигоны, расположенные в непосредственной близости от углублений под ручками управления (рис. 10.22). Рис. 10.22. Выделенные полигоны для последующего текстурирования 3. В области Material (Материал) свитка Polygon: Materials IDs (Полигон: идентификатор материалов) задайте параметру Set ID (Установить идентификатор материала) значение 2 и нажмите Enter. 4. Примените к выделенным полигонам модификатор UVW-проекции, выполнив команду Modifiers > UV Coordinates > UVW Map (Модификаторы > UV-координаты > UVW-проекция). 5. В области Mapping (Проекционные координаты) свитка Parameters (Параметры) установите переключатель в положение Planar (Плоские). Таким образом, мы выделили область панели управления микроволновой печи в отдельный идентификатор материала, чтобы, независимо от остальной поверхности панели, применить к нему маску на основе черно-белой текстуры. По этой же причине нам понадобилось использовать модификатор, накладывающий проекционные координаты. В связи с этим необходимо отредактировать материал корпуса. 1. В редакторе материалов выберите архитектурный материал, созданный ранее для корпуса, ручек и лицевой панели. 2. В окне Material Editor (Редактор материалов) щелкните на кнопке Architectural (Архитектурный) для вызова окна Material/Map Browser (Окно выбора материалов и карт). 3. Выберите из списка материал Multi/Sub-Object (Многокомпонентный). В открывшемся окне установите переключатель в положение Keep old material as sub-material? (Оставить старый материал в качестве компонента?), в результате чего старый материал займет верхнюю кнопку материалов в свитке Multi/ Sub-Object Basin Parameters (Основные параметры многокомпонентного материала). 4. Щелкните на первой кнопке с именем архитектурного материала (у меня – Body (Architertural)) и, не отпуская кнопку мыши, перетащите его на вторую кнопку, а в качестве метода копирования укажите Copy (Копия). Таким образом, мы создали материал для второго идентификатора со свойствами первого материала. Если вам в дальнейшем понадобится изменять параметры архитектурного материала для корпуса, то менять их необходимо сразу у двух материалов. 5. Щелкните на кнопке с именем второго материала для перехода к его настройкам. 6. В окне Material Editor (Редактор материалов) нажмите кнопку типа материала и в появившемся окне Material/Map Browser (Окно выбора материалов и карт) выберите Blend (Смешанный). В открывшемся окне установите переключатель в положение Keep old material as sub-material? (Оставить старый материал в качестве компонента?). 7. В свитке Blend Basic Parameters (Базовые параметры смешанного материала) щелкните на кнопке второго материала и установите черный цвет диффузного отражения (это будет цвет надписи на панели управления). 8. Нажмите кнопку Go to Parent (Вернуться к исходному) 9. Щелкните на кнопке Mask (Маска) и в открывшемся окне Material/Map Browser (Окно выбора материалов и карт) выберите Bitmap (Растровое изображение). 10. В появившемся окне Select Bitmap Image File (Выбор растрового изображения) укажите путь к файлу face_mask.jpg из папки Examples\Глава 10\Microwave texturing. 1 1. Примените полученный материал к лицевой панели микроволновой печи и выполните тестовую визуализацию. Таким образом, мы создали на основе архитектурного материала многокомпонентный материал, структура которого представлена на рис. 10.23. Более сложным с точки зрения настроек можно считать материал сетки, расположенной за стеклом двери. Для материала сетки можно было бы нарисовать текстурную карту, но я предпочитаю пользоваться процедурными картами – это позволяет получить максимально четкое и качественное изображение, ведь такие карты генерируются программно. Вот и в данном случае карта прозрачности материала сетки построена на основе карт Gradient Ramp (Улучшенный градиент). 1. В окне редактора материалов выберите ячейку со свободным материалом. 2. В свитке Blinn Basic Parameters (Базовые параметры раскраски по Блинну) щелкните на образце цвета рядом с Diffuse (Цвет рассеивания) и в открывшемся окне установите цвет, близкий к черному. Это будет основной цвет решетки. 3. Перейдите к свитку Maps (Карты текстур) и щелкните на кнопке рядом с Opacity (Непрозрачность). 4. В окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка карту Mix (Смешивание). У нас будет две карты смешивания, поэтому стоит дать им значимые имена. Назовите эту карту Base level. 5. В свитке Mix Parameters (Параметры смешивания) настроек карты Base level щелкните на кнопке с именем None (Отсутствует), расположенной рядом с Color #1 (Цвет 1). 6. В окне Material/Map Browser (Окно выбора материалов и карт) снова выберите из списка карту Mix (Смешивание). Назовите эту карту Net. 7. В свитке Mix Parameters (Параметры смешивания) карты Net щелкните на кнопке с именем None (Отсутствует), расположенной рядом с Color #1 (Цвет 1). В появившемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка карту Gradient Ramp (Улучшенный градиент). 8. Установите параметры этой карты согласно рис. 10.24. Обратите внимание, что в поле Gradient Type (Тип градиента) выбран тип Radial (Радиальный), что позволяет создавать круги черного цвета, повторяющиеся 70 раз по горизонтали и 60 по вертикали (это определяет параметр Tiling (Повтор)). 9. Перейдите от карты Gradient Ramp (Улучшенный градиент) к карте Mix (Смешивание) с именем Net, используя кнопку Go to Parent (Вернуться к исходному) Рис. 10.23. Структура материала для корпуса и лицевой панели микроволновой печи Рис. 10.24. Параметры первой карты Gradient Ramp (Улучшенный градиент) 10. В свитке Mix Parameters (Параметры смешивания) карты Net щелкните на кнопке, расположенной рядом с Color #1 (Цвет 1), и, не отпуская кнопку мыши, перетащите ее на кнопку, расположенную рядом с Color #2 (Цвет 2), а в качестве метода копирования выберите Copy (Копия). 11. Щелкните на вновь созданной копии карты Gradient Ramp (Улучшенный градиент) и в ее свитке Coordinates (Координаты) установите смещение (Offset (Смещение)) по горизонтали (U), равное 0,009 (рис. 10.25). Таким образом, мы имеем две карты Gradient Ramp (Улучшенный градиент), создающие сетку из кругов черного цвета, с той лишь разницей, что вторая карта имеет смещение по горизонтали на величину половины круга. Выполним еще одну карту Gradient Ramp (Улучшенный градиент), которая будет играть роль маски, смешивающей окружности двух предыдущих карт таким образом, что у первой карты будут видны четные горизонтальные ряды, а у второй – нечетные. 1. Вернитесь к карте Mix (Смешивание) с именем Net, используя кнопку Go to Parent (Вернуться к исходному) 2. В свитке Mix Parameters (Параметры смешивания) карты Net щелкните на кнопке, расположенной рядом с Mix Amount (Доля в смеси), и в окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка карту Gradient Ramp (Улучшенный градиент). 3. Установите параметры этой карты согласно рис. 10.26. Рис. 10.25. Параметры второй карты Gradient Ramp (Улучшенный градиент) Рис. 10.26. Параметры карты Gradient Ramp (Улучшенный градиент), играющей роль маски Обратите внимание, что Gradient Type (Тип градиента) этой карты – Linear (Линейный). Кроме того, карта повернута на 90°, чтобы создаваемые черно-белые полосы располагались горизонтально, а их повторяемость (Tiling (Повтор)) установлена в соответствии с количеством рядов окружностей. Если применить созданную карту к объекту Reshetka, то при визуализации должно получиться изображение, показанное на рис. 10.27. Рис. 10.27. Результат визуализации материала сетки Сейчас полученная карта заполняет все пространство объекта, но решетка окна должна быть лишь частью, ограниченной прямоугольником. Сделать такое ограничение можно, снова используя карту Gradient Ramp (Улучшенный градиент) в качестве маски для первой карты смешивания с именем Base level. 1. Используя кнопку Go to Parent (Вернуться к исходному) перейдите к карте Mix (Смешивание) с именем Base level 2. В свитке Mix Parameters (Параметры смешивания) карты Base level щелкните на кнопке с именем None (Отсутствует), расположенной рядом с Color #2 (Цвет 2). В окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка карту Gradient Ramp (Улучшенный градиент). 3. Установите белый цвет шкалы градиента по всей длине. Таким образом, мы создадим карту, которая будет выступать в качестве фонового цвета. 4. Нажмите кнопку Go to Parent (Вернуться к исходному). 5. В свитке Mix Parameters (Параметры смешивания) щелкните на кнопке, расположенной рядом с Mix Amount (Доля в смеси), и в окне Material/Map Browser (Окно выбора материалов и карт) еще раз выберите из списка карту Gradient Ramp (Улучшенный градиент). 6. Установите параметры этой карты согласно рис. 10.28. Рис. 10.28. Параметры карты Gradient Ramp (Улучшенный градиент) Обратите внимание, что Gradient Type (Тип градиента) этой карты – Box (Параллелепипед). Это позволяет получить маску прямоугольной формы. На этом создание материала для решетки можно считать завершенным. На рис. 10.29 показана схема этого материала.
И наконец, на рис. 10.30 представлен фрагмент модели микроволновой печи вместе с текстурами. Рис. 10.29. Схема материала решетки Рис. 10.30. Фрагмент модели микроволновой печи вместе с текстурами Сложное текстурированиеНе стоит пугаться названия упражнения. Оно подразумевает, что мы будем говорить о текстурировании сложных объектов, а не то, насколько сложно это сделать. В понятие «сложные объекты» я включаю такие объекты, к которым невозможно применить один из типов стандартного проецирования (планарный, цилиндрический, кубический) и ограничиться этим. Обычно такие объекты требуют совместного использования нескольких типов проецирования и (или) коррекции наложения текстурных координат вручную при помощи модификатора Unwrap UVW (Расправить UVW-проекцию) или дополнительных подключаемых модулей (например, Deep Paint). На примере данного упражнения рассмотрим возможность текстурирования сложных объектов только средствами 3ds Max без использования сторонних программ. На рис. 10.31 представлена модель резиновой детской игрушки, с которой вам предстоит работать. Рис. 10.31. Модель игрушки Прежде чем переходить к текстурированию, нужно провести предварительный анализ модели. Это необходимо по двум причинам: ¦ для правильного текстурирования модели нужно понять, на какое минимальное количество элементов (групп выделения) необходимо разделить объект, чтобы применить к этим группам стандартные типы проецирования; ¦ нужно определиться с количеством материалов, которые будут использоваться в данном объекте. Поясню подробнее. Любой сложный предмет можно разложить на более простые. Например, у вас есть модель деревянной стремянки (лестницы). Если ни один из известных вам типов проецирования текстурных координат, таких как планарное, прямоугольное, цилиндрическое или любое другое, не может дать желаемого результата, то стоит разделить ее на две вертикальные жерди и некоторое количество поперечных ступенек. Тогда сразу становится очевидной возможность применения прямоугольного проецирования текстурных координат. Оно как нельзя лучше будет отвечать форме составляющих лестницу деталей. Для объяснения второй причины возьмем модель персонажа, одетого в шорты и майку. Очевидно, что в данном случае необходимы как минимум три текстурные карты (голова, майка и шорты), а учитывая обувь, текстуру рук, ног и деталей головы, – может быть, и больше трех. Существует два подхода к созданию материала для такой модели. ¦ Модель может иметь один материал с одной текстурой, на которой расположены сразу все текстурируемые элементы (голова, майка, шорты и т. д.), что очень часто используется для визуализации в реальном времени (например, в компьютерных играх). ¦ Использование составного материала типа Multi/Sub-Object (Многокомпонентный), позволяющего применить к объекту сразу несколько материалов. При этом объект разделяется на несколько Material ID (Идентификатор материала), что позволяет работать с отдельным материалом (например, при замене текстуры майки не придется менять всю текстуру модели). Второй подход, в отличие от первого, позволяет более гибко работать с отдельными материалами и применять процедурные карты (то есть карты текстур, генерируемые программно). Модель игрушки, представленной на рис. 10.31, можно разделить на шесть составляющих ее частей по форме, близкой к стандартным для проецирования: ¦ основание модели – планарное проецирование; ¦ тело – цилиндрическое; ¦ грива – сферическое; ¦ лапы – цилиндрическое; ¦ голова – сферическое; ¦ уши – планарное. Далее можно действовать одним из следующих способов. ¦ Для выделенных частей модели последовательно добавлять в стек модификатор Mesh Select (Выделение поверхности) и UVW Map (UVW-проекция) в зависимости от типа наложения соответствующей выделенной геометрии. ¦ Сразу применить модификатор Unwrap UVW (Расправить UVW-проекцию) и все действия по наложению проекционных координат проводить только с его помощью. В данном разделе рассмотрим смешанный способ наложения проекционных координат: когда работа ведется попеременно с настройками то одного, то другого модификатора.
Загрузите файл donkey_start.max, который находится в папке Examples\Глава 10\Donkey прилагаемого к книге DVD.
Выделите основание модели. Для этого выполните следующие действия. 1. Выделите модель ослика, щелкнув на ней в любом из окон проекций, и перейдите в режим редактирования Polygon (Полигон).
2. В свитке Selection (Выделение) установите флажок Ignore Backfacing (Без обратной ориентации), чтобы случайно не выделить лишние полигоны. 3. Переключитесь в окно проекции Bottom (Cнизу), щелкнув на названии окна проекции правой кнопкой мыши и в появившемся контекстном меню выполнив команду Vews > Bottom (Вид > Снизу). Выделите основание модели (рис. 10.32). Разверните свиток Surface Properties (Свойства поверхности) настроек объекта на командной панели и посмотрите, какой идентификатор материала присвоен выделенным полигонам. Если отличный от заданного по умолчанию (то есть не равен 1), то наберите в поле Set ID (Установить идентификатор материала) цифру 1 и нажмите Enter. Чтобы упростить дальнейшее выделение полигонов, присвойте выделению значимое имя. Для этого введите его в поле Named Selection Set (Название выделенной области) на панели инструментов, после чего подтвердите сделанные изменения нажатием клавиши Enter. Примените к выделению планарное проецирование. Для этого используйте модификатор UVW Map (UVW-проекция) (рис. 10.33). Рис. 10.32. Модель ослика с выделенным основанием Рис. 10.33. Стек модификаторов с примененным модификатором UVW Map (UVW-проекция) Обратите внимание, в какой плоскости расположен Gizmo (Габаритный контейнер) модификатора. У меня указано выравнивание по оси Y. Прежде чем перейти к наложению проекционных координат на другие элементы модели, нужно разрушить стек модификаторов, щелкнув правой кнопкой мыши и выбрав команду Collapse All (Разрушить все) (это необязательное действие, но если периодически не разрушать стек, то это приведет к дополнительному расходованию ресурсов компьютера), и скрыть выделение, выполнив следующее. 1. В любом окне проекции щелкните на модели правой кнопкой мыши. 2. В появившемся контекстном меню выполните команду Convert To > Convert to Editable Mesh (Преобразовать > Преобразовать в редактируемую поверхность). 3. Не снимая выделение с основания модели, щелкните на кнопке Hide (Спрятать) в свитке Selection (Выделение), чтобы спрятать выделенные полигоны (они в ближайшее время не понадобятся, но могут мешать выделению других). В результате в стеке модификаторов останется только строка Editable Mesh (Редактируемая поверхность). Текстурные координаты, которые были присвоены основанию модели, сохранятся вместе с геометрией. Перейдем к туловищу модели. Для этого выполните следующие действия. 1. Выделите полигоны, необходимые для наложения проекционных координат.
2. Присвойте выделению идентификатор материала 2. 3. Присвойте выделению значимое имя, например body. 4. Примените к объекту модификатор UVW Map (UVW-проекция) с цилиндрическим типом проецирования. 5. Установите выравнивание Gizmo (Габаритный контейнер) модификатора по оси X при помощи переключателя в области Alignment (Выравнивание). 6. В области Alignment (Выравнивание) щелкните на кнопке Fit (Подогнать), чтобы Gizmo (Габаритный контейнер) трансформировался по форме выделения. 7. В стеке модификаторов щелкните на плюсике рядом с именем модификатора, затем выберите строку Gizmo (Габаритный контейнер), так вы перейдете в режим редактирования габаритного контейнера. 8. Вращайте габаритный контейнер так, чтобы зеленая вертикальная линия, указывающая на место стыка текстуры, находилась сзади (рис. 10.34). Теперь нужно посмотреть на то, как выглядят получившиеся развертки текстурных координат. Для этого разрушьте стек модификаторов и добавьте в него модификатор Unwrap UVW (Расправить UVW-проекцию). В свитке Parameters (Параметры) модификатора Unwrap UVW (Расправить UVW-проекцию) щелкните на кнопке Edit (Правка), после чего откроется окно Edit UVWs (Редактирование UVW) для редактирования текстурных координат. На данном этапе окно Edit UVWs (Редактирование UVW) нужно лишь для контроля правильности наложения текстурных координат. На рис. 10.35 показан фрагмент окна Edit UVWs (Редактирование UVW) с выбранным для показа вторым идентификатором материала. Рис. 10.34. Модель ослика с примененным к туловищу цилиндрическим проецированием Рис. 10.35. Развертка цилиндрического проецирования для туловища ослика На данном этапе не стоит выполнять какие-либо действия в редакторе текстурных координат. Это лучше сделать после присвоения координат проецирования всем элементам. Удалите модификатор Unwrap UVW (Расправить UVW-проекцию) из стека модификаторов (он применялся только для того, чтобы можно было убедиться в правильности присвоения проекционных координат). После этого снова перейдите к выделению полигонов (на сей раз гривы ослика), предварительно спрятав выделенные полигоны туловища. После выделения нужных полигонов примените к выделению модификатор UVW Map (UVW-проекция) со сферическим типом проецирования (рис. 10.36). На этот раз задача усложняется. Нужно не просто применить сферическое проецирование, но и правильно расположить его на выделении. Для этого выполните следующие действия. 1. Выберите режим редактирования габаритного контейнера, щелкнув на плюсике рядом с названием модификатора и далее на строке Gizmo (Габаритный контейнер). 2. Вращайте габаритный контейнер так, чтобы зеленая вертикальная линия, указывающая на место стыка текстуры, оказалась в передней части выделения, а наклон центральной оси габаритного контейнера соответствовал наклону выделения. 3. Передвиньте габаритный контейнер так, чтобы его ось оказалась впереди выделения. После этого проверьте правильность наложения проекционных координат, присвоив модификатор Unwrap UVW (Расправить UVW-проекцию), как вы уже это делали для туловища ослика. Развертка гривы ослика должна выглядеть так, как показано на рис. 10.37. Рис. 10.36. Модель ослика с примененным к гриве сферическим проецированием Рис. 10.37. Развертка сферического проецирования для гривы ослика Если у вас нет опыта работы с такого рода наложением проекционных координат, то требуемый результат может сразу не получиться, но нужно стремиться к тому, чтобы форма развертки не была «рваной» и соответствовала форме выделения. Выделите поочередно правые и левые ноги. Для них применим цилиндрическое проецирование с крышками на торцах. Последовательность выполнения действий та же, что и в предыдущих случаях. Не забудьте назначить выделению идентификатор материала и контролировать выделение в окнах проекций (рис. 10.38). Развертку для ног ослика делать значительно сложнее, чем в предыдущих случаях, поэтому наберитесь терпения и выполните все действия тщательно. От наложения проекционных координат будет зависеть внешний вид модели. Перейдем к наложению текстурных координат для головы. Надеюсь, к этому времени вы уже поняли принцип работы с модификаторами и развертками, поэтому не стану вновь повторяться, а лишь представлю вашему вниманию положение Gizmo (Габаритный контейнер) модификатора UVW Map (UVW-проекция) со сферическим типом проецирования (рис. 10.39). Обратите внимание, что зеленая линия (см. цветной рис. 10.39 на прилагаемом к книге DVD), означающая место стыка текстурной карты, обращена в противоположную от лицевой части сторону и ее ось повернута так, чтобы максимально широко развернуть текстуру. На рис. 10.40 представлена развертка текстурных координат для головы ослика. Рис. 10.38. Развертка цилиндрического проецирования для ног ослика Рис. 10.39. Модель ослика с примененным к голове сферическим проецированием С ушами модели проделайте описанные выше действия следующим образом. 1. Выделите полигоны, составляющие одно ухо. 2. Присвойте выделению идентификатор материала. 3. Примените модификатор UVW Map (UVW-проекция) с планарным типом проецирования. 4. Применив модификатор Unwrap UVW (Расправить UVW-проекцию), проверьте правильность наложения текстурных координат. 5. При необходимости сделайте соответствующие правки, вернувшись к редактированию Gizmo (Габаритный контейнер) модификатора UVW Map (UVW-проекция). После выполненных операций развертка для ушей ослика должна выглядеть так, как показано на рис. 10.41 (в данном случае имеется в виду форма развертки, а не масштаб и положение в пространстве). Рис. 10.40. Развертка сферического проецирования для головы ослика Рис. 10.41. Развертка планарного проецирования для ушей ослика Когда модели назначены все проекционные координаты, нужно разложить созданные развертки в пределах одной текстурной карты. Сделать это можно двумя способами: автоматически и вручную. Чтобы закончить создание проекционных координат для модели ослика, выполните следующие действия. 1. Откройте все ранее спрятанные полигоны, для чего щелкните на кнопке Unhide All (Показать все) в свитке Selection (Выделение) настроек объекта Editable Mesh (Редактируемая поверхность). 2. Примените к модели ослика модификатор Unwrap UVW (Расправить UVW-проекцию). 3. В свитке Parameters (Параметры) настроек модификатора Unwrap UVW (Расправить UVW-проекцию) щелкните на кнопке Edit (Редактировать). 4. Выполните в появившемся окне правки текстурных координат команду Tools > Pack UVs (Инструменты > Разместить UV-проекции) и в открывшемся окне диалога Pack (Упаковать) щелкните по кнопке OK. В результате этих действий развертки заполнят свободное пространство в пределах текстурной карты (рис. 10.42). Передвигать и масштабировать придется вручную. Теперь создадим текстуру для модели. Обычно я делаю это в программе Adobe Photoshop, но можно использовать любое другое приложение редактирования графики. Прежде всего необходимо создать визуализацию текстурных координат и сохранить ее в виде растрового изображения. Для этого выполните команду Tools > Render UVW Template (Инструменты > Визуализация образца UVW) из меню окна Edit UVWs (Редактирование UVW) и, не изменяя настроек окна Render UVs (Визуализация UVs), щелкните на кнопке Render UV Template (Визуализация образца UV), а затем сохраните выполненную визуализацию. Откройте сохраненное изображение в программе растровой графики (например, Adobe Photoshop).
Выполните в Adobe Photoshop команду Select > Color Range (Выделение > Цветовой диапазон) и выделите черный цвет фона, после чего удалите его, нажав клавишу Delete (Удалить). Это позволит лучше видеть слой, который лежит ниже и на котором вы будете рисовать текстуру для модели (рис. 10.43). Нарисуйте на нижнем слое текстуру для модели ослика. Добавляйте слои, цвета, используйте выдавливание и т. д. – и вы сможете получить великолепную модель. Я всего лишь немного растушевал изображение, чтобы слегка оживить модель (рис. 10.44). Рис. 10.42. Окончательный вид развертки текстуры для модели ослика Рис. 10.43. Заготовка текстуры Последнее, что осталось сделать, – создать материал и назначить ему в качестве карты цвета созданное растровое изображение. Для этого в 3ds Max 9 выполните следующие действия. 1. Откройте окно Material Editor (Редактор материалов) и выберите ячейку со свободным материалом. 2. В свитке Maps (Карты текстур) щелкните на кнопке None (Отсутствует) рядом с кнопкой Diffuse Color (Цвет рассеивания). 3. В открывшемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка карту Bitmap (Растровое изображение). 4. В появившемся окне Select Bitmap Image File (Выбор растрового изображения) выберите сохраненную ранее текстурную карту для канала цвета. 5. Присвойте материал модели ослика, перетащив его мышью из окна редактора материалов на объект в окне проекции либо при выделенном объекте щелкнув на кнопке Assign Material to Selection (Назначить материал выделенным объектам) находящейся на панели инструментов окна Material Editor (Редактор материалов). Чтобы модель выглядела более реалистично, сделайте текстурные карты для выдавливания и глянца ее поверхности. То, что получилось у меня, показано на рис. 10.45. Конечно, чтобы создать красивую реалистичную модель, требуется достаточно много времени для рисования текстур. Порой это занимает не меньше времени, чем само моделирование объекта. Рис. 10.44. Текстурная карта цвета для модели ослика Рис. 10.45. Результат финальной визуализации модели ослика с картой цвета
Глава 11Визуализация • Интеграция трехмерной графики и фотографии • Маскирование объектов • Объекты в фокусе камеры • Работаем с Video Post (Видеомонтаж) Существует много вариантов, позволяющих получить хорошее изображение при визуализации, но при этом всегда найдется способ, чтобы улучшить его. В данной главе мы поговорим о том, как это сделать. Для этого мы рассмотрим методы работы с фотографиями, исследуем возможность улучшения визуализации за счет создания глубины резкости изображения. Интеграция трехмерной графики и фотографииКогда я работал в рекламном агентстве, специализирующемся на наружной рекламе, мне часто приходилось иметь дело с проектами, требующими размещения рекламных конструкций на фотографии. В этом упражнении мы поговорим о рекламной конструкции и способе ее подачи в программе 3ds Max. На примере создания стелы для банка я объясню процесс построения целостного изображения на основе трехмерной графики и фотографии. Предположим, у вас есть идея для проекта, ее конструктивное решение. Но заказчику мало просто описать проект, он хочет видеть его таким, каким он будет в жизни. Попробуем выполнить пожелания заказчика. Все начинается с фотографии. Прежде всего нужно определить, какого качества необходимо распечатать проект для заказчика. Это служит отправной точкой для задания разрешения при сканировании (если, конечно, вы не пользуетесь цифровым фотоаппаратом). Если фотография имеет размер 9 x 12 см, а вывести на печать нужно формат А4, я сканирую с разрешением 300 dpi и предпочитаю работать с форматом TIFF. Получив цифровое изображение, можно считать подготовительную часть законченной (рис. 11.1). Рис. 11.1. Отсканированное изображение, которое будет использоваться в качестве фона Теперь надо разместить фотографию в качестве фонового изображения в окне проекции Perspective (Перспектива), а также в качестве карты окружающей среды, что позволит не только видеть фотографию в окне проекции, но и визуализировать ее. Для этого сделайте следующее. 1. Выполните команду Rendering > Environment (Визуализация > Окружающая среда). 2. В свитке Common Parameters (Общие параметры) открывшегося окна Environment and Effects (Окружающая среда и эффекты) щелкните на кнопке None (Отсутствует). 3. В появившемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка Bitmap (Растровое изображение). Откроется окно Select Bitmap Image File (Выбор растрового изображения). 4. Укажите путь к файлу фонового изображения и щелкните на кнопке Open (Открыть) (рис. 11.2), после чего закройте окно Environment and Effects (Окружающая среда и эффекты). Рис. 11.2. Свиток Common Parameters (Общие параметры) после добавления файла фонового изображения
Иногда в процессе работы требуется небольшая коррекция растрового изображения, которую можно выполнить, не выходя из 3ds Max и не загружая его в программы редактирования растровых изображений. Для этого достаточно скопировать карту фонового изображения из свитка Common Parameters (Общие параметры) окна Environment and Effects (Окружающая среда и эффекты) в Material Editor (Редактор материалов). Для копирования сделайте следующее. Откройте редактор материалов, выполнив команду Rendering > Material Editor (Визуализация > Редактор материалов) или нажав клавишу M. Щелкните на кнопке с названием файла фонового изображения в окне Environment and Effects (Окружающая среда и эффекты) и, не отпуская кнопку мыши, перетащите ее в любую свободную ячейку образца материала окна Material Editor (Редактор материалов), а в качестве метода копирования установите Instance (Привязка). При необходимости редактирования изображения откройте свиток Bitmap Parameters (Параметры растрового изображения) или Output (Результат) в окне Material Editor (Редактор материалов). При помощи этих свитков можно подкорректировать размер выходного изображения, провести цветокоррекцию, изменить яркость, насыщенность и другие параметры растрового изображения. Теперь нужно разместить это же растровое изображение в окне проекции и изменить параметры визуализации. Для этого сделайте следующее. 1. Выполните команду Views > Viewport Background (Вид > Фон окна проекции). 2. В появившемся окне Viewport Background (Фон окна проекции) установите флажки Use Environment Background (Использовать фон окружающей среды) и Display Background (Показать фон). 3. В качестве окна проекции, в котором должен отображаться фон, выберите из раскрывающегося списка Viewport (Окно проекции) строку Perspective (Перспектива) (рис. 11.3). Рис. 11.3. Окно Viewport Background (Фон окна проекции) с настройками для фонового изображения 4. Закончив настройку, щелкните на кнопке OK. 5. Выполните команду Rendering > Render (Визуализация > Визуализировать), в результате чего откроется окно Render Scene (Визуализация сцены). 6. В области Output Size (Выходной размер) свитка Common Parameters (Общие параметры) укажите значение ширины и высоты в пикселах в соответствии с размером фонового изображения (помните, я советовал при открытии файла обратить внимание на размер изображения). После выполнения данных действий в окне проекции Perspective (Перспектива) появится фотография в качестве фонового изображения. Проанализируем фоновое изображение. Первое, что нужно сделать, – определить точку в пространстве, с которой производилась съемка (это необходимо для правильной постановки камеры в сцене), а также сделать анализ света и тени (пригодится для выставления источников света). Начнем с камеры. Фотоаппарат находился на уровне глаз фотографа, значит, и камеру в сцене надо разместить на высоте 1600-1700 мм (за нулевую отметку земли возьмем начало координат по оси Z). Чтобы проще было согласовывать объекты сцены с фоновым изображением, лучше использовать Target Camera (Направленная камера). Target (Цель) камеры будет находиться несколько выше самой камеры, так как фотография предположительно была сделана под небольшим углом. Идеальный вариант – знать реальные размеры объектов на фотографии, например столбов, и расстояние от них до точки съемки, чтобы максимально верно выставить камеру и объекты сцены. Что же касается освещения на фотографии, то, судя по теням от машины и столба, можно предположить, что солнце находилось слева и немного впереди.
Допустим, что у вас уже есть модель стелы и сейчас нужно только экспортировать ее в сцену.
Чтобы показать тень, падающую от стелы на землю, необходимо построить плоскость. Для этого выполните команду Create > Standard Primitives > Plane (Создание > Простые примитивы > Плоскость). В окне проекции To p (Сверху) щелкните кнопкой мыши в верхнем левом углу и, удерживая ее нажатой, переместите указатель в правый нижний угол, построив таким образом плоскость (рис. 11.4). Плоскость нужна для того, чтобы отобразить на ней тень от стелы, поэтому она должна находиться на уровне земли и быть не меньше, чем предполагаемая тень. Кроме того, я использую грани плоскости для выравнивания ее относительно точек схода. Рис. 11.4. Взаимное расположение объектов сцены Построив плоскость и установив на нее стелу, можно считать работу с геометрией законченной. Теперь перейдем к построению камеры, для чего сделайте следующее. 1. Выполните команду Create > Cameras > Target Camera (Создание > Камеры > Направленная камера) главного меню. 2. В окне проекции To p (Сверху) щелкните немного левее стелы и переместите указатель мыши в направлении, противоположном фронтальной стороне стелы. После того как вы отпустите кнопку мыши, камера будет построена. 3. Не снимая выделения с камеры, щелкните правой кнопкой мыши на кнопке Select and Move (Выделить и переместить) расположенной на панели инструментов. 4. В открывшемся окне Move Transform Type-In (Ввод значений перемещения) задайте абсолютное значение по оси Z равным 1700 (расстояние от земли до камеры). Камера займет свое положение в пространстве по оси Z, и двигать ее в этой плоскости больше не следует (рис. 11.5). Рис. 11.5. Окно Move Transform Type-In (Ввод значений перемещения) со значением высоты камеры над землей Теперь окно проекции Perspective (Перспектива) можно заменить окном вида из камеры. Для этого щелкните правой кнопкой мыши на названии окна (в левом верхнем углу) и в появившемся контекстном меню выберите Views > Camera (Вид > Камера). Продолжим настройку положения камеры в пространстве. Для согласования линии горизонта камеры с горизонтом на фотографии надо включить показ горизонта камеры в окне вида из камеры. Для этого выполните следующие действия. 1. Выделите камеру в окне проекции Top (Сверху). 2. Щелкните на вкладке Modify (Изменение) командной панели, в результате чего появится доступ к настройкам параметров камеры. 3. В свитке Parameters (Параметры) установите флажок Show Horizon (Показать горизонт). В окне проекции появится черная горизонтальная линия, указывающая на положение линии горизонта в пространстве. На рис. 11.6 показаны составляющие правильной настройки камеры и освещения для фонового изображения. Рис. 11.6. Схема положения объектов сцены относительно изображения фона Для наглядности (это не обязательно) я провел две линии: параллельно бордюрному камню и по краю газона (они обычно параллельны). На пересечении мы получили точку схода, а следовательно, и линию горизонта фотографии. Используя инструмент Select and Move (Выделить и переместить) передвиньте Target (Цель) камеры по оси Z так, чтобы черная горизонтальная линия (горизонт камеры) совпала с точкой схода. Затем переместите камеру по осям X и Y, чтобы стела заняла то место, которое для нее предназначено, то есть справа от дороги, на газоне. Стелу предполагается расположить перпендикулярно дороге, следовательно, стелу можно установить по левой грани плоскости. Кроме того, она размещена в пространстве так, что ее боковая грань расположена параллельно дороге. На рис. 11.7 показано окончательное расположение камеры и источников света в окне проекции Top (Сверху). Рис. 11.7. Расположение объектов сцены в окне проекции Top (Сверху) В сцене будет три источника света: два Omni (Всенаправленный) и Target Direct (Нацеленный направленный). В качестве источника света, который будет генерировать тени, я выбрал Target Direct (Нацеленный направленный), как наиболее близкий по теням к солнцу (у солнца лучи почти параллельны, как и у этого источника света). Он размещен в сцене согласно ранее проведенному анализу фотографии, то есть слева и немного впереди. Для этого источника света сделайте следующее. 1. Выделите Target Direct (Нацеленный направленный) в окне проекции Top (Сверху). 2. Щелкните на вкладке Modify (Изменение) командной панели, в результате чего появится доступ к настройкам параметров источника света. 3. В области Shadows (Тени) свитка General Parameters (Общие параметры) установите флажок On (Включить). 4. В свитке Shadow Map Params (Параметры карты тени) задайте параметру Size (Размер) значение, равное 1000, что позволит генерировать тень с более ровными краями. Теперь нужно назначить плоскости материал Matte/Shadow (Матовое покрытие/ тень). Он позволяет объектам принимать тени, при этом оставаясь невидимым. Чтобы присвоить плоскости данный материал и настроить его параметры, выполните следующие действия. 1. Откройте окно Material Editor (Редактор материалов) и выберите любую свободную ячейку образца. 2. Щелкните на кнопке Standard (Стандартный). 3. В появившемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка Matte/Shadow (Матовое покрытие/тень). 4. В свитке Matte/Shadow Basic Parameters (Основные параметры матового покрытия/тени) настройте параметры материала, как показано на рис. 11.8. Рис. 11.8. Свиток Matte/Shadow Basic Parameters (Основные параметры матового покрытия/тени) с настройками для плоскости 5. Для присвоения материала плоскости перетащите материал из окна Material Editor (Редактор материалов) на плоскость в окне проекции. Визуализируйте сцену (рис. 11.9). Рис. 11.9. Результат визуализации стелы на фоне растрового изображения В данном случае тень от стелы падала на ровную поверхность земли, а что если тень падает на стену здания с колоннами, окнами и пилястрами? При решении такой задачи нужно имитировать выступы и впадины (можно сделать это приблизительно), и на достаточном расстоянии от камеры вы не заметите неточности в форме тени. Сложнее, если объект показан крупным планом. Чтобы он не казался инородным телом, необходимо подобрать параметр сглаживания при визуализации. Это же относится и к подбору цвета для источников света (надо постараться попасть в цветовую гамму фотографии).
Маскирование объектовТехника использования маскированных объектов позволяет создавать визуализацию с помощью фонового изображения и объектов сцены. Простым примером может служить создание анимации, при которой объект сцены – самолет – вылетает из-за скалы, расположенной на фотографии, использованной в качестве фонового изображения. Рассмотрим похожий пример с использованием автомобиля. Нам понадобится фотография для фонового изображения (рис. 11.10) и модель автомобиля. Рис. 11.10. Растровое изображение, взятое для использования в качестве фона Как установить растровое изображение в качестве фона в любое окно проекции и подключить его для последующей визуализации, было подробно рассмотрено в предыдущем разделе. По этой причине я напомню только последовательность работы. 1. Выполнив команду Rendering > Environment (Визуализация > Окружающая среда), загрузите растровое изображение фона для использования его при визуализации. 2. Для показа фона в окне проекции Perspective (Перспектива) или вида из камеры выполните команду Views > Viewport Background (Вид > Фон окна проекции). 3. Задайте разрешение для визуализации соответственно размерам фонового изображения (как минимум должно соответствовать отношение высоты к ширине, в противном случае будут искажения). 4. Экспортируйте в сцену объекты для работы (в данном случае автомобиль), для чего выполните команду File > Merge (Файл > Присоединить) и выберите в окне диалога Merge File (Присоединить файл) файл с моделью автомобиля (рис. 11.11). Рис. 11.11. Окно вида из камеры с фоновым изображением и моделью автомобиля
На рис. 11.11 уменьшенная копия модели автомобиля висит над террасой. Такое впечатление создается из-за того, что ограждение террасы оказалось за автомобилем, а также из-за отсутствия тени, которая помогает ориентироваться в трехмерном пространстве. Чтобы исправить положение, вам понадобится построить плоскость и согласовать ее положение в пространстве с положением автомобиля. Плоскость нужна для того, чтобы автомобиль отбрасывал на нее тень. Для ее построения выполните команду Create > Standard Primitives > Plane (Создание > Простые примитивы > Плоскость) и расположите плоскость в окне проекции To p (Сверху) под моделью автомобиля. Назначьте плоскости материал Matte/Shadow (Матовое покрытие/тень) с установленным флажком Receive Shadows (Принимать тень) (рис. 11.12). Рис. 11.12. Модель автомобиля с плоскостью на фоне растрового изображения Теперь необходимо построить геометрический объект, соответствующий по форме тем участкам растрового изображения, которые надо открыть на фото (пока они скрыты моделью автомобиля).
Все, о чем я буду говорить дальше, подходит только для статичных (неподвижных) сцен. Дальнейшее построение можно вести тремя способами. ¦ Если форма маскирующего объекта, которую надо создать, несложная, ее можно строить прямо в окне вида из камеры. ¦ Если форма сложная, то необходимо вставить растровое изображение в качестве фона в окно проекции и, используя масштабирование, приблизить его настолько, чтобы было удобно работать с мелкими деталями. После создания такого объекта нужно уточнить его положение в пространстве относительно вида визуализации. ¦ Можно создать сплайны в программах векторной графики (например, Adobe Illustrator или CorelDRAW) и импортировать их в 3ds Max. Воспользуемся первым способом. В качестве объекта, маскирующего автомобиль, я использовал сплайны, к которым затем применил модификатор Edit Mesh (Редактирование поверхности). Чтобы ничто не мешало в работе, можно скрыть все ненужные в данное время объекты (автомобиль, плоскость, камеру и источники света). Для этого выделите все объекты сцены, щелкнув на кнопке Select by Name (Выделить по имени) В появившемся окне Select From Scene (Выбор из сцены) нажмите кнопку Select All (Выделить все), а затем – OK. В свитке Hide (Спрятать) вкладки Display (Отображение) щелкните на кнопке Hide Selected (Спрятать выделенное). Прежде чем приступить к построению сплайнов, очерчивающих форму деталей растрового изображения (в данном случае это ограждение террасы), нужно выполнить подготовительные действия. 1. В окне проекции Front (Спереди) постройте объект сетки, выполнив команду Create > Helpers > Grid (Создание > Вспомогательные объекты > Координатная сетка). 2. Выделите созданный объект сетки в окне проекции вида из камеры и выполните команду Tools > Align to View (Инструменты > Выровнять по окну проекции). 3. В открывшемся окне Align to View (Выровнять по окну проекции) установите переключатель в положение Align Z (Выровнять по оси Z) (рис. 11.13) и щелкните на кнопке OK для подтверждения принятых изменений. 4. Для увеличения рабочей области при выделенном окне проекции вида из камеры щелкните на кнопке Maximize Viewport Toggle (Увеличение окна проекции до размеров экрана) в правом нижнем углу окна программы. 5. Сделайте активной плоскость сетки. Для этого выделите объект сетки и выполните команду главного меню Views > Grid > Activate Grid Object (Вид > Координатная сетка > Активизировать объект сетки). После выполнения этих действий можно приступать к построению сплайнов. Я использовал объекты Rectangle (Прямоугольник), которые затем присоединил к одному объекту и к которым применил булевы операции для создания цельного сплайна.
После редактирования сплайна необходимо применить к нему модификатор Edit Mesh (Редактирование поверхности), выполнив команду Modifiers > Mesh Editing > Edit Mesh (Модификаторы > Редактирование поверхности > Редактирование поверхности). В результате должен получиться полигональный объект, закрывающий ограждение террасы (рис. 11.14). Рис. 11.14. Окно вида из камеры с полигональным объектом, построенным на объекте сетки Теперь можно приступать к созданию и наложению на построенный объект материала Matte/Shadow (Матовое покрытие/тень). 1. Откройте окно Material Editor (Редактор материалов) и выберите ячейку со свободным материалом. 2. Щелкните на кнопке Standard (Стандартный). 3. В открывшемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка Matte/Shadow (Матовое покрытие/тень). 4. В свитке Matte/Shadow Basic Parameters (Основные параметры матового покрытия/тени) настройте параметры материала, как показано на рис. 11.15. Осталось только открыть спрятанные ранее объекты и визуализировать вид из камеры. Для этого в свитке Hide (Спрятать) вкладки Display (Отображение) командной панели щелкните на кнопке Unhide All (Показать все), а затем – на кнопке панели инструментов Quick Render (Production) (Быстрая визуализация (итоговая)) В результате должно получиться изображение, показанное на рис. 11.16. Рис. 11.15. Свиток Matte/Shadow Basic Parameters (Основные параметры матового покрытия/тени) с настройками для объекта маскирования Рис. 11.16. Окончательная визуализация автомобиля с использованием фонового изображения
Объекты в фокусе камерыВы когда-нибудь задумывались над тем, почему иногда сцены, созданные в программах трехмерного моделирования, выглядят неестественными? Объяснить это можно несколькими причинами – начиная от неверно выставленного освещения и заканчивая неправильным наложением текстур. В данном разделе я хочу затронуть такую тему, как глубина резкости и фокусное расстояние. Ни для кого не секрет, что, глядя на фотографию, экран телевизора или просто какие-либо предметы на улице или дома, мы не видим все одинаково четким. Это связано с особенностью строения глаза, устройством фотоаппарата и камеры. Однако, невзирая на такой очевидный факт, многие пренебрегают глубиной резкости в своих работах. Разберемся, что такое глубина резкости и фокусное расстояние применительно к сценам в программе 3ds Max. На примере данного упражнения мы рассмотрим четыре подхода к решению этой задачи. ¦ Использование размытия при помощи Video Post (Видеомонтаж). ¦ Применение фильтра Depth of Field (Глубина резкости), который относится к Rendering Effects (Эффекты визуализации). ¦ Альтернативный метод, который я однажды использовал для выполнения одного из рекламных проектов, связанных с оптикой. Его суть состоит в том, чтобы визуализировать последовательность кадров, изменяя положение камеры в пространстве (Target (Цель) камеры при этом должна оставаться на месте), а затем собрать все кадры вместе, накладывая их друг на друга. ¦ Применение возможностей настройки объекта камеры. Сначала необходимо создать какую-нибудь сцену для последующей работы. Постройте на плоскости колоннаду из 15 колонн (рис. 11.17). Установите в сцене Target Camera (Направленная камера). Для этого выполните команду Create > Cameras > Target Camera (Создание > Камеры > Направленная камера) и в окне проекции Top (Сверху) постройте камеру, направленную на середину колоннады.
По поводу создания камеры в сцене хотелось бы сделать небольшое отступление. Некоторые дизайнеры в 80 % случаев работают с перспективой, отодвигая роль камеры на задний план. Я абсолютно не согласен с таким мнением. Кроме того, что камера позволяет более гибко настраивать сцену, вид из камеры получается более естественным, не говоря уже о многих других положительных сторонах применения камеры. Рис. 11.17. Окно проекции Perspective (Перспектива) со сценой урока Итак, у нас есть сцена и камера. Обратите внимание, что я установил Target (Цель) камеры на колонну, находящуюся в центре (выделенную цветом), чтобы при настройках глубины резкости, где используются параметры камеры, эта колонна всегда оставалась в фокусе. Я буду настраивать глубину резкости именно по этой колонне – так проще сравнить результаты всех методов. Чтобы размыть объекты сцены при визуализации, используя Video Post (Видеомонтаж), сделайте следующее. 1. Выполните команду Rendering > Video Post (Визуализация > Видеомонтаж). 2. В открывшемся окне Video Post (Видеомонтаж) щелкните на кнопке Add Scene Event (Добавить событие-сцену) 3. В появившемся окне Add Scene Event (Добавить событие-сцену) из раскрывающегося списка выберите вашу камеру и щелкните на кнопке OK. 4. Щелкните на кнопке Add Image Filter Event (Добавить событие фильтрации изображения) 5. В области Filter Plug-In (Модули фильтров) появившегося окна Add Image Filter Event (Добавить событие фильтрации изображения) выберите строку Lens Effects Focus (Эффекты линзы, фокусировка) и щелкните на кнопке OK. В результате левая часть окна Video Post (Видеомонтаж) примет вид, показанный на рис. 11.18. Рис. 11.18. Фрагмент окна Video Post (Видеомонтаж) Дальнейшие действия заключаются в настройке параметров фильтра Lens Effects Focus (Эффекты линзы, фокусировка). 1. В левой части окна Video Post (Видеомонтаж) щелкните дважды на строке Lens Effects Focus (Эффекты линзы, фокусировка). 2. В открывшемся окне Edit Filter Event (Редактирование события фильтрации) щелкните на кнопке Setup (Настройка), чтобы открыть окно настроек фильтра Lens Effects Focus (Эффекты линзы, фокусировка). 3. Чтобы увидеть в окне настроек фильтра Lens Effects Focus (Эффекты линзы, фокусировка) вашу сцену, щелкните на кнопке VP Queue (Очередь видеомонтажа), в результате чего она изменит цвет, а затем нажмите кнопку Preview (Просмотр). При этом в окно предварительного просмотра загрузится вид окна из камеры. 4. Установите переключатель в левой части окна настроек фильтра Lens Effects Focus (Эффекты линзы, фокусировка) в положение Focal Node (Центр фокусировки), что позволит выбрать объект, который будет являться центром фокусировки. При установке переключателя в положение Scene Blur (Размытие сцены) эффект размытия применяется ко всей сцене в целом, а в положение Radial Blur (Радиальное размытие) – размытие сцены происходит радиально, от центра к ее краям. 5. Чтобы указать объект, который будет все время оставаться в фокусе, щелкните на кнопке Select (Выбор) и в появившемся окне Select Focal Object (Выбор объекта фокусировки) выберите из списка колонну, находящуюся в центре (выделенную цветом) (Column22). 6. Измените настройки следующих параметров (в окне просмотра, которое обновляется автоматически, вы увидите сделанные изменения): • Affect Alfa (Воздействовать на альфа-канал) – воздействие размытия на альфа-канал изображения при 32-битной глубине цвета; • Horiz/Vert Focal Loss (Расфокусировка по горизонтали/по вертикали) – величина размытия сцены по горизонтали и вертикали в диапазоне от 0 до 100; • Focal Range (Диапазон фокусировки) – определяет, на каком расстоянии от центра (объекта) начинается размытие; • Focal Limit (Предел расфокусировки) – расстояние, на котором происходит максимальное размытие сцены. 7. Щелкните на кнопке OK для подтверждения сделанных изменений. Для визуализации сцены щелкните на кнопке Execute Sequence (Выполнить цепочку) В открывшемся окне Execute Video Post (Выполнить видеомонтаж) настройте параметры выходного изображения и щелкните на кнопке Render (Визуализировать). На рис. 11.19 показана сцена с размытием, полученным с использованием модуля Video Post (Видеомонтаж). Рис. 11.19. Размытие сцены, выполненное в Video Post (Видеомонтаж)
Продолжим разбираться с глубиной резкости и фокусным расстоянием на примере второго способа. Для размытия сцены сделайте следующее. 1. Выполните команду Rendering > Effects (Визуализация > Эффекты). 2. В открывшемся окне Environment and Effects (Окружающая среда и эффекты) щелкните на кнопке Add (Добавить). 3. В появившемся окне Add Effect (Добавить эффект) выберите из списка Depth of Field (Глубина резкости) и щелкните на кнопке OK для подтверждения выбора. После активизации фильтра станет доступным свиток Depth of Field Parameters (Параметры глубины резкости), который позволяет настраивать глубину резкости в сцене. Параметры фильтра Depth of Field (Эффект глубины резкости) во многом повторяют настройки Lens Effects Focus (Эффекты линзы, фокусировка), поэтому я остановлюсь только на некоторых из них. ¦ Pick Cam. (Указать камеру) области Cameras (Камеры) позволяет выбрать одну или несколько камер непосредственно в окне проекции. ¦ Если в области Focal Point (Точка фокусировки) переключатель установлен в положение Focal Node (Центр фокусировки), то можно выбрать объект для центра фокусировки. Для этого необходимо нажать кнопку Pick Node (Указать центр фокусировки), а затем щелкнуть на объекте в любом из окон проекций. Если в области Focal Point (Точка фокусировки) переключатель установлен в положение Use Camera (Использовать камеру), то можно воспользоваться фокусным расстоянием камеры. ¦ В области Focal Parameters (Параметры фокусировки) можно установить переключатель в положение Use Camera (Использовать камеру), тогда характеристики глубины резкости (диапазон и пределы) будут определяться параметрами выбранной камеры. Измените настройки и выполните визуализацию для просмотра результатов. В области Focal Parameters (Параметры фокусировки) я установил переключатель в положение Use Camera (Использовать камеру) и увеличил значения параметров Horiz Focal Loss (Расфокусировка по горизонтали) и Vert Focal Loss (Расфокусировка по вертикали) до 20. На рис. 11.20 представлено изображение, получившееся у меня при визуализации. Рис. 11.20. Сцена с использованными эффектами визуализации
Перейдем к описанию более сложного, но более правильного с физической точки зрения способа создания размытия. Два предыдущих способа хороши своей простотой, но они не совсем верно передают эффект глубины резкости. В итоге размытие появляется там, где его не должно быть. По этой причине, когда мне понадобилось делать рекламный плакат, я стал искать альтернативу этим двум методам. Надо заметить, это было время, когда работа велась во второй версии программы 3ds Max и еще не было глубины резкости в настройках камеры, которая появилась только с выходом четвертой версии и решала аналогичные задачи на приемлемом уровне. Решение проблемы, как оказалось, лежало на поверхности: достаточно было подумать о физических свойствах и принципе работы фотоаппарата. Оно заключается в том, чтобы визуализировать последовательность кадров, изменяя положение камеры в пространстве (цель камеры при этом должна оставаться на месте), а затем собрать все кадры вместе, накладывая их друг на друга. Используя ту же сцену с камерой, построим дополнительный объект – окружность. Для этого выполните команду Create > Shapes > Circle (Создание > Формы > Окружность). Радиус окружности должен быть небольшим (у меня он равен 5), хотя сейчас это неважно – позже все равно нужно будет подбирать его под величину размытия. После создания сплайна расположите его так, чтобы камера оказалась внутри окружности, а сам сплайн стал перпендикулярен линии от камеры к ее цели. Выстраивать с абсолютной точностью, применяя дополнительные средства выравнивания, не нужно, достаточно воспользоваться инструментами трансформации Select and Move (Выделить и переместить) и Select and Rotate (Выделить и повернуть). В итоге должно получиться изображение, подобное показанному на рис. 11.21. Рис. 11.21. Окружность, выровненная относительно камеры Следующим шагом будет привязка камеры к сплайну. Для этого выделите камеру и выполните команду Animation > Constraints > Path Constraint (Анимация > Ограничения > Ограничение по пути). В окне проекции Front (Спереди) щелкните на окружности, выбрав ее в качестве сплайна пути. После этого камера сместится в начало сплайна. Щелкните в правом нижнем углу программы на кнопке Play Animation (Воспроизведение анимации) для просмотра анимации движения камеры. В окне вида из камеры вы можете проанализировать максимальное размытие, которое получится при применении этого способа. Я, просмотрев анимацию, уменьшил радиус круга до 2,5 для получения более естественного размытия. Здесь наблюдается прямая зависимость: чем больше смещение объектов в процессе выполнения анимации, тем сильнее будет их размытие в итоговой сцене. После того как вы определитесь с величиной размытия, можно приступать к визуализации. Для этого сделайте следующее. 1. Выполните команду Rendering > Render (Визуализация > Визуализировать). 2. В появившемся окне Render Scene (Визуализация сцены) установите переключатель в положение Active Time Segment (Текущий промежуток времени), чтобы задействовать всю шкалу анимации. 3. Для создания эффекта размытия достаточно 10 кадров, поэтому, если у вас шкала 100 кадров, задайте параметру Every Nth Frame (Каждый кадр под номером) значение, равное 10.
4. В области Rander Output (Результат визуализации) щелкните на кнопке Files (Файлы). 5. В открывшемся окне Render Output File (Результирующий файл визуализации) укажите директорию на диске, где будут сохраняться кадры, а также тип файла. 6. Щелкните на кнопке Render (Визуализировать) для начала визуализации и сохранения последовательности кадров. Для этого способа создания размытия вся работа в программе 3ds Max закончена. Осталось только собрать все визуализированные кадры. Для этого я воспользовался программой Adobe Photoshop (вы же можете применить любое другое приложение для редактирования растровых изображений). После загрузки всех 10 кадров в Adobe Photoshop надо выбрать любой кадр (файл) и перенести на него изображения с девяти оставшихся. Для этого активизируйте инструмент Move (Перемещение) на панели инструментов и, удерживая нажатой клавишу Shift (что обеспечит полное совпадение слоев), перетаскивайте изображения на выбранный файл. В результате получится изображение, состоящее из 10 слоев. После этого каждому слою, исключая нижний, задайте значение параметра Opacity (Непрозрачность) равным 35 % (подбирается опытным путем). Затем сохраните все как один файл (рис. 11.22).
Если сравнить данный способ с предыдущими, то можно отметить несравненно лучший результат. В последних версиях программы 3ds Max добиться такого же результата можно значительно более простым способом. Все то, что с таким трудом мы проделывали в предыдущем методе, нашло свое отражение в свитке Depth of Field Parameters (Параметры глубины резкости) настроек камеры. Рассмотрим подробнее эти возможности. Рис. 11.22. Эффект глубины резкости, выполненный альтернативным способом Обратимся к области Multi-Pass Affect (Многопроходный эффект) свитка Parameters (Параметры) настроек камеры. Здесь нужно установить флажок Enable (Использовать) и выбрать в раскрывающемся списке строку Depth of Field (Глубина резкости) или Motion Blur (Размытие движения), чтобы активизировать соответствующий процесс. Если в этой области щелкнуть на кнопке Preview (Просмотр), то можно увидеть результат размытия в окне проекции. В области Focal Depth (Глубина фокусировки) свитка Depth of Field Parameters (Параметры глубины резкости) настроек камеры можно установить флажок Use Target Distance (Использовать фокусное расстояние). В таком случае цель камеры будет использоваться как точка, вокруг которой происходит размытие сцены. Если снять флажок, то станет доступным для редактирования параметр Focal Depth (Глубина фокусировки). Область Sampling (Экземпляры) содержит следующие настройки: ¦ Display Passes (Показать проходы) – позволяет показать проходы1 в окне проекции; ¦ Use Original Location (Использование первичного положения) – определяет, что проходы будут начинаться с первоначального положения камеры; 1 Чтобы визуализировать один кадр, визуализатор выполняет серию проходов, то есть промежуточных визуализаций со сдвигом камеры по кругу, «складывая» их в одном кадре (полупрозрачные изображения наслаиваются друг на друга, и там, где изображения не совпадают, появляется размытие). ¦ Total Passes (Общее количество проходов) – указывает количество проходов для генерации эффекта; ¦ Sample Radius (Радиус выборки) – сдвигает сцену на указанное значение при создании размытия (увеличение этого значения ведет к усилению эффекта); ¦ Sample Bias (Смещение выборки) – смещает действие эффекта (размытия) к началу или к концу проходов (по умолчанию находится посередине). В области Pass Blending (Смешивание проходов) можно управлять параметрами сглаживания мультипроходной визуализации (в окне проекции результата сглаживания не видно): ¦ Normalize Weights (Нормализовать удельный вес) – уменьшает артефакты при визуализации, увеличивая тем самым степень размытия; ¦ Dither Strength (Сила вибрации) – управляет количеством полутонов в мультипроходах; ¦ Tile Size (Повторяемость размера) – задает размер перекрытия слоев, используемых в передаче полутонов. Я подробно остановился на параметрах свитка Depth of Field Parameters (Параметры глубины резкости), чтобы вы могли осознанно настраивать размытие сцены, используя возможности программы. Свиток Motion Blur Parameters (Параметры размытия движения) почти полностью повторяет вышеперечисленные настройки. На рис. 11.23 представлен результат визуализации, выполненной при помощи настроек в свитке Depth of Field Parameters (Параметры глубины резкости) для присутствующей в сцене камеры. Рис. 11.23. Сцена, визуализированная при использовании параметров камеры Depth of Field (Глубина резкости)
Таким образом, улучшить визуализированное изображение сцены можно многими способами, но не забывайте про глубину резкости, особенно если вы моделируете большие пространства или нужно сконцентрировать внимание зрителя на одном предмете в сцене. Работаем с Video Post (Видеомонтаж)Словосочетание Video Post является производным от термина Post-production – завершающий этап создания фильма, когда происходит окончательная сборка и доводка отснятого материала, наложение спецэффектов, создание переходов. Модуль Video Post (Видеомонтаж) программы 3ds Max не претендует на лидерство среди таких программ постобработки, как Adobe After Effect или Combustion производства Autodesk. Задачи Video Post (Видеомонтаж) значительно скромнее. Тем не менее с его помощью можно быстро и эффективно создавать переходы, эффекты линзы, звездные поля, собирать послойную анимацию, а также решать другие задачи. Рассмотрим простой пример создания анимации с использованием переходов для трех камер (их количество может быть любым). Для работы вам понадобится несложная сцена – например примитив Teapot (Чайник), размещенный на Plane (Плоскость) (рис. 11.24), а также три направленные камеры. Их расположение в сцене может быть произвольным. Рис. 11.24. Сцена, состоящая из примитивов Teapot (Чайник) и Plane (Плоскость) После построения объектов в сцене необходимо анимировать положение камер в пространстве. Это нужно для последующего построения переходов между анимированными камерами в модуле Video Post (Видеомонтаж). Для анимации камер выполните следующие действия. 1. В окне проекции To p (Сверху) выделите одну из трех камер. 2. Передвиньте ползунок таймера анимации в конец шкалы. 3. Щелкните на кнопке Auto Key (Автоключ) для активизации автоматического создания ключевых кадров. 4. При помощи инструмента Select and Move (Выделить и переместить) передвиньте камеру в пределах видимости чайника. 5. Выделите последовательно вторую и третью камеры и сделайте то же самое по отношению к ним. 6. Щелкните на кнопке Auto Key (Автоключ) для остановки создания ключевых кадров анимации. Дальнейшие действия будут проводиться в окне Video Post (Видеомонтаж), для вызова которого выполните команду Rendering > Video Post (Визуализация > Видеомонтаж). Окно Video Post (Видеомонтаж) разделено на две части: слева – область Queue (Очередь), справа – область Edit (Редактирование). В области очереди событий видеомонтажа (Queue (Очередь)) формируется список элементов анимации. Форматирование может происходить двумя способами. ¦ Последовательно, когда события выполняются по очереди сверху вниз. Обычно это: событие-сцена, событие-фильтр и событие вывода изображения. ¦ Иерархически. При таком способе последовательность выполнения задается иерархией событий очереди – от дочерних к родительским. Окно редактирования позволяет управлять шкалой времени для каждого события. Любая шкала имеет на концах маркеры, передвигая которые, можно изменять диапазон времени. В верхней части окна расположена панель инструментов. Перейдем к выполнению задания. Добавьте в очередь события-сцены. Для этого сделайте следующее. 1. Щелкните на кнопке Add Scene Event (Добавить событие-сцену) расположенной на панели инструментов. 2. В появившемся окне Add Scene Event (Добавить событие-сцену) выберите из раскрывающегося списка в области View (Проекция) окно проекции вида из первой камеры. 3. Щелкните на кнопке OK для подтверждения выбора. 4. Повторите те же действия для двух других камер (рис. 11.25). Рис. 11.25. Окно Video Post (Видеомонтаж) после добавления событий-сцен После добавления в очередь видов из трех камер они будут занимать временной интервал, определенный по умолчанию (обычно 100 кадров), от начала и до конца. Нам необходимо указать временные диапазоны для визуализации видов из камеры. В зависимости от того, как изменяется положение камер в пространстве, выделите последовательность воспроизведения анимации для каждой камеры с таким расчетом, что две соседние в последовательности камеры должны иметь по 10-15 общих кадров. Для изменения временного диапазона камеры щелкните на ее концевом маркере и перетащите в нужный кадр, контролируя положение маркера в строке состояния в нижней части окна. Проанализировав сцену, я пришел к выводу, что наилучшего композиционного эффекта можно достигнуть, используя анимацию первой камеры начиная с 0 по 40 кадр, второй – с 25 по 80 и третьей – с 65 по 100 (рис. 11.26). Рис. 11.26. Окно Video Post (Видеомонтаж) после редактирования временных диапазонов событий сцены Осталось добавить в окно очереди событий переходы между камерами и событие вывода изображения, и на этом подготовка к визуализации будет закончена. Для этого выполните следующее. 1. Если в очереди есть выделенные события, щелкните на пустом месте поля окна очереди событий для снятия выделения (иначе событие вывода изображения установится только на выделенное событие сцены). 2. Нажмите кнопку Add Image Output Event (Добавить событие вывода изображения) 3. В появившемся окне Add Image Output Event (Добавить событие вывода изображения) щелкните на кнопке Files (Файлы) для открытия окна выбора типа файла и директории для сохранения. 4. Укажите в качестве выходного расширения файла – AVI (видеофайл), выберите директорию для сохранения и щелкните на кнопке OK для подтверждения выбора. 5. Удерживая клавишу Ctrl, щелкните в окне очереди событий на первой и второй камерах для их выделения. 6. Щелкните на кнопке Add Image Layer Event (Добавить событие композиции изображений). 7. В появившемся окне Add Image Layer Event (Добавить событие композиции изображений) выберите из раскрывающегося списка событий строку Cross Fade Transition (Микширование наплывом). 8. Щелкните на кнопке OK для подтверждения выбора. 9. В области Queue (Очередь) выделите Cross Fade Transition (Микширование наплывом) и третью камеру. 10. Повторите вышеописанные действия по добавлению перехода Add Image Layer Event (Добавить событие композиции изображений) для второй и третьей камер. 11 . Отредактируйте временной диапазон для двух событий композиции изображений так, чтобы переход между первой и второй камерой происходил с 25 по 40 кадр, а для второй и третьей – с 65 по 80 (рис. 11.27). Рис. 11.27. Окончательный вид окна Video Post (Видеомонтаж) После этого можно запустить процесс визуализации, для чего щелкните на кнопке Execute Sequence (Выполнить цепочку) расположенной на панели инструментов окна Video Post (Видеомонтаж). В появившемся окне Execute Video Post (Выполнить видеомонтаж) установите желаемый диапазон визуализации и размер выходного изображения, после чего щелкните на кнопке Render (Визуализировать) для начала визуализации.
В данном разделе мы рассмотрели лишь малую часть возможностей модуля Video Post (Видеомонтаж). С его помощью можно создавать великолепные эффекты и переходы, готовить образы к анимации и т. д. Умелое применение возможностей модуля Video Post (Видеомонтаж) в значительной мере облегчит ваш труд и улучшит качество создаваемых сцен. |
|
||
Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Вверх |
||||
|