Продолжаем добавлять растровые текстуры в состав материалов «МАХ-кафе»
Продолжим создание материалов с растровыми текстурными картами для «МАХ-кафе». Такие материалы понадобятся нам для фундамента, ступеньки и двери кафе; для столов, деревянных деталей кресел и их обивки, настольных салфеток; для обоев, украшающих стены; для камина, крестовины елки и т. д. Учитывая полученный вами определенный опыт, разберем последовательность необходимых действий менее подробно, чем в предыдущем упражнении:
1. Учитывая, что сцена MAX-kafe13.max уже загружена, создайте материал для фундамента и ступеньки здания кафе. Активизируйте свободную ячейку образца материала и установите цвет Ambient (Подсветка) с RGB-компонентами, равными (56; 30; 16) — темно-коричневый. Оттенок цвета Diffuse (Диффузный) сделайте ненасыщенным серовато-зеленым (143; 157; 98). Введите в счетчик Specular Level (Сила блеска) величину 20, чтобы сделать материал слегка блестящим. Исходные значения остальных параметров оставьте без изменений.
2. Щелкните на квадратной кнопке без надписи справа от образца цвета Diffuse (Диффузный) и выберите в окне диалога Material/Map Browser (Просмотр материалов и карт текстур) карту типа Bitmap (Растровая). Щелкните на длинной кнопке без надписи в свитке Bitmap Parameters (Параметры растровых текстур) и выберите подходящий файл растровой текстуры. Я использовал файл Smlaggr.jpg, изображающий мелкую цветную гальку, показанную на рис. 14.55, назвав материал Galka v cemente. Этот файл можно найти в папке Maps\Architex компакт-диска, прилагающегося к книге. Можно применить и иное подходящее изображение, например, из файлов Sandshor.jpg или Concgray.jpg, входящих в комплект поставки карт текстур max 7.5 и изображающих текстуры песка и цементной отливки. Установите в счетчиках группы Tiling (Кратность) свитка Coordinates (Координаты) кратность повторения образцов текстуры равной 2 по осям U и V. Сохраните созданный материал в библиотеке MAX-kafe.mat.
Рис. 14.55. Образец материала для фундамента и ступеньки «МАХ-кафе» с растровой картой цвета диффузного рассеивания
ЗАМЕЧАНИЕ
Если просто назначить материал объектам Fundament и Stupenka, то результат не будет таким, на который мы хотели бы рассчитывать, max 7.5 будет воспроизводить текстуру с заданной кратностью, равной 2, на каждой из сторон параллелепипедов, изображающих фундамент и ступеньку. Однако размеры и пропорции сторон различаются, а это значит, что на узких боковых гранях данных объектов текстура будет сжата по вертикали и растянута по горизонтали. Кроме того, размеры блоков фундамента и ступеньки существенно различаются, так что разным будет и масштаб рисунков одной и той же текстуры. Все эти недостатки хорошо видны на рис. 14.56, при формировании которого все объекты сцены, кроме показанных на рисунке, были временно скрыты от просмотра. Но ведь размеры камешков гальки не должны зависеть от того, замурованы они в фундамент или в ступеньку! Чтобы избежать зависимости масштаба текстуры от размеров граней объекта, к нему следует применить модификатор UVW Map (UVW-проекция), выбрав проекцию типа Box (Прямоугольные трехмерные) и задав равные размеры габаритного контейнера по всем осям U, V и W, то есть придав габаритному контейнеру кубическую форму. |
Рис. 14.56. Пробная визуализация материала фундамента и ступеньки «МАХ-кафе» выявляет неравномасштабность изображений текстуры на разных гранях объектов
3. Примените модификатор UVW Map (UVW-проекция) к объекту Fundament. Установите переключатель типа проекции в положение Box (Прямоугольные трехмерные). Горизонтальные размеры этого объекта равны 680x680 см, поэтому установите размеры габаритного контейнера равными 680 см по всем трем осям проекционных координат. Затем примените модификатор проецирования к объекту Stupenka, выбрав тот же тип проекционных координат и назначив габаритному контейнеру модификатора те же размеры, 680x680x680 см, что и у объекта Fundament. Теперь рисунок текстуры будет выглядеть одинаково на всех гранях обоих объектов, как показано на рис. 14.57.
Рис. 14.57. Повторная пробная визуализация материала фундамента и ступеньки «МАХ-кафе» показывает требуемое качество текстуры
4. Теперь пора заняться входной дверью. Для нее требуется материал с текстурой какой-нибудь благородной древесины, например ясеня, дуба или бука. Активизируйте новую ячейку Редактора материалов. Задайте коричневый цвет Ambient (Подсветка) с RGB-компонентами (100; 44; 22), цвет Diffuse (Диффузный) сделайте светло-коричневым (196; 119; 58), а цвет Specular (Зеркальный) — бледно-желтым, почти белым (248; 239; 213). Настройте хорошо выраженный, хотя и не слишком яркий блик: Specular Level (Сила блеска) = 36; Glossiness (Глянцевитость) = 46 с размытыми краями, Soften (Размыть) - 0,8. Подберите рисунок текстуры для цвета диффузного рассеивания. Я использовал файл с текстурой ясеня Ashen_2.gif, который можно найти в папке Maps компакт-диска, прилагающегося к книге. Этот файл входит в комплект поставки текстур mах 7.5. Получающийся при этом материал показан на рис. 14.58, но можно применить, скажем, файл Tutash.jpg из комплекта поставки max 7.5. Кратность повторения текстуры по обеим осям установите равной 2. Назовите материал, предположим, lasene-vaia doska (Ясеневая доска) и сохраните в текущей библиотеке. Впоследствии мы используем этот же материал и в качестве рамы окна кафе (материал окна должен быть многокомпонентным, включая в себя материалы рамы и стекла).
Рис. 14.58. Образец материала для входной двери «МАХ-кафе» с растровой картой цвета диффузного рассеивания, изображающей древесину ясеня
5. Чтобы материал, имитирующий текстуру ясеневой доски, хорошо лег на створки и коробку дверей, разгруппируйте объект Dveri и назначьте модификаторы проекций отдельно каждой из створок и коробке двери. Выберите вариант проецирования типа Box (Прямоугольные трехмерные). Чтобы рисунок древесины не искажался на торце двери, измените в свитке Parameters (Параметры) модификатора проекций ширину и высоту габаритного контейнера, сделав их одинакового размера — по 65 см (рис. 14.59). Проделайте ту же операцию применительно к левой створке двери.
Рис. 14.59. Вид сверху габаритного контейнера модификатора проекций правой створки двери
6. Визуализируйте изображение в окне проекции Camera01 (Камера01). Теперь, когда материалы на основе текстурных карт применены ко всем объектам снаружи от здания кафе, кроме окна и фона, сцена должна выглядеть подобно изображению на рис. 14.60.
Рис. 14.60. Вид сцены в окне проекции Camera01 после применения материалов
7. Перейдем к «раскрашиванию» текстурами внутреннего убранства кафе «МАХ». Если вы следовали совету и на время работы с наружной частью сцены скрывали от просмотра объекты интерьера кафе, то восстановите их видимость. Начните с создания материала с текстурой полированной древесины для стола и «деревянных» деталей кресел. Активизируйте очередную свободную ячейку Редактора материалов и настройте параметры материала в свитке Blinn Basic Parameters (Базовые параметры раскраски по Блинну) следующим образом: Ambient (Подсветка) = (100; 44; 22), коричневый; Diffuse (Диффузный) = (178; 79; 40), красновато-коричневый; Specular (Зеркальный) - (241; 222; 171), светло-бежевый. Чтобы древесина выглядела хорошо полированной, задайте яркий, четкий блик: Specular Level (Сила блеска) = 88; Glossiness (Глянцевитость) = 53 с несколько размытыми краями, Soften (Размыть) = 0,6. Примените в качестве карты текстуры диффузного рассеивания фотографию полированного дубового капа из файла Burloak.jpg, входящего в комплект поставки max 7.5 (файл с таким же именем можно найти и в папке Maps компакт-диска, прилагающегося к книге). Назовите новый материал Du-boviy кар (Дубовый кап) и сохраните его в текущей библиотеке. Вид получившегося материала в окне увеличителя показан на рис. 14.61. Выделите по именам оба стола (объекты Stol01 и Stol02), а также деревянные детали всех восьми кресел (для этого придется временно открыть объекты-группы) и примените к ним только что созданный материал с текстурой дубового капа.
Рис. 14.61. Образец материала для деревянных деталей мебели «МАХ-кафе» с растровой картой цвета диффузного рассеивания, изображающей полированный наплыв дуба
СОВЕТ Если для нанесения материала на деревянные детали кресел вам потребуется применить к ним модификатор UVW Map (UVW-проекция), то применяйте модификатор отдельно к каждой из боковин и каждой спинке, используя проекционные координаты типа Box (Прямоугольные трехмерные). |
ЗАМЕЧАНИЕ Столешницы из полированного дерева будут выглядеть неестественно, если в них не будут хотя бы чуть-чуть отражаться стоящие на столе предметы, как было показано выше на рис. 14.22. Способ имитации этого эффекта с помощью карты текстуры Flat Mirror (Плоское зеркало) мы рассмотрим ниже, в разделе «Создаем многокомпонентные материалы». |
8. Чтобы выполнить имитацию материала ткани для «обивки» сидений и подушек кресел кафе «МАХ», воспользуйтесь растровой текстурой в качестве карты рельефа. В свободной ячейке Редактора материалов настройте параметры материала в свитке Blinn Basic Parameters (Базовые параметры раскраски по Блинну) следующим образом: Ambient (Подсветка) - (72; 16; 20), темно-бордовый; Diffuse (Диффузный) = (148; 9; 9), насыщенно-красный; Specular (Зеркальный) = (229; 229; 229), светло-серый, почти белый. Полностью устраните блик, установив параметры Specular Level (Сила блеска) и Glossiness (Глянцевитость) равными 0. Разверните свиток Maps (Карты текстур), щелкните на кнопке с надписью None (Отсутствует) справа от параметра Bump (Рельефность) и выберите в окне диалога Material/Map Browser (Просмотр материалов и карт текстур) карту типа Bitmap (Растровая). Щелкните на длинной кнопке без надписи в свитке Bitmap Parameters (Параметры растровых текстур) и выберите файл растровой текстуры, изображающей рисунок ткани. Я использовал файл с черно-белым изображением грубой ткани Curptgry.jpg, который входит в набор растровых текстур max 7.5. В качестве всех параметров растровой текстуры оставьте их исходные значения. Вернитесь с уровня работы с картой на уровень материала и установите в счетчике Amount (Доля вклада) свитка Maps (Карты текстур) для параметра Bump (Рельефность) величину 200, чтобы рельеф ткани хорошо проявился на изображении (рис. 14.62). Назовите материал Obivka, сохраните его в текущей библиотеке и примените к сиденьям и подушкам всех восьми кресел. На рис. 14.63 показан результат пробной визуализации одного из кресел (все остальные объекты были скрыты от просмотра), произведенной для контроля качества материалов.
Рис. 14.62. Образец материала обивочной ткани для кресел с растровой картой текстуры рельефа
Рис. 14.63. Пробная визуализация одного из кресел позволяет убедиться в правильности нанесения материалов
9. Подготовьте материал для салфеток, постеленных на столах кафе. Можно было бы и не применять для них текстуру, но ведь внимание к деталям как раз и отличает работу мастера от поделки ремесленника. Активизируйте очередную свободную ячейку Редактора материалов и настройте параметры материала в свитке Blinn Basic Parameters (Базовые параметры раскраски по Блинну) следующим образом: Ambient (Подсветка) - (207; 191; 164), бежевый; Diffuse (Диффузный) = (211; 205; 195), светло-бежевый; Specular (Зеркальный) - (255; 255; 255), чисто-белый. Как и в случае с материалом обивки кресел, полностью устраните блик, установив параметры Specular Level (Сила блеска) и Glossiness (Глянцевитость) равными 0. Примените одну и ту же растровую карту в качестве текстур цвета диффузного рассеивания и рельефа. Я использовал изображение волокнистой рисовой бумаги из файла Paper.jpg, который имеется в папке Maps компакт-диска, прилагающегося к книге. Можно применить и другую картинку, например из файлов Plgry.jpg или Pltan.jpg, входящих в комплект поставки текстурных карт max 7.5. В качестве всех параметров растровой текстуры оставьте их исходные значения. Вернитесь с уровня работы с картой на уровень материала и установите в счетчиках Amount (Доля вклада) свитка Maps (Карты текстур) для параметров Diffuse Color (Диффузное рассеивание) и Bump (Рельефность) значения 65 и 90. Назовите материал Salfetka, примените его ко всем восьми салфеткам на столах кафе «МАХ» и сохраните в текущей библиотеке. Вид получившегося материала в окне увеличителя показан на рис. 14.64.
Рис. 14.64. Образец материала для салфеток с растровой картой текстур диффузного рассеивания и рельефа
10. Теперь подготовьте материал для «оклейки стен» кафе. Активизируйте свободную ячейку Редактора материалов (по моим подсчетам это будет уже 17-я из задействованных нами ячеек). Используйте принятую по умолчанию раскраску по Блинну и настройте параметры нового материала следующим образом: Ambient (Подсветка) = (50; 51; 42), темно-серый с зеленоватым отливом; Diffuse (Диффузный) = (172; 171; 152), слабо насыщенный хаки; Specular (Зеркальный) = (229; 229; 229), почти белый. Блик уберите совсем: Specular Level (Сила блеска), Glossiness (Глянцевитость) = 0. Чтобы материал напоминал обои, создайте рисунок в виде повторяющегося узора. Для этого подойдут образцы текстур, имена файлов которых начинаются с символов «pat» (от слова pattern — узор): они специально предназначены для формирования бесшовных узоров. Я использовал файл Pat0169.jpg, который имеется в папке Maps\Backgrnd компакт-диска, прилагающегося к книге. В комплект поставки max 7.5 также входят подобные файлы, например Pat0106.tga или Pat0153.tga. Примените выбранную растровую карту в качестве текстуры цвета диффузного рассеивания материала. Подберите такие значения коэффициентов в счетчиках группы Tiling (Кратность) свитка Coordinates (Координаты), чтобы образец текстуры не выглядел в узоре ни слишком мелким, ни чересчур крупным. К примеру, можете попробовать такие значения: 14 по оси U и 12 - по оси Y (рис. 14.65). Не изменяйте исходные значения всех остальных параметров материала, назовите его Oboi и сохраните в текущей библиотеке. Примените материал к объектам LevStena, PravStena и Zadniaia stena здания кафе.
Рис. 14.65. Образец материала для «оклейки стен» с картой текстуры диффузного рассеивания, образующей бесшовный узор
ЗАМЕЧАНИЕ Очевидно, что при таком способе нанесения материала на стены обои будут видны и с улицы. Чтобы избежать этого, требуется применение многокомпонентного материала, состоящего из двух материалов, один из которых будет изображать обои, а другой — вид стены снаружи, Для нанесения такого материала стены также должны быть специальным образом подготовлены. Читайте об этом далее в разделе «Создаем многокомпонентные материалы». |
11. Попробуем украсить текстурой елочное украшение — золотую рыбку, заодно разобравшись с возможностью изменения цветового оттенка текстуры. Активизируйте очередную свободную ячейку Редактора материалов и, не меняя исходных цветовых оттенков материала, установите достаточно интенсивный блик: Specular Level (Сила блеска) = 84, Glossiness (Глянцевитость) = 23. Щелкните на маленькой квадратной кнопке справа от образца цвета диффузного рассеивания и выберите в списке текстурных карт строку Bitmap (Растровая карта). Загрузите в качестве растровой текстуры файл Crumple4.jpg, имеющийся в папке Maps\Organics стандартного набора текстур mах 7.5 и представляющий собой фотографию мятой бумаги. Раскройте свиток Maps (Карты текстур) и перетащите имя текстурной карты с кнопки канала Diffuse Color (Диффузное рассеивание) на кнопку канала Bump (Рельефность), выбрав вариант дублирования Instance (Образец). Установите значение доли вклада текстуры в канале Bump (Рельефность) равным 100. Пока что образец материала, который можно видеть в активной ячейке, не вызывает в воображении образ золотой рыбки.
12. Перейдите на уровень редактирования карты растровой текстуры, щелкнув в свитке Maps (Карты текстур) на кнопке канала Diffuse Color (Диффузное рассеивание), и раскройте свиток Output (Результат). Установите флажок Enable Color Map (Разрешить карту цвета), чтобы получить доступ к инструментам раздела Color Map (Карта цвета) в нижней части свитка. Эти инструменты позволяют вручную настроить передаточную кривую, характеризующую связь входных и выходных значений отсчетов цвета. Наша цель — придать материалу золотистый оттенок. Установите переключатель RGB, обеспечив тем самым возможность раздельной настройки передаточных кривых по каждому из каналов цветовых компонентов. Щелкните на кнопках R (Red — Красный) и G (Green — Зеленый), чтобы выключить режимы настройки передаточных кривых красного и зеленого каналов цвета. Щелкните на квадратном черном маркере на конце передаточной кривой оставшегося активным синего канала и перетащите этот маркер вниз, к нулевой отметке. Тем самым вы полностью выключите синий компонент цвета материала, а красный и зеленый создадут в сумме искомый желто-золотистый оттенок. В таком виде материал уже мало напоминает мятую бумагу. Назовите материал Zolotaia folga, сохраните его в текущей библиотеке и назначьте объекту Zolotaia ribka. На рис. 14.66 показан вид полученного материала в окне увеличителя, а на рис. 14.67 — непосредственно на елочной игрушке.
Рис. 14.66. Образец материала в виде золотистой фольги
Рис. 14.67. Елочное украшение «Золотая рыбка» после применения материала
13. Чтобы закончить это упражнение, выполните пару самостоятельных заданий. Примените материал с текстурой ясеневой доски к крестовине, в которую установлена елка, предварительно назначив объекту Krestovina подходящий модификатор проекций. Материал для мешка Деда Мороза создайте аналогично материалу обивки кресла, применив в качестве текстур цвета диффузного рассеивания и рельефа изображение мешковины из файла Carpttan.jpg, имеющегося в папке Maps\Fabric стандартного набора текстур max 7.5. Для кочерги создайте материал с текстурой старого поржавевшего металла. Можно применить с этой целью текстуру из файла Plateox2.jpg, имеющегося в составе текстур max 7.5. Итак, свои материалы обрели почти все объекты внутреннего убранства кафе за исключением стекла зеркала, камина, поленьев и покрытия пола. Правда, пока еще не до конца отработаны материалы стекла бокалов, столешниц и тарелок. Их доводкой мы займемся в следующих упражнениях главы. А пока выполните пробную визуализацию изображения в окне Camera02 (Камера02), чтобы оценить качество подготовленных материалов в условиях реального освещения, установленного в сцене. Результат должен быть похож на рис. 14.68. Сохраните файл сцены под прежним именем MAX-kafe13.max.
Рис. 14.68. Результат визуализации сцены в окне Camera02
По возможности не закрывайте max 7.5, так как работа над материалами будет продолжена.
Рисуем NURBS-кривую в форме финских саней
Для практической отработки навыков рисования NURBS-кривых в трехмерном пространстве попробуйте нарисовать кривую типа CV, напоминающую по форме финские сани (рис. 6.19), на которых, вероятно, каждый из вас хоть раз, да катался зимой. На рис. 6.19 управляющие вершины пронумерованы для удобства ссылок в тексте упражнения.
Рис. 6.19. Пример NURBS-кривой, расположенной в трехмерном пространстве
Итак, выполните следующие действия:
1. Перезагрузите программу и сохраните новый пустой файл под именем Finskie sani.max.
2. Выберите в раскрывающемся списке командной панели Create (Создать) разновидность объектов NURBS Curves (NURBS-кривые) и щелкните на кнопке CV Curve (CV-кривая).
ЗАМЕЧАНИЕ
При построении рассматриваемой далее кривой учтен тот факт, что в каком бы из окон проекций ни строилась кривая, ее управляющие вершины всегда помещаются на координатной плоскости этого окна. Процесс построения был заранее продуман и спланирован так, чтобы при переходе из окна в окно кривая принимала требуемую форму. В связи с этим важно использовать именно те окна проекций, которые упоминаются в упражнении, а также располагать вершины именно в указанных точках. Когда вы усвоите на практике принцип построения подобных трехмерных кривых, вы сможете попробовать выполнить аналогичные построения с использованием иных окон. |
3. Установите в свитке Create CV Curve (Создание CV-кривой) флажок Draw In All Viewports (Рисовать во всех окнах проекций). Начните рисовать кривую обычным порядком в окне проекции Front (Вид спереди), построив вершины 1-5. Кривая будет создаваться на координатной плоскости окна (рис. 6.20). Обратите внимание на то, что вершина 3 намеренно размещена точно на горизонтальной, а вершины 4 и 5 — на вертикальной оси координат. Ведь эта вертикальная ось — проекция координатной плоскости, присутствующей в окне вида слева, в котором будет продолжено рисование на следующем шаге. Горизонтальная ось координат окна Front (Вид спереди) — это проекция координатной плоскости окна Тор (Вид сверху), в котором будет строиться вершина 8.
Рис. 6.20. Первые пять вершин NURBS-кривой создаются в окне проекции Front
4. Вершину 6 требуется разместить в плоскости, перпендикулярной текущей. Переместите курсор в окно проекции Left (Вид слева) и продолжите рисование на плоскости этого окна (рис. 6.21), построив вершины б и 7. И в этом случае кривая строится на текущей координатной плоскости. Так как точки 4 и 5 на предыдущем шаге были размещены в окне Front (Вид спереди) на вертикальной оси координат, все четыре вершины — 4, 5, 6 и 7 — оказываются лежащими в одной плоскости, так что кривая не перекашивается.
Рис. 6.21. Рисование продолжается в окне проекции Left
5. Чтобы построить вершину 8, переместите курсор в окно проекции Тор (Вид сверху). Вершины 3 и 8 должны лежать в одной плоскости. Это достигается тем, что вершина 3 в окне вида спереди была в п. 2 размещена точно на горизонтальной оси координат.
6. Для создания вершины 9 снова переместите курсор в окно Front (Вид спереди). На этот раз, однако, для построения вершины придется применить новый прием. Так как кривая в окне Front (Вид спереди) будет создаваться на текущей координатной плоскости, то вершина 9 грозит слиться с вершиной 2, как показано на рис. 6.22. Чтобы этого не случилось, необходимо поднять вершину 9 над плоскостью окна Front (Вид спереди).
Рис. 6.22. Вершину 9 необходимо поднять над плоскостью окна проекции Front
7. Нажмите и удерживайте клавишу Ctrl. Щелкните кнопкой мыши, отпустите клавишу Ctrl и перемещайте курсор в окне проекции Front (Вид спереди) вверх по экрану. Вновь созданная вершина будет приподниматься над плоскостью окна Front (Вид спереди), что можно видеть в других окнах проекций. От текущей координатной плоскости к новой вершине будет тянуться пунктирная линия красного цвета, как видно на рис. 6.23. Когда вершина сместится перпендикулярно координатной плоскости на требуемое расстояние, снова щелкните кнопкой мыши, фиксируя ее положение.
Рис. 6.23. Смещение вершины 9 перпендикулярно плоскости текущего окна проекции в других окнах изображается красной пунктирной линией
8. Для перемещения вершины перпендикулярно координатной плоскости текущего окна проекции можно использовать и другой прием. Нажмите и удерживайте клавишу Ctrl, щелкните кнопкой мыши и перетаскивайте курсор вверх или вниз по экрану (клавишу Ctrl при этом можно отпустить). Для фиксации положения вершины отпустите кнопку мыши. Испытайте этот прием при построении последней, десятой вершины нашей кривой в окне проекции Front (Вид спереди). Решите сами, какой из приемов вам кажется более удобным. Так как десятая вершина создается напротив первой, то после ее создания появится окно с запросом Close Curve? (Замкнуть кривую?). Щелкните в ответ на кнопке No (Нет). Чтобы закончить рисование кривой, щелкните правой кнопкой мыши. Еще раз щелкните правой кнопкой мыши для выключения режима рисования NURBS-кривых. В итоге кривая должна принять вид, показанный ранее на рис. 6.19.
9. Сохраните файл. Можете сопоставить получившийся результат с объектом из файла, хранящегося под таким же именем Finskie sani.max в папке Scenes\ Glava_06 прилагающегося к книге компакт-диска.
Подобные трехмерные NURBS-кривые можно с успехом применять в качестве траекторий, вдоль которых расставляются поперечные сечения объектов, создаваемых методом лофтинга. Этот метод нам предстоит рассматривать в следующей главе. Сохраните созданную кривую в файле под заданным в начале упражнения именем, она еще пригодится нам в главе 7 при освоении инструментов деформации тел лофтинга.
Совершенствуем навыки применения модификатора Bend
Модификатор Bend (Изгиб) изгибает выделенный объект относительно заданной координатной оси. Вам уже приходилось применять этот модификатор для изгиба спинки и подушки кресла, а также опорных сечений при создании ложки. Сейчас мы более подробно рассмотрим параметры этого модификатора.
Чтобы попрактиковаться в применении модификатора изгиба, выполните следующие действия:
1. Перезагрузите max 7.5 и постройте в окне проекции Тор (Вид сверху) стандартный примитив Tube (Труба) с внутренним радиусом 7, наружным радиусом 10 и высотой 100 текущих единиц. Обязательно проследите за тем, чтобы объект имел достаточное число сегментов по высоте (Height Segments) — по крайней мере 10. Создайте два дубликата-копии этого объекта и расположите их примерно так, как показано на рис. 8.11. При желании можете загрузить готовую сцену с тремя трубами, открыв файл Tri trubi(Bend).max в папке Scenes\Glava_08 компакт-диска, прилагающегося к книге.
Рис. 8.11. Объекты, подготовленные для применения модификатора Bend (Изгиб)
2. Выделите левый объект и щелкните на строке Bend (Изгиб) в раскрывающемся списке Modifier List (Список модификаторов). Объект будет заключен в габаритный контейнер модификатора в виде параллелепипеда коричневого цвета. В нижней части командной панели Modify (Изменить) появится свиток Parameters (Параметры) модификатора изгиба.
3. Настройте величину угла изгиба в разделе Bend (Изгиб) свитка, используя следующие параметры:
Angle (Угол) — задает угол изгиба в градусах относительно оси, выбранной в разделе Bend Axis (Ось изгиба). По умолчанию это ось Z, направленная вертикально вверх. Объект плавно изгибается по всей длине, как показано на рис. 8.12, а;
Direction (Направление) — задает направление изгиба в плоскости, перпендикулярной выбранной оси изгиба.
Рис. 8.12. С помощью модификатора Bend объект изогнут на 90° относительно оси Z (а), область изгиба ограничена (б) и передвинута к середине объекта (в)
4. Выберите координатную ось, относительно которой будет производиться изгиб объекта, с помощью переключателя раздела Bend Axis (Ось изгиба).
5. При необходимости можно ограничить применение модификатора скрутки только теми вершинами объекта, которые лежат вдоль выбранной оси между отсчетами координат, заданными в счетчиках Upper Limit (Верхний предел) и Lower Limit (Нижний предел) раздела Limits (Пределы). Действие ограничений включается установкой флажка Limit Effect (Ограничить эффект). Пределы задаются относительно центра габаритного контейнера модификатора, по умолчанию располагающегося в опорной точке объекта. Верхний предел задается положительным числом, нижний — отрицательным. На рис. 8.12, б показан результат изгиба объекта на те же 90°, но при ограничении Upper Limit (Верхний предел) - 25.
6. Если щелкнуть в окне стека на квадратике со знаком «плюс» слева от имени модификатора Bend (Изгиб) и выбрать в дереве подобъектов строку Center (Центр), то можно будет переместить центр модификатора, изображаемый в виде перекрестья, тем самым передвинув и область изгиба. На рис. 8.12, в показан результат перемещения центра изгиба в середину объекта при ограничении области преобразования (Upper Limit (Верхний предел) = 25, Lower Limit (Нижний предел) = -25).
ЗАМЕЧАНИЕ В папке Animations\Glava_08 компакт-диска, прилагающегося к книге, имеется файл lzgib.avi, позволяющий в учебных целях просмотреть анимацию процесса изгиба. Файл сцены с анимацией изгиба под именем Izgib.max можно найти в папке Scenes\Glava_08 этого диска. |
Создаем багетную раму
Интерьер нашего «МАХ-кафе» должно украсить настенное зеркало в массивной багетной раме. Создайте раму методом лофтинга, выполнив для этого следующие действия:
1. Запустите или перезагрузите max 7.5 и сохраните пустой файл под именем Zerkalo.max. Выберите в качестве единиц измерения сантиметры и установите шаг сетки равным 1 см. Переместите начало координат сетки в окне проекции Front (Вид спереди) в левый нижний угол окна и установите масштаб, при котором вертикальный размер видимой части сетки в окне проекции составляет примерно 20 см. Разверните окно проекции на весь экран.
2. Нарисуйте замкнутый сплайн типа Line (Линия), показанный на рис. 7.6, который будет играть роль поперечного сечения рамы. Чтобы воспроизвести образец, разместите вершину 1 в точке (0; 14,3; 0), вершину 2 — в начале координат, вершину 3 — в точке (23,9; 0; 0). Не забывайте о возможности точного размещения вершин с помощью полей ввода координат в нижней части экрана max 7.5 или окна диалога Move Transform Type-In (Ввод данных преобразования перемещения). Остальные вершины разместите примерно так, как показано на рисунке, и откорректируйте форму кривой. Назовите полученную форму Profil.
Рис. 7.6. Сплайн-профиль сечения рамы
3. Теперь постройте путь, вдоль которого будут размещаться сечения, в виде обыкновенного прямоугольника. Увеличьте масштаб в окне проекции Front (Вид спереди), чтобы вертикальный размер видимой части сетки в окне составлял примерно 220 см, и постройте стандартный сплайн Rectangle (Прямоугольник) с центром в начале координат и размерами Length (Длина) = 176 см и Width (Ширина) = 266 см. Назовите его Karkas.
4. Щелкните на кнопке Geometry (Геометрия) командной панели Create (Создать) и выберите в раскрывающемся списке разновидностей объектов вариант Compound Objects (Составные объекты). Проследите, чтобы форма-путь была выделена. Щелкните на кнопке Loft (Лофтинговые), а затем — на кнопке Get Shape (Взять форму), чтобы выбрать форму-сечение. Не изменяйте принятую по умолчанию установку переключателя в свитке Creation Method (Метод создания). Перейдите в любое окно проекции и укажите курсором на форму, которая будет служить сечением. Щелкните кнопкой мыши. Рама в виде тела лофтинга моментально создается программой и становится видна в окнах проекций с тонированным режимом отображения (рис. 7.7). Назовите полученный объект Rama и назначьте ему подходящий золотистый цвет.
Рис. 7.7. Готовая рама для зеркала, сформированная методом лофтинга
5. В заключение создайте в окне проекции Front (Вид спереди) объект, призванный изображать зеркальное стекло, — стандартный примитив Box (Параллелепипед) с размерами 252x162x1 см и центром в начале координат. Назовите объект Zerkalnoe steklo и переместите его на 7 см в глубину сцены (по оси Y глобальных координат). Сохраните файл под заданным в начале упражнения именем Zerkalo.max. При желании можете сравнить то зеркало, которое получилось у вас, с объектом из файла с таким же именем, хранящегося в папке Scenes\Glava_07 компакт-диска, прилагающегося к книге.
Итак, если отбросить все излишние подробности, то для создания трехмерного объекта методом лофтинга по готовым формам в простейшем случае требуется всего пара щелчков кнопкой мыши.
На самом деле возможности метода лофтинга несравненно шире, что позволяет создавать тела довольно сложной формы. В частности, метод лофтинга позволяет:
применять в одном объекте сечения различной формы, расставляя их в заданных точках кривой пути;
корректировать форму оболочки за счет редактирования или замены форм-сечений и формы-пути;
применять к готовой оболочке различные деформации, позволяющие изменить первоначальный вид тела лофтинга до неузнаваемости.
О деформациях вы узнаете несколько ниже, а пока познакомимся с возможностью использования при лофтинге различных сечений, создав кочергу для камина, согревающего наше «МАХ-кафе».
Создаем голову персонажа из стандартной сферы
Голова нашего персонажа — это преобразованная в NURBS-объект стандартная сфера. Формирование таких деталей лица, как глазные впадины, нос, губы, уши, требует перемещения управляющих вершин. При этом другие вершины вблизи перемещаемых должны оставаться неподвижными, ограничивая деформируемую область поверхности. Для получения нужной детальности в местах формирования элементов лица необходимо вставлять дополнительные ряды управляющих вершин. Например, чтобы создать выпуклость (вроде уха), нужно иметь как минимум три ряда компактно расположенных вершин, о чем уже говорилось выше. Группу вершин среднего из трех рядов можно будет вытянуть в сторону, а вершины двух рядов по бокам не дадут всей остальной поверхности потянуться за перемещаемыми вершинами.
Существует множество подходов к моделированию голов трехмерных персонажей. Естественно, что создаваемая нами модель головы будет иметь упро-щенный, несколько гротескный вид. Для моделирования голов реалистичных персонажей используются иные методы, рассмотрение которых выходит за рамки данной книги.
Для формирования модели головы на базе стандартной сферы, преобразованной в NURBS-объект, выполните следующие действия:
1. Перезагрузите max 7.5 и сохраните пустую сцену под именем Ded Moroz-Golova.max.
2. Создайте в окне вида сверху стандартный примитив Sphere (Сфера) радиусом порядка 10-11 см с центром в начале координат. Превратите этот примитив в NURBS-поверхность способом, описанным в заключительном разделе главы 5. По умолчанию сфера превращается в поверхность типа CV. Разверните на командной панели Modify (Изменить) список подобъектов объекта типа NURBS Surface (NURBS-поверхность) и выберите в списке строку под-объекта Surface CV (Вершины поверхности). Вокруг сферы изобразится решетка деформации из управляющих вершин. Как можно видеть на рис. 10.12, создаваемая по умолчанию сегментация решетки неравномерна по поверхности сферы. Выделите рамкой все управляющие вершины верхней (по окну) половины сферы, которая будет играть роль затылка, как показано на рис. 10.12, и щелкните на кнопке Hide (Скрыть) в свитке CV (Управляющие вершины) командной панели Modify (Изменить). Когда мы на следующем шаге начнем работать с управляющими вершинами лицевой поверхности сферы на виде спереди, такое действие, во-первых, уменьшит число вершин, попадающих в поле зрения, и, во-вторых, застрахует вас от возможности случайного преобразования вершин задней половины сферы.
Рис. 10.12. На виде сверху выделены управляющие вершины задней половины стандартной сферы, преобразованной в NURBS-поверхность типа CV
3. Активизируйте окно вида спереди. Очевидно, что плотность решетки управляющих вершин на лицевой поверхности сферы явно недостаточна для формирования деталей лица и должна быть увеличена, но не равномерно, а в нужных участках. Начнем с работы над областью носа. Нос у Деда Мороза известно какой — картошкой, и может быть сформирован просто как выступ на поверхности сферы. Но чтобы и такой гротескный нос смотрелся достаточно компактно и не занимал пол-лица, необходимо повысить детальность решетки управляющих вершин в районе его расположения. С этой целью сначала вставим в решетку управляющих вершин на лицевой стороне сферы два дополнительных вертикальных ряда по обе стороны от уже имеющегося центрального меридиана, а затем — два дополнительных горизонтальных ряда сверху и снизу от «экватора». Разверните окно проекции во весь экран, нажав клавиши Alt+w. Щелкните на кнопке Row (Строка) в разделе Insert (Вставить) свитка CV (Управляющие вершины), перенесите курсор в окно вида спереди и установите его вблизи от центрального вертикального ряда управляющих вершин сферы. Курсор примет вид значка режима вставки вершин, как показано на рис. 10.13, сами управляющие вершины приобретут синюю окраску, а в точке расположения курсора появится новый ряд вершин. Если перемещать курсор, то вставляемый ряд вершин будет перемещаться по решетке. Поместив новый ряд вершин несколько правее центрального, щелкните кнопкой мыши. Вершины вновь приобретут зеленую окраску, а новый ряд вершин займет свое место в решетке деформации. Не выключая режима вставки, слегка подвиньте курсор, и он снова примет вид значка режима вставки вершин. Поместите еще один вертикальный ряд вершин слева от центрального ряда и щелкните кнопкой мыши. Затем щелкните правой кнопкой мыши для выключения режима вставки вертикальных рядов вершин.
Рис. 10.13. Справа от центрального вертикального ряда вершин решетки деформации NURBS-сферы вставляется новый ряд
ЗАМЕЧАНИЕ В разделе Refine (Уточнить) свитка CV (Управляющие вершины) имеется еще один набор инструментов вставки управляющих вершин. С помощью этих инструментов вставка новых управляющих вершин в имеющуюся решетку деформации автоматически производится программой таким образом, чтобы не вызвать искажения формы NURBS-поверхности. Решетка в момент вставки автоматически видоизменяется так, чтобы компенсировать влияние вставки нового ряда вершин на форму поверхности. |
4. Для вставки дополнительных горизонтальных рядов управляющих вершин действуйте аналогичным образом, но используйте инструмент Col. (Столбец), кнопка которого также находится в разделе Insert (Вставить) свитка CV (Управляющие вершины) командной панели Modify (Изменить) справа от кнопки Row (Строка). В итоге центральная часть решетки деформации сферы должна принять вид, показанный на рис. 10.14.
Рис. 10.14. Сегментация центральной части решетки деформации сферы увеличена с целью формирования выступа носа, ряды вершин пронумерованы для удобства ссылок в тексте
СОВЕТ При вставке управляющих вершин автоматически восстанавливается видимость вершин, скрытых от просмотра. Так что если вершины задней половины сферы вам мешают, снова выделите их на виде сверху, слева или справа и скройте с помощью кнопки Hide (Скрыть). |
5. Продолжите работу над выборочным повышением детальности решетки управляющих вершин, добавив дополнительные вертикальные и горизонтальные ряды управляющих вершин в районе глазных впадин и губ персонажа. Для формирования глазных впадин добавьте по два вертикальных ряда с обеих сторон от имеющихся рядов, обозначенных цифрами 1 и 2 на рис. 10.14, и два горизонтальных ряда ниже ряда 3. Подсчитаем, сколько горизонтальных рядов потребуется нам для формирования губ. Один ряд вершин должен будет удерживать поверхность сферы над верхней губой, второй — обеспечивать выступ верхней губы. Третий ряд потребуется для оформления впадины рта, четвертый — для создания выступа нижней губы и пятый — для удержания поверхности под нижней губой. Если добавить еще один горизонтальный ряд вершин для удержания поверхности под нижним краем носа, то получится, что помимо имеющегося ряда, обозначенного на рис. 10.14 цифрой 4, необходимо вставить еще пять горизонтальных рядов. Один из них поместите выше ряда 4, и еще четыре ряда — ниже этого ряда. В итоге сегментированная должным образом NURBS-поверхность сферы должна выглядеть, как на рис. 10.15.
Рис. 10.15. Лицевая часть решетки деформации сферы подготовлена для формирования деталей лица персонажа
6. Еще раз скройте от просмотра управляющие вершины задней половины сферы, чтобы случайно не переместить их в ходе редактирования деталей лица. Чтобы сформировать выступ носа, мы собираемся выдвинуть вперед девять центральных вершин лицевой части решетки деформации. Но чтобы остальная часть поверхности лица не потянулась за этими вершинами, нужно подготовить вершины-ограничители. Выделите на виде спереди сразу три вершины слева от центральных девяти вершин, которые будут формировать выступ носа, и переместите их вправо, вплотную к этим девяти вершинам. Затем поступите аналогичным образом с тройками вершин справа, сверху и снизу от девяти центральных вершин, также передвинув их вплотную к этим вершинам, как показано на рис. 10.16.
Рис. 10.16. Четыре тройки вершин сдвинуты в направлении стрелок вплотную к девяти центральным вершинам
7. Теперь можно сформировать заготовку носа. Аккуратно выделите девять центральных вершин в окне вида спереди, затем активизируйте окно вида слева или справа и сместите выделенные вершины в сторону от сферы. После этого, не отменяя выделения вершин, примените к ним преобразование равномерного масштабирования, заставив эти вершины раздвинуться. Это позволит превратить заостренный, как у Буратино, носик в ту самую «картошку», приличествующую облику Деда Мороза и показанную на рис: 10.17. Ранее недаром было сказано, что создается заготовка носа. Пока что этот четырехугольный обрубок очень отдаленно напоминает нос, пусть даже и самый гротескный. Поработайте над его формой, несколько сузив сверху и расширив снизу с помощью инструмента неравномерного масштабирования. Сместите на виде слева верхнюю и нижнюю тройки вершин несколько назад, к поверхности сферы, чтобы сильнее закруглить край носа. Попробуйте немного увеличить вес трех нижних вершин из тех девяти, которые выдвинуты вперед. В общем, проявите творческий подход и сформируйте такой нос, какой, на ваш взгляд, должен иметь персонаж.
Рис. 10.17. Девять центральных вершин на виде слева смещены в сторону от поверхности сферы, а затем раздвинуты за счет равномерного масштабирования
8. Пора заняться глазными впадинами. Выделите на виде спереди две вершины, показанные стрелками на рис. 10.18, и в окне вида слева или справа сильно сместите эти вершины в глубину сферы.
Рис. 10.18. Две вершины, которые следует сместить в глубь сферы на виде слева или справа для формирования глазных впадин
9. Используя инструмент неравномерного масштабирования и ограничив преобразование только горизонтальной осью X, раздвиньте в стороны висков две вершины, обозначающие наружные уголки глаз. Затем аналогичным образом сдвиньте к носу две вершины, обозначающие внутренние уголки глаз. В итоге глазные впадины должны обрести вид, как на рис. 10.19.
Рис. 10.19. Сформированы глазницы
10. Пока что наша модель похожа больше на голову Синьора Помидора, чем Деда Мороза. Но не спешите с выводами, цыплят по осени считают. А пока давайте сформируем шею. Щелкните на кнопке Unhide All (Сделать видимыми все) в свитке CV (Управляющие вершины), чтобы стали видны управляющие вершины на задней половине сферы. На виде спереди выделите рамкой два нижних горизонтальных ряда управляющих вершин и сместите их вниз. Затем выделите только самый нижний ряд и с помощью инструмента равномерного масштабирования раздвиньте вершины этого ряда в стороны, чтобы шея не заострялась книзу клином (рис. 10.20).
Рис. 10.20. Чтобы шея не заострялась книзу, сильно увеличьте масштаб самого нижнего ряда управляющих вершин
11. Теперь сформируем губы. Используйте рис. 10.21 в качестве образца. Не трогая пока вершины ряда, обозначенного на рис. 10.21, слева, цифрой 1, на виде спереди выделите три показанные стрелками вершины в середине ряда 2 и на виде слева или справа сильно сместите их вперед и вверх, обозначив выступ верхней губы. Тройку вершин ряда 3 сместите на виде сбоку назад, внутрь сферы, формируя впадину рта. Затем тройку вершин ряда 4 снова сместите вперед и вверх, обозначая выступ нижней губы. Аналогичную тройку вершин ряда 5 просто приподнимите немного вверх. В заключение сместите вверх и в стороны группы вершин в углах губ, показанные на рис. 10.21, слева, наклонными стрелками, чтобы придать губам выражение сдержанной улыбки.
Рис. 10.21. Примерно так должны выглядеть губы на виде соответственно спереди и слева
12. Чтобы оформить подбородок, поработайте с вершинами самого нижнего и второго снизу ряда. На виде слева переместите группы вершин нижнего ряда внутрь, а второго снизу — наружу, примерно так, как показано стрелками на рис. 10.22.
Рис. 10.22. Перемещением двух групп вершин в противоположных направлениях формируем подбородок
13. Чтобы вчерне закончить работу над моделью головы, осталось создать только уши. Однако перед тем как приступить к их формированию, давайте придадим голове более реальную, то есть менее сферическую форму. Восстановите видимость управляющих вершин на задней половине головы, щелкнув на кнопке Unhide All (Сделать видимыми все) в свитке CV (Управляющие вершины). На виде спереди поочередно выделяйте симметричные группы вершин на правом и левом крайних вертикальных рядах решетки и, ограничивая преобразование горизонтальной осью X, с помощью инструмента неравномерного масштабирования сближайте эти вершины к средней линии головы, как показано стрелками на рис. 10.23. В итоге голова должна принять примерно такой вид, какой показан на этом рисунке.
Рис. 10.23. Голова несколько сплющена на виде спереди за счет неравномерного масштабирования симметричных групп вершин, показанных стрелками на краях решетки
14. Чтобы создать уши, необходимо на виде справа, а затем на виде слева добавить в состав решетки рядом с уже имеющимися еще по три вертикальных ряда управляющих вершин с каждой стороны головы (рис. 10.24). Из получившихся четырех рядов вершин левый по рисунку, обозначенный стрелкой 1, и третий слева (3), будут играть роль ограничителей, а ряд 2, расположенный между ними, позволит создать выступ уха. Ряд 4 послужит в качестве ограничителя отверстия ушной раковины.
Рис. 10.24. С обеих сторон головы вблизи от имевшегося ряда, показанного стрелкой 7, добавлено по три новых ряда управляющих вершин, показанных стрелками 2-4
15. На виде сверху выделите и скройте от просмотра большую часть управляющих вершин (скажем, с правой стороны головы). Затем на виде слева выделите три вершины в вертикальном ряду управляющих вершин, обозначенном стрелкой 2 на рис. 10.24. Верхняя из этих трех вершин должна располагаться в горизонтальном ряду, проходящем через наружный угол глаза. На виде спереди переместите эти три вершины в сторону от головы. Затем переместите верхнюю из трех вершин вверх, а нижнюю — вниз, растянув оболочку уха, как показано на рис. 10.25. На виде сверху дополнительно сместите все три вершины назад, к затылку, чтобы ухо не слишком торчало в сторону. Для имитации отверстия ушной раковины выделите две вершины на уровне середины уха в вертикальном ряду, обозначенном на рис. 10.24 стрелкой 3, и на виде спереди сильно сместите их внутрь сферы. Затем выделите две вершины на том же уровне в вертикальном ряду, обозначенном на рис. 10.24 стрелкой 4, и на виде слева сместите их к затылку, частично прикрыв впадину ушной раковины, как показано на рис. 10.25.
Рис. 10.25. Ухо и отверстие ушной раковины сформированы
16. Выполните аналогичные действия с другой стороны головы, чтобы сформировать второе ухо, симметричное первому. В итоге голова нашего персонажа с маленькими глазками, сделанными из двух стандартных сфер, должна принять вид, подобный изображению на рис. 10.26. Сгруппируйте глаза с моделью головы, назовите группу Golova и сохраните объект под заданным в начале работы именем Ded Moroz-Golova.max.
Рис. 10.26. Готовая модель головы, пока без шапки, усов и бороды
ЗАМЕЧАНИЕ При необходимости вы можете найти готовую модель головы в файле Ded Moroz-Golova.max, хранящемся в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге. Загрузите ее и, вращая, рассмотрите с разных сторон, чтобы лучше понять, какими действиями ей была придана искомая форма. |
Уверен, что большинство читателей посчитает данное творение далеким от совершенства. Укажет на низкий лоб, отсутствие век и бровей и т. п. Разумеется, созданную модель головы можно еще править и править. Впрочем, примите во внимание тот факт, что значительная часть головы будет скрыта шапкой, натянутой по самые глаза, а также замаскирована усами и бородой.
Цель упражнения состояла в том, чтобы освоить ряд новых инструментов редактирования NURBS-поверхностей и показать, что даже из обычной сферы после ее преобразования в NURBS-объект при желании можно создать нечто интересное. Надеюсь, эта цель достигнута.
Создаем из параллелепипеда фигуру шахматного коня
Сформированная модель камина в целом все же сохранила черты, присущие ее «предку» — стандартному параллелепипеду. Это выражается в том, что ее основными элементами остались фрагменты плоскостей, располагающиеся под прямым углом друг к другу.
Следующее упражнение познакомит вас с рядом новых приемов моделирования на основе параллелепипеда, позволяющих создать объект, уже в гораздо меньшей степени напоминающий своего «прямоугольного предка». Будем осваивать эти приемы, работая над моделью фигуры шахматного коня (рис. 9.18). Разумеется, речь идет только о верхней части фигуры, нижняя часть которой — это просто тело вращения.
Рис. 9.18. Фигура шахматного коня, верхняя часть которой построена на основе стандартного примитива-параллелепипеда
Выполните следующие действия:
1. Перезагрузите программу и сохраните пустую сцену под именем ShahmKon.max.
2. Первая хитрость, с которой вам предстоит познакомиться, состоит в том, что достаточно сложные объекты, обладающие зеркальной симметрией, не стоит делать сразу целиком. Трудно обеспечить симметрию деталей, создавая их порознь. Лучше построить одну половину объекта, затем создать ее зеркальную копию и объединить обе половины в единую сетку. Фигура шахматного коня имеет вертикальную плоскость зеркальной симметрии, поэтому сначала будем формировать одну половину фигуры. Создайте в окне проекции вида сверху примитив Box (Параллелепипед) примерно следующих размеров: длина — 1,3 см, ширина — 7 см и высота — 7,5 см, установив число сегментов по длине равным двум, по ширине — четырем и по высоте — пяти, как показано на рис. 9.19. Превратите объект в редактируемую сетку. Как и в предыдущем случае, трудно заранее точно определить нужное число сегментов. При необходимости мы сможем увеличить сегментацию методом последовательной экструзии граней, а также еще одним методом — за счет разрезания ребер. Мы хотим выполнить имитацию фигурки, вырезанной из куска дерева. В связи с этим лучше отменить действие групп сглаживания элементов сетки параллелепипеда. Для этого переключитесь на уровень выделения подобъектов Face (Грань) или Polygon (Полигон) и выделите все полигоны сетки с помощью рамки. Обратите внимание на раздел Smoothing Groups (Группы сглаживания) свитка Surface Properties (Свойства поверхности). Так как выделены полигоны, имеющие шесть различных групп сглаживания, на кнопках со второй по седьмую вы не увидите цифр, обозначающих номер группы сглаживания. Поочередно дважды щелкните на каждой из этих кнопок. После первого щелчка всем граням объекта будет назначена одна и та же группа сглаживания, а после второго это назначение будет отменено. По завершении этих действий на кнопках со второй по седьмую должны появиться номера групп сглаживания, но ни одна из кнопок не должна быть нажата. Сетка параллелепипеда больше не будет иметь групп сглаживания.
Рис. 9.19. В заготовку в виде параллелепипеда для наглядности вписана зеркальная половина фигуры коня
3. Сформируем ухо. Переключитесь на уровень выделения подобъектов Vertex (Вершина) и установите флажок Ignore Backfacing (Игнорировать изнаночные). Слегка наклонив плоскость проекции окна Front (Вид спереди), выделите две вершины на верхней стороне параллелепипеда, как показано на рис. 9.20.
Рис. 9.20. Две вершины, охваченные рамкой, выделены для формирования уха
4. Снова переключитесь на вид спереди, отменив изменения плоскости проекции с помощью нажатия клавиш Shift+z. Переместите выделенные вершины вверх чуть больше, чем на расстояние между горизонтальными рядами вершин сетки параллелепипеда, и немного влево, к средней линии. Выделите три вершины на правом верхнем углу параллелепипеда и перетащите их влево, обозначив правый край основания уха. Не забывайте, что за каждой вершиной сетки в окне вида спереди располагаются еще две, которые не видны, так как проецируются в одну точку. Чтобы выделить все три вершины сразу, сбросьте флажок Ignore Backfacing (Игнорировать изнаночные) и используйте рамку. Три вершины у левого края основания уха слегка сместите влево, как показано на рис. 9.21.
Рис. 9.21. Перемещением трех групп вершин верхнего ряда сформировано ухо коня
5. Действуя только в окне проекции Front (Вид спереди) и выделяя с помощью рамки сразу по три вершины, проецирующиеся в этом окне в одну точку, переместите группы вершин верхнего и второго сверху ряда примерно так, как показано на рис. 9.22. Тем самым будет положено начало формированию морды и гривы коня.
Рис. 9.22. Перемещая по три вершины сразу, придаем первоначальные очертания морде и гриве коня
6. Продолжим формирование морды коня. Для этого сначала просто сместите вверх несколько горизонтальных рядов вершин, как показано на рис. 9.23, чтобы создать достаточную густоту линий сетки. Это позволит оформить мелкие детали морды.
Рис. 9.23. Третий, четвертый и пятый сверху ряды вершин «подтянуты вверх» для создания требуемой сегментации
СОВЕТ Сетка оболочки объекта не обязана быть равномерной. Там, где необходимо «вылепить» мелкие детали формы объекта, сегментация сетки должна быть повышенной, то есть линии рядов вершин должны проходить ближе друг к другу. В областях плавного изменения формы можно обойтись крупными сегментами, когда линии сетки находятся далеко друг от друга. Уплотнение сегментации за счет перемещения целых рядов вершин — еще одна хитрость, к которой постоянно приходится прибегать при моделировании на базе параллелепипедов. |
7. Придадим нужную форму гриве и морде, перемещая группы из трех вершин все в том же окне проекции Front (Вид спереди) примерно так, как показано на рис. 9.24. Обратите внимание на отверстие рта, которое оформлено смещением вправо группы вершин, указанных стрелкой.
Рис. 9.24. Смещением групп из трех вершин вчерне оформлена морда коня
8. Для оформления нижней части шеи коня нам явно не хватает сегментов сетки. Чтобы получить нужные сегменты, сместите вверх нижний ряд вершин. Затем выделите полигоны на нижнем торце фигуры и дважды примените к ним операцию выдавливания, как показано на рис. 9.25.
Рис. 9.25. Два ряда ребер в нижней части сетки добавлены двумя последовательными операциями выдавливания граней нижнего торца фигуры
9. Продолжите формирование шеи и гривы коня, все так же перемещая сразу по три вершины, выделяемые рамкой. Чтобы добиться сужения шеи на уровне нижнего края фигуры, воспользуйтесь новым приемом. Выделите рамкой весь нижний ряд вершин, выберите инструмент Select and Uniform Scale (Выделить и равномерно масштабировать) или Select and Non-Uniform Scale (Выделить и неравномерно масштабировать) и уменьшите масштаб всего ряда вершин только вдоль горизонтальной оси X. В итоге должно получиться нечто, напоминающее рис. 9.26. Сохраните файл под заданным в начале работы именем ShahmKon.max.
Рис. 9.26. Контуры фигуры коня в первом приближении сформированы
10. До сих пор мы манипулировали почти исключительно тройками вершин, кроме верхнего кончика уха, сформированного перемещением двух вершин. В итоге фигура коня к данному моменту напоминает силуэт, выпиленный лобзиком из толстой фанеры или куска пенопласта, как показано на рис. 9.27. Такого результата можно было добиться и посредством выдавливания сплайнового контура силуэта. Однако наличие сегментации боковой поверхности фигуры, пока являющейся плоской, позволяет продолжить работу над формой, сделав ее более выразительной. Перед продолжением упражнения выполните сохранение файла с инкрементированием имени.
Рис. 9.27. Фигура коня пока что напоминает результат выдавливания силуэтного контура
ЗАМЕЧАНИЕ Модель одной зеркальной половины шахматного коня, отредактированную до уровня шага 9 текущего упражнения, можно найти в файле ShahmKon.max, хранящемся в папке Scenes\Glava_09 компакт-диска, прилагающегося к книге. Загрузите этот файл и хорошенько рассмотрите его под разными углами, а также сравните с тем, что получилось у вас. |
11. Поработаем над ухом и гривой коня. Повернув плоскость проекции окна Front (Вид спереди) примерно так, как показано на рис. 9.28, выделите наружную вершину на кончике уха, показанную стрелкой, и немного переместите по оси Y, то есть по координате толщины фигуры, в сторону плоскости зеркальной симметрии. По толщине фигуры сетку ограничивают ряды ребер, в каждом из которых имеются по три вершины. Чтобы закруглить гриву, сначала выделите ближнюю из трех вершин в каждом ряду обвода гривы (нужные вершины показаны стрелками на рис. 9.28), последовательно щелкая на них кнопкой мыши при удерживаемой клавише Ctrl. Выделение вершин лучше выполнять в окне с повернутой плоскостью проекции, а для перемещения вершин вернуться к проекции Front (Вид спереди). Слегка переместите выделенные вершины влево, к середине фигуры, то есть в отрицательном направлении оси X. Чтобы сделать гриву несколько тоньше, не отменяя выделения вершин, переключитесь на проекцию Тор (Вид сверху) и дополнительно переместите вершины по координате толщины фигуры в направлении оси Y. Затем нужно подобным образом переместить, но на меньшее расстояние, средние из каждых трех вершин обвода гривы.
Рис. 9.28. Вершины, которые следует переместить в ходе редактирования формы уха и гривы
12. Теперь слегка закруглим передний край шеи. Поверните плоскость проекции, примерно как показано на рис. 9.29, выделите указанные стрелками вершины и переместите их по координате толщины фигуры в направлении оси Y. Переместив крайние вершины, немного сместите в том же направлении и средние вершины тех же рядов.
Рис. 9.29. Вершины, которые следует переместить для закругления переднего края шеи
13. Попытаемся доработать форму морды коня. Слегка повернув плоскость проекции, выделите вершину у основания уха, указанную стрелками на рис. 9.30 сразу в двух проекциях, и сместите ее слегка вниз и вправо. Затем выделите вершину ближе к краю морды и сместите ее вниз и вправо, а затем вглубь, по координате толщины модели.
Рис. 9.30. Вершины, которые следует переместить при редактировании формы морды коня
14. Чтобы улучшить форму морды, увеличим сегментацию, добавив пару новых ребер на «переносице» инструментом разрезания. Вы уже работали с подобным инструментом при редактировании полисетки в предыдущей главе, однако у стандартных сеток инструмент разрезания действует несколько по-иному. Переключитесь на уровень выделения подобъектов Edge (Ребро). Щелкните на кнопке Cut (Разрезать) в свитке Edit Geometry (Правка геометрии). Поместите курсор на ребро сетки, изображающее «переносицу» морды коня, в точке, показанной одной из стрелок на рис, 9.31. Когда курсор примет форму крестика, щелкните кнопкой мыши. При этом ребро будет разрезано, а в точке разреза возникнет новая вершина сетки. Перетаскивайте крестик к соседнему ребру. За курсором потянется пунктирная линия. Дотяните пунктир до нужной точки соседнего ребра и снова щелкните кнопкой мыши. Это ребро также будет разрезано с созданием новой вершины, а между двумя новыми вершинами на соседних ребрах появится новое ребро. Чтобы завершить создание ребра, щелкните правой кнопкой мыши. Повторите аналогичные действия, создав еще одно новое ребро рядом с первым, как показано на рис. 9.31. Для выключения режима разрезания ребер еще раз щелкните правой кнопкой мыши.
Рис. 9.31. Одно новое ребро только что создано, а другое создается (показаны стрелками)
ЗАМЕЧАНИЕ Как видите, при разрезании стандартной сетки перед курсором не появляется «резиновых» ребер, как это было при разрезании полисетки, опробованном нами в предыдущей главе. Дело в том, что у стандартных редактируемых сеток при разрезании нельзя завершить создание нового ребра посреди грани или полигона, что допустимо для полисеток. Нужно обязательно закончить новое ребро на одном из уже существующих ребер сетки. |
15. Переключитесь на уровень выделения подобъектов Vertex (Вершина). В окне проекции Front (Вид спереди) выделите рамкой обе вершины одного из вновь добавленных ребер и переместите их вниз и вправо, примерно так, как показано на рис. 9.32. Затем выделите обе вершины второго добавленного ребра и тоже переместите их, сформировав выступ лба.
Рис. 9.32. Добавочная сегментация в виде двух новых ребер позволяет оформить выступ лба
16. Действуя так, как описано на шаге 13, создайте методом разрезания пару новых ребер на нижнем краю морды, «под подбородком», как показано на рис. 9.33.
Рис. 9.33. Еще два новых ребра (слева от курсора-крестика) созданы методом разрезания
17. Снова вернувшись к проекции вида спереди и переключившись на уровень выделения подобъектов-вершин, переместите все три вершины, принадлежащие вновь созданным ребрам, вниз, чтобы нижняя челюсть имела «подбородок» и выглядела более правдоподобно, как показано на рис. 9.34.
Рис. 9.34. Вершины новых ребер, показанные стрелкой, смещены вниз и влево в окне вида спереди
18. Для некоторого закругления углов морды применим новый инструмент. Помните, при создании елочной крестовины мы пользовались средством для срезания фаски на месте ребер? Теперь освоим срез вершин. Щелкните на кнопке Chamfer (Срез) в свитке Edit Geometry (Правка геометрии), а затем щелкните на вершине, соответствующей углу носа. Перетащите курсор, принимающий вид значка режима среза. Вместо одной исходной вершины на прилегающих к ней ребрах появятся три новые. Эти вершины будут раздвигаться по мере перетаскивания курсора, создавая срез, как показано на рис. 9.35. Создайте аналогичный срез на углах верхней и нижней «губ», но только с наружной стороны, а не с той, вдоль которой пойдет стык двух половинок фигуры друг с другом.
Рис. 9.35. Вместо одной вершины на углу носа появляется три новых и возникает срез угла
19. Теперь не хватает только глаза. Перейдите в окно проекции Front (Вид спереди) и переключитесь на уровень подобъекта Edge (Ребро). С помощью инструмента Cut (Разрезать) создайте несколько новых ребер в области глаза, как показано на рис. 9.36. Эти ребра обеспечивают сегментацию сетки, необходимую для формирования такой мелкой детали рельефа модели, как впадина глазницы.
Рис. 9.36. В районе глазницы методом разрезания создано несколько новых ребер, обозначенных рамкой
СОВЕТ Чтобы сформировать на ровной поверхности отдельной грани сетки выступ или углубление, нужно сегментировать эту грань, разбив ее как минимум на три новых. Для этого можно использовать операцию разрезания ребер, как это сделано выше. Другая возможность состоит в том, чтобы выделить грань и щелкнуть на кнопке инструмента Tessellate (Разбить), которая становится доступной в свитке Edit Geometry (Правка геометрии) на уровне выделения подобъекта Face (Грань). Если при этом заранее установить переключатель под кнопкой в положение Face-Center (От центра), то max 7.5 поместит новую вершину в центр грани и соединит ее ребрами с существующими тремя вершинами, разбивая грань на три новых. |
20. Теперь снова вернитесь на уровень выделения подобъектов-вершин. Выделите центральную вершину треугольной глазницы и, немного повернув плоскость проекции, сместите ее в глубь модели, по координате Y. Затем немного опустите вниз вершину, расположенную посередине ребра, обозначающего нижнюю границу глазницы. Короче, творчески поработайте над формой глаза, чтобы он хорошо выделялся на тонированном изображении.
21. Перед зеркальным копированием половины фигуры необходимо удалить все полигоны на той стороне, вдоль которой пойдет стык двух половин. Проще всего выполнить такое выделение не в окне проекции вида сзади, где пришлось бы последовательно «общелкивать» каждый полигон при удерживаемой клавише Ctrl, а в окне вида слева, где половинка фигуры коня видна со стороны морды. Переключитесь на уровень выделения подобъектов Polygon (Полигон). На виде слева все полигоны той стороны модели, вдоль которой пойдет стык, проецируются в одну линию вдоль левого края. Воспользуемся уже знакомым по предыдущей главе приемом. Сначала охватите рамкой левую часть фигуры. При этом выделятся все подлежащие удалению полигоны, но заодно с ними выделятся и лишние, расположенные на боковом торце модели. Чтобы сбросить выделение лишних полигонов, нажав и удерживая клавишу Alt, охватите объект рамкой с правой стороны, не затрагивая левого края, как показано на рис. 9.37. Как только вы отпустите кнопку мыши, выделенными останутся только полигоны, подлежащие удалению. Для их удаления нажмите клавишу Delete и щелкните на кнопке Yes (Да) в ответ на запрос Delete Isolated Vertices? (Удалить изолированные вершины?). Разглядывая модель с разных сторон в режиме тонированного отображения, убедитесь в том, что не удалили лишних вершин. Если такое случилось, отмените операцию удаления и повторите все заново. Сохраните файл под заданным ранее именем ShahmKon01 .max. Затем сохраните файл еще раз, но с инкрементированием имени.
Рис. 9.37. Использование выделяющей рамки при нажатой клавише Alt позволяет отменить выделение лишних полигонов сетки
22. Создайте зеркальную копию сетки с помощью уже знакомой вам кнопки Mirror Selected Objects (Отразить выделенные объекты) главной панели инструментов. При этом неважно, на уровне какого из подобъектов вы находитесь. Все равно после щелчка на кнопке Mirror Selected Objects (Отразить выделенные объекты) произойдет переключение на верхний уровень выделения объекта типа Editable Mesh (Редактируемая сетка) в целом. Проследите, чтобы в окне диалога параметров зеркального отражения переключатель Clone Selection (Тип отражения) был установлен в положение Сору (Копия). Переместите новую половину на положенное ей место и присоедините к исходной половине, щелкнув сначала на кнопке Attach (Присоединить) в свитке Edit Geometry (Правка геометрии), а затем — на половинке-оригинале. Перейдя на уровень выделения подобъектов-вершин, выделите рамкой все вершины вдоль линии стыка половинок модели. Произведите слияние вершин вдоль линии стыка с помощью кнопки Selected (Выделенные) из раздела Weld (Слить). Обратите внимание на сообщение о числе выделенных вершин до и после слияния. У меня до слияния их было 50, а после стало 25. Сохраните файл, который на данный момент должен иметь имя ShahmKon02.max.
ПРИМЕЧАНИЕ Готовую модель одной зеркальной половины фигуры коня можно найти в файле ShahmKonOI max, а коня целиком — в файле ShahmKon02.max. Оба файла хранятся в папке Scenes\Glava_09 прилагающегося к книге компакт-диска. |
Чтобы превратить созданный объект в то, что действительно напоминает шахматную фигурку, остается только приделать к ней основание. Создайте его методом вращения профиля и сгруппируйте с верхней частью фигурки. Еще лучше преобразовать созданное методом вращения основание в редактируемую сетку и присоединить ее к сетке фигурки коня в качестве элемента с помощью инструмента Attach (Присоединить). Разумеется, построенную в ходе этого упражнения модель, показанную на рис. 9.38, можно дорабатывать и дорабатывать. Надеюсь, вы сможете при желании сделать это самостоятельно, так как общая идея и приемы редактирования формы вам теперь должны быть понятны.
Рис. 9.38. Готовая модель фигуры шахматного коня
Строим здание кафе «МАХ»
Продолжим работу над сценой «МАХ-кафе». Используя примитивы-параллелепипеды, построим здание кафе. С этой целью выполните шаг за шагом следующие действия:
1. Если сцена MAX-kafe01 уже загружена в max 7.5 после выполнения упражнения 1, то переходите сразу к п. 2. Если же работа с max 7.5 была завершена, то запустите программу и загрузите сцену, пока что содержащую единственный объект, созданный при выполнении упражнения 1, -- основание сцены (при необходимости файл нужной сцены под именем MAX-kafe01.max можно найти в папке \Scenes\Glava_05 компакт-диска, прилагающегося к книге). Сохраните только что загруженный файл под именем MAX-kafe02.max, используя при- ' ем инкрементирования имени.
2. Постройте параллелепипед, который будет играть роль фундамента. Щелкните на кнопке Box (Параллелепипед) в свитке Object Type (Тип объекта) командной панели Create (Создать). Переместите курсор в окно проекции Тор (Вид сверху). Нажав и удерживая клавишу Ctrl, поместите курсор в точку (0; 0; 0), над которой должен появиться значок привязки, щелкните кнопкой мыши и перетаскивайте курсор по диагонали, пока размеры основания параллелепипеда в счетчиках Length (Длина) и Width (Ширина) свитка Parameters (Параметры) не станут равны 600 см (действует привязка к узлам сетки!). Отпустите кнопку мыши и только после этого отпустите клавишу Ctrl. Переместите курсор вверх, придавая блоку фундамента высоту. Так как включен режим привязки, высота будет меняться скачками с шагом 100 см — таков шаг сетки в окне проекции Тор (Вид сверху), если вы ничего не изменяли. Щелкните кнопкой мыши, фиксируя высоту в 100 см.
3. Переместите курсор на командную панель Create (Создать) и установите значения размеров в счетчиках Length (Длина) и Width (Ширина) свитка Parameters (Параметры) равными 680 см. а в счетчике Height (Высота) — 30 см. Установите флажок Generate Mapping Coords (Проекционные координаты). Введите имя объекта Fundament в свитке Name and Color (Имя и цвет). Пока объект еще выделен, щелкните на кнопке Zoom Extents All Selected (Выделенные объекты целиком во всех окнах), которая находится на раскрывающейся панели инструмента Zoom Extents All (Сцена целиком во всех окнах) в группе кнопок управления окнами проекций, чтобы увеличить масштаб изображения блока фундамента в каждом из окон проекций до размеров окна.
4. Уточните координаты расположения опорной точки фундамента. Щелкните на кнопке инструмента Select and Move (Выделить и переместить), а затем щелкните на этой же кнопке правой кнопкой мыши. В появившемся окне диалога Move Transform Type-In (Ввод данных преобразования перемещения) введите во все три счетчика группы Absolute: World (Абсолютные: Глобальные) значения 0. Как вы помните, в max 7.5 можно и просто ввести эти значения в поля отсчета координат в строке состояния, проследив только за тем, чтобы не была нажата кнопка Absolute Mode Transform Type-In (Ввод абсолютных значений преобразования) слева от этих полей.
ЗАМЕЧАНИЕ Можно выполнять все построения «на глазок», но мы будем уточнять координаты как в целях обучения, так и для получения более качественной сцены. |
5. Теперь создайте еще один параллелепипед в качестве пола помещения кафе. Снова щелкните на кнопке Box (Параллелепипед), переместите курсор в окно проекции Тор (Вид сверху) и опять установите его над точкой (0; 0; 0). Действуя точно так же, как описано в п. 2, постройте параллелепипед размером 600x600x5 см. Назовите этот объект Pol.
ЗАМЕЧАНИЕ Если вы обнаружите, что вводимые в счетчики размеров значения не оказывают влияния на вид выделенного объекта в окнах проекций, значит, вы случайно завершили процесс его создания. Теперь для внесения изменений в параметры объекта необходимо перейти на командную панель Modify (Изменить) и действовать, как описано выше в разделе «Модификация параметров объектов в любое время после их создания». |
6. Выберите инструмент Select and Move (Выделить и переместить) и активизируйте окно проекции Front (Вид спереди), щелкнув па нем правой кнопкой мыши. Установите курсор на ось Y контейнера преобразования, чтобы она окрасилась в желтый цвет, и переместите объект Pol вверх на 30 см, поместив его точно поверх фундамента. Вид сцены на данный момент в окне перспективной проекции показан на рис. 5.11. Масштаб изображения в окне немного увеличен, а плоскость проекции слегка повернута. Уточните координаты X, Y и Z объекта, как описано в п. 4, — они должны быть равны (0; 0; 30).
Рис. 5.11. На основании сцены расположены фундамент и пол здания кафе «МАХ»
7. Создайте потолок помещения в виде дубликата объекта Pol. Для этого выключите режим привязки, щелкнув на кнопке 2D Snap (Двумерная привязка), и немного переместите изображение проекции вниз, используя инструмент Pan (Прокрутка) из группы кнопок управления окнами проекций. Нажав и удерживая клавишу Shift, щелкните на объекте Pol в окне проекции Front (Вид спереди) и переместите объект вверх примерно на 290 см, следя за величиной смещения в поле отсчета координаты Y строки состояния. Отпустите кнопку мыши, а затем — клавишу Shift. В появившемся окне диалога измените имя копии объекта на Potolok и щелкните на кнопке ОК.
8. Теперь, пока объект Potolok еще выделен, задайте точную высоту его размещения. Для этого убедитесь, что кнопка Absolute Mode Transform Type-In (Ввод абсолютных значений преобразования) в строке состояния не нажата, и введите в поле Z отсчета координат величину 325. Это будет означать, что потолок расположится относительно пола на высоте 295 см. Нажмите клавишу Enter, наблюдая за смещением объекта Potolok.
9. Создайте левую и правую стены помещения кафе. Прокрутите изображение в окнах проекций Front (Вид спереди) и Left (Вид слева) вниз, используя инструмент Pan (Прокрутка), так чтобы центр окна располагался примерно посередине между объектами Pol и Potolok. Щелкните на кнопке Box (Параллелепипед) в свитке Object Type (Тип объекта) командной панели Create (Создать). Переместите курсор в окно проекции Тор (Вид сверху) и установите его в районе точки с координатами (300; 300; 0). Щелкните кнопкой мыши и перетащите курсор по диагонали примерно до точки (320; -300; 0). Отпустите кнопку мыши и переместите курсор вверх, чтобы значение параметра Height (Высота) в свитке Parameters (Параметры) стало равным примерно 300 см. Щелкните кнопкой мыши, фиксируя высоту. Перейдите на командную панель Create (Создать) и исправьте значения в счетчиках Length (Длина), Width (Ширина) и Height (Высота) соответственно на 600, 20 и 300 см. Установите флажок Generate Mapping Coords (Проекционные координаты). Назовите объект PravStena.
10. Переместите правую стену на ее законное место. Для этого щелкните па кнопке инструмента Select and Move (Выделить и переместить), а затем убедитесь, что кнопка Absolute Mode Transform Type-In (Ввод абсолютных значений преобразования) в строке состояния не нажата, и введите в поля отсчетов координат X, Y и Z значения 310, 0 и 30 соответственно.
11. Создайте левую стену в виде дубликата правой. Для этого можно действовать так же, как описано в пп. 6, 7, но мы применим в учебных целях другой вариант создания дубликата и его точного размещения в сцене. Убедитесь, что объект PravStena все еще выделен. Выберите команду меню Edit > Clone (Правка > Дублировать). В появившемся окне диалога Clone Options (Параметры дублирования) оставьте переключатель Object (Объект) в положении Cору (Копия) и задайте имя копии LevStena. Щелкните на кнопке ОК. Будет создана копия, пространственно совмещенная с оригиналом — объектом PravStena. Измените в поле отсчета координаты X в строке состояния значение 310 на -310. Вид сцены на данный момент показан на рис. 5.12.
Рис. 5.12. Здание кафе «МАХ» приобрело боковые стены и потолок
12. Теперь построим фасад и заднюю стенку. Щелкните на кнопке Box (Параллелепипед) в свитке Object Type (Тип объекта) командной панели Create (Создать). Переместите курсор в окно проекции Тор (Вид сверху) и щелкните кнопкой мыши в районе точки с координатами (-320; -300; 0). Перетащите курсор в район точки (320; -320; 0) и отпустите кнопку мыши. Переместите курсор вверх, придав стене высоту около 400 см, и щелкните кнопкой мыши для ее фиксации. Перейдите на командную панель Create (Создать) и измените значения в счетчиках Length (Длина), Width (Ширина) и Height (Высота), сделав их равными соответственно 20, 640 и 400 см. Установите флажок Generate Mapping Coords (Проекционные координаты) и назовите объект Fasad.
13. Уточните положение фасада, введя в поля отсчетов координат X, Y и Z в строке состояния значения 0, -310 и 30 соответственно.
14. Пока фасад еще выделен, создайте его копию любым из известных вам методов (либо с помощью команды меню Edit > Clone (Правка > Дублировать), либо переместив объект Fasad при нажатой клавише Shift). Назовите копию Zadniaia stena, перейдите на командную панель Modify (Изменить) и задайте высоту стены в свитке Parameters (Параметры) равной 300 см, а длину — 5 см. Убедившись, что кнопка Absolute Mode Transform Type-In (Ввод абсолютных значений преобразования) и строке состояния не нажата, задайте в полях X, Y и Z строки состояния следующие точные координаты задней стены: 0; 302,5; 30.
15. В заключение создайте плиту, которая будет играть роль ступеньки перед будущей дверью. Прокрутите немного вверх изображение в окне проекции Тор (Вид сверху), используя инструмент Pan (Прокрутка). Щелкните на кнопке Box (Параллелепипед) и поместите курсор в точку с примерными координатами (-25; -340; 0). Щелкните кнопкой мыши и перетащите курсор в район точки (175; -400; 0). Отпустите кнопку мыши и переместите курсор вверх, придав блоку высоту около 15 см. Щелкните кнопкой мыши, фиксируя высоту, перейдите на командную панель Create (Создать) и задайте точные значения размеров блока: Length (Длина) - 60, Width (Ширина) = 200 и Height (Высота) = 15. Назовите объект Stupenka, установите флажок Generate Mapping Coords (Проекционные координаты). Щелкните на кнопке инструмента Select and Move (Выделить и переместить), убедитесь, что кнопка Absolute Mode Transform Type-In (Ввод абсолютных значений преобразования) в строке состояния не нажата, и введите в поля отсчетов координат X, Y и Z значения 75, -370 и 0 соответственно. Окончательный вид здания кафе, которое пока не имеет ни дверей, ни окон, показан на рис. 5.13 (плоскость проекции была повернута).
Рис. 5.13. Здание кафе «МАХ»: пока «без окон, без дверей»
16. Сохраните сцену.
Включаем и выключаем осветители, настраиваем яркость и цвет света
Рассматриваемые в этом упражнении параметры и приемы их настройки являются общими для семи типов стандартных осветителей, за исключением источника света неба — Skylight. Продолжите работу над предыдущим упражнением.
1. Проследите за тем, чтобы значок источника света был выделен, и переключитесь на командную панель Modify (Изменить). В свитке General Parameters (Общие параметры), показанном ранее на рис. 11.6, вы увидите установленный по умолчанию флажок On (Вкл.). Этот флажок играет роль обычного выключателя, какие висят на стене каждой комнаты: с его помощью можно включать и выключать выделенные осветители любого типа. Сбросьте флажок, и в окне проекции Perspective (Перспектива) наступит полный мрак: при выключении имеющегося в сцене осветителя встроенное освещение не активизируется. Вот так, друзья, выглядит виртуальная вселенная, пока вы в роли Создателя не сотворите Свет! Установите флажок, и освещение сцены мгновенно восстановится.
ЗАМЕЧАНИЕ
Значки выключенных источников света окрашены не в желтый цвет или в те цвета, которые были присвоены значкам осветителей после их создания, а в черный. |
2. При необходимости настройки цвета освещения разверните свиток Intensity/Color/Attenuation (Интенсивность/ цвет/затухание), показанный на рис. 11.9, и щелкните па образце цвета справа от счетчика Multiplier (Усилитель). По умолчанию применяется цвет с RGB-компонентами (255; 255; 255), то есть чисто-белый. Щелкните на образце, чтобы вызвать окно диалога Color Selector: Light Color (Выбор цвета: цвет освещения). Настройте цвет источника, наблюдая в процессе настройки за изменениями освещения в окнах проекций с тонированным режимом, и щелкните на кнопке ОК. Эта возможность позволяет имитировать ситуации, когда сцена должна освещаться цветными фонарями, например красными аварийными лампами. Закончив эксперименты с цветом, восстановите чисто белый-цвет осветителя.
Рис. 11.9. Свиток Intensity/Color/ Attenuation содержит одни и те же параметры для всех стандартных осветителей, исключая Skylight
3. Теперь попробуем изменить уровень интенсивности света. Это делается с помощью счетчика Multiplier (Усилитель). Чем выше значение в поле счетчика, тем ярче становятся все освещаемые поверхности. На рис. 11.10 показано, как будет выглядеть та же сцена, что и на рис. 11.8, если увеличить значение параметра Multiplier (Усилитель) с принятого по умолчанию значения 1,0 до 1,5.
Рис. 11.10. Результат увеличения яркости света с 1,0 до 1,5
Не закрывайте max 7.5, работа будет продолжаться в следующем упражнении.
Выполняем анимацию дверей «МАХ-кафе»
Попробуйте теперь выполнить анимацию нашего основного проекта — «МАХ-кафе». Целью данного упражнения будет показать, что «оживить» сложную сцену, содержащую массу объектов и материалов, столь же просто, как и сцену, состоящую из единственного объекта. Применим анимацию к входным дверям кафе, заставив их гостеприимно распахиваться перед зрителем. Заодно попробуем «оживить» и системы частиц, имитирующих падающий снег.
Выполните следующие действия:
1. Откройте файл MAX-kafe22.max. Если вы не сохранили такой файл на жестком диске своего компьютера, можете загрузить нужный файл под именем MAX-kafe22.max из папки Scenes\Glava_15 компакт-диска, прилагающегося к книге. Сохраните файл сцены под именем MAX-kafe (dveri otkrivaiutsia).max.
2. Восстановите при необходимости видимость систем частиц Snow01 (Снег01) и Snow02 (Снег02). Чтобы падающий снег при визуализации выглядел более выразительно, примените к системам частиц материал, имитирующий рыхлую полупрозрачную фактуру снежинок. Соответствующий материал под именем Snezhinki можно найти в библиотеке MAX-kafe.mat. Разберитесь в устройстве этого материала самостоятельно. Чтобы назначить нужный материал каждой снежинке, достаточно загрузить его в одну из ячеек Редактора материалов, выделить обе системы частиц (это удобно сделать по именам с помощью инструмента Select by Name (Выделить по имени)), а затем щелкнуть в окне Редактора материалов на кнопке Assign Material to Selection (Назначить материал выделенным объектам). Для анимации систем частиц не требуется никакой настройки, кроме той, какая уже была выполнена на момент их создания в главе 7.
3. Убедитесь, что текущим является нулевой кадр анимации. Выделите объект LevStvorka и приведите его в исходное положение, когда створка двери кафе должна полностью закрыться. Для этого в окне вида сверху поверните створку примерно на 140° вокруг оси 2. Вы уже проделывали подобную операцию, когда в главе 10 устанавливали двери в кафе «МАХ». Для поворота створки проще всего выбрать инструмент Select and Rotate (Выделить и повернуть), затем щелкнуть на кнопке Absolute Mode Transform Type-In (Ввод абсолютных значений преобразования) в строке состояния max 7.5, включив тем самым режим ввода приращений параметров преобразований, и ввести число 140 в поле отсчета координаты Z. Поверните таким же образом правую створку двери, изображаемую объектом PravStvorka, только угол поворота для нее составит -140°. Теперь двери кафе должны быть плотно закрыты, как показано на рис. 16.12. Включите режим автоматической анимации, щелкнув на кнопке Auto Key (Автоключ).
Рис. 16.12. В нулевом кадре анимации двери кафе плотно закрыты
4. Сделайте текущим последний кадр временного сегмента анимации — кадр № 100. Поочередно поверните объекты LevStvorka и PravStvorka вокруг оси Z на угол, при котором двери будут широко раскрыты. В визуализированных ранее сценах «МАХ-кафе» был выбран угол открытия дверей в 140°, как показано на рис. 16.13. Снова щелкните на кнопке Auto Key (Автоключ), чтобы выключить режим анимации. Обратите внимание на то, что при выделении любой из створок дверей в строке треков появляются зеленые квадратики ключей анимации. Таким цветом в max 7.5 окрашиваются значки ключей преобразования поворота.
Рис. 16.13. В последнем кадре анимации (кадре № 100) двери распахнуты настежь
5. Просмотрите выполненную анимацию в окне камеры Camera01. Возможно, для плавного воспроизведения вам придется переключиться в каркасный режим отображения сцены, а может быть, потребуется скрыть часть объектов внутренней обстановки. В заключение сохраните файл под заданным в начале упражнения именем.
Имитируем паркет «МАХ-кафе» с помощью шахматной карты и растровых текстур
В продолжение экспериментов по созданию простых стандартных материалов, основанных на картах текстур, попробуем подготовить материал несколько более сложной структуры. В его составе в качестве цвета диффузного рассеивания будет использоваться шахматная карта, которая, в свою очередь, будет включать в себя две растровые карты, имитирующие текстуры двух пород дерева. Вид трехуровневой иерархической структуры такого материала в окне диалога Material/Map Navigator (Путеводитель по материалам/картам текстур), вызываемом щелчком на одноименной кнопке Редактора материалов, показан на рис. 14.69.
Рис. 14.69. Структура стандартного материала на основе шахматной карты
Чтобы создать подобный материал, выполните следующие действия:
1. Если вы по каким-то причинам не сохранили файл с материалами, настроенными в предыдущем упражнении, загрузите сцену с нужными материалами из папки Scenes\Glava_14 компакт-диска, прилагающегося к книге, где она хранится в файле под именем MAX-kafe13.max. Сохраните файл с инкрементированием имени.
2. Активизируйте очередную свободную ячейку Редактора материалов и назовите новый материал Parket. В свитке Blinn Basic Parameters (Базовые параметры раскраски по Блинну) настройте параметры материала следующим образом: Ambient (Подсветка) = (100; 44; 22), коричневый; Diffuse (Диффузный) = (196; 119; 58), светло-коричневый; Specular (Зеркальный) = (248; 239; 213), светло-желтый. Придайте материалу некоторый блеск, хотя и не слишком яркий: Specular Level (Сила блеска) - 36, Glossiness (Глянцевитость) = 46. Сделайте края блика достаточно размытыми: Soften (Размыть) = 0,8. Щелкните на маленькой квадратной кнопке справа от цветового поля параметра Diffuse (Диффузный) и выберите в появившемся окне просмотра материалов и карт текстур карту типа Checker (Шахматная карта).
3. Настройте параметры шахматной карты. В свитке Checker Parameters (Параметры шахматной карты) щелкните на образце цвета Color # 1 (Цвет № 1) и выберите для него насыщенный коричневый оттенок с RGB-компонентами (161, 53, 0). Для параметра Color # 2 (Цвет № 2) подберите полунасыщенный желтый цвет (223; 194; 106).
4. Подберите текстуры для каждого из двух компонентов цвета шахматной карты. Щелкните на кнопке группы Maps (Карты текстур), относящейся к параметру Color # 1 (Цвет № 1), и выберите в окне просмотра материалов и карт текстур карту типа Bitmap (Растровая карта). В свитке Bitmap Parameters (Параметры растровых текстур) щелкните на длинной кнопке без надписи и выберите файл растровой текстуры, изображающей рисунок древесины. Из соображений гармонии мебели и паркета выберите тот же файл Burloak.jpg с текстурой распила дубового капа, который использован в материале столов и кресел. Оставьте все параметры растровой карты в исходном состоянии и вернитесь на уровень шахматной карты, щелкнув на кнопке Go to Parent (Перейти к составному материалу). Теперь аналогичным образом назначьте растровую карту текстуры второму компоненту шахматной карты и подберите для нее подходящий файл с изображением древесины. Например, можно использовать фотографию дубовой доски из файла Oakqrtr.tga, входящего в комплект поставки max 7.5 (этот файл имеется в папке Maps компакт-диска, прилагающегося к книге). Все параметры этой растровой карты также оставьте в исходном состоянии и снова вернитесь на уровень шахматной карты. У вас должен получиться материал, подобный показанному на рис. 14.70.
Рис. 14.70. Стандартный материал на основе шахматной карты в качестве текстуры цвета диффузного рассеивания
5. Чтобы клетки паркета были соразмерны с элементами интерьера кафе, в свитке Coordinates (Координаты) установите кратность повторения текстуры по обеим осям U и V равной 12 (рис. 14.71). Перейдите с уровня шахматной карты на уровень материала и сохраните его в библиотеке MAX-kafe.mat. Назначьте новый материал объекту Pol, который должен при этом приобрести вид, показанный в начале главы на рис. 14.5. Сохраните сцену под измененным в начале упражнения именем — MAX-kafe14.max.
Рис. 14.71. Материал Parket с кратностью повторения узора шахматной карты, равной 12 по обеим осям U и V
Исключаем объекты из освещения
Очень интересной является возможность выборочно освещать отдельные объекты сцены светом текущего настраиваемого источника. Она позволяет ярко высветить отдельный объект, оставив все остальные в тени, чего в реальности добиться не так-то просто. Продолжите предыдущее упражнение, чтобы освоить эту возможность.
1. Щелкните на кнопке Exclude (Исключение), расположенной в самом низу свитка General Parameters (Общие параметры). Появится окно диалога Exclude/Include (Включение/Исключение), показанное на рис. 11.11.
Рис. 11.11. Окно диалога Exclude/Include содержит средства исключения объектов из числа освещаемых тем или иным осветителем сцены
2. С помощью переключателей в правой верхней части окна установите тип операции — Exclude (Исключить) или Include (Включить), а также укажите, должно ли исключение источника света влиять на освещение выбранных объектов (Illumination), на отбрасывание ими теней (Shadow Casting) или на то и другое одновременно (Both).
3. Выделите имена нужных объектов сцены в списке Scene Objects (Объекты сцены) в левой части окна. В список, расположенный справа, помещаются объекты, для которых исключено (или включено, в зависимости от выбранной операции) влияние источника света. Пусть, к примеру, это будут объекты-группы Lampa01 и Lampa02, которые пока ярко освещены. Для переноса имен объектов в правый список выделите их в левом списке и щелкните на кнопке со сдвоенной стрелкой, указывающей вправо. Щелкните на кнопке ОК и визуализируйте сцену в окне проекции Perspective (Перспектива). Вы увидите, что теперь эти две лампы выглядят совершенно черными, как показано на рис. 11.12, так как не освещаются единственным имеющимся в сцене осветителем.
Рис. 11.12. Два висящих на левой стене светильника исключены из освещения единственным осветителем сцены и выглядят совершенно черными
ЗАМЕЧАНИЕ
Обратите внимание на то, что в списке окна диалога Exclude/Include (Включение/Исключение) демонстрируются имена всех объектов, даже тех, которые в данный момент скрыты от просмотра в окнах проекций. Дело в том, что видимость объектов в окнах проекций и их видимость на визуализированном изображении сцены — не одно и то же. В главе 15, «Осваиваем тонкости визуализации сцены и внешней среды», вы узнаете, как можно обеспечить визуализацию объектов, скрытых от просмотра в окнах проекций. Следовательно, мы должны иметь возможность управлять освещенностью таких временно невидимых объектов, в частности, иметь возможность исключать их из числа освещаемых. Кстати, обратите внимание также на то, что эффект исключения объектов из освещения совершенно не проявляется в окнах проекций — там все объекты выглядят освещенными, как и прежде. |
4. Для восстановления условий освещения объектов снова щелкните на кнопке Exclude (Исключить) и очистите правый список в окне диалога Exclude/Include (Включение/Исключение), щелкнув на кнопке Clear (Очистить). Не выходите из программы: следующее упражнение будет продолжением данного.
Освоение тонкостей лофтинга: создаем кочергу
Конечно, помешивать угли можно и просто палкой или куском толстой проволоки с загнутым концом. Однако мы методом лофтинга создадим для камина нашего кафе более совершенную кочергу, как бы выкованную из металлического прутка квадратного сечения с ребристой ручкой, чтобы удобно было держать в руках (рис. 7.8).
Рис. 7.8. Кочерга, сформированная методом лофтинга, для наглядности показана с обоих концов
Для создания тела лофтинга с использованием нескольких форм-сечений выполните следующие действия:
1. Перезагрузите программу max 7.5 и сохраните пустой файл новой сцены под именем Kocherga.max.
2. Создайте в окне проекции Тор (Вид сверху) четыре формы-сечения (прямоугольник, квадрат, круг и 8-лучевую звезду с закругленными лучами), как показано на рис. 7.9. Пусть квадрат, который будет определять сечение стойки кочерги, имеет размер стороны около 4 см. Прямоугольник будет служить сечением загнутого конца кочерги, придайте ему подходящие размеры, скажем, 2x8 см. Круг сделайте такого размера, чтобы квадрат вписывался в него, то есть радиусом около 3 см. Проще всего построить круг прямо от центра квадрата, растянув его до касания с углами. Наружный радиус звезды, определяющий толщину ручки, пусть будет около 4 см, а внутренний — примерно 3-3,5 см. Затем постройте форму-путь в виде линии длиной порядка 80 см с загнутым концом длиной еще около 25 см. Чтобы носок будущей кочерги загибался более естественно, в месте изгиба линии пути создайте пару вершин, формирующих срезанный наискось угол (см. рис. 7.9). Выделите форму-путь.
Рис. 7.9. Формы-сечения будущего тела лофтинга (слева) и форма-линия, которая будет использована в качестве пути (справа)
3. Щелкните на кнопке Loft (Лофтинговые) d свитке Object Type (Тип объекта) командной панели Create (Создать), а затем — на кнопке Get Shape (Взять форму). Дальнейший порядок действий зависит от того, на каком конце формы-пути разметается у вас первая вершина линии. В моем случае первая вершина размешается на длинном конце будущей кочерги, так что начинать построение следует с рукоятки. Рукоятка будет сформирована из двух сечений: круга и звезды. Перейдите в любое окно проекции и щелкните на форме-круге, которая будет служить первым сечением создаваемого тела. Сразу же будет сформировано тело лофтинга с постоянным сечением в форме круга по всей длине пути, как показано на рис. 7.10. Чтобы иметь возможность видеть оболочку тела в окнах с каркасным режимом отображения, можно развернуть свиток Skin Parameters (Параметры оболочки) и установить флажок Skin (Оболочка) в разделе Display (Отображение). Мы пока не будем этого делать, чтобы сетка оболочки не мешала нам видеть линию пути.
Рис. 7.10. Сформировано исходное тело лофтинга с сечением в форме круга
4. Обратите внимание на свиток Path Parameters (Параметры пути). Он позволяет расставить различные формы-сечения в разных точках пути, обеспечивая возможность формировать оболочку тела с переменным сечением. Задавать требуемое положение точки на линии пути, в которой будет размещено сечение, следует с помощью счетчика Path (Путь). Установленный по умолчанию переключатель Percentage (Процент) указывает на то, что положение сечений должно будет задаваться в процентах от длины пути. Установите в счетчике Path (Путь) значение 1. Выбранное положение для размещения сечения помечается на линии пути маркером в виде крестика желтого цвета. Переместите курсор в окно проекции и снова щелкните на форме-звезде (кнопка Get Shape (Взять форму) должна все еще быть в активном состоянии). Сечение в форме звезды будет немедленно установлено на расстоянии 1 % от начала линии пути (рис. 7.11).
Рис. 7.11. На заданном расстоянии от начала линии пути установлено новое сечение
5. Продолжите установку новых сечений в составе рукоятки, разместив еще одно сечение в форме звезды па расстоянии 19 % от начала пути, а дополнительное сечение в форме круга — на расстоянии 20 % от начала пути, как показано на рис. 7.12. Если вы случайно щелкнете правой кнопкой мыши, так что свитки с параметрами тела лофтинга исчезнут с командной панели Create (Создать), просто перейдите на панель Modify (Изменить) и продолжите построение тела, снова щелкнув на кнопке Get Shape (Взять форму).
Рис. 7.12. При правильном размещении форм-сечений (слева) должна сформироваться рукоятка кочерги (справа)
6. Чтобы завершить формирование тела лофтинга, установите сечение в форме квадрата на расстояниях в 23 % и 75 % от начала пути, а сечение в форме прямоугольника — на расстояниях в 79 % и 100 % от начала пути (рис. 7.13). В итоге у вас должен получиться объект, показанный ранее на рис. 7.8. Сохраните его в файле под именем, заданным в начале упражнения. Готовый файл с таким же именем Kocherga.max можно найти в папке Scenes\Glava_07 компакт-диска, прилагающегося к книге.
Рис. 7.13. Все сечения тела лофтинга размещены в нужных точках линии пути
laquo;Подпускаем» немного тумана в сцену «МАХ-кафе»
Чем хороша ЗD-графика, так это тем, что вы чувствуете себя полным хозяином в созданном вами виртуальном мире. Не составляет почти никакого труда по собственному желанию устанавливать в этом мирке день или ночь, переходить от зимы к лету или к осени. Так и с туманом. Если убрать снег и добавить туман в сцену, визуализируемую на фоне багрового заката, этот эффект поможет создать атмосферу осеннего вечера. Если же применить туман в сцене, изображающей зиму, он будет производить впечатление поземки, способствуя возникновению ощущения снежной метели. Попробуем оба варианта.
Приступим к практическому освоению приемов настройки и визуализации атмосферного эффекта типа Fog (Туман). Чтобы «подпустить» туман в сцену «МАХ-кафе», выполните следующие действия:
1. Откройте файл MAX-kafe18.max или продолжите работу над сценой, если она уже загружена в программу mах 7.5. Нужную сцену со всеми объектами и материалами вы можете при необходимости найти в папке Scenes\Glava_15 компакт-диска, прилагающегося к книге, под именем MAX-kafe18.max. Сохраните сцену с инкрементированием имени файла.
2. Раскройте окно диалога Environment and Effects (Внешняя среда и эффекты), выполнив команду основного меню Rendering > Environment (Визуализация > Внешняя среда). Щелкните на кнопке Add (Добавить) свитка Atmosphere (Атмосфера) окна диалога Environment and Effects (Внешняя среда и эффекты) и выберите строку Fog (Туман) в окне диалога Add Atmospheric Effect (Добавление атмосферного эффекта). Имя эффекта будет добавлено в список Effects (Эффекты), а в нижней части окна диалога Environment and Effects (Внешняя среда и эффекты) появится свиток Fog Parameters (Параметры тумана), показанный на рис. 15.44.
Рис. 15.44. Свиток Fog Parameters содержит все необходимые элементы для настройки параметров этого атмосферного эффекта
3. Не сбрасывайте установленный по умолчанию флажок Fog Background (Дымка фона), чтобы эффект туманной дымки действовал и на установленный в сцене фон, а не только на объекты. Переключатель Туре (Тип), позволяющий выбрать тип тумана, по умолчанию установлен в положение Standard (Стандартный), обеспечивая имитацию тумана в виде дымки. Установите этот переключатель в положение Layered (Слоистый). Слоистый туман отличается от стандартного тем, что его плотность меняется в зависимости от высоты над горизонтальной плоскостью. После этого станут доступными средства управления слоистым туманом из раздела Layered (Слоистый) свитка Fog Parameters (Параметры тумана).
4. Установите переключатель Falloff (Спад) в положение Тор (Вверху). При этом плотность тумана будет спадать до нуля в районе верхней границы слоя. При выбранной по умолчанию позиции переключателя None (Нет) плотность тумана в пределах слоя остается равномерной, а при выборе варианта Bottom (Внизу) — спадает до нуля в районе нижней границы.
5. Задайте высоту верхней границы слоя тумана в глобальной системе координат в счетчике Тор (Верх) равной 50 см. Высоту нижней границы в счетчике Bottom (Низ) оставьте равной 0. В счетчике Density (Плотность) установите общую плотность тумана равной 20,0.
6. Установите флажок Horizon Noise (Зашумление горизонта) — это позволит внести возмущения в линию горизонта слоя тумана для повышения реализма сцены. После установки флажка станут доступными элементы управления возмущением. Задайте характерный размер областей возмущений слоя тумана вблизи линии горизонта в счетчике Size (Размер) равным 10,0. Все остальные параметры оставьте равными их исходным значениям.
7. Выполните визуализацию изображения в окне проекции Camera01 (Камера01). Результат должен быть похож на изображение, представленное на рис. 15.45. Обратите внимание на то, как плотность тумана возрастает по мере удаления от зрителя.
Рис. 15.45. Результат визуализации сцены с эффектом слоистого тумана, создающим атмосферу холодного осеннего вечера
8. Теперь перейдем от осени к зиме. В свитке Common Parameters (Общие параметры) окна диалога Environment and Effects (Внешняя среда и эффекты) сбросьте флажок Use Environment Background (Использовать фон внешней среды). Щелкните на образце цвета фона внешней среды и задайте для него серо-голубой оттенок с RGB-компонентами (15; 78; 163). Выключите режим отображения фона в окне проекции. Снова примените к основанию сцены материал Sneg, имитирующий снежный покров. Для полноты картины восстановите видимость снежных валиков и обеих систем частиц Snow01 и Snow02.
9. Повторно выполните визуализацию изображения в окне проекции Camera01 (Камера01). Должно получиться изображение, подобное представленному на рис. 15.46. Тот же самый туман воспринимается теперь совсем по-другому. Поэкспериментируйте самостоятельно с параметрами тумана, чтобы выбрать их наилучшее, на ваш взгляд, сочетание. В заключение сохраните сцену под измененным в начале упражнения именем MAX-kafe19.max.
Рис. 15.46. Результат визуализации сцены с эффектом слоистого тумана, имитирующим снежную поземку
ЗАМЕЧАНИЕ Наибольшее время при визуализации сцены обычно тратится на построение карт текстур отражения/преломления и плоского зеркала. Выполняя визуализацию сцены в окне проекции Camera01 (Камера01), сбросьте предварительно флажки активизации этих карт в материалах стекла бокалов и дерева столешниц — ведь тонкие эффекты отражения на поверхностях этих объектов все равно не видны через раскрытую дверь кафе. Это позволит вам существенно сократить время визуализации. |
Применяем эффект самосвечения в материалах сцены «МАХ-кафе»
Попробуем создать чуть более усовершенствованные материалы, имитирующие эффект самосвечения. Такие материалы понадобятся нам для неоновой вывески, плафонов ламп настенных светильников «МАХ-кафе», лампочек елочной гирлянды, а также для снежных сугробов вокруг здания. Выполните следующие действия:
1. Продолжите работу над сценой «МАХ-кафе» или заново откройте файл с описанием этой сцены. На прилагающемся к книге компакт-диске нужная сцена хранится под именем МАХ-кафе12.тах в папке Scenes\Glava_13. Раскройте окно Редактора материалов и активизируйте очередную свободную ячейку образца.
2. Назовите вновь создаваемый материал Neon. Задайте следующие параметры базовых компонентов этого материала: Ambient (Подсветка) — (40; 50; 80), темно-синий (на самом деле цвет подсветки для самосветящихся материалов при максимальном уровне свечения не имеет особого значения); Diffuse (Диффузный) — (110; 225; 250), ярко-голубой; Specular (Зеркальный) — (230; 230; 230), светло-серый. Создайте яркий, но размытый зеркальный блик: Specular Level (Сила блеска) = 75; Glossiness (Глянцевитость) = 25. Сбросьте флажок Color (Цвет) в разделе Self-Illumination (Самосвечение) и задайте уровень самосвечения равным 100. Как уже говорилось, при таком уровне самосвечения цвет Ambient (Подсветка) перестает действовать, так как полностью вытесняется цветом Diffuse (Диффузный).
3. Назначьте новый материал объекту Viveska. Вызовите окно диалога Material/ Map Browser (Просмотр материалов и карт текстур), откройте библиотеку материалов MAX-kafe.mat и сохраните в ней этот материал.
ЗАМЕЧАНИЕ
Интереснейшая особенность материалов со свойством самосвечения состоит в том, что они видимы даже в полной темноте, когда выключены все осветители max 7.5. Более того, подобные материалы могут стать источником освещения окружающих предметов, если выполнить расчет глобальной освещенности по методу переноса излучения. |
4. Теперь создайте новый «светящийся» материал, активизировав шестую ячейку образца и назвав материал Steklo lampi. Задайте следующие параметры базовых компонентов этого материала: Diffuse (Диффузный) — (255; 255; 160), ярко-желтый; Ambient (Подсветка) и Specular (Зеркальный) — такие же. Полностью устраните зеркальный блик: Specular Level (Сила блеска) = 0; Glossiness (Глянцевитость) = 0. Сбросьте флажок Color (Цвет) в разделе Self-Illumination (Самосвечение) и задайте уровень самосвечения равным 100. Слегка уменьшите непрозрачность материала, задав Opacity (Непрозрачность) - 90. В свитке Extended Parameters (Дополнительные параметры) установите переключатель Туре (Тип) из раздела Advanced Transparency (Свойства прозрачности) в положение Filter (Фильтрующая) и задайте ярко-желтый цвет светофильтра с RGB-компонентами (250; 230; 64). Назначьте материал объектам Plafon и Plafon01, выполняющим роль плафонов настенных светильников, и сохраните его в текущей библиотеке. Вид получившихся материалов показан на рис. 13.44.
Рис. 13.44. Образцы самосветящихся материалов Neon и Steklo lampi в пятой и шестой ячейках Редактора материалов
5. Подготовьте светящиеся материалы для лампочек елочной гирлянды. Так как мы заняли все шесть свободных ячеек Редактора материалов, прокрутите область ячеек образцов вниз. Создайте материал ярко-желтого цвета с RGB-компонентами оттенков Diffuse (Диффузный) и Ambient (Подсветка), равными (255; 255; 0). Придайте ему явно выраженный блеск, установив Specular Level (Сила блеска) = 75, Glossiness (Глянцевитость) = 25, и установите 100-процентную самосветимость. Назовите материал Zheltiy svet и примените его к каждой третьей лампочке елочной гирлянды. Затем создайте еще два материала с аналогичными характеристиками, но, скажем, красного и ярко-зеленого цветов. Назовите эти два материала Krasniy svet и Zeleniy svet и также примените их к лампочкам, чередуя с желтым материалом, чтобы получить последовательность елочных огней «красный — желтый — зеленый».
6. Активизируйте еще одну ячейку образца и назовите новый материал Sneg. Задайте следующие параметры компонентов этого материала: Diffuse (Диффузный) — (189; 234; 245), светло-голубой; Ambient (Подсветка) — (137; 169; 199), светло-синий; Specular (Зеркальный) — (229; 229; 229), почти белый. Настройте зеркальный блеск: Specular Level (Сила блеска) = 35; Glossiness (Глянцевитость) = 25. Сбросьте флажок Color (Цвет) в разделе Self-Illumination (Самосвечение) и задайте уровень самосвечения равным 50. Оставьте исходное значение непрозрачности материала, равное 100 %. Назначьте материал объектам Osnovanie sceni и Valik01 - Valik03 и сохраните его в текущей библиотеке.
7. Сохраните файл сцены под прежним именем, МАХ-кафе12.тах.
На рис. 13.45 показано визуализированное изображение настенного светильника после применения к его плафону самосветящегося материала, а на рис. 13.46 — вид сцены снаружи от кафе «МАХ», где к сугробам и снежной равнине также применен материал с небольшой степенью самосвечения.
Рис. 13.45. К стеклу плафона светильника применен самосветящийся материал
Рис. 13.46. Слегка светящийся материал назначен снежным наносам вокруг кафе
Ряд созданных нами материалов может использоваться шире, чем было обозначено при их создании. Так, для посоха Деда Мороза вполне подойдет материал Pozolota, а для кристалла на конце посоха — материал Neon. Может быть, чтобы сделать кристалл еще светлее и ярче, имеет смысл применить в качестве цвета подсветки этого материала копию цвета диффузного рассеивания.
В качестве задания на самостоятельную проработку попробуйте подготовить подходящий материал для звезды, украшающей нашу новогоднюю елку, применить к ней этот материал и выполнить пробную визуализацию. Это может быть материал с высокой яркостью блика, а может быть и совершенно матовый, как будто звездочка сделана из мягкой резины. Также самостоятельно изготовьте простейший материал серого цвета для валенок Деда Мороза.
Это все простейшие материалы, используемые в сцене «МАХ-кафе». Остальные материалы являются многокомпонентными или требуют применения карт текстуры, к рассмотрению которых мы приступим в следующей главе.
Развиваем дебютную идею
Продолжим совершенствование навыков создания простейших анимаций в автоматическом режиме, заставив шахматные фигурки двигаться по доске и разыгрывать простейший дебют. Особенностью этой анимации явится то, что ключи будут установлены для многих объектов сцены. Кроме того, мы научимся производить расчет времени анимации и выполнять еще ряд важных операций, в частности устанавливать момент начала движения объекта и корректировать траекторию его перемещения, задавая промежуточные точки.
Выполните следующие действия:
1. Перезапустите max 7.5 и загрузите сцену, изображающую шахматные фигуры, расставленные на доске в исходных позициях. Такую сцену с необходимыми материалами можно найти под именем Shahmati01.max в папке Scenes\ Glava_14 компакт-диска, прилагающегося к книге. Сохраните файл с инкрементированием имени.
2. Произведем простейший расчет времени. Стандартная длительность временного сегмента анимации составляет 100 кадров. При опять же стандартной скорости воспроизведения — 30 кадров в секунду — анимация такого объема будет длиться 3,3 секунды. Сколько ходов шахматных фигур имеет смысл моделировать за это время? Наверное, не более 5—6, чтобы продолжительность каждого хода составляла от 1/2 до 2/3 секунды. Если заставить фигуры двигаться быстрее, то при воспроизведении подобной анимации трудно будет уследить за их мельканием. Итак, выберем в качестве базовой продолжительности одного хода величину 20 кадров, то есть 2/3 секунды.
3. Не мудрствуя лукаво, разыграем запомнившийся мне с ранних лет своим легкомыслием дебют под названием «Детский мат». Начинается он со знаменитого хода... Правильно, е2-е4! Итак, щелкните на кнопке Auto Key (Автоключ), чтобы включить режим автоматической анимации. Выделите пешку на поле е2 (это должен быть объект Peshka12). Перетащите ползунок таймера анимации к отметке кадра № 20 или просто введите число 20 в поле Current Time (Текущее время) группы инструментов управления анимацией и нажмите клавишу Enter. Ползунок при этом передвинется в нужную позицию автоматически. Переместите выделенную пешку на поле е4, как показано на рис. 16.14. Это удобно произвести в окне вида сверху, но несложно сделать и в окне проекции Perspective (Перспектива), если пользоваться габаритным контейнером преобразования в виде тройки координатных векторов.
Рис. 16.14. Гроссмейстер сделал ход е2-е4!
4. Итак, первый ход сделан. Черные, разумеется, отвечают не менее знаменитым е7-е5. Вы, наверное, думаете, что для анимации этого хода следует просто переместить ползунок таймера к отметке кадра № 40 и передвинуть пешку, стоящую на клетке е7, на поле е5? Попробуйте так и сделать, а затем выключить режим анимации и воспроизвести ее в окне проекции. Результат, однако, будет не тем, на какой вы рассчитывали. Обе пешки начнут движение одновременно, только первая достигнет своей конечной цели за 20 кадров, а вторая будет двигаться в два раза медленнее и перейдет на поле назначения за 40 кадров. Дело в том, что max 7.5, если ему не указано иного решения, всегда устанавливает для анимируемого объекта первый ключ анимации в кадре № 0. Нам же требуется, чтобы черная пешка стояла неподвижно вплоть до кадра № 20, а затем начала двигаться и к сороковому кадру переместилась на отведенное ей поле. Отмените ошибочные действия, если вы их произвели. Итак, чтобы задать момент начала движения черной пешки, нам следует установить для нее первый ключ анимации в кадре № 20. Такой ключ можно назвать ключом фиксации, так как он действительно фиксирует текущее значение анимируемого параметра, не позволяя ему меняться до заданного момента. Чтобы создать такой ключ, выделите пешку на поле е7 (это должен быть объект Peshka05) и, не перетаскивая ползунок таймера с отметки кадра № 20, щелкните на ползунке правой кнопкой мыши. Появится окно диалога Create Key (Создать ключ), показанное на рис. 16.15. Это окно диалога позволяет создавать ключи анимации трех стандартных преобразований объекта: перемещения, поворота и масштабирования.
Рис. 16.15. Окно диалога Create Key содержит средства для создания ключей анимации преобразований перемещения, поворота и масштаба
ЗАМЕЧАНИЕ Существование окна Create Key (Создать ключ), назначение которого — принудительно создавать ключи в нужных кадрах, явно говорит о том, что автоматический режим анимации, помимо достоинств, имеет и недостатки. Именно желание преодолеть эти недостатки и привело разработчиков к реализации режима принудительной анимации. |
5. По умолчанию в окне установлены флажки всех трех преобразований: Position (Положение), Rotation (Поворот) и Scale (Масштаб). Мы собираемся создать только ключ анимации преобразования перемещения, поэтому сбросьте флажки Rotation (Поворот) и Scale (Масштаб). В счетчике Source Time (Опорное время) указывается номер кадра, из которого будут взяты ключевые значения анимируемых параметров объекта (в данном случае — значения его координат). По умолчанию в этом счетчике указывается номер текущего кадра. Так как нам требуется, чтобы пешка в кадре № 20 сохраняла свое исходное положение, не меняйте значения этого параметра. В счетчике Destination Time (Время создаваемого ключа) задается номер кадра, для которого требуется создать ключ анимации. Нас устраивает указанный в этом счетчике по умолчанию номер текущего кадра — 20, поэтому просто щелкните на кнопке ОК. Ключ анимации перемещения пешки с ее текущими координатами в кадре № 20 создан, и теперь она на интервале с нулевого по двадцатый кадр будет оставаться на месте.
6. Перетащите ползунок таймера к отметке кадра № 40, а еще лучше просто введите число 40 в поле Current Time (Текущее время) и нажмите клавишу Enter. Переместите черную пешку с клетки е7 на клетку е5. Обратите внимание на появление ключа в виде красного квадратика на отметке кадра № 40 строки треков. Чтобы убедиться, что все пока идет, как нужно, выключите режим анимации, щелкнув на кнопке Auto Key (Автоключ). Воспроизведите анимацию в окне проекции. Для этого сначала щелкните на кнопке Go to Start (Перейти в начало), чтобы перейти к начальному кадру сегмента анимации. Затем щелкните на ползунке таймера анимации и не спеша перетаскивайте его вправо, следя за тем, что происходит в активном окне проекции. Вы увидите, как белая пешка переместится с клетки е2 на е4 за первые 20 кадров, с нулевого по двадцатый, а черная проделает свое движение за вторые 20 кадров, с двадцатого по сороковой.
7. Продолжим создание анимации. Установите в качестве текущего кадр № 40. Дебютная идея «детского мата» подразумевает, что теперь белые должны сделать ход слоном fl-c,4. Выделите белого слона на клетке f1 (это должен быть объект Slon03) и установите для него ключ преобразования Position (Положение) в текущем кадре № 40, действуя совершенно аналогично тому, как мы создавали ключ положения для черной пешки в п. 5.
ЗАМЕЧАНИЕ Заметьте, что для принудительного создания ключей с помощью окна диалога Create Key (Создать ключ) совершенно не требуется, чтобы был включен режим анимации. |
8. Включите режим анимации, щелкнув на кнопке Auto Key (Автоключ). Установите в качестве текущего кадр № 60 любым известным вам способом и переместите объект Slon02 на клетку с4. Выключите режим анимации и попробуйте воспроизвести ее в окне проекции. Слон должен начинать двигаться только с момента кадра № 40 и достигать нужной клетки к кадру № 60. Так как время, отведенное на движение слона, то же, что и у пешек, а переместиться ему требуется на большее расстояние, то и двигаться он будет быстрее пешек. Об этом позаботится mах .7.5. Обратите внимание на то, что по какой бы траектории вы ни перемещали слона с исходной клетки на конечную, двигаться при воспроизведении анимации он будет строго по кратчайшему расстоянию, так как для mах 7.5 имеют значение только координаты начальной и конечной точек движения, запомненные в виде ключей анимации. С этим важным условием нам еще придется столкнуться ниже. Попробуйте также поочередно выделить все три объекта и проследите за ключами анимации в строке треков. Теперь ключи анимации установлены нами уже для трех объектов: Peshka12, Peshka05 и Slon03. Для объекта Peshka12 ключи в виде красных квадратиков будут располагаться в кадрах № 0 и № 20, для Peshka05 — в кадрах № 20 и № 40, а для Slon03 — в кадрах № 40 и № 60. На рис. 16.16 показано, как должна выглядеть наша сцена в окне проекции на данный момент.
Рис. 16.16. Дебютная идея развивается: передвинуты уже три фигуры
9. Предположим, что играющий черными фигурами настолько туп, что не замечает готовящейся ловушки и собирается сделать ход конем Ь8-с6. Просто ход конем позволит нам рассмотреть такую особенность анимации перемещения объекта, как задание требуемой траектории. Ведь конь должен перепрыгнуть через стоящие перед ним фигуры, а не пройти сквозь них, хотя для бестелесных виртуальных шахматных фигур проходить друг сквозь друга и не составляет никакого труда. Итак, установите в качестве текущего кадр № 60, выделите черного коня на клетке Ь8 (объект-группа Коп'01) и создайте для него ключ положения, используя окно диалога Create Key (Создать ключ), как было описано выше. Это заставит коня до момента кадра № 60 стоять на месте. Затем включите режим анимации, перетащите ползунок таймера к отметке кадра № 80 и переместите коня на клетку с6 по любой траектории. Как мы уже говорили, форма этой траектории не имеет никакого значения: все равно конь будет перемещаться на отведенное ему поле по кратчайшему пути. Чтобы убедиться в этом, выключите режим анимации и несколько раз перетащите ползунок таймера влево-вправо.
10. Для исправления ситуации переключитесь на кадр № 70, соответствующий середине интервала перемещения коня. Включите режим анимации и в окне вида слева или спереди приподнимите объект Коп'01 вверх, заставив его зависнуть над остальными фигурами, как показано на рис. 16.17. Если теперь опять выключить режим анимации и потаскать ползунок таймера влево-вправо, вы увидите, что конь теперь движется с исходной клетки на конечную не по кратчайшему пути, а по дуге, взлетая при этом над другими фигурами. Обратите внимание, что если выделить коня, то в строке треков будут видны квадратики трех ключей анимации: в кадрах 60, 70 и 80.
Рис. 16.17. Черный конь в кадре № 70 зависает в воздухе
11. К сожалению, время активного сегмента анимации неумолимо приближается к концу, и мы можем позволить себе сделать еще только один ход, конечно же, белым ферзем: d1-f3. Сделайте текущим кадр № 80. Выделите белого ферзя (объект Ferz02) и с помощью окна диалога Create Key (Создать ключ) создайте для него ключ, фиксирующий текущее положение этой фигуры в кадре № 80. Затем перейдите к кадру № 100, включите режим анимации и сделайте ход, то есть переместите ферзя с клетки d1 на f3. Выключите режим анимации. Готово! Итоговое расположение фигур нашей анимации, уже не столь простой, как предыдущая, показано на рис. 16.18. Воспроизведите анимацию, вернувшись к начальному кадру и медленно перетаскивая ползунок таймера. Можете попробовать воспроизвести ее и в окнах проекций, вот только вряд ли удастся сделать это без пропуска кадров в тонированном режиме отображения. В заключение сохраните файл с только что созданной анимацией. Сравните то, что у вас получилось, с готовой анимацией, которая имеется в папке Scenes\Glava_16 компакт-диска, прилагающегося к книге, под именем Shahmati02.max.
Рис. 16.18. Третий ход белых так и остался без ответа
Если у вас возникнет желание продолжить игру в виртуальные шахматы, то увеличьте продолжительность сегмента анимации. Для этого щелкните на кнопке Time Configuration (Настройка временных интервалов) или щелкните правой кнопкой мыши на любой из кнопок управления анимацией, чтобы вызвать окно диалога Time Configuration (Настройка временных интервалов). Введите в счетчик End Time (Время окончания) окна диалога, где по умолчанию значится величина 100, новое значение последнего номера кадра, скажем, 200. Тем самым вы увеличите продолжительность анимации почти до 6,6 секунды, сохранив все уже созданные ключи, и обеспечите себе возможность завершить шахматную партию к собственному удовольствию.
Создаем стол и стул
Используя освоенные примитивы — параллелепипед и параллелепипед с фаской, создадим в учебных целях простейшие предметы мебели: стол и стул. Впоследствии мы усовершенствуем дизайн стола, а вместо простых стульев научимся делать более комфортабельные кресла. Тем не менее и такая несложная мебель способна украсить интерьер. Именно такие стол и такой стул вы могли видеть в составе сцены «Дачный домик», показанной на рис. 1.8 главы 1. Учитывая, что вы уже приобрели определенный опыт, пояснения необходимых действий будем делать менее подробно, чем в предыдущем упражнении. Итак, приступим.
1. Произведите перезагрузку mах 7.5, выбрав команду меню File > Reset (Файл > Перезагрузить). Сохраните пустую сцену — например, под именем Stol i stul.
2. Настройте единицы измерения и сетку координат так, как было описано в разделе «Настраиваем max 7.5 для работы над сценой „МАХ-кафе"» главы 3.
3. Увеличьте масштаб в окне проекции Тор (Вид сверху), используя инструмент Zoom (Масштаб), чтобы по вертикали в окне умещались две большие ячейки, образованные главными линиями сетки.
4. Выберите на командной панели Create (Создать) объект Box (Параллелепипед) и создайте квадратную в плане столешницу, растягивая ее основание в окне проекции Тор (Вид сверху) из точки (0; 0; 0) при нажатой клавише Ctrl, со следующими размерами: Length (Длина) = 145, Width (Ширина) = 145 и Height (Высота) = 5 см. Установите координаты опорной точки столешницы равными (0; 0; 70). Измените цвет объекта на светло-коричневый и назовите его Stoleshnica.
5. Постройте ножки стола. Для этого создайте в центре окна проекции Тор (Вид сверху) параллелепипед квадратного сечения с размерами Length (Длина) - 7,5 см, Width (Ширина) = 7,5 см и Height (Высота) - 70 см. Назовите этот объект Nozhka stoIa01 и переместите его в точку (40; -40; 0). Измените цвет объекта, сделав его таким же, как у столешницы.
6. Используя команду меню Edit > Clone (Правка > Дублировать), создайте три копии ножки, назовите их Nozhka stola02, Nozhka stola03, Nozhka stola04 и переместите в точки (40; 40; 0), (-40; 40; 0) и (-40; -40; 0). Готово! Вид стола в окне проекции Perspective (Перспектива) после небольшой настройки масштаба и поворота показан на рис. 5.14. Можете взглянуть на то, что должно получиться, загрузив из папки \Scenes\Glava_05 прилагающегося к книге компакт-диска файл Stol.max.
Рис. 5.14. Простейший стол
7. Теперь займемся стулом. С помощью инструмента Pan (Прокрутка) передвиньте изображение в окне проекции Тор ( Вид сверху) влево, чтобы освободить место для стула. Щелкните на кнопке Box (Параллелепипед) и создайте сиденье стула со следующими размерами: Length (Длина) = 45, Width (Ширина) = 45 и Height (Высота) = 5 см, растягивая его квадратное сечение из точки (100; 0; 0) при нажатой клавише Ctrl. Назовите объект Sidenie и задайте глобальные координаты его опорной точки: X = 100, Y = 0, Z = 40 см. Выберите цвет сиденья «под дерево», например светло-коричневый. Пока объект Sidenie выделен, щелкните на кнопке Zoom Extents Selected (Выделенные объекты целиком), которая находится на раскрывающейся панели инструмента Zoom Extents (Сцена целиком), чтобы укрупнить изображение объекта на все окно проекции.
8. Создайте передние ножки стула. Выберите инструмент Box (Параллелепипед) и, нажав и удерживая клавишу Ctrl, щелкните в районе точки (82; 18; 0) окна проекции Тор (Вид сверху) и растяните сечение ножки стула до размеров 5x5 см. Высоту ножки сделайте равной 45 см. Задайте точные значения координат ножки: X = 82, Y = 18, Z = 0 см. Назовите объект Nozhka stula01 Создайте копию ножки, назовите ее Nozhka stula02 и переместите в точку (82; -18; 0). Сделайте обе ножки того же цвета, что и сиденье стула.
9. Теперь создайте две задние ножки, которые одновременно будут играть роль опор спинки стула. Для этого постройте в окне проекции Тор (Вид сверху) два параллелепипеда размером 5x5x90 см и разместите их в точках (120; 18; 0) и (120; -18; 0). Настройте цвет ножек, сделав его таким же, как цвет остальных деталей стула.
10. Наконец, создайте подушку сиденья и спинку стула. Выберите в раскрывающемся списке командной панели Create (Создать) вариант Extended Primitives (Улучшенные примитивы) и щелкните на кнопке ChamferBox (Параллелепипед с фаской). В окне проекции Тор (Вид сверху) постройте параллелепипед с фаской, придав ему следующие размеры: Length (Длина) = 42, Width (Ширина) = 42 и Height (Высота) = 4 см. Высоту фаски сделайте равной 2,5 см, параметр Fillet Segs (Сегментов по фаске) — равным 4. Установите флажок Smooth (Сглаживание), чтобы закруглить фаску. Назовите объект Podushka и задайте для его опорной точки координаты (100; 0; 44). Выберите для подушки подходящий цвет, например красный или зеленый.
11. В качестве спинки стула создайте в окне проекции Тор (Вид сверху) еще один параллелепипед с фаской, придав ему следующие размеры: Length (Длина) = 45, Width (Ширина) = 2,5, Height (Высота) = 25, Fillet (Фаска) = 1,3 см, Fillet Segs (Сегментов по фаске) = 4. Задайте для опорной точки спинки координаты (117; 0; 66). Приведите цвет спинки в соответствие с цветом сиденья. Готово! Выделите все объекты, входящие в состав стула, и создайте из них группу, назвав ее Stul. Детали стола сгруппируем после выполнения следующего упражнения. Общий вид стола со стулом показан на рис. 5.15.
Рис. 5.15. Стол и стул: простенько, но со вкусом
12. Сохраните сцену: она нам еще пригодится в работе над сценой «МАХ-кафе».
Создаем тарелку и бокал
Для сервировки столов в проекте «МАХ-кафе» нам понадобится кое-какая посуда. Сейчас, используя модификатор вращения, мы создадим тарелку и бокал. Повторяйте за мной следующие действия:
1. Запустите или перезагрузите max 7.5, выберите в качестве единиц измерения сантиметры и установите шаг сетки равным 1 см. Сохраните файл под именем Tarelka.max.
2. Прокрутите изображение в окне проекции Front (Вид спереди) так, чтобы начало координат сместилось в правый нижний угол окна. Уменьшите масштаб, чтобы размер видимой части сетки в окне составлял примерно 20x14 см. Разверните окно проекции на весь экран, щелкнув на кнопке Min/Max Toggle (Развернуть/Восстановить) или нажав клавиши Alt+w.
3. Щелкните на кнопке Shapes (Формы) командной панели Create (Создать) и выберите в раскрывающемся списке разновидностей объектов вариант Splines (Сплайны). Щелкните на кнопке инструмента Line (Линия).
4. Постройте профиль тарелки в виде замкнутого сплайна, показанного на рис. 6.27. Создайте три первые вершины типа Corner (С изломом). Для этого щелкните в точке (0; 0; 0), переместите курсор в точку (7,5; 0; 0) и снова щелкните кнопкой мыши, а затем щелкните в точке (7,5; 0; 0,7). Вершины 4-7 должны иметь тип Bezier Corner (Безье с изломом). Переместите курсор в точку (12,7; 0; 3), щелкните кнопкой мыши и перетащите курсор, придавая сегменту кривизну. Затем таким же образом создайте вершины 5— 7 с координатами (16,1; 0; 4,4), (16,2; 0; 4,6), (12,6; 0; 3,2). Вершины 8-10 должны иметь тип Corner (С изломом). Создавайте их простыми щелчками без перетаскивания курсора в точках с координатами (7,2; 0; 0,9), (7,2; 0; 0,3) и (0; 0; 0,3).
Рис. 6.27. Сплайн профиля тарелки (вершины пронумерованы для удобства ссылок в тексте)
5. Щелкните на квадратике со знаком «плюс» слева от наименования типа объекта Line (Линия) в окне стека модификаторов командной панели Modify (Изменить), выберите строку Vertex (Вершина) дерева подобъектов и отредактируйте форму сплайна. Для перемещения вершин в точно заданные точки выделяйте их поочередно и используйте поля отсчетов координат в строке состояния для ввода нужных значений координат положения вершин. Откорректируйте положение маркеров касательных векторов вершин 4-7, стараясь придать профилю вид, показанный на рис. 6.27. Для примера на рис. 6.28 показано правильное положение касательных векторов вершин 4 и 6. Маркеры векторов вершин 7 и 5 должны располагаться аналогичным образом.
Рис. 6.28. Правильное положение маркеров касательных векторов вершин 4 и 6
6. Закончив редактирование формы профиля, выключите режим выделения подобъектов, щелкнув на строке Line (Линия) в окне стека модификаторов. Выделите профиль и примените к нему модификатор вращения, щелкнув на строке Lathe (Вращение) в раскрывающемся списке Modifier List (Список модификаторов) командной панели Modify (Изменить). Выберите вариант Min (Мин.) расположения оси вращения. Получившаяся тарелка должна быть похожа на ту, которая показана на рис. 6.29. Назовите созданный объект Tarelka01 и сохраните его в файле под заданным в начале именем. Сопоставьте получившийся результат с объектом из файла, хранящегося под таким же именем в папке Scenes\Glava_06 прилагающегося к книге компакт-диска.
Рис. 6.29. Тарелка, созданная методом вращения профиля
7. Начните новую сцену max 7.5, чтобы сохранить сделанные системные настройки. С этой целью выберите команду главного меню File > New (Файл > Создать) и, оставив переключатель Options (Варианты) в положении New All (Обновить все), щелкните на кнопке ОК. С помощью инструмента Pan (Прокрутка) переместите начало координат в окне проекции Front (Вид спереди) к середине нижней кромки окна и разверните окно во весь экран. Сохраните сцену в файле под именем Bokal.max.
8. Постройте профиль бокала в виде разомкнутого сплайна, показанного на рис. 6.30. Вершины 1—3, 4, 9 и 10 должны иметь тип Corner (С изломом), вершимы 5, 6, 8, 11 и 12 — тип Bezier (Безье), а вершина 7 — Bezier Comer (Безье с изломом). Поместите вершины в следующих точках: 1 — (0; 0; 0), 2 - (5,8; 0; 0), 3 - (5,6; 0; 0,5), 4 - (0,7; 0; 1,0), 5 - (0,8; 0; 10,5), 6 - (1,7; 0; 11,9), 7 - (1,9; 0; 13,6), 8 - (5,6; 0; 20,2), 9 - (6,4; 0; 27,6), 10 - (6,1; 0; 27,6), 11 - (5,3; 0; 20,2), 12 - (0; 0; 13,6).
Рис. 6.30. Сплайн профиля бокала (вершины пронумерованы для удобства ссылок в тексте)
9. Откорректируйте форму профиля, перемещая маркеры касательных векторов вершин Bezier (Безье) и Bezier Corner (Безье с изломом) на уровне подобъектов Vertex (Вершина). Выключите режим выделения подобъектов, выделите профиль и примените к нему модификатор Lathe (Вращение). Выберите вариант Min (Мин.) расположения оси вращения. Вид получившегося бокала показан на рис. 6.31. Назовите созданный объект Bokal01 и сохраните его в файле под уже заданным именем. Сравните свой бокал с объектом из файла, хранящегося под таким же именем в папке Scenes\Glava_06 прилагающегося к книге компакт-диска.
Создаем вазу из цилиндра
Откройте сохраненный вами ранее файл Kamin01.max или загрузите его из папки Scenes/Glava9. Наша задача — создать вазу и разместить ее на каминной полке. Для начала скройте камин — пока что он нам не нужен. Создайте в окне проекции вида в перспективе примитив Cylinder (Цилиндр) примерно следующих размеров: радиус 7 единиц и высота — 28, установив число сегментов по высоте равным восьми.
1. Превратите объект в полисетку любым из уже известных вам способов. Для того чтобы превратить сплошной цилиндр в полую вазу, «утопим» верхний полигон вовнутрь объекта. Разверните дерево подобъектов редактируемой полисетки в окне стека модификаторов и выберите строку Polygon (Полигон). Выделите полигон в верхнем основании цилиндра. Если «утопить» полигон на этом этапе создания модели, ваза не будет иметь толщины. Поэтому прежде необходимо воспользоваться инструментом Inset (Врезка), чтобы создать дополнительный набор полигонов, благодаря которым будет образована толщина стенок. Щелкните по квадратной кнопке со значком, символизирующим окно системы Windows, расположенной рядом с кнопкой Inset (Врезка) в свитке Edit Polygons (Правка полигонов). На экране появится окно Inset Polygons (Врезка полигонов). Введите в счетчик Inset Amount (Величина врезки) значение 0,4 и нажмите кнопку ОК.
2. Теперь можно перейти к операции выдавливания полигонов. Эту операцию произведем с использованием окна диалога точной настройки параметров, вызываемого щелчком на маленькой квадратной кнопке со значком окна справа от кнопки Extrude (Выдавить) свитка Edit Polygons (Правка полигонов). В окне диалога Extrude Polygons (Выдавливание полигонов) введите в счетчик Extrusion Height (Высота выдавливания) значение -26 (рис. 9.39), наблюдая за тем, как полигон «утонет» в цилиндре, и щелкните на кнопке ОК. Поверните цилиндр, чтобы убедиться в том, что теперь он полый.
Рис. 9.39. Вид цилиндра после выполнения операции выдавливания
3. Переключитесь на уровень выделения подобъекта Edge (Ребро). Выделите два ребра таким образом, чтобы они находились в одном вертикальном столбце сегментов. При этом одно ребро должно располагаться во втором ряду ребер сверху, а второе — в седьмом ряду (рис. 9.40). Произведем операцию экструзии по отношению к выделенным ребрам. Для этого в свитке Edit Geometry (Правка геометрии) щелкните на маленькой кнопке возле кнопки Extrude (Выдавить) и в окне Extrude Edges (Выдавливание ребер) введите в счетчик Extrusion Height (Высота выдавливания) значение 2, a Extrusion Base Width (Ширина основы выдавливания) — 3. Нажмите кнопку ОК. Теперь у нас есть основание для ручки вазы (рис. 9.41). Ручку мы создадим чуть позже при помощи инструмента Bridge (Мост).
Рис. 9.40. Выделение ребер
Рис. 9.41. Создание основы для ручки
4. Выделите полигон на верхнем выступе, образовавшемся после выполнения операции выдавливания, и снова воспользуйтесь инструментом Extrude (Выдавить), установив значение счетчика Extrusion Height (Высота выдавливания) равным 3. Выделите такой же полигон на нижнем выступе и выполните операцию экструзии на такое же расстояние три раза. Для этого в окне Extrude Edges (Выдавливание ребер) дважды нажмите кнопку Apply (Применить), а затем нажмите ОК. Пришло время воспользоваться инструментом Bridge (Мост) для создания ручки вазы. Выделите два полигона, которые обращены друг к другу, в верхней и нижней части ручки. Нажмите маленькую кнопку справа от кнопки Bridge (Мост) и в одноименном окне диалога введите в счетчик Segments (Сегменты) число 3 и нажмите кнопку ОК. После замыкания полигонов у вазы появилась ручка (рис. 9.42). Сохраните файл под названием Vaza.max, он нам понадобится для следующего примера.
Рис. 9.42. После применения инструмента Bridge у вазы появилась ручка
5. Пока что наша трехмерная модель больше напоминает кружку, нежели изящную вазу. Ситуацию можно исправить, воспользовавшись инструментом MeshSmooth (Сглаживание сетки). Выделите модель на верхнем уровне редактируемой сетки в целом и щелкните по небольшой кнопке, расположенной рядом с кнопкой MeshSmooth (Сглаживание сетки). Операция сглаживания полисетки не должна происходить с разделением групп сглаживания, иначе ручка вазы останется с острыми ребрами. Поэтому в окне MeshSmooth Selection (Сглаживание выделенной сетки) снимите флажок напротив параметра Separate by Smoothing Groups (Разделять по группам сглаживания) и установите флажок Separate by Material (Разделять по материалу). Нажмите кнопку Apply (Применить), а затем нажмите ОК, использовав тем самым инструмент сглаживания дважды (рис. 9.43).
Рис. 9.43. Вид вазы после операции сглаживания
СОВЕТ Если вы недовольны результатом сглаживания с помощью инструмента MeshSmooth (Сглаживание сетки), можете еще раз повторить операцию, описанную выше. При этом помните, что каждый раз, когда вы используете этот инструмент, полигональная структура объекта усложняется и, соответственно, возрастает нагрузка на аппаратную часть компьютера. |
6. Применим теперь к объекту модификатор Taper (Заострение), чтобы сузить его посередине. Щелкните на строке Taper (Заострение) в раскрывающемся списке Modifier List (Список модификаторов). В свитке Parameters (Параметры) модификатора счетчик Curve (Кривизна) установите равным -2. Как вы помните из предыдущей главы, при отрицательном значении этого параметра модель будет выгнута внутрь.
7. Теперь отобразите модель камина и водрузите вазу на каминную полку. Сделать это будет не очень просто, так как камин имеет сложную форму, и полка не является ни краем объекта по осям, ни центром. Для решения этой проблемы воспользуемся инструментом Detach (Отделить). Выделите камин и переключитесь на уровень выделения подобъекта Polygon (Полигон), после чего выделите полигон, на котором будет стоят ваза. Щелкните на кнопке Detach (Отделить) в свитке Edit Geometry (Правка геометрии). В появившемся окне Detach (Отделить) необходимо ввести имя нового объекта. Назовите его «полигон для выравнивания». Проверьте, чтобы были сброшены флажки напротив параметров Detach To Element (Отделить как элемент) и Detach As Clone (Отделить как копию), и нажмите кнопку ОК. Теперь полигон станет отдельным объектом сцены, в чем вы можете легко убедиться, вызвав окно Select Objects (Выделение объектов). Название нового объекта будет присутствовать в этом списке. Теперь выровнять вазу относительно каминной полки проще простого. Выберите вазу в списке окна Select Objects (Выделение объектов) и вызовите окно Align Selection (Выделение объектов для выравнивания). Укажите в сцене объект, относительно которого будет производиться выравнивание, то есть отделенный полигон. Выровняйте объекты по центру относительно осей X и Y, а относительно оси Z — по минимальным значениям координат объектов. Ваза займет свое место на каминной полке (рис. 9.44). Сохраните полученный файл под названием Vaza01.max.
Рис. 9.44. Ваза на каминной полке
Тренируемся в применении модификатора Taper
Модификатор Taper (Заострение) вызывает клиновидную деформацию объекта, заостряя его от одного конца к другому. Этим модификатором вы также уже пользовались, когда в главе 6 формировали прорези между зубьями вилки. Продолжите освоение модификатора заострения, выполнив следующие действия:
1. Перезагрузите max 7.5 и снова постройте в окне проекции Тор (Вид сверху) стандартный примитив Tube (Труба) с внутренним радиусом 20, наружным радиусом 25 и высотой 50 текущих единиц. Создайте два дубликата-копии этого объекта и расположите их так же, как показано выше на рис. 8.11. Можете использовать объекты, созданные в предыдущем упражнении, удалив из их стеков модификаторы изгиба и изменив соответствующим образом параметры. Можно также загрузить готовую сцену с тремя трубами нужных размеров, открыв файл Tri trubi(Taper).max в папке Scenes\Glava_08 компакт-диска, прилагающегося к книге.
2. Выделите левый объект и щелкните на строке Taper (Заострение) в раскрывающемся списке Modifier List (Список модификаторов). В нижней части командной панели Modify (Изменить) появится свиток Parameters (Параметры) модификатора заострения. Задайте степень заострения в счетчике Amount (Величина). Величина этого параметра является относительной и указывает долю увеличения (при положительных значениях) или уменьшения (при отрицательных) верхнего сечения объекта по сравнению с текущим размером. Так, значение 0,5 означает необходимость увеличить верхнее сечение на 50 %, то есть расширить объект снизу вверх, а значение -0,5 ведет к сужению объекта в верхней части на 50 %, как показано на рис. 8.13, а. В целом параметр Amount (Величина) не должен превышать 10. Счетчик Curve (Кривизна) позволяет выгнуть стороны заостренного объекта внутрь (при отрицательных значениях, как показано на рис. 8.13, б) или наружу (при положительных).
Рис. 8.13. Заострение объекта-трубы: а — Amount = -0,5; б — то же при Curve = -1; в — установлен флажок Symmetry, первичная ось X, ось эффекта Z
3. Выберите координатные оси, относительно которых будет производиться заострение объекта, с помощью параметров раздела Taper Axis (Ось заострения):
Primary (Первичная ось) — переключатель выбора основной оси, вдоль которой производится заострение;
Effect (Ось эффекта) — переключатель выбора оси заострения в плоскости, перпендикулярной первичной оси.
Symmetry (Симметрично) — флажок включения режима симметричного заострения относительно первичной оси, как показано на рис. 8.13, в.
ЗАМЕЧАНИЕ В папке Animations\G!ava_08 компакт-диска, прилагающегося к книге, имеется файл Zaostrenie.avi, позволяющий в учебных целях просмотреть анимацию процесса заострения. Файл сцены с этой анимацией под именем Zaostrenie.max можно найти в папке Scenes\Glava 08 того же диска. |
Параметры раздела Limits (Пределы) модификатора заострения играют ту же роль и используются так же, как аналогичные параметры модификатора изгиба.
Учимся преобразовывать типы NURBS-кривых, моделируя шапку и усы
Для завершения работы над головой нашего персонажа не хватает еще шапки, усов и бороды. Бороду будем создавать в последний момент, так как она должна располагаться поверх шубы, а усами и шапкой займемся сейчас.
Для создания шапки и усов применим уже знакомый вам по главе 7 метод U-лоф-тинга, а заодно освоим инструмент преобразования типов NURBS-кривых.
Выполните следующие действия:
1. Загрузите файл Ded Moroz-Golova.max, созданный в предыдущем упражнении, или найдите файл с таким же именем на прилагающемся к книге компакт-диске, где он хранится в папке Scenes\Glava_10. Сохраните файл с инкрементированием имени.
2. В окне вида сверху создайте стандартный сплайн Circle (Круг) радиусом несколько большим, чем радиус сферы, из которой создавалась голова, как показано на рис. 10.27. Превратите круг в NURBS-объект, используя цепочку команд Convert To > Convert to NURBS (Превратить в > Превратить в NURBS) четвертного меню. Обратите внимание на то, что сплайн преобразуется в объект NURBS Surface (NURBS-поверх-ность), а не NURBS Curve (NURBS-кри-вая). Назовите новый объект Shapka. Теперь можно временно скрыть от просмотра модель головы, чтобы она не мешала работе над шапкой.
Рис. 10.27. Сплайн-круг, на основе которого будет моделироваться шапка
3. Подготовьте набор опорных кривых, которые составят каркас шапки, создав пять копий исходной кривой. При этом необходимо, чтобы все копии оказались подобъектами одного объекта, иначе нельзя будет применить к кривым метод U-лофтинга. В связи с этим копируйте кривую, выделив ее на уровне подобъекта Curve (Кривая). С этой целью разверните список подобъектов объекта NURBS Surface (NURBS-поверхность) в окне стека модификаторов и активизируйте строку Curve (Кривая). Щелкните на кривой в окне проекции. Она приобретет красный цвет, означающий, что кривая выделена. Выберите инструмент Select and Uniform Scale (Выделить и равномерно масштабировать). Удерживая клавишу Shift, создайте на виде сверху копию кривой несколько меньшего диаметра, чем оригинал. В появившемся окне диалога Sub-Object Clone Options (Параметры дублирования подобъектов), показанном на рис. 10.28, установите переключатель в положение Independent Copy (Независимая копия) и щелкните на кнопке ОК.
Рис. 10.28. Окно диалога Sub- Object Clone Options позволяет выбрать нужный вариант дублирования NURBS-кривой
4. Создайте с помощью инструмента перемещения еще одну копию исходной кривой, но на этот раз в окне вида спереди и поместите эту копию несколько выше оригинала, как показано на рис. 10.29, кривая 3. После этого несколько уменьшите ее размер. Очередную кривую создайте как уменьшенный по диаметру дубликат второй копии, поместив ее на той же высоте (кривая 4 на рис. 10.29). Четвертую копию кривой поместите выше уже имеющихся кри вых и уменьшите ее радиус примерно вдвое по сравнению с оригиналом (кривая 5 на рис. 10.29). Наконец, создайте пятую копию кривой и поместите ее выше всех остальных. Эта кривая, обозначенная цифрой 6 на рис. 10.29, будет обозначать макушку шапки, поэтому уменьшите ее размер до 1 % от исходного. Для этого при выделенной кривой щелкните на кнопке инструмента Select and Uniform Scale (Выделить и равномерно масштабировать). Затем щелкните на кнопке этого инструмента правой кнопкой мыши и в появившемся окне Scale Transform Type-In (Ввод данных преобразования масштаба) введите в счетчик раздела Offset: World (Приращение: глобальное) величину 1.
Рис. 10.29. Оригинал NURBS-кривой (1) и пять копий (2—6) подготовлены для применения метода U-лофтинга
СОВЕТ Если вам нужно создать тело лофтинга, закругляющееся на конце, всегда устанавливайте для крайнего сечения масштаб, равный 1 % от исходного. При этом кривая стянется почти в точку. Нельзя задавать масштаб крайнего сечения равным 0 % — это может привести к непредсказуемым последствиям. |
5. По умолчанию сплайны преобразуются в NURBS-кривые типа CV. Несомненно, данный тип кривых является более универсальным, чем точечные кривые. Тем не менее в нашем случае, когда не требуется корректировать форму кривых, удобнее преобразовать кривые типа CV в точечные. При этом мы избежим излишнего загромождения модели решетками деформации управляющих вершин отдельных кривых. Переключитесь в окне стека модификаторов на уровень подобъекта Curve (Кривая). Выделите в любом окне проекции все шесть кривых, которые должны приобрести красный цвет. В свитке Curve Common (Кривая в целом), появившемся на командной панели Modify (Изменить), щелкните на кнопке Convert Curve (Преобразовать кривую). Появится окно диалога Convert Curve (Преобразование кривой), показанное на рис. 10.30. С помощью этого инструмента можно изменить тип выделенных кривых или задать для них иное число управляющих вершин (опорных точек). Щелкните в этом окне на кнопке Point Curve (Точечная кривая), установите переключатель Number (Число) и укажите в счетчике справа от переключателя число точек, равное 10. Этого числа точек будет вполне достаточно для поддержания формы сечений. Если установлен флажок Preview (Просмотр), то вы сразу же увидите результат преобразования в окнах проекций. Щелкните на кнопке ОК, чтобы подтвердить преобразование.
Рис. 10.30. Окно диалога Convert Curve позволяет изменить тип NURBS-кривой и задать нужное число точек
6.
Остается только применить к кривым инструмент U-лофтинга. Выключите в окне стека модификаторов режим выделения подобъектов, щелкнув на строке NURBS Surface (NURBS-поверхность). В свитке General (Общие параметры) командной панели Modify (Изменить) щелкните на кнопке NURBS Creation Toolbox (Инструменты создания NURBS-объектов), чтобы раскрыть палитру инструментов для работы с NURBS-объектами. Выберите инструмент Create U Loft Surface (Создать поверхность методом U-лофтинга). Лофтинг будем производить в два приема, чтобы создать верх шапки и меховую оторочку края в виде двух поверхностей, к которым в дальнейшем можно будет применить различные материалы. Переместите курсор в окно проекции и установите его на кривую, обозначенную на рис. 10.29 цифрой 2. Когда кривая примет синюю окраску, щелкните кнопкой мыши и переместите курсор к кривой 1. За курсором должна тянуться пунктирная линия. Снова щелкните кнопкой мыши. «Общелкайте» аналогичным образом кривые 3 и 4, после чего щелкните правой кнопкой мыши, чтобы остановить процесс создания поверхности лофтинга. Меховая оторочка шапки готова. Если окажется, что поверхность видна не снаружи, а изнутри, установите флажок Flip Normals (Перевернуть нормали) в самом низу свитка U Loft Surface (Поверхность U-лофтинга), появляющегося на командной панели, пока активен инструмент U-лофтинга.
ЗАМЕЧАНИЕ Палитру инструментов для работы с NURBS-объектами часто приходится удалять с экрана, так как она мешает редактированию. Кнопка NURBS Creation Toolbox (Инструменты создания NURBS-объектов) повторного вызова этой палитры находится в свитке General (Общие параметры) командной панели Modify (Изменить). Свиток же этот появляется на командной панели только в том случае, когда в окне проекции выделен NURBS-объект, а в списке его подобъектов в окне стека модификаторов выбрана строка самого верхнего уровня: NURBS Surface (NURBS-поверхность) или NURBS Curve (NURBS-кривая). Если в окне стека выбран любой из уровней выделения доступных подобъектов NURBS-объекта, таких как Surface (Поверхность), Point (Точка), Curve CV (Вершины кривой), Curve (Кривая) и т. п., не ищите напрасно на командной панели кнопку NURBS Creation Toolbox (Инструменты создания NURBS-объектов): ее там просто нет. |
7. Пока инструмент U- лофтинга еще активен, создайте верх шапки. Щелкните на кривой, имеющей на рис. 10.29 номер 4, затем — на кривых 5 и 6. Щелкните правой кнопкой мыши для завершения создания новой поверхности. Установите, при необходимости, флажок Flip Normals (Перевернуть нормали). В заключение еще раз щелкните правой кнопкой мыши для выключения режима U-лофтинга. Чтобы подготовить поверхности шапки к применению многокомпонентного материала, активизируйте в окне стека строку подобъекта Surface (Поверхность). Выделите поверхность верхней части шапки, щелкнув на ней кнопкой мыши. Поверхность приобретет красный цвет. Впрочем, если используется драйвер дисплея Direct3D, то выделенная на уровне подобъекта Surface (Поверхность) NURBS-поверхность в тонированном режиме отображения не приобретает красного цвета. В красный цвет при этом окрашиваются только изолинии поверхности, которые видны в режиме каркасного просмотра и обычно имеют зеленую окраску. Прокрутите вниз область свитков на командной панели, пока не станет виден свиток Material Properties (Свойства материалов). Убедитесь, что в счетчике Material ID (Идентификатор материала) указано число 1. Затем выделите поверхность нижней части шапки и установите в том же счетчике значение идентификатора материала, равное 2. Активизируйте в окне стека модификаторов уровень выделения подобъектов Point (Точка) и для большей естественности придайте некоторый изгиб кривым, формирующим нижнюю часть шапки. Восстановите видимость головы Деда Мороза и поместите шапку на голову. «Натягивая» шапку, не бойтесь того, что ее поверхность будет пересекаться с поверхностью головы. При таком пересечении шапка будет выглядеть даже естественнее — ведь по легенде у нее меховой низ, который должен плотно охватить голову и в котором вполне могут «утонуть» уши персонажа. При необходимости отрегулируйте масштаб опорной кривой, задающей внутренний размер нижнего обреза шапки, активизировав уровень выделения подобъекта Curve (Кривая). Вид головы Деда Мороза в готовой шапке показан на рис. 10.31.
Рис. 10.31. Дед Мороз приобрел шапку, смоделированную методом U-лофтинга
8. Усы также смоделируйте методом U-лофтинга, действуя следующим образом. Постройте маленький сплайн-круг, который будет играть роль сечения уса, и поместите его, где положено, — под носом у персонажа. Преобразуйте его в NURBS-объект и назовите Us01. Создайте четыре-пять копий исходной кривой, расположите их по форме уса и должным образом масштабируйте. Масштаб крайней копии сечения сделайте равным 1 % от исходного размера. В итоге сечения уса должны выглядеть примерно так, как на рис. 10.32.
Рис. 10.32. Оригинал NURBS-кривой (1) и четыре копии (2-5) подготовлены для создания уса методом U-лофтинга
9. Примените к опорным кривым метод U-лофтинга, начав с кривой 1 и закончив на сечении 5. Построив поверхность, перейдите на уровень выделения подобъекта Curve (Кривая) и отредактируйте форму уса, придав ему естественный изгиб, за счет дополнительного перемещения и масштабирования сечений. Затем перейдите на верхний уровень выделения NURBS-объекта в целом, щелкнув в окне стека на строке NURBS Surface (NURBS-поверхность). Создайте зеркальную копию уса с помощью инструмента Mirror Selected Objects (Отразить выделенные объекты) главной панели инструментов. Отрегулируйте положение обеих половинок усов, чтобы в итоге голова персонажа выглядела, как на рис. 10.33. Добавьте шапку и усы в состав группы, объединяющей голову с глазами, и сохраните сцену на диске вашего компьютера под заданным в начале упражнения именем Ded Moroz-Golova01.max.
Рис. 10.33. Голова Деда Мороза теперь с усами и в шапке, не хватает только бороды
ЗАМЕЧАНИЕ Вы можете найти готовую модель головы с шапкой и усами в файле Ded Moroz-Golova01. max, хранящемся в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге. |
Вешаем занавеску на окно кафе «МАХ»
Имитацию поведения ткани можно также использовать для моделирования занавесок. Заодно в данном примере мы изучим способ привязки тканей к твердым телам, которые могут иметь анимацию.
Для создания занавесок и анимации их посредством модуля reactor (Реактор) выполните следующие действия:
1. Откройте сцену MAX-kafe18.max, с которой мы работали в одной из предыдущих глав. Вы можете загрузить ее с компакт-диска, она находится в папке Scenes\Glava_15. Если вы помните, в этой сцене мы в учебных целях изменили зимний пейзаж на летний, скрыли снежные валики и применили к основанию сцены материал, имитирующий текстуру асфальта. Поэтому занавесь тут будет очень кстати. Она прикроет окно кафе «МАХ», когда палящее летнее солнце заглядывает в помещение во второй половине дня. Кроме этого, занавески на окнах всегда создают уют в помещении. Для удобства скройте все объекты сцены, кроме объекта Fasad. Над окном смоделируйте трубчатый карниз в виде удлиненного цилиндра с шариками на концах и кольцами для занавеси, в качестве которых используйте примитивы Torus (Top). Кольца равномерно разместите вдоль карниза. Детали карниза разместите вблизи от стены. Модуль reactor (Реактор) проверяет на наличие пересечений только те трехмерные объекты, которые включены в коллекцию жестких тел и которым назначена ненулевая масса. Если у жесткого тела масса нулевая, то есть оно не будет двигаться под действием силы тяжести, его сетка может иметь пересечения с другими телами. В нашем примере со взаимным пересечением можно разместить цилиндр карниза и шарики на его концах. Создайте занавесь в виде плоскости, разместив ее напротив окна, прямо под кольцами карниза. Увеличьте сегментацию плоскости до 22 по каждому измерению. Назначьте объектам материалы (рис. 17.16).
Рис. 17.16. Исходный вид изнутри кафе трехмерной сцены, подготовленной для анимации модулем reactor, с тканью, изображающей занавесь
2. Создайте коллекцию жестких тел и включите в нее все объекты геометрической модели сцены, кроме плоскости, имитирующей занавесь. Запустите утилиту reactor (Реактор) и установите для стены с отверстием переключатель Simulation Geometry (Моделируемая геометрия) в свитке Properties (Свойства) на панели Utilities (Утилиты) в положение Use Mesh (Использовать сетку) группы Concave (Вогнутый объект). Массы всех объектов, включенных в коллекцию жестких тел, оставьте равными нулю.
3. Примените к плоскости, изображающей занавесь, модификатор reactor Cloth (Реактор: Ткань). Оставьте в исходном состоянии все параметры модификатора reactor Cloth (Реактор: Ткань), но установите флажок Avoid Self-Intersections (Избегать самопересечений). Создайте коллекцию тканей и поместите плоскость-занавесь в состав списка этой коллекции.
4. После этого добавьте в сцену вспомогательный объект Wind (Ветер). Разместите его перед фасадом кафе напротив окна и направьте указатель флюгера на ткань. Задайте скорость ветра (Wind Speed) равной приблизительно 2,5 м/с.
5. Выполните прикрепление занавеси к жестким телам — кольцам карниза. Для этого выделите плоскость занавеси и раскройте свиток Constraints (Ограничители) на панели Modify (Изменить). Разверните дерево подобъектов модификатора reactor Cloth (Реактор: Ткань) в окне стека на панели Modify (Изменить) и выберите в стеке строку Vertex (Вершина). Все вершины плоскости в окнах проекций обозначатся синими точками. Щелкните в свитке Constraints (Ограничители) на кнопке Attach To RigidBody (Прикрепить к жесткому телу). В списке свитка появится строка с таким же именем. На панели Modify (Изменить) появится новый свиток, также называемый Attach To RigidBody (Прикрепить к жесткому телу) (рис. 17.17).
Рис. 17.17. Свиток Attach To RigidBody модификатора reactor Cloth
6. Выделите строку Attach To RigidBody (Прикрепить к жесткому телу) в списке свитка Constraints (Ограничители). Щелкните на кнопке с надписью None (Нет) под строкой параметра Rigid Body (Жесткое тело) в свитке Attach To RigidBody (Прикрепить к жесткому телу), затем щелкните па жестком теле, к которому должна быть прикреплена вершина сетки. В данном случае щелкните на крайнем левом кольце-тороиде. Наименование объекта появится на кнопке. Теперь выделите вершину в верхнем левом углу занавеси (рис. 17.18): С этого момента выделенная вершина связана с жестким телом и при анимации ткани будет сохранять свое положение относительно него.
Рис. 17.18. Вершина в левом верхнем углу занавеси (показана стрелкой) выделена для привязки к расположенному над ней кольцу
В свитке Attach To RigidBody (Прикрепить к жесткому телу) имеются еще два флажка:
Do not affect rigid body (He оказывать воздействия на жесткое тело) — если установить этот флажок, то жесткое тело, к которому прикреплена ткань, будет воздействовать на нее, но не будет получать обратного воздействия со стороны ткани;
Ignore Collisions (Игнорировать столкновения) — при установке этого флажка модуль reactor (Реактор) не будет отслеживать столкновения между тканью и жестким телом, к которому она прикреплена.
В нашем случае оставьте оба этих флажка сброшенными.
7. Перед тем как продолжить связывание остальных вершин с соответствующими жесткими телами, играющими роль колец карниза, переименуйте имя ограничителя, чтобы оно не путалось с именами ограничителей, которые предстоит добавить. Для этого следует выполнить щелчок на строке Attach To RigidBody (Прикрепить к жесткому телу) в списке свитка Constraints (Ограничители), задержать кнопку мыши нажатой, а потом отпустить. В строке появится курсор-каретка. Назовите ограничитель, например, Attach To RigidBodyl (Прикрепить к жесткому телу1).
8. Снова щелкните в свитке Constraints (Ограничители) на кнопке Attach To Rigid-Body (Прикрепить к жесткому телу). Повторите эти действия применительно ко второму слева кольцу и расположенной под ним вершиной. Переименуйте ограничитель, назвав его Attach То RigidBody2 (Прикрепить к жесткому телу2). Затем создайте еще три таких ограничителя и свяжите с их помощью три оставшихся кольца карниза с еще тремя вершинами сетки, расположенными под ними. В итоге в списке свитка Constraints (Ограничители) должно оказаться пять ограничителей, как показано на рис. 17.19. Связанные вершины, управляемые теми ограничителями, имена которых не выделены в списке свитка Constraints (Ограничители), должны иметь в окнах проекций mах 7.5 желтую окраску. Связанная вершина ограничителя, имя которого выделено в списке, должна быть окрашена в красный цвет. Если какая-то из выбранных вершин не имеет нужной окраски, выделите имя ограничителя в списке свитка Constraints (Ограничители) и снова выделите нужную вершину. Закончив связывание вершин, щелкните в стеке модификаторов на имени модификатора reactor Cloth (Реактор: Ткань), чтобы выключить доступ к подобъектам-вершинам и исключить возможность случайной отмены выделения связанных вершин.
Рис. 17.19. В списке свитка Constraints появилось пять переименованных ограничителей типа Attach To RigidBody
9. Выполните анимацию колец занавеси, заставив их смещаться к правому краю карниза (рис. 17.20). Имейте в виду, что сетка плоскости не будет перемещаться или деформироваться вместе с кольцами, так как ограничения вершин действуют только для модуля reactor (Реактор).
Рис. 17.20. Вид сцены кафе «МАХ», подготовленной для анимации модулем reactor, в которой кольца для занавеси в результате анимации смещены к краю карниза
10. Чтобы анимация колец продолжала определять их поведение в ходе имитационного моделирования, выполняемого модулем reactor (Реактор), выделите их поочередно и установите для каждого из них флажок Unyielding (Неподатлив) в свитке Properties (Свойства) утилиты reactor (Реактор) на панели Utilities (Утилиты).
11. Снова просмотрите анимацию в окне предварительного просмотра. Теперь занавесь должна не только реалистично развеваться на легком ветру, но сдвигаться в сторону вместе с кольцами карниза.
12. Чтобы увидеть анимацию в окнах проекций, выполните ее расчет. Создайте ключи анимации ткани, щелкнув по кнопке Create Animation (Создать анимацию). На рис. 17.21 показано, как могут выглядеть кадры анимации занавеси на окне кафе «МАХ» после визуализации.
Рис. 17.21. Визуализированные изнутри кафе кадры анимации ткани, имитирующей занавесь, до начала движения колец карниза и в процессе движения
Дополняем анимацию «Летящий шар»
Начнем знакомство с новым режимом анимации с простенького упражнения по превращению летящей сферы в терпящий бедствие сдувающийся воздушный шар. Пусть у этого шара в 50-м кадре началась утечка воздуха, так что он стал резко терять в объеме и форма его из гладкой и округлой постепенно стала становиться угловатой.
1. Загрузите созданную в упражнении 1 сцену Letiasshiy shar.max. При необходимости можете найти нужную сцену в файле с таким же именем, хранящемся в папке Scenes\Glava_16 компакт-диска, сопровождающего книгу. Сохраните сцену с инкрементированием имени. Для наглядности увеличьте значение радиуса сферы до 180 см.
2.
Так как анимация будет производиться в принудительном режиме, необходимо указать, для каких объектов следует устанавливать ключи. Это делается при помощи раскрывающегося списка, расположенного правее кнопки Auto Key (Автоключ). По умолчанию в списке выбирается вариант Selected (Выделенные), в соответствии с которым ключи будут создаваться для всех выделенных объектов сцены. Так как объект в нашей сцене всего один, достаточно было бы его выделить. Однако в учебных целях сделаем по-другому, чтобы показать: в принудительном режиме для создания ключей анимации совсем не обязательно выделять объекты.
3. Создайте именованный выделенный набор, включающий в себя единственный объект нашей сцены — примитив Sphere01. Итак, выделите сферу и введите в пустое текстовое поле Named Selection Sets (Именованные выделенные наборы) главной панели инструментов имя нового набора, например Vozdusniy shar. Нажмите клавишу Enter.
ЗАМЕЧАНИЕ
Именованные выделенные наборы можно создавать в max 7.5 и при помощи нового инструмента Named Selection Sets (Именованные выделенные наборы) главной панели инструментов. Если вы забыли, как это делается, обратитесь к главе 4. |
4. Теперь раскройте список, расположенный правее кнопки Auto Key (Автоключ), и выберите в нем появившееся имя набора Vozdusniy shar, как показано на рис. 16.32. Теперь можно отменить выделение сферы в окнах проекций. Ключи анимации все равно будут создаваться, так как сфера входит в именованный набор, указанный в списке.
Рис. 16.32. Имена наборов выделенных объектов сцены, созданных при помощи средств главной панели инструментов, появляются в списке после строки Selected
5. Далее необходимо указать, для каких параметров объектов, входящих в именованный набор, следует создавать ключи анимации. С этой целью щелкните на кнопке
Key Filters (Фильтры ключей). Появится окно диалога Set Key Filters (Выбор фильтров ключей), показанное ранее на рис. 16.3. Сбросьте установленные в нем по умолчанию флажки Position (Положение), Rotation (Поворот) и Scale (Масштаб), которые обеспечивают создание ключей трех стандартных преобразований. Сбросьте и флажок IK Parameters (IK-параметры), который активизирует установку ключей обратной кинематики (IK — Inverse Kinematics). Установите флажок Object Parameters (Параметры объекта), активизирующий установку ключей характеристических параметров объектов, присваиваемых им в момент создания, таких как радиус и число сегментов сферы, длина, ширина и высота параллелепипеда и т. п. С помощью этого окна диалога можно заказать установку еще следующих типов ключей:
Custom Attributes (Специальные атрибуты) — активизирует установку ключей анимации параметров, настраиваемых с помощью заказных элементов управления, которые могут создаваться пользователем на командной панели;
Modifiers (Модификаторы) — активизирует установку ключей анимации действия модификаторов;
Materials (Материалы) — активизирует установку ключей анимации материалов max 7.5.
Закройте окно Set Key Filters (Выбор фильтров ключей), щелкнув на кнопке с крестиком на правом краю заголовка этого окна.
6. Подготовительная работа завершена, теперь можно переходить к анимации. Щелкните на кнопке Set Key (Задать ключ). Кнопка зафиксируется и подсве-тится светло-красным цветом, указывая на то, что 3ds max находится в режиме принудительного создания ключей анимации.
7. Установите ползунок таймера анимации на отметку кадра № 50. Щелкните на большой кнопке Set Keys (Задать ключи) с изображением ключа, чтобы установить в этом кадре анимационные ключи, фиксирующие значения характеристических параметров сферы, выбранных с помощью окна диалога Set Key Filters (Выбор фильтров ключей). Это такие параметры, как радиус, число сегментов, наличие сглаживания, степень отсечки сферического сегмента и т. п. Кнопка на мгновение подсвечивается красным цветом, но не фиксируется. Обратите внимание на то, что если вы отменили выделение анимируемого объекта, то не увидите появления значка ключей в виде квадратика в строке треков.
ЗАМЕЧАНИЕ Так как мы не планировали изменять параметры сферы на интервале от нулевого кадра до кадра № 50, можно обойтись без установки ключей в кадре № 0. |
8. Теперь переместите ползунок таймера к отметке кадра № 100. Уменьшите значение радиуса сферы раза в три, скажем, до 60 см. Измените число в счетчике Segments (Сегментов) с 32 до 8, чтобы придать оболочке сдувающегося шара угловатый вид. Снова щелкните на кнопке Set Keys (Задать ключи). Обратите внимание на появление красных угловых скобочек вокруг стрелок всех счетчиков, имеющихся в свитке параметров сферы на панели Modify (Изменить). Такие скобочки всегда появляются вокруг стрелок счетчиков тех параметров, которые подвергнуты анимации.
9. Выключите режим анимации, щелкнув на кнопке Set Key (Задать ключ). Воспроизведите анимацию в окне проекции max 7.5 и наблюдайте за тем, как наш импровизированный воздушный шар, начиная с середины интервала анимации (рис. 16.33, вверху), теряет в объеме и становится все более угловатым (рис. 16.33, внизу).
Рис. 16.33. У шара во второй половине анимации уменьшаются радиус и число сегментов оболочки: вверху — кадр № 50; внизу — кадр № 100
10. Сохраните сцену под заданным в начале упражнения именем Letiasshiy shard .max.
Осваиваем новые инструменты редактирования NURBS-объектов
Приступим к созданию элементов одежды нашего персонажа. Особенностью этого упражнения будет знакомство с новыми понятиями и приемами, а также освоение на практике навыков использования некоторых новых инструментов редактирования NURBS-объектов, включая:
понятия о зависимых NURBS-объектах, таких как кривая, спроецированная по вектору {Vector Projected Curve), или кривая на поверхности (COS — Curve On Surface);
инструменты создания NURBS-поверхностей по опорному сечению и направляющей, а также проецирования NURBS-кривых на NURBS-поверх-ности;
метод вырезания отверстий в NURBS-поверхностях;
методы добавления новых кривых в список опорных сечений тела U-лофтинга, выравнивания статистики кривых и устранения искажений формы поверхности за счет изменения порядка следования управляющих вершин опорных кривых;
метод «сшивки» поверхностей, позволяющий создавать объекты с ветвящейся топологией;
метод создания зависимых дубликатов NURBS-объектов;
метод превращения зависимой кривой, спроецированной на поверхность, в кривую, зависящую только от этой поверхности и т. д.
Следует учесть, что наш персонаж носит гротескный характер, поэтому его пропорции явно должны отличаться от пропорций реалистичного персонажа. Если рост взрослого человека составляет обычно 6-7 вертикальных размеров его головы, то наш Дед Мороз гораздо более коренаст. Весь его рост не превышает 3,5-4 вертикальных размеров головы, а вертикальный размер шубы составляет всего около двух вертикальных размеров головы (рис. 10.34).
Рис. 10.34. Пропорции фигуры персонажа в сравнении с размером его головы
Чтобы одеть Деда Мороза в шубу, валенки и рукавицы, выполните следующие действия:
1. Продолжите работу над сценой, начатой в предыдущих упражнениях, или загрузите с компакт-диска файл Ded Moroz-Golova01.max, содержащий модель головы с шапкой и усами. Сохраните файл под именем Ded Moroz.max.
2. Шубу будем «шить» тем же проверенным методом U-лофтинга. Нарисуйте в окне вида сверху контур низа шубы в виде точечной NURBS-кривой. Назовите кривую Shuba. Размер кривой следует выбрать так, чтобы он гармонировал с размером головы. Совет неопределенный, но зато дает вам свободу в проявлении творческой фантазии. Скажем, рассуждать можно так: плечи должны быть немного шире шапки, а низ шубы — немного шире плеч, примерно как показано на рис. 10.35. Так как шуба нашего персонажа ни под каким разумным ракурсом не будет видна изнутри, нет смысла делать контур двойным. Только в том месте, где левая пола будет запахиваться поверх правой, следует сделать на кривой крючок.
Рис. 10.35. Кривая контура низа шубы в сравнении с размером головы
3. Создайте 6 копий исходной кривой, следя за тем, чтобы в окне диалога Sub-Object Clone Options (Параметры дублирования подобъектов) был установлен переключатель Independent Copy (Независимая копия). Разместите копии повертикали и масштабируйте их соответствующим образом, сформировав каркас будущей шубы, как показано на рис. 10.36.
Рис. 10.36. Примерное расположение по вертикали и предварительный масштаб кривых, образующих каркас шубы
4. Примените к опорным кривым инструмент U-лофтинга. Не забывайте о том, что может потребоваться перевернуть нормали сформированной NURBS-no-верхности. Как это делать, было описано в предыдущем упражнении. Дополнительно перемещая и масштабируя опорные кривые на уровне выделения иодобъекта Curve (Кривая), поработайте над формой шубы, проявив творческое воображение. Под шубой должны угадываться формы тела Деда Мороза, фигура которого за долгие годы скитаний с мешком на спине, надо полагать, давно перестала быть идеальной. Возможный вид шубы без рукавов показан на рис. 10.37.
Рис. 10.37. Так может выглядеть шуба Деда Мороза без рукавов и меховой оторочки снизу
5. Смоделируйте меховую оторочку низа шубы. Для этого на уровне выделения подобъекта Curve (Кривая) создайте копию нижней контурной кривой. Немного опустите ее вниз и расправьте изгиб конца кривой — это будет направляющая. Затем создайте контур сечения оторочки в виде сплайна Ellipse (Эллипс) и превратите его в NURBS-объект. Разместите обе кривые примерно так, как показано на рис. 10.38.
Рис. 10.38. Кривая-направляющая и кривая-сечение, подготовленные для моделирования меховой оторочки шубы
ЗАМЕЧАНИЕ Как уже указывалось в предыдущем упражнении, в 3ds max 7.5 возникают какие-то проблемы с преобразованием стандартных сплайнов в NURBS-кривые. Если в результате преобразования эллипса в кривую типа NURBS форма этой кривой в районе первой вершины сплайна будет искажена, что можно разглядеть только при сильном увеличении, выполните сначала преобразование стандартного сплайна в редактируемый, а уже затем в NURBS-кривую. |
6. Для создания оторочки примените инструмент Create 1 -Rail Sweep (Создать поверхность по одной направляющей), кнопка которого находится на левом краю нижнего ряда инструментов палитры NURBS. Этот инструмент является более близким аналогом традиционного сплайнового лофтинга, чем уже привычный вам инструмент U-лофтинга NURBS -кривых, не требующий направляющей. Щелкнув на кнопке инструмента создания поверхности по одной направляющей, переведите курсор в окно проекции и сначала щелкните на линии направляющей, а затем — на кривой сечения. Щелкните правой кнопкой мыши, чтобы закончить создание поверхности. Возможно, придется перевернуть нормали сформированной поверхности. Для этого следует установить флажок Flip Normals (Перевернуть нормали) в самом низу свитка 1 -Rail Sweep Surface (Поверхность с одной направляющей), который появляется на командной панели Modify (Изменить). Кроме того, потребуется сбросить установленный по умолчанию флажок Sweep Parallel (Параллельные сечения). Можно представлять себе, что поверхность создается как след перемещения выбранного сечения вдоль заданной направляющей. Если оставить этот флажок установленным, как это принято по умолчанию, то при перемещении кривой сечения его плоскость остается параллельной самой себе. Закончив манипуляции с флажками, снова переместите курсор в окно проекции и еще раз щелкните правой кнопкой мыши, чтобы выключить режим создания поверхностей по одной направляющей. Модель меховой оторочки должна иметь вид трубки, открытой на концах, как показано на рис. 10.39.
Рис. 10.39. Меховая оторочка шубы создана лофтингам сечения вдоль направляющей и имеет пока вид трубки, открытой на концах
7. Чтобы закрыть отверстие на видимом конце трубки, изображающей оторочку, можно было бы применить инструмент Create Cap Surface (Создать поверхность-крышку). Однако граница перехода между телом лофтинга и «крышкой» оказывается недопустимо резкой. Поступим иначе. Выделите кривую сечения оторочки на уровне подобъекта Curve (Кривая) и создайте две ее копии, несколько отодвинув их от исходной кривой. Уменьшите масштаб крайней копии до 1 % исходного размера, как мы уже делали неоднократно, а средней придайте такой масштаб, чтобы закругление было плавным. Примените к трем кривым инструмент Create U-Loft Surface (Создать поверхность методом U-лофтинга). В итоге оторочка должна принять вид, подобный изображению на рис. 10.40.
Рис. 10.40. Закругленный конец меховой оторочки сформирован U-лофтингом трех кривых: исходного сечения трубки и двух его уменьшенных копий
8. Выделите поверхность шубы на уровне подобъекта Surface (Поверхность) и установите для нее идентификатор материала, равный 1. Как это сделать, было описано выше в п. 6 упражнения по созданию шапки Деда Мороза. Затем выделите поверхность оторочки вместе с поверхностью закругления на ее торце и назначьте им идентификатор материала, равный 2. Сохраните файл с инкрементированием имени. Сравните шубу, которая получилась у вас, с той, что имеется в файле Ded Moroz.max, хранящемся в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге.
9. Займемся рукавами. Один рукав шубы (скажем, правый) смоделируем методом U-лофтинга, а второй создадим как копию первого. Для моделирования рукава подготовьте набор опорных кривых. С этой целью нарисуйте на виде слева стандартный сплайн-эллипс и превратите его в NURBS-объект. Расположите эллипс вблизи плеча шубы. Создайте необходимое количество копий эллипса, должным образом масштабируйте и разместите их в виде каркаса рукава. На рис. 10.41 показано примерное расположение исходной кривой и восьми ее копий, подготовленных для моделирования рукава с широким меховым обшлагом на конце. Кривые 2 и 3 помещены в средней части рукава с целью создания сегментации поверхности в районе локтевого сгиба, необходимой для плавного изгиба рукава при последующей скелетной деформации.
Рис. 10.41. Исходная кривая (1) и восемь ее копий (2-9) размещены, масштабированы и готовы к применению U-лофтинга
10. Примените к кривым инструмент Create U-Loft Surface (Создать поверхность методом U-лофтинга), но в два приема, чтобы к плечевой части рукава и меховому обшлагу на его конце можно было впоследствии применить два разных материала. Сначала выполните лофтинг кривых, обозначенных на рис. 10.41 цифрами 1-4. Щелкните правой кнопкой мыши для завершения лофтинга первой части поверхности. Не забывайте о том, что может потребоваться перевернуть нормаль создаваемой поверхности, установив флажок Flip Normals (Перевернуть нормали) в самом низу свитка U Loft Surface (Поверхность U-лофтинга). Затем выполните лофтинг кривых 4-9. В заключение щелкните в окне проекции правой кнопкой мыши, чтобы закончить лофтинг рукава, и еще раз, чтобы выйти из режима U-лофтинга. Рукав готов, как показано на рис. 10.42, но чтобы «пришить» его к шубе, необходимо включить все Подобъекты этого NURBS-объекта в состав объекта Shuba. С этой целью перейдите на уровень выделения объекта NURBS Surface (NURBS-поверхность) и выделите объект Shuba. Щелкните на кнопке Attach (Присоединить), которая зафиксируется и подсветится желтым цветом, а затем щелкните на поверхности рукава. И эта поверхность, и опорные кривые будут включены в состав объекта Shuba в качестве подобъектов.
Рис. 10.42. Рукав с меховым обшлагом готов, но пока еще не «пришит» к шубе
11. Выделите поочередно поверхности плечевой части рукава и обшлага на уровне подобъекта Surface (Поверхность) и установите для первой из них идентификатор материала, равный 1, а для второй — 2, как это было описано в п. 6 предыдущего упражнения по созданию шапки.
12. Чтобы «пришить» рукав, необходимо сначала спроецировать ближнюю к плечу опорную кривую, обозначенную на рис. 10.41 цифрой 1, на поверхность шубы, используя инструмент Create Vector Projected Curve (Создать проекцию кривой по вектору). С помощью этого инструмента строится проекция выбранной кривой на заданную поверхность в направлении, перпендикулярном плоскости активного окна проекции. Для облегчения процедуры активизируйте уровень выделения подобъекта Surface (Поверхность), выделите две поверхности рукава и скройте их от просмотра, щелкнув на кнопке Hide (Скрыть) в свитке Surface Common (Поверхность в целом). Затем переключитесь на уровень выделения подобъекта Curve (Кривая), выделите все кривые, кроме той, которая ближе всех к плечу, и скройте их, щелкнув на кнопке Hide (Скрыть) в свитке Curve Common (Кривая в целом).
ЗАМЕЧАНИЕ Как и во многих других ситуациях, возникающих в max 7.5, при работе с NURBS-объек-тами состав свитков на командной панели зависит от выбранного уровня выделения подобъектов или от выбранного инструмента редактирования. Это на самом деле очень удобно, но к такой «услужливости» программы следует привыкнуть. Пока такая привычка не выработается, часто возникает недоумение: куда же делся этот свиток, который только что был на командной панели? |
13.
Активизируйте окно вида слева. Щелкните на кнопке Create Vector Projected Curve (Создать проекцию кривой по вектору) — это вторая слева кнопка в нижнем ряду инструментов группы Curves (Кривые) палитры NURBS. Перенесите курсор в окно проекции и установите его на проецируемую кривую. Кривая приобретет синюю окраску, указывая на готовность к проецированию. Щелкните на ней кнопкой мыши и переместите курсор на поверхность шубы. За курсором потянется пунктирная линия, а поверхность также станет синей. Это означает, что можно щелкнуть кнопкой мыши для выполнения проекции. Через мгновение исходный цвет поверхности восстановится, и на ней появится желтый квадратик, как показано на рис. 10.43. Таким квадратиком помечается зависимая кривая, созданная на поверхности как проекция крайнего сечения рукава. Сама кривая в данном ракурсе не видна, но стоит немного повернуть плоскость проекции, и вы увидите ее в виде линии зеленого цвета. Таким цветом помечаются зависимые NURBS-объекты. Спроецированная кривая целиком зависит от двух объектов: кривой, которая проецировалась, и поверхности, на которую выполнялось проецирование. Чтобы выключить режим проецирования, щелкните правой кнопкой мыши.
Рис. 10.43. Создана проекция кривой на поверхность, о чем свидетельствует появление на поверхности желтого квадратика
14. Сейчас мы должны вырезать в шубе дырку по контуру спроецированной кривой. Поверните плоскость проекции, чтобы лучше видеть зависимую спроецированную кривую, и выделите эту кривую на уровне подобъекта Curve (Кривая). Прокрутите область свитков командной панели вверх, чтобы видеть свиток Vector Projected Curve (Кривая-проекция по вектору), и установите в этом свитке флажок Trim (Обрезка). Фрагмент поверхности, ограниченный спроецированной кривой, должен исчезнуть, как показано на рис. 10.44. Иногда после такой операции исчезает не фрагмент поверхности, ограниченный спроецированной кривой, а, наоборот, вся поверхность за пределами контура кривой. Остается только ограниченная кривой заплатка. Для исправления такой ситуации нужно установить еще и флажок Flip Trim (Перевернуть обрезку).
Рис. 10.44. Выполнена обрезка поверхности внутри контура зависимой кривой, спроецированной на поверхность
15. Восстановите видимость всех опорных кривых рукава, щелкнув на уровне подобъекта Curve (Кривая) на кнопке Unhide All (Сделать видимыми все). Затем восстановите видимость и поверхностей рукава, щелкнув на аналогичной кнопке, но уже на уровне выделения подобъекта Surface (Поверхность). Чтобы «пришить» рукав к шубе, достаточно всего лишь включить кривую, спроецированную на поверхность шубы, в состав опорных кривых поверхности рукава. Выделите часть поверхности, ближайшую к плечу. Она приобретет красный цвет, а на командной панели появится свиток U Loft Surface (Поверхность U-лофтинга). В верхней части этого свитка имеется список U Curves (U-кривые), в котором перечислены все опорные кривые выделенной поверхности, созданной методом U-лофтинга, в том порядке, в каком они выбирались в процессе создания поверхности. Простое изменение порядка следования кривых в списке приводит к полной перестройке поверхности лофтинга, но мы с этим экспериментировать не будем. Если вы выполняли лофтинг, выделяя кривые в порядке от плеча к концу рукава, то в верхней строке списка будет имя кривой, ближайшей к плечу. Предположим, что эта кривая обозначена в списке как CV Curve 09 (CV-кривая09), хотя у вас это имя может быть и другим. Наша задача — поместить наверх списка кривую, созданную методом проецирования, чтобы она стала первой опорной кривой тела лофтинга. Вставка новой кривой в список опорных производится всегда непосредственно над выделенной кривой. Выделите верхнюю строку списка опорных кривых. В окнах проекций соответствующая кривая окрасится синим цветом. Убедитесь, что это самая ближняя к плечу кривая. Щелкните в нижней части свитка на кнопке Insert (Вставить), затем переместите курсор в окно проекции и щелкните на спроецированной зависимой кривой. Имя кривой, скажем, Vector Projected Curve 01 (Кривая 01-проекция по вектору), появится наверху списка опорных кривых. Имейте в виду, что в вашем случае имя кривой может и отличаться от указанного. Поверхность рукава теперь строится от данной кривой, хотя в окнах проекций этого не видно. Сейчас вам станет понятно, в чем причина.
16. Между спроецированной кривой и первым сечением рукава имеет место переворот нормалей поверхности, которая как бы выворачивается наизнанку. Такой переворот может возникать в случаях, когда лофтинг выполняется от кривой-проекции к той кривой, которая проецировалась. Чтобы устранить этот недостаток, выделите кривую Vector Projected Curve 01 (Кривая 01-проекция по вектору) в списке U Curves (U-кривые) свитка U Loft Surface (Поверхность U-лоф-тинга) и установите флажок Reverse (Перевернуть), расположенный сразу под списком. Теперь рукав выглядит так, как надо — посмотрите на рис. 10.45.
Рис. 10.45. Рукав «пришит» за счет того, что в состав опорных кривых лофтинга рукава включена кривая, спроецированная на поверхность шубы
17. Чтобы приделать к шубе второй рукав, поступите следующим образом. Переключившись на уровень выделения подобъекта Curve (Кривая), выделите все девять опорных кривых рукава вместе с обшлагом, за исключением зависимой спроецированной кривой. Удерживая клавишу Shift, переместите выделенные кривые в сторону, создав тем самым копию всех девяти кривых. Как и раньше, установите переключатель в появившемся окне диалога в положение Independent Copy (Независимая копия) и щелкните на кнопке ОК. Переместите всю группу кривых, расположив их напротив левого плеча шубы, и поверните на 180°, как показано на рис. 10.46.
Рис. 10.46. Копия всех девяти опорных кривых рукава помещена возле левого плеча шубы
18. Дальше действуйте точно так же, как при создании правого рукава. Скройте все кривые, кроме ближайшей к плечу. Спроецируйте эту кривую на поверхность шубы. Вырежьте отверстие внутри спроецированной кривой, выделив ее и установив флажок Trim (Обрезка). В заключение восстановите видимость всех кривых и выполните лофтинг левого рукава в два приема. Сначала постройте поверхность плечевой части рукава, начиная с зависимой спроецированной кривой. Если возникнет переворот нормалей поверхности между спроецированной кривой и ближним к плечу опорным сечением рукава, выделите кривую Vector Projected Curve 02 (Кривая 02-проекция по вектору) на самом верху списка U Curves (U-кривые) в свитке U Loft Surface (Поверхность U-лоф-тинга) и установите флажок Reverse (Перевернуть). Затем отдельно создайте поверхность обшлага на конце рукава, как показано на рис. 10.47. Поочередно выделите обе поверхности и присвойте плечевой части рукава идентификатор материала, равный 1, а обшлагу — равный 2. Сохраните файл с инкрементированием имени. Сравните получившуюся у вас шубу с рукавами с той, что имеется в файле Ded Moroz01.max, хранящемся в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге.
Рис. 10.47. У шубы появился второй рукав
19. Воротник смоделируйте методом U-лофтинга. Для этого сначала нарисуйте на виде слева точечную NURBS-кривую, изображающую контур сечения воротника. Назовите ее Vorotnik. При этом, как показано на рис. 10.48, может потребоваться предварительно восстановить видимость головы персонажа, положение которой по отношению к шубе нужно будет подкорректировать.
Рис. 10.48. Точечная NURBS-кривая, изображающая сечение средней части воротника
20. Создайте необходимое число копий нарисованной кривой, разместив их по периметру воротника. Каждую новую копию нужно будет дополнительно масштабировать и поворачивать, примерно так, как показано на рис. 10.49, формируя каркас воротника. На рисунке показано 15 кривых, но можете сделать и меньшее или большее число копий. Масштаб крайних опорных кривых на обоих концах воротника уменьшен до 1 % от исходного размера. Концы воротника умышленно сделаны тонкими и опущены вниз, чтобы оставить место для бороды Деда Мороза.
Рис. 10.49. Исходная кривая (8) и четырнадцать ее копий (1-7, 9-15) размещены по периметру будущего воротника
21. Выполните U-лофтинг поверхности воротника по опорным кривым. После этого откорректируйте положение готового воротника по отношению к шубе и голове персонажа, примерно так, как показано на рис. 10.50. Присоедините воротник к шубе с помощью инструмента Attach (Присоединить) или просто сгруппируйте его с шубой. Сохраните файл с инкрементированием имени. Готовую фигуру Деда Мороза в шубе с воротником можно найти в файле Ded Moroz02.max, который хранится в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге.
Рис. 10.50. Готовый воротник, сформированный методом U-лофтинга, помещен на положенное ему место
22. Так как наш персонаж имеет достаточно упрощенный вид, руки ему заменяют рукавицы. Создайте эти рукавицы тоже методом U-лофтинга. Сначала на виде слева или справа нарисуйте эллипс, вытянутый по вертикали, который будет играть роль сечения рукавицы. Превратите его в NURBS-объект и разместите перед обшлагом рукава. Постройте три-четыре копии сечения, разместите их в виде каркаса рукавицы и должным образом масштабируйте, примерно как показано на рис. 10.51. Масштаб крайнего сечения, обозначенного на рисунке цифрой 4, уменьшите до 1 % от исходного.
Рис. 10.51. Исходная кривая (1) и три ее копии (2-4) подготовлены для лофтинга рукавицы
23. Выполните U- лофтинг рукавицы. При необходимости установите флажок Flip Normals (Перевернуть нормали). Присоедините рукавицу к NURBS-объекту Shuba, действуя, как было описано выше в п. 9 данного упражнения. Чтобы рукавица не была оторвана от рукава, включите кривую, обозначенную на рис. 10.51 цифрой 1, в состав опорных кривых обшлага. Для этого выделите поверхность обшлага на уровне подобъекта Surface (Поверхность), затем выделите в списке U Curves (U-кривые) опорных кривых в свитке U Loft Surface (Поверхность U-лофтинга) самую нижнюю строку, которая читается как---End-----. Щелкните на кнопке Insert (Вставить), а затем — на ближней к обшлагу опорной кривой рукавицы. Имя кривой появится в самом низу списка, а поверхность обшлага будет продолжена до стыковки с поверхностью рукавицы. Стык поверхностей получится не очень гладким, так как число управляющих вершин опорных кривых обшлага и рукавицы никак не согласовано между собой. Чтобы сделать поверхность обшлага в районе стыка несколько более гладкой, выделите имя только что добавленной кривой в списке U Curves (U-кривые) и установите флажок Auto Align Curve Stats (Автовыравнивание статистик кривых) в нижней части свитка U Loft Surface (Поверхность U-лофтинга). В итоге у вас должна получиться конструкция, подобная показанной на рис. 10.52.
Рис. 10.52. Поверхность рукавицы создана методом U-лофтинга и с ней состыкована поверхность обшлага
24. Чтобы приделать к рукавице большой палец, сначала нужно действовать так же, как при «пришивании» рукава к шубе. Создайте в окне вида сверху точечную кривую в форме эллипса и поместите ее над тем местом, из которого должен «расти» палец. Присоедините созданную кривую к объекту Shuba и спроецируйте ее на поверхность рукавицы, как было описано выше в п. 12. Повернув плоскость проекции, выделите спроецированную кривую и установите флажок Trim (Обрезка), чтобы вырезать в рукавице отверстие по контуру кривой, как показано на рис. 10.53.
Рис. 10.53. В поверхности рукавицы вырезано отверстие для большого пальца
25. Теперь опять возникает некоторая новизна. Нам не нужно, чтобы большой палец торчал перпендикулярно поверхности рукавицы, но если выполнять лофтинг с использованием спроецированной кривой и той кривой, которая проецировалась, то так и произойдет. Следовало бы повернуть кривую, которая проецировалась, расположив ее под углом к поверхности рукавицы. Однако при попытке это сделать вы столкнетесь с тем, что кривая-проекция будет автоматически модифицироваться. Ведь она полностью зависима от той кривой, проекцией которой является. Значит, нужно разорвать эту зависимость, сохранив, однако, зависимость спроецированной кривой от поверхности, на которой она располагается. Этого можно добиться, если преобразовать спроецированную кривую к типу COS (Curve On Surface — Кривая на поверхности). Пока спроецированная кривая еще выделена, щелкните на кнопке Make COS (Сделать кривой на поверхности) в свитке Surface Common (Кривая в целом). В появившемся окне диалога Convert Curve On Surface (Преобразование кривой на поверхности) установите переключатель в положение Point Curve On Surface (Точечная кривая на поверхности) и задайте нужное число точек (скажем, 10) в счетчике Number of Points (Число точек). Щелкните на кнопке ОК. После этого можно будет безболезненно переместить и повернуть ту кривую, проекцию которой мы только что сделали независимой. Создайте пару копий этой кривой, масштабируйте их и разместите примерно так, как показано на рис. 10.54. Масштаб крайнего опорного сечения, обозначенного на рис. 10.54 цифрой 4, уменьшите, как обычно, до 1 % от исходного размера. Выполните построение поверхности пальца методом U-лофтинга, начиная процесс с кривой типа COS. He забудьте для устранения переворота нормалей между кривой типа COS на поверхности рукавицы и первым опорным сечением выделить поверхность пальца и выполнить переворот спроецированной кривой, выделив ее имя в списке U Curves (U-кривые) свитка U Loft Surface (Поверхность U-лофтинга) и установив флажок Reverse (Перевернуть).
Рис. 10.54. U- лофтинг большого пальца рукавицы выполнен от кривой типа COS (7) по трем опорным кривым {2-4)
26. Для создания второй рукавицы применим иной метод копирования, чем тот, что использовался при создании второго рукава шубы. Переключившись на уровень выделения подобъекта Surface (Поверхность), выделите поверхность пальца рукавицы. Удерживая клавишу Shift, на виде сверху переместите поверхность в сторону. Вы обнаружите, что за пальцем потянется и копия рукавицы со всем набором опорных кривых. Отпустите кнопку мыши, и на экране появится уже знакомое вам окно диалога Sub-Object Clone Options (Параметры дублирования подобъектов). Теперь внимание, наступает важный момент! До сих пор мы дублировали NURBS-объекты, устанавливая переключатель Independent Copy (Независимая копия). Если и на этот раз установить этот переключатель и щелкнуть на кнопке ОК, то будет скопирована только поверхность пальца, даже без опорных кривых, по которым она построена. Но мы поступим по-другому. Установите переключатель окна диалога Sub-Object Clone Options (Параметры дублирования подобъектов) в положение Relational Сору (Зависимая копия). При данном положении переключателя используется установленный по умолчанию флажок Include Relational Parents (Включая родительские зависимости). Это значит, что копируемый объект сохраняет все свои зависимости, а все Подобъекты, от которых он зависел, копируются вместе с ним. В данном случае вместе с поверхностью пальца будут скопированы опорные кривые этой поверхности. Но это еще не все. Так как одна из опорных кривых пальца, обозначенная на рис. 10.54 цифрой 1, в свою очередь, зависит от поверхности рукавицы, то копируется и эта поверхность. А так как поверхность рукавицы зависит от своих опорных кривых, то копируются и они, как видно на рис. 10.55. Щелкните на кнопке ОК, разместите копию рукавицы на положенном ей месте и соедините с левым рукавом, как было описано выше в п. 22. Сохраните файл с инкрементированием имени. Для сравнения можете загрузить модель Деда Мороза в шубе с воротником и с рукавицами на руках из файла Ded Moroz03.max, который хранится в папке Scenes\ Glava_10 компакт-диска, прилагающегося к книге.
Рис. 10.55. Копия рукавицы сформирована за счет копирования одной только поверхности большого пальца в режиме Relational Copy
27. В создании валенок нет никаких секретов: простой U-лофтинг. Так что много тут рассказывать не о чем. Создайте эллиптическую NURBS-кривую подходящего размера либо за счет преобразования стандартного эллипса, либо нарисовав ее вручную. Постройте какое-то число независимых копий этой кривой, расположите их в виде каркаса будущего валенка и должным образом масштабируйте, скажем, как показано на рис. 10.56. Как обычно в таких случаях, масштаб крайнего сечения (кривая 8 на рис. 10.56) уменьшите до 1 % от исходного размера, стянув его почти в точку.
Рис. 10.56. Исходная кривая (7) и семь ее копий (2-8) размещены, масштабированы и подготовлены к применению инструмента U-лофтинга
28. Примените к кривым инструмент U-лофтинга. Создайте зависимую копию поверхности валенка вместе с опорными кривыми и разместите оба валенка снизу под шубой. Не забудьте посмотреть на фигуру слева или справа, чтобы совместить точку опоры с проекцией кажущегося центра тяжести. В итоге наш персонаж должен выглядеть примерно так, как показано на рис. 10.57. Еще раз сохраните файл с инкрементированием имени. Для сравнения можете загрузить готовую модель Деда Мороза в шубе с воротником, с рукавицами на руках и валенками на ногах из файла Ded Moroz04.max, который хранится в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге.
Рис. 10.57. Модель Деда Мороза почти готова, не хватает только бороды
29. Бороду Деда Мороза создадим все тем же методом U-лофтинга. Предварительно можете скрыть от просмотра воротник и шубу, чтобы они не мешали на начальном этапе работы над бородой. Чтобы борода плотно прилегала к лицу, сначала нарисуйте на виде спереди кривую, изображающую контур краев бороды на лице персонажа, как показано на рис. 10.58. Главное — не допустить, чтобы контур выступал за границы проекции головы персонажа, иначе проецирование кривой будет невозможно. Затем на виде справа или слева поместите эту кривую перед головой. Переключившись на верхний уровень выделения, выделите объект-голову и присоедините к ней кривую с помощью инструмента Attach (Присоединить). Активизируйте окно проекции Front (Вид спереди) и выполните проецирование кривой на нижнюю часть головы в направлении, перпендикулярном плоскости этого окна, с использованием инструмента Create Vector Projected Curve (Создать проекцию кривой по вектору). Установите флажок Trim (Обрезать), вырезав отверстие по контуру спроецированной кривой. Для использования проецируемой кривой в качестве одного из опорных сечений бороды эту кривую нужно переместить вниз и слегка повернуть. Чтобы суметь это сделать, нужно разорвать связь между проецируемой кривой и ее проекцией, точно так же, как мы поступали, приделывая палец к рукавице. С этой целью выделите спроецированную кривую, переключившись на уровень выделения подобъекта Curve (Кривая), и преобразуйте ее к типу COS (Кривая на поверхности), щелкнув на кнопке Make COS (Сделать кривой на поверхности) в свитке Surface Common (Кривая в целом). В появившемся окне диалога Convert Curve On Surface (Преобразование кривой на поверхности) установите переключатель в положение CV Curve On Surface (CV-кривая на поверхности) и задайте нужное число управляющих вершин (скажем, 20) в счетчике Number of CVs (Число управляющих вершин). Щелкните на кнопке ОК.
Рис. 10.58. Контур бороды в виде точечной NURBS-кривой подготовлен к проецированию
30. Теперь нужно создать некоторое количество опорных сечений бороды. В качестве одного из них можно использовать кривую, которую мы проецировали на предыдущем шаге. Эту кривую нужно несколько опустить вниз на виде спереди, сместить вперед на виде сбоку и подкорректировать по форме. Создайте еще три-четыре копии этой кривой и разместите их в виде каркаса бороды. При этом следует располагать кривые так, чтобы борода разместилась поверх шубы и не проникала через воротник. Примерное расположение опорных сечений бороды показано на рис. 10.59. Чтобы борода выглядела волнистой, отредактируйте форму каждого сечения, переключившись на уровень выделения подобъекта. Выполните U-лофтинг поверхности бороды, начиная с кривой типа COS, обозначенной цифрой 1 на рис. 10.59. Вероятно, как и в предыдущих подобных случаях, потребуется выделить имя кривой типа COS в списке опорных кривых поверхности U-лофтинга, где эта кривая по-прежнему должна именоваться Vector Projected Curve (Кривая-проекция по вектору), и установить флажок Reverse (Перевернуть). Кроме того, потребуется установить флажок Auto Align Curve Stats (Автовыравнивание статистик кривых), так как мы выполняли преобразование спроецированной кривой, и число ее управляющих вершин отличается от числа вершин опорных кривых тела лофтинга. В заключение выделите поверхность бороды на уровне подобъекта Surface (Поверхность) и присвойте ей идентификатор материала, равный 2. В итоге наш Дед Мороз должен приобрести вид, подобный показанному ранее на рис. 10.11. Сохраните файл, который на данный момент должен иметь имя Ded Moroz05.max. Вы можете найти полностью готовую модель Деда Мороза в файле Ded Moroz05.max, хранящемся в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге.
Рис. 10.59. Кривая типа COS (1) и пять опорных сечений (2-6) подготовлены для U-лофтинга
Итак, завершено большое и достаточно сложное упражнение, в ходе которого вам довелось испытать на практике многие из инструментов, приемов и методов работы с NURBS-поверхностями и кривыми. Разумеется, мы смогли близко познакомиться далеко не со всеми инструментами и методами. Надеюсь, что если вас заинтересовал класс NURBS-объектов, вы сможете продолжить знакомство с секретами данного раздела трехмерной графики самостоятельно, используя для этой цели электронный справочник программы max 7.5.
Превращаем вазу в кубок
Используя средства редактирования полигональных сеток, можно легко превратить вазу в кубок, вручаемый победителям в соревнованиях. Предположим, что этот кубок кафе «МАХ» получило на конкурсе среди заведений общепита за лучшее обслуживание посетителей. Теперь кубок стоит на видном месте. От вазы он отличается наличием двух ручек с обеих сторон, а также литой надписью в виде цифры 1, которая символизирует первое место.
1. Откройте файл Vaza.max, сохраненный вами на этапе, когда у вазы появилась ручка. Вы можете открыть этот файл с компакт-диска. Он находится в папке Scenes\Glava09. Использовать уже готовую вазу, которую мы сохранили под именем Vaza01.max, не имеет смысла, поскольку в результате использования инструмента MeshSmooth (Сглаживание сетки) полигональная структура объекта была изменена, и сделать симметричную ручку средствами редактирования полигональных сеток практически невозможно.
2. Итак, вам придется проделать все те же самые действия, которые вы производили, создавая первую ручку, но уже с другой стороны объекта. Повторите шаги 3-4 предыдущего упражнения. После того как вы замкнете вторую ручку инструментом Bridge (Мост), как и в предыдущем примере (см. шаг 5), нужно будет сгладить модель. Но в этом случае нужно будет использовать инструмент MeshSmooth (Сглаживание сетки) трижды, поскольку для создания отлитой надписи на кубке необходимо, чтобы модель была высокополигональной. Чтобы придать кубку положенную форму, сузим его (как ранее мы это делали с вазой) модификатором Taper (Заострение). В настройках модификатора счетчик Curve (Кривизна) установите равным -1,8.
3. Теперь, наконец, можно переходить к формированию надписи. Для этого нужно снова превратить объект в полисетку любым удобным для вас способом. Перейдя на уровень выделения подобъекта Polygon (Полигон), раскройте свиток Paint Deformation (Деформация кистью) и нажмите кнопку Push/Pull (Вдавливание/Вытягивание). Параметр Push/Pull Value (Сила вдавливания/вытягивания), обозначающий силу воздействия виртуальной кисти на объект, установите равным 1. Размер кисти, определяемый параметром Brush Size (Размер кисти), установите равным 1,3. Поднесите курсор к модели, и вы увидите виртуальную кисть, которая представляет собой касательную плоскость с нормалью в точке наведения курсора на объект. Нажмите кнопку мыши и переместите курсор по поверхности объекта, наблюдая за ее деформацией. Изобразите на кубке цифру 1. Несмотря на то что форма у единички несложная, почти наверняка с первого раза вы не получите деформацию нужной формы, поэтому выполняйте отмену и пробуйте снова. В конце концов, вы получите вот такой кубок (рис. 9.45), который предлагаю вам сохранить иод названием Kubok.max.
Рис. 9.45. Кубок с надписью
Пробуем применить эффект объемного освещения в сцене «МАХ-кафе»
Чтобы еще более усилить атмосферу туманного, промозглого осеннего вечера, попробуйте применить эффект объемного освещения к одному из направленных источников сцены «МАХ-кафе». Заодно воспользуемся случаем, чтобы изучить еще один способ применения эффектов внешней среды к источникам света.
Чтобы освоить эффект объемного освещения, выполните следующие действия: 1. Откройте файл MAX-kafe19.max или продолжите работу над сценой, если она уже загружена в программу max 7.5. При необходимости загрузите сцену МАХ-kafe19.max из папки Scenes\Glava_15 компакт-диска, прилагающегося к книге. Сохраните сцену с инкрементированием имени файла.
2. Выделите направленный осветитель Fspot01, который располагается ближе к окну кафе. Увеличьте яркость света в счетчике Multiplier (Усилитель) до 0,7. Затем выделите Всенаправленный осветитель, расположенный снаружи от здания кафе перед его фасадом, и уменьшите его яркость до 0,3, чтобы эффект объемного освещения был лучше заметен.
3. К источникам света можно применять эффекты внешней среды не с помощью окна диалога Environment and Effects (Внешняя среда и эффекты), а с помощью свитка Atmospheres & Effects (Атмосфера и эффекты), появляющегося на командной панели Modify (Изменить) при выделенном осветителе. Выделите источник света Fspot01 и разверните свиток Atmospheres & Effects (Атмосфера и эффекты), располагающийся в самом низу панели. Щелкните на кнопке Add (Добавить) и выберите строку Volume Light (Объемное освещение) в окне диалога Add Atmosphere or Effect (Добавление атмосферного или оптического эффекта) Имя выбранного эффекта появится в списке свитка Atmospheres & Effects (Атмосфера и эффекты).
4. Для настройки эффекта выделите его имя в списке свитка и щелкните на кнопке Setup (Настройка). Появится уже знакомое нам окно диалога Environment and Effects (Внешняя среда и эффекты), раскрытое на вкладке Environment (Внешняя среда). В список Effects (Эффекты) этой вкладки также будет добавлена строка Volume Light (Объемное освещение). Эта строка будет автоматически выделена, и в нижней части окна появится свиток Volume Light Parameters (Параметры объемного освещения), показанный на рис. 15.47.
Рис. 15.47. Свиток Volume Light Parameters содержит все необходимые элементы для настройки параметров этого атмосферного эффекта
5. Обратите внимание на то, что эффект объемного света уже применен к выбранному осветителю. Об этом говорит имя источника света Fspot01 в раскрывающемся списке справа от кнопки Pick Light (Указать источник) в разделе Lights (Источники света). Если бы мы выбирали эффект объемного света традиционным способом, с помощью кнопки Add (Добавить) свитка Atmosphere (Атмосфера) окна диалога Environment and Effects (Внешняя среда и эффекты), то следовало бы указать осветитель, к которому будет применен этот эффект. С этой целью нужно было бы щелкнуть на кнопке Pick Light (Указать источник) и выделить источник света Fspot01 в любом из окон проекций сцены. Результат был бы тот же: имя источника появилось бы в раскрывающемся списке справа от кнопки Pick Light (Указать источник).
ЗАМЕЧАНИЕ Одному и тому же источнику света можно назначить несколько эффектов объемного освещения, а один и тот же эффект можно применить к нескольким источникам света. Чтобы указать несколько источников света, щелкните на кнопке Pick Light (Указать источник), а затем нажмите клавишу п. Появится окно диалога Pick Object (Выбор объекта), позволяющее выбрать несколько источников света. Чтобы удалить источник света из списка, выделите его и щелкните на кнопке Remove Light (Удалить источник). Источник света останется в сцене, но более не будет при визуализации демонстрировать эффект объемного освещения. |
6. В разделе Volume (Объем) свитка Volume Light Parameters (Параметры объемного освещения) настройте значения следующих параметров объемного освещения:
Density (Плотность) — плотность воображаемого тумана. Чем выше плотность, тем больше света рассеивается туманом и тем он ярче. Плотность задается в процентах от той, при которой туман становится полностью непрозрачным. Задайте плотность равной 10;
Max Light % (Максимальная яркость, %) — максимальная яркость света. Чем дальше туман от источника света, тем он плотнее и тем ярче выглядит в луче объемного света. Данный параметр позволяет ограничить яркость тумана, чтобы она не возрастала бесконечно по мере удаления от источника. Предел яркости задается в процентах от интенсивности источника света. Установите его равным 50.
7. Задайте уровень качества фильтра полутонов объемного освещения, установив переключатель Filter Shadows (Качество фильтра полутонов) в положение High (Высокое). Это обеспечит формирование наиболее плавных перепадов тонов объемного света за счет увеличения числа отсчетов в выборке, соответствующей области объемного пучка, и дополнительного сглаживания изображения. Этот вариант лучше всего выбирать при выполнении итоговой «чистовой» визуализации, а при тестовой визуализации стоит установить переключатель в положение Low (Низкое) или Medium (Среднее).
8. Установите флажок Noise On (Зашумление вкл.) в разделе Noise (Зашумле-ние), чтобы внести некоторые случайные возмущения в изображение объемного пучка света. Действие параметров данной группы подобно действию функции случайных пятен материала и сводится к добавлению случайных неоднородностей в виде светлых и темных участков в области объемного освещения. Задайте значение параметра Amount (Степень) равным 0,4, что обеспечивает хорошее визуальное правдоподобие результата. Этот параметр определяет степень возмущения тумана. Величина 0 соответствует полному отсутствию возмущений, 1 — возмущению всего объема. Выберите тип алгоритма возмущения, установив переключатель Туре (Тип) в положение Regular (Обычный). Параметр Size (Размер), задающий средний размер клубов тумана, установите равным 30. Оставьте величины всех остальных параметров равными их исходным значениям, принятым по умолчанию.
9. Визуализируйте изображение в окне проекции Camera01 (Камера01). Результат должен быть подобен рис. 15.48. Сохраните сцену под измененным в начале работы именем MAX-kafe20.max.
Рис. 15.48. Результат визуализации сцены с эффектами слоистого тумана и объемного освещения
Продолжаем создавать
В предыдущем упражнении мы попробовали создать стандартный материал на основе простейшей вложенной текстуры. Продолжим работу в этом направлении, создав материал, имитирующий тлеющие угли горящих в камине поленьев. Попытаемся воплотить следующий план. Чтобы обугленные поленья выглядели на одном конце раскаленными, а на другом — остывающими, покрытыми золой и едва тлеющими, применим в качестве основной карту текстуры Gradient (Градиент). Для имитации характерного узора тлеющего дерева в состав карты градиента введем вместо цветовых компонентов текстуру типа Cellular (Ячеистая). Наконец, для имитации случайных мерцаний угольков цвет ячеек карты Cellular (Ячеистая) заменим на текстуру типа Noise (Неоднородности). Иерархическая структура задуманной нами сложной составной текстуры показана на рис. 14.72.
Рис. 14.72. Структура стандартного материала горящих поленьев, основанного на карте текстуры градиента
Итак, для имитации материала горящих поленьев выполните следующие действия:
1. Продолжите работу над предыдущей сценой. Скройте все объекты, кроме двух поленьев — объектов Poleno01 и Poleno02. Активизируйте очередную свободную ячейку Редактора материалов и назовите новый материал Goriachie ugli (Горячие угли). В свитке Blinn Basic Parameters (Базовые параметры раскраски по Блинну) оставьте в качестве всех параметров материала их исходные значения, только в счетчике Self-Illumination (Самосвечение) установите величину 100, сделав материал предельно светящимся. Щелкните на маленькой квадратной кнопке справа от цветового поля параметра Diffuse (Диффузный) и выберите в появившемся окне просмотра материалов и карт текстур карту типа Gradient (Градиент). По умолчанию карта текстуры градиента имитирует плавный равномерный пере: ход цвета от чисто-белого к черному через оттенок серого, как видно из свитка Gradient Parameters (Параметры градиента), показанного на рис. 14.73.
Рис. 14.73. Свиток параметров текстуры градиента демонстрирует образцы опорных цветов, принятых по умолчанию
2. Щелкнув на кнопке Sample Type (Тип образца) справа от ячеек образцов Редактора материалов и задержав кнопку мыши нажатой, измените тип образца в ячейке со сферы на цилиндр, чтобы переход цветовых оттенков был более очевиден, как показано на рис. 14.74. Очевидно, что такой материал пока мало напоминает обугленное полено.
Рис. 14.74. Исходный вид материала, основанного на текстуре градиента
3. Измените значение счетчика Amount (Степень) в разделе Noise (Неоднородности) с принятой по умолчанию величины 0 на 0,9. В качестве всех остальных параметров оставьте их исходные значения. Поменяйте местами образцы белого и черного цветов. Для этого щелкните на образце белого цвета, перетащите его и положите поверх образца черного цвета. В появившемся окне диалога Copy or Swap Colors (Копировать или поменять цвета) щелкните на кнопке Swap (Поменять). Зашумленная картина градиента будет уже в большей степени напоминать искомый результат, как видно на рис. 14.75.
Рис. 14.75. После зашумления текстуры градиента материал больше походит на обгорелое полено
4. Теперь настало время заменить белый и серый образцы цвета картами ячеистой текстуры, призванной изобразить характерный рисунок обугленного дерева. Щелкните на кнопке с надписью None (Отсутствует) справа от образца белого цвета, имеющего имя Color # 1 (Цвет № 1), и выберите в списке окна диалога Material/Map Browser (Просмотр материалов и карт текстур) строку Cellular (Ячеистая). В появившемся свитке Cellular Parameters (Параметры ячеистой структуры), показанном на рис. 14.76, установите переключатель в разделе Cell Characteristics (Характеристики ячеек) в положение Chips (Угловатые). Ячейки, которые по умолчанию выглядят округлыми, примут форму осколков с линейными сторонами. Задайте средний размер ячеек в счетчике Size (Размер) равным 15 и установите степень разброса размеров ячеек относительно среднего в счетчике Spread (Разброс) равной 0,25. Установите флажок Fractal (Фрактал), что обеспечивает генерацию ячеек по фрактальному алгоритму. В этом случае перегородки между ячейками будут выражены не столь явно, как показано на рис. 14.77.
Рис. 13.76. Свиток параметров ячеистой текстуры позволяет настраивать форму ячеек, а также цвета заливки ячеек и разделяющих их перегородок
Рис. 14.77. На белых участках текстуры градиента появились явно выраженные ячейки, имитирующие распад обугленной древесины
5. Теперь осталось только создать еще один уровень вложения текстур. Щелкните на образце цвета в разделе Cell Color (Цвет ячейки) и задайте в качестве основного цвета ячеек красно-оранжевый с RGB-компонентами (255; 42; 0). Затем щелкните на кнопке с надписью None (Отсутствует) справа от образца цвета и выберите в появившемся списке текстуру типа Noise (Неоднородности). В свитке Noise Parameters (Параметры неоднородностей), показанном на рис. 14.78, увеличьте значение в счетчике Low (Нижний) группы Noise Threshold (Порог неоднородностей) с 0 до 0,3, чтобы сделать кромки случайных пятен несколько более сглаженными. Затем измените исходные значения цветов пятен. В поле образца Color # 1 (Цвет № 1) установите вместо черного оранжевый цвет с RGB-компонентами (255; 54; 0), а в поле образца Color # 2 (Цвет № 2) вместо белого — желто-лимонный (252; 255; 0). Обратите внимание на то, что и здесь можно было бы заменить цвета пятен текстурами, воспользовавшись соответствующими кнопками группы Maps (Карты текстур) справа от цветовых образцов. Оставьте все остальные параметры равными их исходным значениям. После всех этих действий цвет заливки ячеек станет случайным образом меняться от оранжевого к желтому.
Рис. 14.78. Свиток параметров текстуры Noise позволяет настраивать цвета, размеры и характерную форму пятен
6. Вернитесь на уровень карты ячеистой текстуры, щелкнув на кнопке Go to Parent (Перейти к составному материалу), а затем щелкните на этой кнопке повторно, чтобы подняться еще на один уровень вверх по дереву иерархии материала, на уровень карты градиента. Скопируйте готовую настроенную ячеистую текстуру, заменяющую собой образец цвета Color # 1 (Цвет № 1), применив копию в качестве образца цвета Color # 2 (Цвет № 2). Для этого щелкните справа от цветового поля Color # 1 (Цвет № 1) на кнопке с надписью Map # 1 (Cellular) (Карта № 1 (Ячеистая)), перетащите курсор на кнопку правее цветового поля Color # 2 (Цвет № 2) и отпустите кнопку мыши. Выберите в качестве типа дубликата вариант Instance (Образец).
7. Все, что нам остается сделать, — это несколько усилить эффект действия текстуры. Чтобы слегка осветлить самые темные участки материала, щелкните в свитке параметров текстуры градиента на образце черного цвета с именем Color # 3 (Цвет № 3) и установите для него более светлый оттенок с RGB-компонентами (32; 32; 32). Затем раскройте свиток Output (Результат). Увеличьте значение в счетчике Output Amount (Выходное значение) с принятой по умолчанию величины 1 до 2. Теперь и впрямь будет казаться, что наш материал изображает угли, раскаленные докрасна! Конечно, черно-белый рис. 14.79 не может передать этого эффекта, но взгляните на цветной вариант рисунка, который есть в папке lmages\Glava_14 компакт-диска, прилагающегося к книге. В заключение примените материал к обоим поленьям и поместите его в текущую библиотеку. Сохраните файл сцены под измененным в начале упражнения именем MAX-kafe14.max.
Рис. 14.79. Итоговый вид материала, имитирующего горящие поленья
Создаем флаг на здании кафе «МАХ»
В каком случае на здании может быть вывешен флаг? Обычно это делается в дни государственных праздников. Что ж, предположим, что мы решили заглянуть в кафе «МАХ» именно в такой день, поэтому на его стене красуется развевающийся флаг. Попробуем создать такую анимацию средствами модуля Cloth (Ткань). Откройте файл с созданной в прошлом упражнении занавесью на окне. Если по каким-то причинам вы не сохранили этот файл, вы можете открыть сцену МАХ-kafe_zanaves.max, которая находится на компакт-диске в папке Scenes\Glava_17. Сохраните ее под названием MAX-kafe_flag.max.
1. Скройте все объекты сцены, кроме объекта Fasad. Постройте стандартный примитив Cylinder (Цилиндр) радиусом 2 см и длиной 147 см. В окне проекции Right (Вид справа) создайте сплайновую форму Rectangle (Прямоугольник) с длиной 60 см и шириной 80 см. Именно она будет играть роль каркаса развевающейся ткани. Подберите положение сплайнового объекта таким образом, чтобы он примыкал к цилиндру одной из сторон (рис. 17.22). Преобразуйте стандартный сплайн в редактируемый. Выбрав подобъект Vertex (Вершина), выделите все вершины объекта и в свитке Geometry (Геометрия) нажмите кнопку Break (Разбить). После этого сплайн будет разделен на четыре отдельные части.
Рис. 17.22. Объект Rectangle совмещен с флагштоком
2. Выключите режим Vertex (Вершина) и примените к объекту модификатор Garment Maker (Создатель одежды). Этот модификатор служит для создания ткани на основе сплайновых форм. Примените теперь к объекту модификатор Cloth (Одежда), с помощью которого можно определить настройки ткани и взаимодействующих с ней тел. На панели Modify (Изменить) появятся свитки параметров этого модификатора: Object (Объект), Material Params (Параметры материала) и Simulation Parameters (Параметры имитации).
3. Нажмите кнопку Object Properties (Свойства объекта) в свитке Object (Объект), чтобы вызвать появление окна диалога Object Properties (Свойства объекта). С помощью кнопки Add Objects (Добавить объекты) этого окна добавьте в список объектов, которые будут участвовать во взаимодействии, цилиндр, играющий роль флагштока, и фасад кафе «МАХ». В окне диалога Object Properties (Свойства объекта) выделите объект Rectangle01 (Прямоугольник01) и установите для него переключатель в положение Cloth (Одежда). В списке Presets (Заготовки) выберите Silk (Шелк) (рис. 17.23). Благодаря выбранной заготовке параметры ткани изменятся, и флаг будет вести себя на ветру так, как должен. Выделите имя объекта Fasad и установите переключатель в положение Collision Object (Объект столкновения). Тем самым вы укажете, что ткань должна будет соприкасаться со стеной здания, а не проходить сквозь нее. Выделите флагшток и укажите для него тип объекта Inactive (Неактивный). Флагшток не будет принимать участие в столкновении, но должен быть добавлен в список объектов, участвующих во взаимодействии, так как к нему мы присоединим флаг на следующем этапе. Нажмите кнопку ОК.
Рис. 17.23. Установка параметров объектов в окне диалога Object Properties
4. Щелкните в стеке модификаторов по значку «+» возле строки Cloth (Ткань) и выделите в списке подобъектов строку Group (Группа). После этого на ткани будут видны вершины поверхности. Выделите вертикальный крайний ряд вершин, примыкающих к флагштоку, и нажмите кнопку Make Group (Создать группу) в появившемся свитке Group (Группа). Появится одноименное окно, в котором необходимо ввести название группы. Назовите ее Krepezh. Созданную группу вершин необходимо присоединить к флагштоку. Нажмите в свитке Group (Группа) кнопку Sim Node (Опорный узел имитации) и щелкните по цилиндру-флагштоку. Выключите режим работы с подобъектом Group (Группа).
5. Теперь необходимо разместить флаг на углу здания, где он будет развеваться. Поверните флагшток вместе с полотнищем примерно на 30-40° и воткните флагшток в стену на нужной высоте. Чтобы флаг развевался на ветру, нужно также добавить в сцену объемную деформацию Wind (Ветер) и разместить ее таким образом, чтобы стрелка направления указывала на флаг сбоку (рис. 17.24). В отличие от модуля reactor (Реактор), модуль Cloth (Ткань) использует стандартную объемную деформацию. В настройках объекта Wind (Ветер) установите силу ветра равной 1,2, а турбулентность — 0,2. Выделите ткань на флаге и нажмите кнопку Cloth Forces (Силы, воздействующие на ткань) в свитке Object (Объект). В появившемся окне Forces (Силы) выделите в списке Forces in Scene (Силы в сцене) созданную только что объемную деформацию и при помощи кнопки с изображением правой стрелки перенесите ее в список Forces in Simulation (Просчитываемые силы).
Рис. 17.24. Расположение объемной деформации Wind в сцене
6. Для просчета анимации сцены нажмите кнопку Simulate (Просчет) в свитке Object (Объект). Просчет может занять несколько минут. Если в процессе анимации возникли проблемы (например, флаг неестественно двигается), попробуйте изменить настройки ткани в окне Object Properties (Свойства объекта). Например, измените тип ткани, выбираемый в списке Presets (Заготовки) с Silk (Шелк) на Stratched Cotton (Растяжимый хлопок). Для отказа от просчитанной анимации нажмите кнопку Reset State (Восстановить состояние), после чего произведите повторную настройку сцены и снопа нажмите кнопку Simulate (Просчет).
7. Для большей реалистичности раскрасьте флаг в национальные цвета, после чего включите отображение скрытых объектов сцены и выполните конечную визуализацию (рис. 17.25).
Рис. 17.25. Кадр из анимации флага на ветру, созданной посредством модуля Cloth
Создаем ложку в виде NURBS-тела лофтинга
Ложка нам понадобится для сервировки столов «МАХ-кафе». Если вдуматься, то создать трехмерное тело в форме обычной ложки не так-то просто. Ложка не является ни телом вращения, ни телом экструзии, да и обычный лофтинг не дает желаемых результатов — ложка выходит довольно корявая (попробуйте сами!). Тут-то и приходит на помощь лофтинг NURBS-поверхности. Кстати, при выполнении этого упражнения мы рассмотрим еще один полезный практический прием, часто применяемый разработчиками трехмерных моделей, — использование опорных контуров-проекций. Такие контуры не участвуют непосредственно в формировании поверхности, а служат только опорными линиями, демонстрирующими будущие границы проекций поверхности создаваемого тела. Опорные проекции используются для визуальной ориентировки с целью правильного размещения и масштабирования сечений.
Итак, чтобы усвоить все особенности построения NURBS-поверхностей методом лофтинга, внимательно повторяйте за мной следующие действия:
1. Подготовьте программу к работе обычным порядком. Запустите или перезагрузите max 7.5, выберите в качестве единиц измерения сантиметры и установите шаг сетки равным 1 см. Установите в окне проекции Тор (Вид сверху) масштаб, при котором вертикальный размер видимой части сетки составляет примерно 25 см. Разверните окно проекции на весь экран. Сохраните созданную пустую сцену под именем Lozhka.max.
2. Нарисуйте в окне проекции Тор (Вид сверху) зеркальную половину опорного контура проекции будущей ложки, показанную на рис. 7.14. Этот контур не будет непосредственно использоваться при создании трехмерного тела, но в порядке тренировки создайте его в виде NURBS-кривой типа CV, выбрав для этого на командной панели Create (Создать) инструмент CV Curve (CV-кри-вая). Первую (крайнюю слева) опорную вершину поместите в точку (-15,5; 0; 0), последнюю — в точку (14; 0; 0). Остальные опорные вершины разместите так, чтобы по возможности воспроизвести контур, приведенный на рисунке.
Рис. 7.14. Нарисована зеркальная половина опорного контура проекции будущей ложки
3. Нарисовав линию половины контура, выделите ее и создайте зеркальную копию кривой. Для этого перейдите на командную панель Modify (Изменить) и раскройте палитру инструментов для работы с NURBS-объектами, щелкнув на кнопке NURBS Creation Toolbox (Инструменты создания NURBS-объектов) в свитке General (Общие параметры). Выберите инструмент Create Mirror Curve (Создать зеркальную кривую). Курсор примет вид стрелки со значком, изображенным на кнопке. Установите курсор на линию контура. Она при этом должна окраситься в синий цвет, а курсор — принять вид крестика. Щелкните кнопкой мыши, создав зеркальную копию кривой. Установите переключатель Mirror Axis (Ось отражения) в положение Y. Настройте значение в счетчике Offset (Смещение) так, чтобы крайние вершины исходной кривой и ее копии совпали, как показано на рис. 7.15.
Рис. 7.15. Зеркальная копия и оригинал составили полный контур проекции ложки в окне Тор
4. Перейдите в окно проекции Front (Вид спереди) и, снова выбрав инструмент CV Curve (CV-кривая), нарисуйте опорный контур проекции будущей ложки при взгляде на нее сбоку, как показано на рис. 7.16. Горизонтальный размер контура должен быть таким же, как и предыдущего, подготовленного в окне проекции Тор (Вид сверху). На этом подготовительная часть работы заканчивается.
Рис. 7.16. В окне проекции Front нарисуйте опорный контур проекции ложки при взгляде сбоку
5. Переходим к главному — подготовке сечений для лофтинга. Активизируйте окно проекции Left (Вид слева). Выделите обе линии контуров и щелкните на кнопке Zoom Extents Selected (Выделенные объекты целиком), чтобы установить в окне нужный масштаб. Выберите инструмент Ellipse (Эллипс) и постройте в центре окна сильно вытянутый эллипс с горизонтальной осью размером порядка 3-3,5 см, как показано на рис. 7.17. Назовите объект Sechenie01. Щелкните на выделенном эллипсе правой кнопкой мыши и выберите в появившемся четвертном меню цепочку команд Convert To > Convert to NURBS (Превратить в > Превратить в NURBS-поверхность). Эллипс будет преобразован в NURBS-поверхность, представленную пока только одним сечением.
Рис. 7.17. Сечения для лофтинга будем создавать на основе стандартного сплайна Ellipse, преобразованного в NURBS-поверхность
6. Теперь нужно создать достаточное количество копий сечения и разместить их в нужных местах вдоль контура будущей ложки. Активизируйте окно проекции Тор (Вид сверху). Ориентируясь по линии контура проекции, переместите эллипс на левый край контура. Щелкните на квадратике со знаком «плюс» слева от надписи NURBS Surface (NURBS-поверхность) в окне стека модификаторов командной панели Modify (Изменить) и выберите в раскрывшемся дереве подобъектов строку Curve (Кривая). Это нужно для того, чтобы все создаваемые сечения оказались подобъектами одной NURBS-поверх-ности. Нажав и удерживая клавишу Shift, щелкните на эллипсе и слегка переместите его вправо, установив курсор на ось X контейнера преобразования. В появившемся окне диалога Sub-Object Clone Options (Параметры дублирования подобъектов) просто щелкните на кнопке ОК, оставив переключатель в положении Independent Copy (Независимая копия). Создайте таким образом в общей сложности 14 сечений, располагая их более часто в тех местах, где форма опорного контура резко меняется. Там, где форма опорного контура изменяется плавно, можно располагать сечения с большими интервалами, как показано на рис. 7.18.
Рис. 7.18. Все 14 сечений размещены вдоль контура проекции ложки
7. Далее необходимо придать изгиб контурам сечений, по которым будет строиться вогнутая часть «резервуара» ложки. Для этого воспользуемся модификатором изгиба, с которым вы познакомились в главе 6. Выделите сечения 10-14 на уровне подобъекта Curve (Кривая). Выделенные сечения окрашиваются в красный цвет. Раскройте список Modifier List (Список модификаторов) командной панели Modify (Изменить) и щелкните на строке Bend (Изгиб). В свитке Parameters (Параметры) с элементами настройки изгиба установите переключатель Bend Axis (Ось изгиба) в положение X. Укажите в счетчике Angle (Угол) раздела Bend (Изгиб) величину -185°, а в счетчике Direction (Направление) задайте 90, чтобы изгиб происходил в вертикальной плоскости. В итоге вы должны получить результат, показанный на рис. 7.19.
Рис. 7.19. Изгиб сечений хорошо виден в окне проекции Left
8. Для продолжения работы над телом лофтинга необходимо свернуть модификатор изгиба в стеке модификаторов. Что такое стек модификаторов, как и зачем его «сворачивать», вы узнаете подробнее в главе 8, а пока просто щелкните на строке Bend (Изгиб) в окне стека модификаторов правой кнопкой мыши и выберите в появившемся контекстном меню стека команду Collapse All (Свернуть все), как показано на рис. 7.20. В окне предупреждения о критическом характере операции сворачивания модификаторов щелкните на кнопке Yes (Да).
Рис. 7.20. В контекстном меню стека модификаторов выбрана команда Collapse All
9. Теперь выполните необходимое масштабирование сечений, подгоняя их размер по видимой линии опорного контура проекции ложки. Для этого снова выберите строку Curve (Кривая) в развернутом ранее дереве подобъектов объекта NURBS Surface (NURBS-поверхность). Выберите инструмент Select and Uniform Scale (Выделить и равномерно масштабировать). Поочередно выделяйте сечения одно за другим в окне проекции Тор (Вид сверху) и изменяйте их масштаб только вдоль оси Y, ориентируясь на линию контура, как показано на рис. 7.21. Как вы помните, в max 7.5 инструмент Select and Uniform Scale (Выделить и равномерно масштабировать) позволяет выполнять операцию неравномерного масштабирования. С этой целью курсор следует устанавливать не в пределы треугольной области у центра контейнера преобразования и не на трапециевидную полоску, а именно на ось У, следя за тем, чтобы она приобрела желтую окраску. Сечение на правом краю черпака будущей ложки нужно стянуть практически в точку. С этой целью удобно использовать окно численного ввода значений коэффициентов масштаба. Выделив сечение, щелкните на кнопке инструмента Select and Uniform Scale (Выделить и равномерно масштабировать) правой кнопкой мыши. Введите в поле счетчика Offset: Screen (Приращения: экранные) значение 1, чтобы уменьшить размер сечения до 1 % от текущей величины. Уменьшать масштаб до 0 % не следует, такая операция не является корректной.
Рис. 7.21. В результате масштабирования сечения приобрели нужный размер
10. Переместите сечения в нужные положения по вертикали. Для этого перейдите в окно проекции Front (Вид спереди) и, ограничивая перемещение осью Y, передвиньте сечения по вертикали, разместив их в пределах контура сечения ложки. Чередуя работу с инструментами Select and Move (Выделить и переместить) и Select and Uniform Scale (Выделить и равномерно масштабировать) в окнах проекций Тор (Вид сверху) и Front (Вид спереди), выполните подгонку размеров сечений по опорным контурам проекций ложки, как показано на рис. 7.22. Это удобно делать, развернув окно проекции во весь экран. Как вы помните, для этого достаточно нажать клавиши Alt+w. Для переключения проекций в окне также используйте клавиатурные комбинации: нажатие клавиши Т в латинском регистре включает проекцию Тор (Вид сверху), клавиши F — проекцию Front (Вид спереди).
Рис. 7.22. После перемещения по вертикали и подгонки размеров сечения заняли нужные положения в пространстве
11. Настала пора создать поверхность методом лофтинга. Выключите режим выделения подобъектов, щелкнув в окне стека модификаторов на строке NURBS Surface (NURBS-поверхность). Чтобы опорные контуры не мешали процедуре построения поверхности, скройте их от просмотра. Раскройте палитру инструментов для работы с NURBS-объектами, щелкнув на кнопке NURBS Creation Toolbox (Инструменты создания NURBS-объектов) в свитке General (Общие параметры) командной панели Modify (Изменить).
Выберите инструмент Create U Loft Surface (Создать поверхность методом U-лофтинга). Переместите курсор в окно проекции Тор (Вид сверху), где он примет вид стрелки со значком, указанным на кнопке инструмента. Установите курсор на первое слева сечение и, когда линия сечения окрасится в синий цвет, а курсор примет вид крестика, щелкните кнопкой мыши. Сечение будет помечено синим кружком, что указывает на его включение в поверхность. Переместите курсор к следующему сечению (за курсором потянется пунктирная линия) и снова щелкните кнопкой мыши. Продолжайте щелкать последовательно на остальных сечениях. Если в окне проекции включен режим тонированного отображения, вы будете наблюдать постепенное формирование поверхности тела лофтинга, как показано на рис. 7.23. Щелкнув па последнем сечении, щелкните правой кнопкой мыши для завершения процесса лофтинга. Назовите сформированный объект Lozhka.
Рис. 7.23. Для построения поверхности просто последовательно щелкайте на сечениях
12. При необходимости коррекции формы ложки включите режим выделения подобъектов, выбрав строку Curve (Кривая) в развернутом дереве подобъектов. Снова восстановите видимость опорных контуров. Выделяйте отдельные кривые сечений и перемещайте или масштабируйте их, добиваясь нужного результата, показанного на рис. 7.24. Закончив корректировку модели, удалите кривые опорных контуров. Сохраните файл под заданным в начале работы именем Lozhka.max. Сопоставьте получившийся у вас результат с объектом из файла с таким же именем Lozhka.max, который располагается в папке Scenes\G!ava_07 компакт-диска, прилагающегося к книге.
Рис. 7.24. Окончательный вид ложки, сформированной как NURBS-поверхность методом лофтинга
Создаем плафон светильника в виде NURBS-тела вращения
Рассмотрим теперь особенности создания тел вращения на основе профиля в виде NURBS-кривой с помощью инструмента Create Lathe Surface (Создать поверхность вращением). Для проекта «МАХ-кафе» нам понадобятся два настенных светильника, имеющих стеклянные плафоны. Такой плафон мы и создадим сейчас методом вращения профиля в виде NURBS-кривой. Выполните следующие действия:
1. Запустите или перезагрузите max 7.5, выберите в качестве единиц измерения сантиметры и установите шаг сетки равным 1 см. Сохраните пустую сцену в файле под именем Lampa.max.
Рис. 6.31. Бокал для вина, созданный методом вращения профиля
2. С помощью инструмента Pan (Прокрутка) переместите начало координат в окне проекции Front (Вид спереди) к середине нижней кромки окна и разверните окно во весь экран. Уменьшите масштаб, чтобы высота видимой части сетки в окне составляла примерно 45 см.
3. Щелкните на кнопке Shapes (Формы) командной панели Create (Создать) и выберите в раскрывающемся списке разновидность объектов NURBS Curves (NURBS-кривые). В свитке Object Type (Тип объекта) щелкните на кнопке Point Curve (Точечная кривая).
4. Нарисуйте разомкнутый профиль, показанный на рис. 6.32. Вершины, считая сверху вниз, поместите в следующих точках: 1 — (4,95; 0; 39,0), 2 - (4,65; 0; 31,6), 3 - (8,3; 0; 22,85), 4 - (10,7; 0; 15,2), 5 - (8,4; 0; 7,8). Вершину 6 создайте тройным щелчком в точке (4,65; 0; 4,8). Последнюю вершину поместите в точке (4,65; 0; 0).
Рис. 6.32. Профиль плафона лампы в виде точечной NURBS-кривой
5.
Выделите профиль, разверните на командной панели Modify (Изменить) свиток Create Surfaces (Создать поверхности) и щелкните на кнопке Lathe (Вращение). С той же целью можете раскрыть показанную на рис. 6.33 палитру инструментов для работы с NURBS-поверхностями, щелкнув на кнопке NURBS Creation Toolbox (Инструменты создания NURBS-объектов) в свитке General (Общие параметры), и выбрать инструмент Create Lathe Surface (Создать поверхность вращением).
В самом низу командной панели появится свиток Lathe Surface (Поверхность вращения), параметры которого аналогичны рассмотренным выше параметрам модификатора Lathe (Вращение).
Рис. 6.33. Палитра инструментов для работы с NURBS-поверхностями
6. Переместите курсор, который примет вид значка на кнопке инструмента, в окно проекции Front (Вид спереди) и установите его на профиль. Профиль должен приобрести синий цвет, что указывает на готовность к созданию поверхности. Щелкните кнопкой мыши. Вид полученного тела вращения показан на рис. 6.34, слева. Очевидно, это не совсем то, что нам нужно: ось вращения расположена на левом краю габаритного контейнера кривой профиля, а следовало бы переместить ее еще левее. Как это сделать в случае использования модификатора Lathe (Вращение), было рассмотрено выше, а сейчас нам предстоит научиться изменять форму NURBS-тела вращения.
7. Убедитесь, что только что созданный объект выделен (в каркасном режиме линия профиля будет при этом изображаться белым цветом, а контуры тела вращения — зеленым), и щелкните на квадратике со знаком «плюс» в окне стека модификаторов. Выберите в развернувшемся дереве подобъектов строку Curve (Кривая). Установите курсор на линию профиля и, когда он примет вид крестика, щелкните кнопкой мыши. В отличие от правки формы тел вращения, созданных модификатором Lathe (Вращение), где требовалось перемещать ось вращения, перетаскивайте линию профиля, приобретающую красный цвет, в сторону от оси вращения. Наблюдайте за изменением формы тела и в нужный момент отпустите кнопку мыши. Если необходимо откорректировать форму кривой профиля, выберите в дереве подобъектов строку Point (Точка) и перемещайте опорные точки кривой. Окончательный вид объекта показан на рис. 6.34, справа.
Рис. 6.34. Исходная форма плафона в виде NURBS-тела вращения (слева); она же после коррекции положения кривой (справа)
8. Назовите объект Plafon и сохраните его в файле под уже заданным именем Lampa.max. Файл с аналогичным именем хранится в папке Scenes\Glava_06 прилагающегося к книге компакт-диска, так что вы можете сравнить полученный результат с готовым объектом из этого файла.
В той же папке Scenes\Glava_06 прилагающегося к книге компакт- диска вы можете найти файл Shahmati.max, содержащий модель сцены в виде шахматной доски с расставленными на ней фигурами (рис. 6.35).
Рис. 6.35. Трехмерная модель шахмат — хороший пример для отработки методов моделирования, а впоследствии и анимации
Из тридцати двух фигур уникальными являются только шесть: король, ферзь, слон, конь, ладья и пешка, остальные же — просто дубликаты. И все уникальные фигуры, за исключением коней, созданы методом вращения профилей (рис. 6.36). Впрочем, основания фигурок коней — это тоже тела вращения. Попробуйте самостоятельно воссоздать шахматные фигуры, подобные представленным в этой сцене. В главе 8 вы узнаете о том, как «нарезать» зубцы на верхушке ладьи, а в главе 9 мы рассмотрим один из возможных методов моделирования фигурки шахматного коня.
Рис. 6.36. Пешка, ладья, слон, ферзь и король {слева) с точки зрения ЗD-графики являются асесимметричными телами, а потому для их создания хорошо подходит метод вращения профилей {справа)
Создаем снежные валики
Так как по задуманному сценарию наше кафе «МАХ» распахнуло свои двери зимой, то основания его стен должны быть несколько заметены снегом, как было показано на рис. 1.20 главы 1.
Чтобы создать заготовки снежных валиков, образовавшихся на краях фундамента, выполните следующие действия:
1. Загрузите ранее созданную в этой главе сцену, содержащую модель здания кафе «МАХ». Если вы по каким-либо причинам не сохранили файл этой сцены, то можете найти его в папке \Scenes\Glava_05 прилагающегося к книге компакт-диска под именем MAX-kafe02.max. Сразу же после загрузки сохраните файл сцены с инкрементированием имени.
2. Создайте в окне проекции Тор (Вид сверху) три улучшенных примитива типа ChamferBox (Параллелепипед с фаской) размерами 330x40x12 см, 170x40x12 см и 205x25x5 см. Ширину фаски у всех трех параллелепипедов сделайте равной 7 см. Установите для всех трех примитивов число сегментов по длине равным 16, по ширине — 4 и по высоте — 3. Такая достаточно детальная сегментация необходима для того, чтобы впоследствии можно было успешно применить к данным объектам модификатор Noise (Неоднородности) с целью придания валикам снега естественной неровности. Назовите объекты Valik01, Valik02 и Valik03 соответственно.
3. Поместите все три валика на предназначенные для них места. Самый длинный валик шириной 40 см поместите на краю фундамента слева от ступеньки, обозначающей место будущего дверного проема кафе. Второй валик шириной 40 см и длиной 170 см разместите на краю фундамента справа от ступеньки. Валик толщиной 5 см поместите прямо на ступеньку. Размещение снежных валиков, естественно, не требует высокой геометрической точности.
4. Переключитесь на вид слева или справа и слегка поверните каждый из валиков, придав им некоторый наклон. При этом для большей естественности имитации снежного наноса заставьте сетку валиков слегка проникать внутрь сеток стен, фундамента и ступеньки, примерно так, как показано на рис. 5.16.
Рис. 5.16. Правильное размещение параллелепипедов с фаской, имитирующих снежные валики, на выступах фундамента и ступеньке кафе
5. В итоге здание должно принять вид, показанный на рис. 5.17. Имитировать снежные наносы на выступах фундамента по бокам здания нет необходимости, так как мы не планируем визуализировать эти части сцены. В заключение сохраните сцену под прежним именем.
Рис. 5.17. Общий вид здания кафе со снежными валиками на выступах фундамента и ступеньке
Усовершенствуем отражатель настенного светильника с помощью модификатора Taper
В предыдущей главе мы создали отражатель настенного светильника в виде усеченного конуса. Выглядит он совсем неплохо, однако когда дело дойдет до имитации свечения лампы, тень выдаст дефект: в этом отражателе нет отверстия. Можно создать более совершенный отражатель, использовав стандартный примитив типа Tube (Труба) и применив к нему модификатор заострения. Попробуйте проделать следующие действия:
1. Откройте ранее сохраненный вамп файл Lampa03.max или загрузите файл Lampa03.max из папки Scenes\Glava_08 компакт-диска, прилагающегося к книге. Сохраните файл с инкрементированием имени.
2. Выделите объект-группу Lampa01 и выполните команду главного меню Group > Open (Группа > Открыть). Выделите объект Otrazhatel и удалите его.
3. Создайте стандартный примитив Tube (Труба) со следующими размерами: Radius 1 (Радиус 1) = 23 см; Radius 2 (Радиус 2) = 22,5 см; Height (Высота) = 7 см.
4. Примените к трубе модификатор Taper (Заострение). Установите в счетчике Amount (Величина) значение -0,55. Назовите объект Otrazhatel, назначьте ему золотистый цвет и переместите на место прежнего отражателя. Сверните стек объекта Otrazhatel, превратив его в редактируемую сетку. Теперь отражатель светильника выглядит более реалистично, как показано на рис. 8.14, и обеспечит формирование нужной тени в главе 11, когда мы займемся освещением сцены.
Рис. 8.14. Отражатель светильника, изготовленный на основе примитива Tube с использованием модификатора заострения
5. Пока новый объект еще выделен, присоедините его к группе, выбрав команду меню Group >Attach (Группа > Присоединить) и щелкнув па габаритном контейнере открытой группы. Закройте группу, выбрав команду меню Group > Close (Группа > Закрыть группу). Сохраните файл под назначенным в начале работы именем Lampa04.max.
Заставляем свет отбрасывать тени и настраиваем их параметры
Отсутствие теней от освещенных объектов является фактором, резко снижающим достоверность изображения. Наши глаза с детства привыкли к тому, что освещенные объекты должны давать тень, поэтому отсутствие теней сразу замечается. Продолжите предыдущее упражнение, чтобы освоить настройку теней.
1. Чтобы объекты, освещаемые настраиваемым осветителем, начали отбрасывать тени, в простейшем случае требуется лишь установить флажок On (Вкл.) в разделе Shadows (Тени) свитка General Parameters (Общие параметры). Установите флажок и выполните визуализацию сцены в окне проекции Perspective (Перспектива). Результат должен быть примерно таким, как на рис. 11.13. Казалось бы, ну что такое тень в реальной жизни: просто место, куда не попадают лучи света от данного осветителя. Однако в реальности теневые участки могут дополнительно подсвечиваться лучами этого же источника света, переотраженными от других предметов окружающей обстановки. Тень от этого может становиться прозрачнее или приобретать цветовой оттенок. Так как при обычной простейшей визуализации, которую мы сейчас рассматриваем, эффект переотражения лучей в max 7.5 не воспроизводится, для улучшения качества теней они снабжены массой различных параметров, таких как тип тени, ее цвет, плотность и т. п. Тип тени выбирается в раскрывающемся списке раздела Shadows (Тени) в свитке General Parameters (Общие параметры), а остальные параметры располагаются в отдельном свитке Shadow Parameters (Параметры тени), показанном на рис. 11.14. Кроме того, дополнительные параметры появляются в свитках, названия и состав элементов управления которых меняются в зависимости от выбранного типа тени.
Рис. 11.13. Теперь, когда появились тени, сцена выглядит гораздо естественнее
Рис. 11.14. Свиток Shadow Parameters позволяет настраивать параметры теней, отбрасываемых выделенным осветителем
2. Для большинства осветителей но умолчанию в раскрывающемся списке раздела Shadows (Тени) в свитке General Parameters (Общие параметры) выбираются тени типа Shadow Map (Карта теней). Исключение составляют осветители, для которых выбирается вариант Ray Traced Shadows (Трассированные тени). Особенности этого варианта будут рассмотрены ниже. Тени типа Shadow Map (Карта теней) рассчитываются как центральные проекции освещаемых объектов из точки расположения осветителя на затеняемые поверхности сцены. Метод карт теней позволяет быстро строить тени с мягкими, слегка размытыми краями. Чтобы рассмотреть особенности теней данного типа, увеличьте изображение в окне проекции Perspective (Перспектива), чтобы ближний к зрителю настенный светильник занимал почти все окно, и выполните визуализацию изображения. Как видно на рис. 11.15, тень светильника на стене действительно имеет мягкие, размытые края. Основным параметром тени типа Shadow Map (Карта теней) является размер карты теней, от которого зависит, насколько детально будут прорисованы границы теневой области. Этот параметр задается счетчиком Size (Размер) в свитке Shadow Map Parameters (Параметры карты теней). По умолчанию этот размер выбирается равным 512, что означает разбиение картинки при расчете карты тени на 512x512 элементарных участков. Если значение размера карты уменьшить, скажем, до 256, четкость краев тени снижается, как видно на рис. 11.15, справа. Соответственно, при увеличении параметра четкость границ возрастает, но увеличивается и время визуализации картинки.
Рис. 11.15. Тени, основанные на картах теней, не очень точно воспроизводят проекцию объекта и имеют края, степень размытия которых тем выше, чем меньше размер карты теней: слева — 512x512 точек, справа — 256x256 точек
3. Чтобы сымитировать некоторую подсветку области тени лучами света, многократно отражающимися от потолка и стен комнаты, можно уменьшить плотность тени, задаваемую счетчиком Dens. (Плотность) в свитке Shadow Parameters (Параметры тени). По умолчанию плотность тени равна 1, но если уменьшить это значение, тени станут прозрачнее, как показано на рис. 11.16.
Рис. 11.16. Уменьшение параметра Dens теней до 0,5 делает тени более светлыми и прозрачными, что придает им больший реализм
4. Теперь раскройте список типов теней в свитке General Parameters (Общие параметры). Вы увидите в нем пять типов теней: помимо уже знакомого нам типа Shadow Map (Карта теней), в списке имеются еще тени типа Adv. Ray Traced (Усовершенствованные трассированные), Ray Traced Shadows (Трассированные тени), mental ray Shadow Map (Карта теней mental ray) и Area Shadows (Площадные тени). Выберите вариант Ray Traced Shadows (Трассированные тени). В этом случае тени формируются как зоны, недоступные для воображаемых лучей света, путь которых отслеживается (трассируется) от источника до глаз наблюдателя. Метод трассировки применяется для имитации точных по форме теней с резко очерченными краями. Вновь визуализируйте изображение в окне проекции Perspective (Перспектива), чтобы получить картину, подобную показанной на рис. 11.17. Трассированные тени являются более правильными геометрически, но для их визуализации требуется большее время. Аналогичными свойствами обладают тени типа Adv. Ray Traced (Усовершенствованные трассированные), которые имеют дополнительные параметры для настройки в случаях, когда такие тени отбрасываются новыми площадными фотометрическими осветителями. Эти дополнительные параметры помещаются в свитках Adv. Ray Traced Params (Параметры усовершенствованных трассированных теней) и Optimizations (Оптимизация), рассмотрение которых выходит за рамки наших задач. Тени типа mental ray Shadow Map (Карта теней mental ray) могут использоваться только в том случае, если сцена визуализируется с использованием модуля mental ray. При использовании стандартного модуля визуализации тени данного типа будут полностью отсутствовать.
Рис. 11.17. Тени, сформированные методом трассировки лучей, точно воспроизводят проекцию объекта и имеют резко очерченные края
5. Трассированные тени, безусловно, хороши, но и они не выглядят достаточно естественными из-за своей чрезмерной резкости. В реальной жизни чаще всего встречаются тени, края которых становятся все более нерезкими по мере удаления от объекта. Дело в том, что в реальной жизни осветители никогда не являются точечными, то есть не испускают лучи света из одной точки, как стандартные осветители max 7.5. Если же область, из которой исходит свет, имеет определенные конечные размеры, то и границы тени не будут резкими. Действительно, ведь в этом случае на той поверхности, куда падает тень, можно найти точки, для которых источник света заслоняется объектом, отбрасывающим тень, не целиком, а только частично. Эти-то точки и образуют постепенно сходящую на нет границу теневой области. В max 7.5 проблемы формирования геометрически правильных теней с границами, резкость которых убывает по мере удаления от объекта, не существует. Для получения подобных теней служат площадные источники света и тени типа Area Shadows (Площадные тени), которые могут формироваться применительно к осветителям любого типа. При использовании площадных теней любой осветитель заменяется воображаемой совокупностью точечных источников света, равномерно размещенных в пределах области заданной формы и размеров. Итак, выберите в раскрывающемся списке свитка General Parameters (Общие параметры) вариант Area Shadows (Площадные тени) и визуализируйте изображение сцены, показанной ранее на рис. 11.13. В результате должно получиться изображение, подобное приведенному на рис. 11.18.
Рис. 11.18. Площадные тени точно воспроизводят проекцию объекта, но имеют края, резкость которых убывает по мере удаления тени от объекта
6. Настройка параметров площадных теней производится в свитках Area Shadows (Площадные тени) и Optimizations (Оптимизация), появляющихся в нижней части панели Modify (Изменить). В частности, в раскрывающемся списке раздела Basic Options (Базовые настройки) свитка Area Shadows (Площадные тени) можно выбрать один из пяти вариантов формы источника света, которая будет учитываться при расчетах теней:
Simple (Простой) — источник света рассматривается как точечный и расчет площадных теней не производится. Этот вариант применяют при предварительных тестовых визуализациях для экономии времени;
Rectangle Light (Прямоугольный источник) — свет испускается точечными излучателями, упорядоченными в виде прямоугольной решетки;
Disc Light (Дисковый источник) — свет испускается точечными излучателями, распределенными вдоль концентрических окружностей;
Box Light (Прямоугольный трехмерный источник) — свет испускается точечными излучателями, упорядоченными в виде прямоугольной трехмерной решетки;
Sphere Light (Сферический источник) — свет испускается точечными излучателями, распределенными в пределах сферы.
Обратите внимание на то, что выбор формы воображаемого излучателя света никак не сказывается на изображении значка настраиваемого осветителя в окнах проекций. При выборе любого из протяженных источников света задайте его воображаемые размеры Length (Длина), Width (Ширина) и Height (Высота) в разделе Area Light Dimensions (Размеры площадного источника). Изображение, показанное ранее на рис. 11.18, сформировано при размерах источника света прямоугольной формы 25,4x25,4 см.
СОВЕТ В последующих главах мы научимся создавать материалы со свойством полупрозрачности. При использовании таких материалов в составе сцены следует помнить, что лучи света от источников с тенями типа Shadow Map (Карта теней) не могут проникать через полупрозрачные объекты. При построении теней данного типа от полупрозрачных объектов последние считаются совершенно непрозрачными. Чтобы свет, к примеру, проникал в комнату через стекло окна, для источника света обязательно нужно выбирать трассированные, усовершенствованные трассированные или площадные тени. При этом, чтобы лучи источников света с тенями типа Area Shadows (Площадные тени) и Adv. Ray Traced (Усовершенствованные трассированные) были способны проникать сквозь полупрозрачные материалы, следует обязательно установить флажок On (Вкл.) в разделе Transparent Shadows (Прозрачные тени) свитка Optimizations (Оптимизация). Обычные трассированные тени проникают через полупрозрачные материалы по умолчанию. |
Разумеется, тени различных типов имеют еще много настраиваемых параметров, которые мы не рассмотрели в этом упражнении. При необходимости изучите эти параметры самостоятельно, используя электронную справочную систему max 7.5. Справочные сведения по параметрам новых площадных теней можно найти также в моей книге «3ds max. Материалы, освещение, визуализация», выпущенной издательством «Питер» в 2005 году.
СОВЕТ Итак, тени, основанные на картах теней, обладают самым низким качеством, но зато рассчитываются быстрее всех других. Тени площадного типа обладают наибольшим визуальным правдоподобием, но расчет их происходит существенно дольше всех других теней. Трассированные и усовершенствованные трассированные тени рассчитываются тоже достаточно долго и иногда оказываются неестественно резкими. Поэтому в качестве компромисса при формировании изображений средних планов сцены можно посоветовать использовать тени, основанные на картах теней, при увеличении значения размера карты до 1024x1024 точки. При синтезе крупных планов иногда приходится жертвовать временем в угоду качеству и использовать площадные тени. Трассированные тени хороши для сцен на открытом воздухе при ярком солнечном свете. |
Не закрывайте max 7.5, так как работа над сценой будет продолжаться.
Изготовляем опору настенного светильника с помощью модификатора Bevel
Светильник, плафон для которого мы создали при выполнении упражнения 4, нуждается в опоре, с помощью которой он будет крепиться к стене. Воспользуемся для создания такой опоры новым инструментом — модификатором Bevel (Скос). Этот инструмент дает возможность изменять масштаб профиля на заданной высоте выдавливания, позволяя тем самым формировать тела с фасками на краях или с закругленными краями, как показано на рис. 6.40.
Рис. 6.40. Опора настенного светильника в форме щита
Заодно в этом упражнении мы освоим методы зеркального копирования сплайнов и объединения двух сплайнов в один. Чтобы построить опору светильника в форме щита методом выдавливания с использованием модификатора Bevel (Скос), выполните следующие действия:
1. Загрузите сохраненный в упражнении 4 файл Lampa.max. Если вы по каким-то причинам не создали такой файл, откройте файл с аналогичным именем, хранящийся в папке Scenes\Glava_06 прилагающегося к книге компакт-диска. Сохраните файл с инкрементированием имени.
2. Чтобы объект Plafon не мешал работе над опорой, выделите его и скройте от просмотра, щелкнув на кнопке Hide Selected (Скрыть выделенные) в свитке Hide (Скрыть) командной панели Display (Дисплей) или выбрав команду Hide Selection (Скрыть выделенное) четвертного меню, вызываемого по щелчку правой кнопкой мыши на выделенном плафоне.
3. Измените масштаб в окне проекции Front (Вид спереди) так, чтобы вертикальный размер видимой части сетки составлял примерно 55-60 см. Начало координат сетки должно располагаться вблизи от середины нижнего края окна. Можете для удобства развернуть окно проекции во весь экран.
4. Нарисуйте сплайн, представляющий одну зеркальную половину будущего щита и показанный на рис. 6.41. Сплайн имеет 8 вершин, из которых первая расположена в точке (0; 0; 48,4), шестая — в точке (17,9; 0; 39,1) и последняя — в начале координат. Остальные вершины разместите самостоятельно, чтобы примерно воспроизвести показанную па рисунке форму кривой.
Рис. 6.41. Сплайн, представляющий собой зеркальную половину профиля сечения щита
5. Достройте вторую зеркальную половину профиля. Для этого в окне стека модификаторов командной панели Modify (Изменить) щелкните на квадратике со знаком «плюс» слева от наименования типа объекта Line (Линия) и выберите в раскрывшемся дереве подобъектов строку Spline (Сплайн). Прокрутите вверх область свитков командной панели, чтобы стала видна кнопка Mirror (Отразить) в свитке Geometry (Геометрия). Установите флажок Сору (Копия) под кнопкой Mirror (Отразить) и щелкните на кнопке. В окнах проекций появится зеркальная копия сплайна, выделенная красным цветом. Установите флажок Automatic Welding (Автоматическое слияние) в разделе End Point Auto-Welding (Автослияние крайних вершин) этого же свитка Geometry (Геометрия). Это обеспечит слияние концевых вершин двух копий сплайна при их примерном совмещении. С помощью инструмента Select and Move (Выделить и переместить) переместите копию влево, так чтобы ее первая и последняя вершины совпали с первой и последней вершинами оригинала кривой. Как только вы отпустите кнопку мыши, обе половинки сплайна сольются в единую кривую, которая вся приобретет красный цвет (рис. 6.42). Щелкните на строке Line (Линия) в окне стека модификаторов, чтобы выключить режим выделения подобъектов.
Рис. 6.42. Зеркальная копия половины профиля сечения щита слита с оригиналом
6. Убедитесь, что сплайн выделен, и примените к нему модификатор Bevel (Скос). Чтобы выбрать данный модификатор, раскройте список Modifier List (Список модификаторов) на командной панели Modify (Изменить) и щелкните на строке Bevel (Скос) в разделе OBJECT-SPACE MODIFIERS (Модификаторы пространства объекта). В нижней части командной панели появятся свитки модификатора скоса: Parameters (Параметры) и Bevel Values (Значения скоса). В свитке Bevel Values (Значения скоса), показанном на рис. 6.43, задайте высоту первого слоя экструзии в счетчике Height (Высота) группы Level 1 (Уровень 1). Используйте второй слой экструзии, чтобы сформировать фаску на краю щита. Для этого установите флажок Level 2 (Уровень 2), задайте в счетчике Height (Высота) под этим флажком высоту второго слоя равной 1 см, а в счетчике Outline (Контур) укажите величину уменьшения контура щита, введя значение -2 см. На рис. 6.44 хорошо видно сечение сформированного тела экструзии с фаской.
Рис. 6.43. Свиток Bevel Values модификатора Bevel
7. Чтобы получить точно такой щит, какой показан выше на рис. 6.40, остается только закруглить линии, образующие боковую поверхность тела. Для этого просто установите переключатель в разделе Surface (Поверхность) свитка Parameters (Параметры) в положение Curved Sides (Скругленные бока) и задайте число сегментов по высоте тела экструзии в счетчике Segments (Сегментов) равным 3-4. Готово! Назовите полученный объект Sshitok.
Рис. 6.44. Сечение тела экструзии с фаской в окне проекции Тор
8. Снова сделайте видимым объект Plafon, щелкнув на кнопке Unhide All (Сделать видимыми все) командной панели Display (Дисплей). Переместите плафон так, чтобы он разместился несколько впереди и выше щита. В заключение сохраните сцену — мы еще будем продолжать работу над светильником. Можете сопоставить получившийся у вас результат с тем объектом, который хранится в файле под именем Lampa01.max в папке Scenes\Glava_06 компакт-диска, прилагающегося к книге.
Осваиваем деформацию масштаба, изготавливая вилку
Вилка нам также понадобится для сервировки столов «МАХ-кафе». Предмет этот, как и ложка, имеет довольно затейливую форму. Однако вы скоро сможете убедиться, что с использованием метода лофтинга и деформаций создание таких предметов не является проблемой. Итак, повторяйте за мной.
1. Запустите или перезагрузите max 7.5, выберите в качестве единиц измерения сантиметры и установите шаг сетки равным 1 см. Установите в окне проекции Тор (Вид сверху) масштаб, при котором вертикальный размер видимой части сетки в окне проекции составляет примерно 5 см. Сохраните созданную пустую сцену под именем Vilka.max.
2. Нарисуйте в окне проекции Тор (Вид сверху) стандартный сплайн Rectangle (Прямоугольник) с размерами Length (Длина) = 4 см, Width (Ширина) = 0,8 см, скруглив углы радиусом 0,3 см. Это будет сечение тела лофтинга. Затем активизируйте окно проекции Front (Вид спереди), разверните окно проекции во весь экран, установите такой масштаб, чтобы размер горизонтальной части сетки составлял примерно 40 см, и нарисуйте кривую-путь, как показано на рис. 7.32. Первую (крайнюю слева) вершину поместите в точку (-15,5; 0; 0), последнюю — в точку (15; 0; 0), а остальные разместите так, чтобы воспроизвести форму кривой, показанной на рисунке.
Рис. 7.32. Кривая, которая будет играть роль пути для тела лофтинга
3. Щелкните на кнопке Geometry (Геометрия) командной панели Create (Создать), выберите в раскрывающемся списке разновидностей объектов вариант Compound Objects (Составные объекты) и щелкните на кнопке Loft (Лофтинговые) в свитке Object Type (Тип объекта). Убедившись, что форма-путь все еще выделена, щелкните па кнопке Get Shape (Взять форму) в свитке Creation Method (Метод создания). Перейдите в любое окно проекции и щелкните на прямоугольнике со скругленными углами. Будет сформировано базовое тело лофтинга, показанное на рис. 7.33. Назовите созданный объект Vilka и назначьте ему подходящий цвет.
Рис. 7.33. Сформировано базовое тело лофтинга, требующее деформации масштаба
4. Чтобы придать полученному объекту сходство с вилкой, примените к нему деформацию масштаба. Проследив, чтобы тело лофтинга было выделено, перейдите на командную панель Modify (Изменить), разверните свиток Deformations (Деформации) и щелкните на кнопке Scale (Масштаб). Появится окно диалога Scale Deformation (Деформация масштаба), показанное выше на рис. 7.31.
ЗАМЕЧАНИЕ В начале главы мы говорили о том, что при лофтинге формы-сечения с самопересечением линии полученное тело будет иметь только боковую поверхность и не будет накрыто «крышками» торцевых оснований. Увеличение радиуса закругления углов формы-прямоугольника, лежащей в основе тела вилки, ведет к появлению самопересечений линии контура прямоугольника. Так что если сделать радиус слишком большим, базовое тело лофтинга не будет иметь торцевых стенок в начале и в конце линии пути. Попробуйте сами, чтобы убедиться в этом. |
5.
Щелкните на кнопке Make Symmetrical (Симметрично по X и Y), чтобы выключить этот режим и сделать возможным использование различных кривых деформации в продольных сечениях объекта по осям X и Y локальных координат сечений, ориентированным перпендикулярно линии пути. Если оставить кнопку нажатой, то в направлении обеих осей будет использована одна и та же деформация, что вызовет симметричное изменение формы объекта. По умолчанию в окне демонстрируется кривая деформации по оси X, которая в данном случае представляет собой ось толщины тела лофтинга (в этом легко убедиться, если посмотреть, куда ориентирована локальная ось координат сечения-прямоугольника). Для наглядности лучше начать деформацию с изменения ширины тела лофтинга, поэтому щелкните в окне диаграммы деформации на кнопке
Display Y Axis (Показать деформацию по Y). Появится линия диаграммы зеленого цвета. Так как кнопка
Move Control Point (Переместить управляющую точку) выбрана по умолчанию, просто щелкните на левом маркере диаграммы деформации и переместите его в точку (0; 12), следя за координатами маркера в полях отсчета в середине нижней части окна диалога. Переместить маркер можно и проще: щелкните на маркере, введите новые значения его координат непосредственно в поля отсчета и нажмите клавишу Enter или Tab.
6.
Щелкните на кнопке Insert Corner Point (Вставить угловую точку) и выберите на панели инструмента кнопку Insert Bezier Point (Вставить точку Безье). Щелкните на кривой деформации, поместив на ней новую вершину, и введите в поля отсчета координаты этой вершины (3; 65). Продолжайте щелкать на кривой и установите следующие координаты новых управляющих точек: (28; 70), (46; 30), (60; 30), (70; 90). Последней управляющей точке задайте координаты (100; 85). Настройте положения маркеров касательных векторов управляющих точек, чтобы придать кривой деформации вид, показанный на рис. 7.34. При этом вид сверху на тело лофтинга изменится, повторяя контуры кривой деформации по осп Y, то есть по ширине объекта.
Рис. 7.34. Вид кривой деформации по оси Y
7. Теперь настройте деформацию по оси Y, или по толщине тела. Щелкните в окне диаграммы деформации на кнопке
Display X Axis (Показать деформацию по X). Появится линия диаграммы красного цвета. Переместите маркер первой управляющей точки в положение (0; 25). Далее выберите кнопку Insert Bezier Point (Вставить точку Безье) и добавьте на линию диаграммы четыре новые вершины Безье, задав для них следующие координаты: (3; 75), (38; 75), (55; 30) и (70; 90). Последний маркер переместите в точку (100; 20), как показано на рис. 7.35. При этом вид тела лофтинга в окне проекции Front (Вид спереди) изменится, повторяя форму кривой деформации.
Рис. 7.35. Вид кривой деформации по оси X
8. Закончив настройку деформации, закройте окно диалога Scale Deformation (Деформация масштаба). Окончательный вид деформированной вилки, пока еще не имеющей зубьев, показан на рис. 7.36. Создать зубья можно различными способами, однако мы воспользуемся для этого булевскими объектами, о которых речь пойдет в следующем разделе. А пока что сохраните сцепу в файле под заданным в начале упражнения именем. Сопоставьте получившийся у вас результат с готовым объектом из файла с таким же именем Vilka.max, хранящегося в папке \Scenes\Glava_07 компакт-диска, прилагающегося к книге.
Рис. 7.36. Окончательный вид тела лофтинга после деформации по осям ширины и толщины
Преобразуем параллелепипед в «Золотую рыбку» типа NURMS
Для опробования инструмента MeshSmooth (Сглаживание сетки) выберем объект в виде золотой рыбки, показанной на рис. 9.46, которая украсит нашу новогоднюю елку в «МАХ-кафе».
Рис. 9.46. Золотая рыбка, построенная на базе параллелепипеда с последующим сглаживанием при помощи модификатора MeshSmooth
Будем считать, что основные приемы моделирования геометрии на основе примитивов вами уже усвоены, так что на этот раз описание будет менее подробным.
1. Выполните перезагрузку программы и сохраните пустую сцену под именем Zolotaia ribka.max.
2. Постройте в окне проекции Тор (Вид сверху) примитив-параллелепипед примерно таких размеров: длина — 9 см, ширина — 35 см, высота — 18 см и установите для него число сегментов по длине, ширине и высоте равным 3, 5 и 4 соответственно, как показано на рис. 9.47. Как и в предыдущих упражнениях, превратите параллелепипед в редактируемую сетку. Рыбка, как и шахматный конь, имеет продольную симметрию. Можно было бы тоже начинать с построения одной продольной половинки с последующим зеркальным копированием и объединением. Однако данная модель достаточна проста, так что будем создавать ее сразу целиком. Цель упражнения состоит не в том, чтобы освоить новые методы редактирования формы сетки, а в том, чтобы на сравнительно простой модели научиться использованию модификатора MeshSmooth (Сглаживание сетки).
Рис. 9.47. В исходный параллелепипед для наглядности вписана сглаженная фигурка рыбки, которую предстоит создать
ЗАМЕЧАНИЕ
Подобную модель можно было бы создать, превратив параллелепипед не в сетку, а в полисетку (Editable Poly), у которой имеются встроенные средства сглаживания. Однако наша задача состоит в том, чтобы освоить работу с модификатором MeshSmooth (Сглаживание сетки). Научившись сглаживать стандартную сетку с помощью этого модификатора, вы без труда сумеете самостоятельно освоить встроенные средства сглаживания полисеток. |
3. Выделяя в окне вида спереди с помощью рамки сразу по четыре вершины, расположенных одна за другой по координате толщины объекта и проецирующихся в этом окне в одну точку, и перемещая эти вершины, придайте параллелепипеду форму, в первом приближении соответствующую форме тела рыбки, пока без хвоста и плавников, как показано на рис. 9.48. Обратите внимание на то, как второй слева вертикальный ряд вершин оформлен в виде плавно изогнутой вправо дуги. Ребра, соединяющие эти вершины, в дальнейшем помогут нам оформить жаберную щель рыбки.
Рис. 9.48. За счет перемещения групп вершин в окне вида спереди параллелепипеду придана форма тела рыбки
4. Применяя инструмент Select and Non-Uniform Scale (Выделить и неравномерно масштабировать), придайте телу рыбки обтекаемую форму в окне проекции Тор (Вид сверху), примерно так, как показано на рис. 9.49. Выделяйте по целому ряду вершин, расположенных поперек тела рыбки, и уменьшайте толщину сечения тела, применяя инструмент неравномерного масштабирования только вдоль оси Y.
Рис. 9.49. Телу рыбки в проекции вида сверху придана обтекаемая форма при помощи инструмента неравномерного масштабирования
ЗАМЕЧАНИЕ Хочу напомнить, что в max 7.5 с появлением новых типов контейнеров преобразований неравномерное масштабирование можно выполнять и при помощи инструмента Select and Uniform Scale (Выделить и равномерно масштабировать). |
5. Как вы, вероятно, уже догадались, все плавники — спинной, два грудных, брюшной и хвостовой — сформированы методом экструзии соответствующих полигонов с последующим редактированием формы за счет перемещения групп вершин. Разумеется, не следует забывать переключаться на уровень выделения соответствующих подобъектов — вершин или полигонов. Поворачивая плоскость проекции так, чтобы хорошо видеть грани, подлежащие выдавливанию, выделите эти грани (полигоны) и примените к ним инструмент Extrude (Выдавливание). На торце фигуры имеются три ряда граней. Я выдавливал брюшной, хвостовой и спинной плавники только из граней среднего ряда. Грудные плавники, напротив, выдавлены из граней двух крайних рядов. Завершив выдавливание, переключитесь на проекцию вида спереди и переместите группы вершин или примените к ним неравномерное масштабирование, окончательно оформив плавники. Поработав над плавниками, выделите шесть граней на переднем торце фигурки (там, где у рыбки должен быть рот), и тоже слегка выдавите их, как показано на рис. 9.50. Тем самым вы создадите дополнительную сегментацию, необходимую для последующего оформления утолщенных губ рыбки.
Рис. 9.50. Сформированы заготовки плавников рыбки
6. Теперь поработайте над формой рыбки в окне проекции Left (Вид слева), где наша модель видна со стороны головы. Перемещая группы вершин и применяя инструмент неравномерного масштабирования, уменьшите толщину плавников и придайте телу рыбки округлую форму, как показано на рис. 9.51.
Рис. 9.51. Толщина плавников уменьшена и телу рыбки придана округлая форма, где фигурка видна со стороны головы
СОВЕТ Всегда используйте инструмент неравномерного масштабирования с ограничением его действия одной из осей координат, если требуется сблизить или раздвинуть вершины сетки в определенном направлении. Использование операции масштабирования позволяет обеспечить полную симметрию перемещения вершин относительно геометрического центра выделенного набора, чего очень трудно добиться, применяя инструмент перемещения к каждой отдельной вершине. |
7. Снова переключившись на проекцию Front (Вид спереди), поработайте над ртом. Во-первых, выделите группу вершин посередине рта и сильно сместите их вправо, сформировав углубление рта и губы. Затем слегка поправьте на виде спереди вершины краев губ, показанные стрелками на рис. 9.52, сместив их в направлении этих стрелок. На виде сверху придайте губам закругленную форму и раздвиньте в стороны уголки рта.
Рис. 9.52. Указанные стрелками группы вершин нужно сместить в обозначенных направлениях, чтобы улучшить форму губ
8. Переключитесь на уровень выделения полигонов, выделите узкие полигоны по всему периметру губ и слегка выдавите их в стороны. Не забудьте только перед выдавливанием установить переключатель Normal (Нормаль), расположенный ниже кнопки Extrude (Выдавить), в положение Local (Локальная). При этом каждая грань будет выдавливаться в направлении собственной нормали. Если этого не сделать, вся совокупность выделенных граней выдавится в направлении усредненной групповой нормали, а это не совсем то, чего мы хотим добиться. В результате рот рыбки должен принять примерно такой вид, какой показан на рис. 9.53.
Рис. 9.53. Губам придана некоторая выпуклость методом выдавливания
9. Почти все готово к сглаживанию сетки. Осталось только обеспечить выпуклость жаберных крышек. В окне вида спереди подтащите вершины, расположенные правее дуги жаберной крышки, влево, поближе к дуге. Это позволит сформировать излом поверхности, приподняв края жабр над поверхностью тела рыбки. В том же окне вида спереди выделите вершины, показанные стрелками на рис. 9.54. Переключитесь на вид сверху и примените к выделенным вершинам неравномерное масштабирование по координате толщины тела, заставив симметричные вершины по обе стороны тела рыбки выдвинуться наружу.
Рис. 9.54. Стрелками показаны вершины на краях жаберных крышек, к которым следует применить масштабирование по координате толщины тела
10. Края жаберных крышек приподнимутся над поверхностью тела. Немного подвигайте вершины на краях жабр, заставив эти края слегка нависать над боками рыбки. Окончательный вид модели перед применением сглаживания показан на рис. 9.55. Перед тем как приступить к сглаживанию, сохраните файл модели под заданным в начале упражнения именем Zolotaia ribka.max. Сразу же после этого сохраните файл еще раз, но с инкрементированием имени.
Рис. 9.55. Модель рыбки, сформированная из обычного параллелепипеда, готова к сглаживанию
ЗАМЕЧАНИЕ Вы можете найти модель рыбки в том виде, какой она имеет на данный момент, в файле Zolotaia ribka.max, хранящемся в папке Scenes\Glava_09 компакт-диска, прилагающегося к книге. |
11. Выделив модель рыбки на верхнем уровне редактируемой сетки в целом, раскройте список Modifier List (Список модификаторов) на командной панели Modify (Изменить) и выберите в нем модификатор MeshSmooth (Сглаживание сетки). С сеткой, казалось бы, ничего не произойдет, но на командной панели появятся свитки параметров модификатора. Этих свитков достаточно много, поэтому на рис. 9.56 показаны только те, с которыми мы будем иметь дело.
Рис. 9.56. Первые три свитка параметров модификатора MeshSmooth
12. Проследите за тем, чтобы в раскрывающемся списке Subdivision Method (Метод разбиения) свитка с тем же названием был выбран вариант NURMS (Non-Uniform Rational MeshSmooth — Неоднородная рациональная сглаженная сетка). Изначально в счетчике Iterations (Итераций) свитка Subdivision Amount (Степень разбиения) значится величина 0, обозначающая отсутствие сглаживания. Измените это значение на 1, а затем на 2. Чем больше число итераций, тем более гладкой становится сетка. Наблюдайте в окнах проекций, как полигональная сетка будет приобретать все более сглаженные формы, что иллюстрируется на рис. 9.57. Установите в свитке Local Control (Локальное управление) флажок Display Control Mesh (Показывать управляющую сетку). При этом в окнах проекций наряду со сглаженной сеткой будет демонстрироваться линиями светло-коричневого цвета наружный контур исходной сетки в том виде, какой она имела до применения сглаживания.
Рис. 9.57. Рыбка приобрела округлые формы после двух итераций действия модификатора сглаживания. Вокруг сглаженного объекта изображается контур исходной сетки
13. Щелкните в свитке Local Control (Локальное управление) на кнопке Vertex (Вершина) или выберите строку Vertex (Вершина) в дереве подобъектов модификатора MeshSmooth (Сглаживание сетки) в окне стека модификаторов. При этом в узлах управляющей сетки появятся синие точки, обозначающие вершины. Вы имеете возможность применять к этим вершинам любые допустимые преобразования, наблюдая в окнах проекций, какое влияние оказывают эти преобразования на сглаженный вариант сетки. Попробуйте перемещать вершины управляющей сетки в районе верхнего или хвостового плавника, чтобы ощутить, насколько плавно изменяется при этом форма сглаженной сетки. Есть еще один удобный способ управления сглаженной сеткой — изменение весов управляющих вершин. Выделите, к примеру, управляющие вершины на концах и посередине хвоста. Измените их веса в счетчике Weight (Вес) с принятого по умолчанию значения 1 на, скажем, 3 или 4. Вы заметите, как сглаженная сетка подтянется к вершинам с увеличенным весом. Манипулируя подобным образом управляющими вершинами вокруг грудных плавников, сделайте их более тонкими у основания и более широкими на концах. Примерный результат настройки формы нашей NURMS-рыбки показан на рис. 9.58. Сохраните файл, который после инкрементирования должен иметь имя Zolotaia ribka01.max.
Рис. 9.58. Форма верхнего, хвостового и грудных плавников рыбки настроена за счет перемещения и изменения весов вершин управляющей сетки
Можете самостоятельно поэкспериментировать с управляющими вершинами в районе краев жаберных крышек, перемещая эти вершины и меняя их веса. В заключение остается только сделать рыбке глаза из двух стандартных сфер, и она приобретет вид, показанный ранее на рис. 9.46.
ЗАМЕЧАНИЕ Итоговую модель рыбки с примененным к ней модификатором сглаживания можно найти в файле Zolotaia ribka01.max, хранящемся в папке Scenes\Urok_09 компакт-диска, прилагающегося к книге. |
Разумеется, модификатор MeshSmooth (Сглаживание сетки) можно применять не только к объектам, полученным на основе параллелепипеда, а к любым полигональным сеткам, имеющим угловатые формы из-за малого числа полигонов.
Использование модификатора MeshSmooth (Сглаживание сетки) для сглаживания сеток исторически появилось в программе 3ds max раньше, чем редактируемые полисетки с их встроенными возможностями сглаживания. Попробуйте самостоятельно построить модель такой же рыбки или какую-то другую, на начальном этапе преобразовав параллелепипед не в стандартную редактируемую сетку, а в полисетку. Закончив моделирование формы объекта, установите флажок Use NURMS Subdivision (Разбиение типа NURMS) в свитке Subdivision Surface (Разбиение поверхности) и задайте нужное число итераций разбиения полисетки в счетчике Iterations (Итераций).
В качестве примера на рис. 9.59 показан результат двух итераций сглаживания полисетки, изображающей нашу рыбку. Эта полисетка была получена простым преобразованием готового объекта, загруженного из файла Zolotaia ribka.max, в объект типа Editable Poly (Редактируемая полисетка). Решетка управляющих вершин полисетки становится видна после переключения на уровень работы с подобъектами типа Vertex (Вершина). Счетчик Weight (Вес), позволяющий настраивать веса вершин этой решетки, у полисеток находится в свитке Edit Vertices (Правка вершин).
Рис. 9.59. Округлые формы, приобретенные объектом типа Editable Poly, после двух итераций действия встроенных средств сглаживания; виден контур исходной сетки, играющей роль управляющей решетки
Создаем поленья для камина
По замыслу в нашем зимнем кафе топится камин, значит, для него нужны дрова — хотя бы пара поленьев.
Создадим заготовки для таких поленьев в виде цилиндра и цилиндрического сегмента. Выполните следующие действия:
1. Произведите перезагрузку max 7.5, выбрав команду меню File > Reset (Файл > Перезагрузить). Сохраните пустую сцену в файле под именем Drova.max.
2. Настройте единицы измерения и сетку координат так, как было описано в разделе «Настраиваем max 7.5 для работы над сценой „МАХ-кафе"» главы 3.
3. Создайте на плоскости окна проекции Тор (Вид сверху) стандартный примитив Cylinder (Цилиндр) радиусом порядка 8-9 см и высотой, скажем, 50-60 см. Установите флажок Generate Mapping Coords (Проекционные координаты) и задайте число сегментов по высоте объекта (Height Segments) равным 5. Это нужно сделать для последующего применения модификатора Noise (Неоднородности). Назовите объект Poleno01 и назначьте ему подходящий цвет, например светло-коричневый или желтый.
4. В качестве второго полена создайте цилиндрический сектор. Для этого постройте в том же окне проекции Тор (Вид сверху) стандартный цилиндр с таким же радиусом, как и предыдущий, но подлиннее, скажем, высотой 70 см. Установите флажок Generate Mapping Coords (Проекционные координаты) и задайте для этого полена значение параметра Height Segments (Сегментов по высоте) равным 16 Более детальная сегментация требуется для того, чтобы впоследствии с помощью модификатора Noise (Неоднородности) можно было сделать это полено более неровным, чем первое. В совокупности с применением соответствующего материала это позволит создать впечатление, что полено сильнее обгорело. Назовите объект Poleno01 и назначьте ему подходящий цвет.
5. В заключение переместите и поверните оба полена, разместив их на свой вкус, например положив одно из них концом на другое, примерно так, как показано на рис. 5.25. Очевидно, при размещении этих объектов не требуется высокой геометрической точности. Сохраните созданную сцену.
Рис. 5.25. Примитивы — цилиндр и цилиндрический сектор — имитируют поленья для камина
Учимся имитировать
В этом упражнении мы постараемся освоить несколько новых текстурных карт, отличающихся от растровых, без которых невозможно сформировать реалистичные изображения зеркал или объектов из стекла. Как уже было показано выше, простое повышение степени прозрачности материала оказывается явно недостаточным для имитации стеклянных объектов. При этом не воспроизводятся такие эффекты, как уменьшение (спад) прозрачности по краям стеклянных сосудов, где удлиняется путь луча света через толщу материала, а также зеркальные отражения окружающих предметов на поверхности стекла. Для имитации этих эффектов служат карты текстур Falloff (Спад), Reflect/Refract (Отражение/Преломление) и Raytrace (Трассируемая). Для применения этих текстурных карт в составе материалов «МАХ-кафе» выполните следующие действия:
1. Продолжите работу над сценой «МАХ-кафе» или заново загрузите ее в программу max 7.5 (нужную сцену можно найти в файле MAX-kafe14.max, хранящемся в папке Scenes\Glava_14 компакт-диска, прилагающегося к книге). Сохраните сцену с инкрементированием имени файла.
2. Сначала займемся доработкой материала, назначенного стеклянным бокалам. Активизируйте ячейку Редактора материалов, содержащую образец материала Steklo. Разверните свиток Maps (Карты текстур) и щелкните на длинной кнопке с надписью None (Отсутствует) справа от параметра Opacity (Непрозрачность).В окне просмотра материалов и карт текстур дважды щелкните на строке Falloff (Спад). Произойдет возврат в Редактор материалов, где появится свиток параметров карты текстуры спада непрозрачности. По умолчанию непрозрачность карты возрастает по мере отклонения нормалей граней объекта от направления наблюдения, за которое принимается направление линии визирования съемочной камеры. Грани, нормали которых ориентированы строго на наблюдателя или строго от наблюдателя, имеют наибольшую прозрачность, а грани, нормали которых перпендикулярны направлению наблюдения, — нулевую прозрачность. Оставьте неизменными исходные значения всех параметров карты непрозрачности и вернитесь на уровень работы с материалом, щелкнув на кнопке Go to Parent (Перейти к составному материалу).
3. Теперь щелкните в свитке Maps ( Карты текстур) на длинной кнопке с надписью None (Отсутствует) справа от параметра Reflection (Зеркальное отражение). Выберите карту текстур отражения и преломления, для чего в окне просмотра материалов и карт текстур дважды щелкните на строке Reflect/Refract (Отражение/Преломление). В свитке Reflect/Refract Parameters (Параметры отражения/преломления) сбросьте флажок Use Environment Map (Использовать карту текстуры окружающей среды), иначе max 7.5 будет формировать зеркальное отражение в материале не только окружающих предметов, но и растровой текстуры, изображающей фон сцены. Нам это не нужно: ведь бокалы находятся в закрытом помещении. Для остальных параметров оставьте их исходные значения. Вернитесь на уровень работы с материалом и уменьшите долю вклада карты в счетчике Amount (Доля вклада) до 40. На рис. 14.80 показан вид полученного стеклянного материала в окне увеличителя. Сохраните доработанный материал в библиотеке MAX-kafe.mat под тем же именем Steklo и выполните пробную визуализацию сцены в окне проекции Са-тега03 (Камера03). Результат применения материала на основе карт текстур спада непрозрачности и отражения/преломления к бокалам сцены «МАХ-кафе» был показан ранее на рис.14.10 и 14.23.
Рис. 14.80. Образец материала Steklo после применения карт текстур спада непрозрачности и отражения/преломления
4. Пора заняться материалом для стекла зеркала, висящего на стене кафе «МАХ». Активизируйте очередную свободную ячейку Редактора материалов и назовите новый материал Zerkalnoe steklo. Выберите в раскрывающемся списке свитка Shader Basic Parameters (Базовые параметры раскраски) вариант раскраски Metal (Металл). В свитке Metal Basic Parameters (Базовые параметры металлической раскраски) настройте следующие значения основных цветов материала: Ambient (Подсветка) — (252; 252; 252), почти белый; Diffuse (Диффузный) — (255; 255; 255), чисто-белый. Создайте очень яркий, точечный зеркальный блик, имитирующий блеск хорошо отполированного стекла: Specular Level (Сила блеска) - 100; Glossiness (Глянцевитость) = 95. Величины всех остальных параметров материала, включая стопроцентную непрозрачность, оставьте равными их исходным значениям.
5. Разверните свиток Maps (Карты текстур) и щелкните на длинной кнопке с надписью None (Отсутствует) справа от параметра Reflection (Зеркальное отражение). Выберите трассируемую карту текстуры, для чего в окне просмотра материалов и карт текстур дважды щелкните на строке Raytrace (Трассируемая). В свитке Raytracer Parameters (Параметры трассировщика) установите переключатель Trace Mode (Режим трассировки), который по умолчанию находится в положении Auto Detect (Автоопределение), в положение Reflection (Отражение). Все остальные параметры оставьте в исходных состояниях. Сохраните материал в текущей библиотеке и примените его к объекту Zerkalo. Выполните пробную визуализацию сцены в окне проекции Camera02 (Камера02). Результат должен быть подобен изображению, показанному на рис. 1.21 первой главы. Сохраните сцену под измененным в начале упражнения именем.
ЗАМЕЧАНИЕ Добавление в состав материалов многочисленных карт отражения/преломления и трассировки сильно тормозит визуализацию. |
Это все, что мы должны были отработать применительно к стандартным материалам на основе текстурных карт. Последнее, что нам осталось опробовать на практике в рамках данной главы, — это создание многокомпонентных материалов.
Учимся управлять тенями отдельных объектов
В предыдущем упражнении мы заставили конкретный осветитель отбрасывать тени различных типов от объектов трехмерной сцены. Мах 7.5 позволяет, однако, указать для каждого отдельного объекта, должен ли он давать тень при освещении любым источником света. Отменить присваиваемое объекту при создании свойство отбрасывать тень бывает нужно для достижения художественной выразительности или для имитации полной прозрачности объектов', когда у источника света используются тени, основанные на картах теней. Продолжите предыдущее упражнение, чтобы отработать прием отмены отбрасывания тени для отдельных объектов.
1. По задуманному сценарию плафоны настенных светильников «МАХ-кафе» предполагается сделать полупрозрачными, применив к ним соответствующий материал. Чтобы такие объекты отбрасывали полупрозрачные тени, пришлось бы для всех осветителей сцены включать режим использования трассируемых теней, что привело бы к непроизводительным затратам времени. Но поскольку плафоны располагаются не на переднем плане сцены, проще вообще отменить для них свойство отбрасывать тени. Чтобы добиться этого, выделите объект-группу Lampa01 и выберите команду главного меню Group > Open (Группа > Открыть). После этого выделите объект Plafon, входящий в состав группы Lampa01. Щелкните на выделенном плафоне правой кнопкой мыши и выберите в появившемся четвертном меню команду Properties (Свойства). Появится окно диалога Object Properties (Свойства объекта), раскрытое по умолчанию на вкладке General (Общие). Сбросьте в этом окне флажок Cast Shadows (Отбрасывать тени) в разделе Rendering Control (Управление визуализацией) и щелкните на кнопке ОК. Закройте группу, выбрав команду главного меню Group > Close (Группа > Закрыть).
2. Повторите описанные действия применительно к дальнему настенному светильнику, представленному объектом-группой Lampa02. Завершив настройку, выполните визуализацию изображения в окне проекции Perspective (Перспектива), чтобы убедиться, что плафоны обоих светильников более не отбрасывают теней, как показано на рис. 11.19, — они как бы стали полностью прозрачными для лучей света любых осветителей сцены.
Рис. 11.19. Плафоны обоих настенных светильников более не отбрасывают теней
3. В качестве временной меры до момента назначения материалов проделайте аналогичную процедуру отключения отбрасывания тени применительно к объекту Okno, так как свет изнутри кафе должен свободно проникать наружу, и наоборот.
ЗАМЕЧАНИЕ Препятствием для воображаемых лучей света являются только грани объектов, обращенные к источнику света лицевой стороной. С изнанки свет по умолчанию проходит сквозь грани оболочки беспрепятственно. Так что если, к примеру, поместить Всенаправленный источник света внутрь стандартной сферы или куба, это не явится препятствием для освещения окружающих объектов сцены, так что в подобных случаях нет никакого смысла выключать режим отбрасывания теней этими объектами. |
Не закрывайте программу — нам еще предстоит продолжить работу со всенаправленными осветителями.
Усложняем анимацию сцены «МАХ-кафе»
В сцене «МАХ-кафе» можно «оживить» массу элементов, хватило бы только воображения. Попробуем одновременно «оживить» два объекта — входную дверь и съемочную камеру, расположенную снаружи здания кафе. Представьте себе такой сценарий анимации: кафе стоит с закрытыми дверями, затем камера начинает наезжать на двери, они распахиваются, взгляд камеры проникает в помещение и дает панораму интерьера. При этом анимацию и дверей, и камеры выполним в принудительном режиме.
Выполните следующие действия:
1. Откройте файл MAX-kafe22.max. Если вы не сохранили такой файл на жестком диске своего компьютера, можете загрузить нужный файл под именем MAX-kafe22.max из папки Scenes\Glava_15 компакт-диска, прилагающегося к книге. Сохраните файл сцены под именем MAX-kafe (naezd kameroy).max. Скройте от просмотра обе системы снежинок — ведь мы собираемся визуализировать внутреннее пространство кафе, а снежинки свободно проникают через потолок помещения.
2. Укажите программе, ключи каких параметров следует создавать в принудительном режиме. Для этого щелкните на кнопке Key Filters (Фильтры ключей). В окне диалога Set Key Filters (Выбор фильтров ключей) сбросьте установленные по умолчанию флажки Scale (Масштаб) и IK Parameters (IK-параметры). Оставьте установленными флажки Position (Положение) и Rotation (Поворот). Флажок Position (Положение) обеспечит установку ключей анимации положения камеры и ее мишени, а флажок Rotation (Поворот) — создание ключей анимации поворота створок дверей.
3. Создайте два набора выделенных объектов. В первый из них, названный, скажем, Stvorki dverey, включите объекты LevStvorka и PravStvorka. Во второй включите камеру Camera01 и ее мишень — объект Camera01.Target, назвав набор, скажем, Naruzhnaia kamera. Возможно, для этого сначала придется сделать видимой скрытую от просмотра камеру.
4. Выполните анимацию створок дверей. Приведите створки дверей в исходное (закрытое) положение аналогично тому, как вы делали это в п. 3 упражнения 2 этой главы. Выберите в раскрывающемся списке справа от кнопки Auto Key (Автоключ) строку Stvorki dverey.
5. Включите режим принудительной анимации, щелкнув на кнопке Set Key (Задать ключ). Убедитесь в том, что ползунок таймера анимации стоит на отметке нулевого кадра. Помните, что в режиме Set Key (Задать ключ), в отличие от режима Auto Key (Автоключ), ключи анимации не создаются в нулевом кадре автоматически, так что это нужно обязательно сделать вручную. Щелкните на большой кнопке Set Keys (Задать ключи) с изображением ключа, чтобы установить в нулевом кадре анимационные ключи, фиксирующие значения параметров, выбранных с помощью окна диалога Set Key Filters (Выбор фильтров ключей). В данном случае будут установлены ключи анимации перемещения и поворота створок.
6. Переместите ползунок таймера к отметке кадра № 30. Поверните левую и правую створки так, чтобы двери были широко открыты. Щелкните на кнопке Set Keys (Задать ключи), чтобы создать ключи анимации. Если какая-то из створок выделена, вы увидите в строке треков квадратики на отметках нулевого и тридцатого кадров. Эти квадратики будут раскрашены наполовину в красный, наполовину в зеленый цвет, так как они символизируют ключи анимации перемещения и поворота.
7. Выключите режим принудительной анимации и, перетаскивая влево-вправо ползунок таймера анимации, убедитесь, что дверь полностью открывается на протяжении первых 30 кадров. Анимация двери закончена.
8. Теперь выполните анимацию камеры Camera01 (Камера01). Включите режим принудительной анимации, щелкнув на кнопке Set Key (Задать ключ). Выберите в раскрывающемся списке справа от кнопки Auto Key (Автоключ) строку Naruzhnaia kamera. Сделайте текущим кадр № 0 и щелкните на кнопке Set Keys (Задать ключи), создав ключи фиксации исходного положения камеры и мишени.
9. Установите в качестве текущего кадр № 30, выделите объект Camera01 (Ka-мера01) и в окне проекции Тор (Вид сверху) переместите камеру почти вплотную ко входной двери, которая к этому моменту уже полностью открыта, в точку с примерными координатами (120 см; -330 см; 165 см). Щелкните на кнопке Set Keys (Задать ключи), создав ключи для камеры и ее мишени. Вид сцены через окно камеры в этот момент показан на рис. 16.34.
Рис. 16.34. Дверь кафе распахивается перед камерой, которая задерживается на пороге, чтобы осмотреть внутреннее пространство кафе (кадр № 30)
10. Теперь выполните анимацию мишени камеры, чтобы обеспечить показ панорамы интерьера кафе. Сделайте текущим кадр № 60 и переместите мишень камеры в район точки (75 см; 55 см; 140 см), чтобы сделать видимой правую часть кафе, как показано на рис. 16.35. Щелкните на кнопке Set Keys (Задать ключи), создав ключи для камеры и ее мишени.
Рис. 16.35. Взгляд камеры скользит внутри помещения (кадр № 60)
11. Наконец, установите в качестве текущего кадр № 100 и в окне вида сверху переместите мишень влево, в точку с примерными координатами (-65 см; -260 см; 140 см). Это должно создать впечатление, что посетитель выбрал для себя кресло и нацелился войти и сесть на него, как показано на рис. 16.36. Щелкните на кнопке Set Keys (Задать ключи), создав ключи. Выключите режим анимации щелчком на кнопке Set Key (Задать ключ).
Рис. 16.36. Камера завершает панорамный обзор помещения кафе (кадр № 100)
12. Воспроизведите анимацию в окне проекции Perspective (Перспектива), включив режим каркасного отображения. Вы увидите, как камера наезжает на раскрывающуюся дверь кафе, далее ее взгляд проникает внутрь и скользит по внутреннему убранству помещения слева направо, а затем обратно. Сохраните сцену в файле под именем MAX-kafe (naezd kameroy).max, заданным в начале упражнения. Файл сцены с таким же именем, реализующей данную анимацию, имеется в папке Scenes\Glava_16 компакт-диска, прилагающегося к книге.
Завершаем конструирование модели сцены «МАХ-кафе»
Сформируйте итоговую геометрическую модель «МАХ-кафе», выполнив следующие действия:
1. Откройте созданный нами в восьмой главе файл MAX-kafe07.max, содержащий модель здания кафе с проемами для двери и окна, а также две скрытые пока
системы частиц-снежинок. При необходимости вы найдете файл с такой сценой под аналогичным именем MAX-kafe07.max в папке Scenes\Glava_08 компакт-диска, прилагающегося к книге. Сохраните файл с инкрементированием имени.
2. Выделите объекты Zadniaia stena, LevStena, PravStena и Fasad, после чего щелкните на кнопке Zoom Extents All Selected (Выделенные объекты целиком во всех окнах), чтобы установить удобный масштаб для дальнейшей работы.
3. Чтобы скомпоновать сцену из различных файлов, можно использовать команды Merge (Присоединить) или XRef Objects (Ссылки на объекты) меню File (Файл). Воспользуемся командой File > Merge (Файл > Присоединить), чтобы сделать сцену независимой от внешних ссылок: вдруг вам захочется поделиться своей разработкой с друзьями? Для начала снабдим здание кафе окном. Выбрав команду File > Merge (Файл > Присоединить), выделите в окне диалога Merge File (Присоединение файла) файл Okno01.max. Если вы по каким-то причинам не создали окна для кафе, загрузите файл с таким же именем из папки Scenes\Glava_08 компакт-диска, прилагающегося к книге. В появившемся окне диалога Merge-Okno01.max (Присоединение-Okno01.max) дважды щелкните па имени объекта Okno.
4. Переместите окно в точку с координатами (-150; -299; 160), и оно точно займет свое место в оконном проеме. Естественно, стекло окна пока не является прозрачным, — чтобы сделать его таковым, необходимо применить к окну соответствующие материалы. Этим мы займемся в главах третьей части нашей книги. Пока же продолжим наполнение сцены.
5. Вставим в подготовленный проем двустворчатую дверь. Модель двери была заблаговременно подготовлена нами в восьмой главе, и вы могли бы просто загрузить ее из сохраненного ранее файла Dveri.max. Однако подготовленные вами створки дверей пока не могут нормально открываться, в чем легко убедиться, попробовав повернуть любую из них. Опорные точки (вспомните главу 4) обеих створок размещаются пока там, где они находились у прямоугольных параллелепипедов, служивших заготовками для изготовления створок, — в центрах оснований. Так как параллелепипеды строились в окне вида спереди, то основаниями у них стали широкие стороны, прилегающие к координатной плоскости окна Front (Вид спереди). В центрах этих сторон и находятся опорные точки обеих створок. Предлагаю загрузить готовую модель двери, опорные точки створок которой смещены к косякам так, чтобы обеспечивать правильный поворот каждой из половинок дверей. Такая модель имеется в файле с именем Dveri01.max, который вы можете найти в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге. Выполните команду меню File > Merge (Файл > Присоединить) и присоедините к текущей сцене группу Dveri из файла Dveri01.max, содержащую объекты Korobka, PravStvorka и LevStvorka. Установите двери на место, как показано на рис. 10.60, передвинув их в окнах проекций Тор (Вид сверху) и Front (Вид спереди). Если вы будете использовать ввод точных координат дверей, то вот необходимые значения: (75; -310; 133).
Рис. 10.60. «МАХ-кафе» обрело окно и дверь
6. Раскройте группу, выделите объект PravStvorka и примените к нему инструмент поворота, следя за тем, как правая створка двери открывается и закрывается. Раскройте створку примерно на 140°. Проделайте такую же процедуру с объектом LevStvorka. Пусть двери «МАХ-кафе» будут широко распахнуты, как показано на рис. 10.61.
Рис. 10.61. Двойные двери для «МАХ-кафе» широко и гостеприимно раскрыты
7. Снова выбрав команду меню File > Merge (Файл > Присоединить), выделите в окне диалога Merge File (Присоединение файла) файл Stol i stul03.max и щелкните на кнопке Open (Открыть). На прилагающемся к книге компакт-диске нужная сцена хранится в папке Scenes\Glava_08 под тем же именем Stol i stul03.max. В окне диалога Merge (Присоединение) выделите объект StolOI, все составные элементы которого были ранее сгруппированы, и щелкните на кнопке ОК. Стол появится в составе сцены «МАХ-кафе».
8. Переместите стол на нужное место. Для этого, ограничивая преобразование осью Y, переместите стол вверх в окне проекции Front (Вид спереди), так чтобы его ножки только касались объекта Pol. Здесь важно обеспечить высокую точность, так как если ножки будут висеть в воздухе, тень сразу же выдаст эту ошибку. При необходимости укрупните область изображения в месте касания пола ножкой стола. Кстати, можете попрактиковаться в применении освоенного нами в главе 8 инструмента Align (Выровнять), кнопка которого располагается на главной панели инструментов max 7.5. В оконной системе координат выравнивание следует производить вдоль оси Y, причем минимальная координата стола должна выравниваться с максимальной координатой пола. Для любителей точности скажу, что правильная Z-координата стола должна быть равна 72,5 см, если вы все делали так же, как я. Затем, ограничивая преобразование плоскостью XY, подвиньте стол к окну кафе в окне проекции Тор (Вид сверху), поместив его в районе точки с координатами (-45; -144; 72,5). Создайте дубликат-образец стола, назовите его Stol02 и поместите вблизи тыльной стены, в районе точки с координатами (-66; 149; 72,5), как показано на рис. 10.62.
Рис. 10.62. Столы расставлены в зале кафе «МАХ»
9. Теперь разместите вокруг столов по четыре кресла. Присоедините к сцене объект-группу Kreslo01 из файла Kreslo01.max (на прилагающемся к книге компакт-диске нужная сцена хранится в папке Scenes\Glava_08 под таким же именем Kreslo01.max). Поднимите кресло в окне проекции Front (Вид спереди) или Left (Вид слева), поставив его ножками на пол, или примените для этого инструмент выравнивания, а затем придвиньте к одному из столов. Создайте семь дубликатов-образцов кресла и расставьте их по четыре штуки вокруг каждого из столов. Поверните кресла лицевыми сторонами к столам, но не старайтесь обеспечить слишком строгую симметрию расстановки, чтобы сцена выглядела более живо, примерно так, как показано на рис. 10.63.
Рис. 10.63. Вокруг столов расставлены кресла
10. Присоедините к текущей сцене объект-группу Zerkalo из файла Zerkalo01.max (на прилагающемся к книге компакт-диске нужная сцена хранится в папке Scenes\Glava_08 также под именем Zerkalo01.max). Поместите объект ровно посередине левой стены здания кафе (координата Y равна нулю) на такой высоте, чтобы нижний край рамы оказался на уровне нижнего края подушек кресел, как показано на рис. 10.64.
Рис. 10.64. Высоту «подвески» зеркала легко отрегулировать в окне проекции Left (Вид слева)
11. Добавьте в состав сцены два светильника. Для этого присоедините объект-группу Lampa01 из файла Lampa04.max (на прилагающемся к книге компакт-диске нужная сцена хранится под тем же именем Lampa04.max в папке Scenes\ Glava_08). Создайте дубликат-образец светильника и разместите светильники по обе стороны от зеркала на расстоянии порядка 50 см от краев рамы. Высоту расположения светильников отрегулируйте так, чтобы верхний край плафонов был примерно на 10 см ниже верхнего края рамы зеркала (при этом Z-координата светильника должна составлять 215 см), как показано на рис. 10.65.
Рис. 10.65. Правильное расположение светильника по отношению к зеркалу
12. Настала пора заняться сервировкой столов. Выделите объект Stol01, активизируйте окно проекции Тор (Вид сверху) и щелкните на кнопке Zoom Extents Selected (Выделенные объекты целиком), чтобы установить подходящий масштаб для работы. Создайте в этом окне проекции кусок Безье типа QuadPatch (Четырехугольный кусок), который будет играть роль салфетки. Назовите объект Salfetka01 и создайте семь его дубликатов-образцов. Разместите «салфетки» в окне проекции Тор (Вид сверху) по четыре штуки по краям обоих столов, напротив каждого из кресел. Так как куски Безье создавались на координатной плоскости окна проекции Тор (Вид сверху), то их необходимо поднять вверх до уровня верхнего края столешниц. Выделите все восемь кусков Безье и переместите их в окнах проекций Front (Вид спереди) или Left (Вид слева) вверх по экрану (вдоль оси У), разместив точно на поверхности столов. Можете применить с этой целью инструмент Align (Выровнять), выполнив выравнивание минимальной Z-координаты каждого куска Безье с максимальной Z-координатой стола.
13. Присоедините к сцене ранее созданные нами объекты Tarelka01, Lozhka01, Vilka01 и Bokal01 из соответствующих файлов. Создайте для каждого объекта по 7 дубликатов-образцов и разместите их на обоих столах поверх салфеток примерно так, как показано на рис. 10.66. Можете разложить столовые приборы и по-другому: я не силен в сервировке. Для удобства можно сначала расставить нужным образом оригиналы тарелки, ложки, вилки и бокала, затем выделить их все и создать 7 дубликатов всего выделенного набора. Каждый из наборов-дубликатов затем нужно будет переместить на положенное ему место и при необходимости повернуть до правильной ориентации.
Рис. 10.66. Примерное расположение столовых приборов на столах кафе «МАХ»
14. Итак, все необходимые элементы геометрии левой части сцены подготовлены и сведены воедино. Интерьер левой части помещения кафе «МАХ» должен теперь выглядеть примерно так, как показано на рис. 10.67. Чтобы увидеть расстановку предметов внутри помещения в тонированном режиме отображения, необходимо временно скрыть от просмотра объекты Fasad, Viveska, Okno, Korobka, LevStvorka и PravStvorka, а также снежные валики на фундаменте и ступеньке, используя для этого инструменты свитка Hide (Скрыть) командной панели Display (Дисплей), рассмотренные в главе 3.
Рис. 10.67. Интерьер левой части кафе «МАХ» после завершения работы над геометрией этой части сцены
15. Теперь займемся правой частью сцены. Чтобы разместить у правой стены кафе камин, подготовьте в этой стене вырез, в который будет задвинута выступающая сзади часть топки. Утопить выступ в стене нашего виртуального кафе можно было бы и не делая выреза, но в этом случае стена будет просматриваться в углублении топки. О том, как вырезать в объектах отверстия методом булевского вычитания, рассказывалось в главе 7, «Пробуем метод лофтинга, создаем булевские объекты и системы частиц». Размеры выреза должны составлять примерно 135 см по ширине и 115 см по высоте. В каком именно месте стены — ближе к двери или дальше от нее — сделать этот вырез, решите самостоятельно. Загрузите объект Kamin, созданный в главе 9, и придвиньте его вплотную к стене, задвинув выступ в подготовленный вырез. На прилагающемся к книге компакт-диске нужный объект хранится в папке Scenes\Glava_09 под именем Kamin01.max. При желании вместе с камином добавьте в сцену объект Vaza. Вы можете импортировать его из файла Vaza01.max, который хранится на компакт-диске в папке Scenes\Glava_09. Этот объект мы уже разместили на каминной полке, поэтому вам не придется его выравнивать. Вместо вазы вы можете поставить на каминную полку созданный вами кубок. Эту модель под названием Kubok вы также можете найти на компакт-диске в папке Scenes\ Glava_09. В топку камина поместите поленья, подготовленные в одном из упражнений главы 5 и модифицированные в главе 8. Эти объекты при необходимости можно найти в файле Drova01.max, помещенном в папку Scenes\Glava_08. Рядом с камином поставьте кочергу, которую в виде объекта Kocherga можно найти в файле Kocherga01.max. Этот файл при желании можно найти в папке Scenes\Glava_07 компакт-диска, сопровождающего книгу.
16. В правый дальний угол помещения поставьте новогоднюю елку. Готовую трехмерную модель такой елки вы можете найти в файле Yolka.max, хранящемся в папке Scenes\Glava_10 прилагающегося к книге компакт-диска. Чтобы наша елка прочно стояла на полу, установите ее в крестовину, которую присоедините к сцене из файла Krestovina.max, созданного ранее в главе 8. Аналогичный файл можно найти в папке Scenes\Glava_08. Для украшения елки «развешайте» на ней игрушки — ранее созданные объекты Sharik, Gribok, Mesiac, Zolotaia ribka. Чтобы игрушек было побольше, создайте пять-шесть копий елочных шариков и распределите их по ветвям. На верхушку елки поместите объект Zvezda. При необходимости вы найдете файл Sharik01.max в папке Scenes\ Glava_08, а файлы, содержащие модели остальных упомянутых объектов, — в папке Scenes\Glava_09 компакт-диска, прилагающегося к книге.
ЗАМЕЧАНИЕ Предлагаемая в готовом виде трехмерная елка была синтезирована с помощью дополнительного модуля Treestorm компании ONYX для max 7. Этот дополнительный модуль включает достаточно большую библиотеку типовых хвойных и лиственных деревьев, а также кустарников. Формируемые модели растений являются полностью параметрическими и допускают гибкую настройку. Созданной модели по умолчанию присваивается многокомпонентный материал, который также можно настраивать по своему усмотрению. |
17. Создайте гирлянду из шариков небольшого размера, которые будут имитировать лампочки. С этой целью сначала постройте стандартный сплайн Helix (Спираль) высотой с елку, то есть порядка 185 см, имеющий полтора-два витка. Радиус спирали в районе основания сделайте равным примерно 110-120 см, а у вершины — 30-35 см. Затем создайте стандартную сферу радиусом около 3 см. Теперь нужно построить определенное число дубликатов этой сферы и равномерно расставить их вдоль траектории, задаваемой спиралью. Это можно сделать и вручную, но мы освоим новый инструмент, специально имеющийся в арсенале инструментов max 7.5 для решения подобных задач. Убедитесь, что созданная маленькая сфера все еще выделена. Выполните команду Tools > Spacing Tool (Сервис > Распределение) основного меню max 7.5. Появится окно диалога Spacing Tool (Распределение), показанное на рис. 10.68.
Рис. 10.68. Окно диалога Spacing Tool содержит средства для создания набора копий объекта и распределения их вдоль заданной траектории
18. Щелкните в окне диалога Spacing Tool (Распределение) на кнопке Pick Path (Указать путь), а затем — на сплайне-спирали. Укажите в счетчике Count (Число) нужное число дубликатов, скажем, 30. Значения всех остальных параметров можно оставить принятыми по умолчанию. В частности, это означает, что будет создано распределение типа Divide Evenly, Objects at Ends (Равномерное разбиение, объекты на концах), то есть 30 дубликатов-копий сферы равномерно распределятся вдоль кривой. Чтобы реализовать такое распределение, щелкните на кнопке Apply (Применить). После этого можно удалить и исходный образец сферы, и сплайн спирали — 30 объектов-дубликатов не исчезнут и не изменят своего пространственного распределения. Сгруппируйте елку вместе со всеми игрушками, крестовиной и шариками гирлянды, назвав группу Yolka. В итоге елка может иметь примерно такой вид, какой показан на рис. 10.69.
Рис. 10.69. Примерный вид елки с игрушками, звездой, крестовиной и гирляндой
19. В заключение поместите под елочкой фигуру Деда Мороза, но не в исходной позе, в какой вы создавали его в ходе упражнений данной главы, а в более живом виде, с мешком за плечами и посохом в руке. Такой вид мы постараемся придать нашему персонажу позже, в главе 16. Пока же можете просто загрузить готовую фигуру, найдя файл DedMoroz06.max в папке Scenes\Glava_10 прилагающегося к книге компакт-диска. На рис. 10.70 показано, как выглядит в результате правая часть кафе «МАХ». Закончив подготовку геометрической модели сцены «МАХ-кафе», сохраните ее в файле под заданным в начале работы именем MAX-kafe08.max.
Рис. 10.70. Вид правой части кафе «МАХ» после окончательного завершения работы над геометрической моделью сцены
Зажигаем огонь в камине
У правой стены нашего новогоднего кафе стоит камин, и было бы странно, если бы в нем не загорелся огонь, тем более что и поленья приготовлены. Для имитации открытого пламени в числе фильтров эффектов внешней среды mах 7.5 имеется модуль Fire Effect (Горение). Следует только иметь в виду, что имитируемое пламя не оказывает никакого влияния на освещение сцены, то есть огонь не является источником света — это просто изображение языков пламени. Для имитации отсветов, отбрасываемых огнем, нужно принимать дополнительные меры, в частности использовать для этого отдельный Всенаправленный осветитель. Такой осветитель, кстати, уже подготовлен нами в составе сцены «МАХ-кафе».
ЗАМЕЧАНИЕ
В ранних версиях 3ds max программный модуль имитации пламени именовался Combustion (Горение), но теперь данное имя зарезервировано за программой компании Discreet, предназначенной для редактирования видеороликов. |
Эффект пламени обязательно должен быть локализован в пространстве сцены. Для такой локализации используются специальные вспомогательные объекты, относящиеся к разновидности Atmospheric Apparatus (Атмосферная оснастка). Эти объекты представляют собой просто контейнеры в форме прямоугольного параллелепипеда (BoxGizmo), цилиндра (CylinderGizmo) или сферы (Sphere-Gizmo), не визуализируемые на итоговом изображении сцены и позволяющие задать область пространства, в пределах которой будет формироваться эффект пламени. Строятся они совершенно так же, как соответствующие объекты-примитивы.
Чтобы освоить эффект горения на практике, выполните следующие действия:
1. Откройте файл MAX-kafe20.max или продолжите работу над сценой, если она уже загружена в программу max 7.5. При необходимости загрузите сцену MAX-kafe20.max из папки Scenes\Glava_15 компакт-диска, прилагающегося к книге. Сохраните сцену с инкрементированием имени файла.
2. Скройте для простоты все объекты внутреннего убранства кафе, кроме кресел, столов, камина, кочерги и поленьев. Активизируйте окно проекции Тор (Вид сверху) и создайте контейнер атмосферного эффекта в форме полусферы непосредственно над поленьями, лежащими в топке камина. Для этого щелкните на кнопке Helpers (Вспомогательные объекты) командной панели Create (Создать), выберите в раскрывающемся списке разновидностей объектов вариант Atmospheric Apparatus (Атмосферная оснастка) и щелкните на кнопке SphereGizmo (Сферический контейнер) в свитке Object Type (Тип объекта). Переместите курсор в окно вида сверху, щелкните над поленьями примерно в точке с координатами (264; -37; 0) и перетащите курсор, как вы делаете это при создании обычного примитива-сферы. Пусть радиус сферического контейнера будет около 35 см. Установите флажок Hemisphere (Полусфера), так как нас интересует только верхняя половина контейнера — ведь пламя должно гореть над дровами, а не под ними.
3. Переключитесь на окно вида спереди и приподнимите контейнер, имеющий имя SphereGizmo01, вверх, поместив его над поленьями примерно на высоте 50-55 см. Чтобы пламя огня было вытянуто вверх, примените к габаритному контейнеру операцию неравномерного масштабирования, растянув его по вертикали процентов на 200. На рис. 15.49 показано, как должен выглядеть этот контейнер атмосферного эффекта в топке камина.
Рис. 15.49. Полусферический контейнер атмосферного эффекта размещен в топке камина и готов к использованию
4. Теперь пора применить к этому контейнеру эффект горения. Раскройте окно диалога Environment and Effects (Внешняя среда и эффекты) на вкладке Environment (Внешняя среда), выполнив команду основного меню Rendering > Environment (Визуализация > Внешняя среда). Для начала выделите строку Volume Light (Объемное освещение) и сбросьте флажок Active (Активно). Тем самым вы выключите не нужный нам больше эффект объемного света, примененный в предыдущем упражнении к осветителю-прожектору Fspot01. Щелкните на кнопке Add (Добавить) свитка Atmosphere (Атмосфера) окна диалога Environment and Effects (Внешняя среда и эффекты) и выберите строку Fire Effect (Горение) в окне диалога Add Atmospheric Effect (Добавление атмосферного эффекта). Имя эффекта будет добавлено в список Effects (Эффекты), а в нижней части окна диалога Environmerit and Effects (Внешняя среда и эффекты) появится свиток Fire Effect Parameters (Параметры эффекта горения), показанный на рис. 15.50.
Рис. 15.50. Свиток Fire Effect Parameters содержит все необходимые элементы для настройки параметров пламени
ЗАМЕЧАНИЕ Обратите внимание на то, что если выделить контейнер атмосферного эффекта и переключиться на командную панель Modify (Изменить), то там обнаружится свиток Atmospheres & Effects (Атмосфера и эффекты). С помощью данного свитка к контейнеру можно применять эффекты так же, как мы это делали с осветителем-прожектором в упражнении 4 этой главы. |
5. Щелкните на кнопке Pick Gizmo (Указать контейнер) в верхней части свитка, в разделе Gizmos (Габаритные контейнеры), чтобы включить режим выбора габаритного контейнера. Кнопка подсве-тится желтым светом. После этого щелкните на габаритном контейнере в любом из окон проекций. Имя контейнера SphereGizmo01 появится в раскрывающемся списке в правой части раздела Gizmos (Габаритные контейнеры). Один и тот же атмосферный эффект может быть применен к различным габаритным контейнерам, а одному и тому же контейнеру могут быть назначены разные типы атмосферных эффектов.
6. Готово, эффект горения создан. Однако если вы попытаетесь сейчас выполнить пробную визуализацию сцены, то будете разочарованы. При исходных значениях параметров пламя будет выглядеть как розоватое облачко, которое даже трудно рассмотреть на фоне текстур материалов камина и поленьев. Чтобы все же увидеть этот зачаток пламени, сбросьте в свитке Renderer (Визуализатор) окна диалога Render Scene (Визуализировать сцену) флажок Mapping (Карты текстур), выключив тем самым режим визуализации текстур материалов. Затем выделите источник света, имитирующий отблески пламени, включите его и сбросьте флажок Map (Карта текстуры) в свитке Projector Parameters (Параметры проектора), чтобы выключить на время действие карты случайных пятен, отбрасываемых этим осветителем на стенки топки камина. Выполните визуализацию, результат должен быть похож на рис. 15.51. Вновь установите сброшенные флажки.
Рис. 15.51. Едва заметное розоватое (серое на рисунке) облачко над поленьями — это и есть проявление эффекта горения при исходных значениях параметров пламени
7. Настройте параметры горения, чтобы заставить поленья запылать ярким огнем. Во-первых, установите переключатель Flame Type (Тип пламени) в разделе Shape (Форма) свитка параметров эффекта горения в положение Tendril (Язык). При этом будут генерироваться языки пламени, заостряющиеся на концах и с яркими прожилками в сердцевине. Пламя такого типа чаще всего применяется при моделировании открытого огня. Исходное положение переключателя, Fire Ball (Огненный шар), соответствует случаю моделирования округлых областей огня, похожих на огненные шары. Данный тип пламени чаще применяется при имитации взрывов.
8. Несколько уменьшите исходное значение параметра Stretch (Растяжение), который задает длину отдельных языков пламени в пределах габаритного контейнера эффекта горения. Выбор величины параметра зависит от интенсивности имитируемого процесса. Слабый огонь должен иметь малые значения параметра Stretch (Растяжение), а ярко полыхающий — большие. Для нашего камина величина 0,7 будет в самый раз.
9. Увеличьте значение параметра Regularity (Регулярность), определяющего, в какой степени область горения будет заполнять габаритный контейнер. Уменьшая величину параметра, можно заставить пламя отодвигаться от краев контейнера внутрь, делая тем самым форму контейнера менее заметной. Открытый огонь, как правило, должен моделироваться при малых значениях параметра Regularity (Регулярность), а закрытый, такой как огонь в камине или очаге, — при больших. Установите для этого параметра значение 0,7.
10. Настройте характеристики пламени, используя следующие параметры из раздела Characteristics (Характеристики):
Flame Size (Размер пламени) — задает характерный размер отдельных вихрей пламени (участков примерно однородной окраски) в пределах габаритного контейнера. Этот параметр не влияет на общий размер области эффекта, определяемый габаритным контейнером. Чтобы пламя было более выразительным, установите этот параметр равным 10;
Flame Detail (Детализация пламени) — определяет, будут ли в пределах области горения видны участки цвета того размера, который задан параметром Flame Size (Размер пламени), или они будут усреднены и заменены участками однородной окраски большего размера. Если параметр детализации мал, переходы от одного оттенка пламени к другому будут сглажены, и детальность изображения огня мала. Более высокие значения ведут к получению четко очерченных областей цвета и повышению детальности изображения огня. Как правило, при значении, большем четырех, уже достигается предельная детальность, так что установим в счетчике Flame Detail (Детализация пламени) значение 5;
Density (Плотность) — задает степень непрозрачности и общую яркость пламени. Так как наше кафе достаточно освещено, то, чтобы отчетливо увидеть пламя, нужно установить довольно большое значение плотности, скажем, 60.
11. Все остальные параметры можно оставить равными их исходным значениям. В завершение можете еще поэкспериментировать с базовыми оттенками цветов, на основе которых формируются языки пламени. Образцы этих оттенков имеются в разделе Colors (Цвета) свитка параметров. Образец Inner Color (Внутренний цвет) задает цвет внутренней, «наиболее горячей» части пламени, а образец Outer Color (Наружный цвет) — цвет наружной, «более холодной» части пламени. При визуализации оттенки цвета пламени будут случайным образом варьироваться между указанными цветами. Образец Smoke Color (Цвет дыма) задает цвет дыма, который моделируется только при имитации вспышки взрыва. В итоге после визуализации у вас должна получиться картина, подобная показанной на рис. 15.52. Истинную красоту эффекта горения можно оценить только при анимации пламени, но это — уже предмет рассмотрения следующей главы. Сохраните сцену под измененным в начале работы именем MAX-kafe21.max.
Рис. 15.52. После настройки эффекта горения пламя выглядит довольно естественно
Знакомимся с модификатором Twist
Модификатор Twist (Скрутка) применяется для скручивания объекта относительно любой оси координат. Вы уже встречались с ним в этой главе при рассмотрении вопроса о важности порядка применения модификаторов.
Для приобретения навыков применения модификатора скрутки выполните следующие действия:
1. Постройте в окне проекции Тор (Вид сверху) стандартный примитив Tube (Труба) с внутренним радиусом 20, наружным радиусом 25, высотой 50 текущих единиц и числом сегментов по высоте не менее 10. Уменьшите число сторон (параметр Sides) до 5. Создайте дубликат-копию этого объекта и расположите их симметрично по обе стороны от центра окна проекции. При желании можете загрузить готовый файл описанной сцены, хранящийся под именем Dve trubi.max в папке Scenes\Glava_08 компакт-диска, прилагающегося к книге.
2. Выделите левый объект и щелкните на строке Twist (Скрутка) в раскрывающемся списке Modifier List (Список модификаторов). В нижней части командной панели Modify (Изменить) появится свиток Parameters (Параметры) модификатора скрутки.
3. Настройте величину скрутки в разделе Twist (Скрутка) свитка, используя следующие параметры:
Angle (Угол) — задает угол скрутки в градусах относительно оси, выбранной в разделе Twist Axis (Ось скрутки), как показано на рис. 8.15, слева;
Bias (Смещение) — меняется в диапазоне от -100 до 100 и при положительных значениях «поджимает» область скрутки к концу объекта, противоположному центру модификатора (рис. 8.15, справа), а при отрицательных — к центру модификатора. Вспомним, что центр модификатора по умолчанию располагается в опорной точке объекта.
Рис. 8.15. Скрутка объекта на 90° вдоль вертикальной оси Z: слева — Bias = 0; справа — Bias = 80
4. Выберите координатную ось, вокруг которой будет производиться скрутка объекта, с помощью переключателя раздела Twist Axis (Ось скрутки).
Действие параметров раздела Limits (Пределы) аналогично рассмотренным выше модификаторам изгиба и заострения.
Формируем елочное украшение «Грибок»
В ходе данного упражнения мы превратим две стандартные сферы в сетки кусков Безье, а затем, манипулируя касательными векторами вершин кусков, быстренько сформируем из одной сферы шляпку, а из другой — ножку грибка, подобного тому, какой был показан на рис. 2.22 главы 2.
Практическая польза, которую можно извлечь из такой модели, будет состоять в том, чтобы украсить с ее помощью новогоднюю елку нашего кафе «МАХ».
Повторяйте за мной следующие действия:
1. Перезагрузите программу и сохраните пустую сцену под именем Gribok.max.
2. Создайте в окне проекции вида сверху два примитива типа Sphere (Сфера), один радиусом 13-15 см, а другой — 7-8 см. Выделите обе сферы, щелкните правой кнопкой мыши и выберите в подменю Convert To (Превратить в) четвертного меню команду Convert to Editable Patch (Превратить в редактируемый кусок).
3. Скройте от просмотра сферу меньшего радиуса, чтобы она пока не мешала работе. Выделите оставшуюся сферу, преобразованную в сетку кусков Безье. Перейдите на командную панель Modify (Изменить) и разверните список подобъектов, щелкнув в поле стека модификаторов на квадратике со знаком «плюс» слева от надписи Editable Patch (Редактируемый кусок). Сферическая сетка состоит из восьми идентичных треугольных кусков Безье, каждые четыре из которых образуют верхнюю и нижнюю половины сферы. Один из этих кусков выделен на рис. 9.60 на уровне подобъекта Patch (Кусок). Соответственно, сферическая сетка имеет шесть вершин: четыре по экватору сферы и две на полюсах. Каждая из этих вершин принадлежит сразу четырем примыкающим к ней кускам. По этой причине из каждой управляющей вершины исходит сразу по четыре касательных вектора. Любые два соседних вектора из этих четырех управляют формой соответствующего куска Безье. Останавливаюсь столь подробно на топологии сферической сетки кусков Безье, потому что она напрямую определяет возможности редактирования формы такой сетки.
Рис. 9.60. На виде сверху выделен один из восьми кусков Безье, образующих сетку сферы
4. Переключитесь на уровень выделения подобъекта Vertex (Вершина). Вы увидите на поверхности сферы шесть угловых вершин кусков Безье в виде точек синего цвета, а вокруг сферы — «облако» управляющих вершин решетки деформации в виде желтых квадратиков, как показано на рис. 9.61. Как указывалось в главе 5, эти управляющие вершины достались в наследство от предыдущих версий программы. Мы не будем их использовать, так что постарайтесь не обращать на них внимания. Выделите нижнюю вершину сферы, щелкнув на ней или растянув вокруг нее выделяющую рамку. Вершина приобретет красный цвет и вокруг нее появятся четыре касательных вектора с маркерами зеленого цвета на концах.
Рис. 9.61. Нижняя из показанных стрелками угловых вершин кусков Безье сферической сетки выделена и снабжена касательными векторами с маркерами на концах
5. В окне вида спереди переместите выделенную нижнюю вершину вверх, одним движением превратив сферическую сетку в шляпку гриба, как показано на рис. 9.62.
Рис. 9.62. Нижняя угловая вершина сферической сетки поднята вверх, в результате нижняя полусфера «втиснута» в верхнюю
6. Перейдите в окно вида сверху и немного поработайте с касательными векторами четырех вершин, расположенных по экватору сферы, стремясь сделать шляпку не столь неестественно геометрически правильной и симметричной. Вершины кусков бывают двух типов: Coplanar (Компланарная) и Corner (С изломом). Если вершина имеет тип Coplanar (Компланарная), то при перемещении маркера одного из управляющих векторов остальные будут перемещаться так, чтобы сохранить компланарность (то есть параллельность одной и той же плоскости) с перемещаемым вектором. Вершина типа Corner (С изломом) дает возможность перемещать любой из зеленых маркеров управляющих векторов независимо от остальных, создавая при этом излом поверхности. По умолчанию все вершины сетки кусков Безье, полученной методом преобразования из примитива-сферы, получают тип Coplanar (Компланарная). Для смены типа вершины или группы вершин необходимо выделить их и, указав на одну из вершин курсором, щелкнуть правой кнопкой мыши. В появившемся четвертном меню следует выбрать команду, соответствующую нужному типу вершины. В данном случае выберем команду Corner (С изломом), как показано на рис. 9.63.
Рис. 9.63. Изменим тип четырех вершин по экватору сферической сетки с Coplanar на Comer
7. Для редактирования формы сферы выделите одну из четырех вершин на экваторе и свободно двигайте маркеры ее касательных векторов, которые теперь будут перемещаться независимо друг от друга. Затем выделите другую вершину и поработайте с ее касательными векторами. Манипулируя векторами по своему усмотрению, придайте шляпке грибка более живой, не столь геометрически правильный вид, примерно так, как показано на рис. 9.64. Не забывайте также о возможности перемещать не только касательные векторы угловых вершин кусков, но и сами эти вершины.
Рис. 9.64. Форма шляпки немного отредактирована за счет независимого перемещения касательных векторов угловых вершин кусков Безье
ЗАМЕЧАНИЕ Когда дело доходит до необходимости двигать маркеры касательных векторов, может оказаться, что этому мешает контейнер преобразования, ограничивающий перемещение какой-то одной из осей координат. Дело в том, что контейнер в виде тройки координатных векторов всегда остается в точке выделенной вершины куска, даже если вы пытаетесь переместить не вершину, а маркер касательного вектора. Когда перемещаешь саму вершину, пользоваться этими векторами для ограничения осей перемещения удобно. Но этот же контейнер преобразования определяет и ограничения на перемещение маркеров касательных векторов вершины, расположенных в стороне от нее. Часто маркер не удается переместить в нужном направлении только из-за того, что в габаритном контейнере активен не тот вектор координатной оси, а активизировать нужный вектор, одновременно манипулируя маркером, никак не получается. Чтобы преодолеть это затруднение и обеспечить возможность перемещения маркера в плоскости экрана в произвольном направлении, следует щелкнуть на квадратике вблизи центра контейнера преобразования, который должен приобрести полупрозрачную заливку желтого цвета. Однако часто после щелчка на маркере происходит сброс выделения этого квадратика из-за того, что оси контейнера слишком длинные и щелчок на маркере воспринимается компьютером как щелчок на одной из осей контейнера. В этом случае рекомендую уменьшить длину векторов контейнера, нажимая клавишу «минус» в основной части клавиатуры. Если и это не помогает, то можно отменить показ контейнера, выбрав команду меню Views > Show Transform Gizmo (Проекции > Показывать контейнер преобразования). В этом случае для циклического выбора ограничений осей, вдоль которых можно будет перемещать маркеры касательных векторов в плоскости окна проекции, по формуле Y-X-XY, следует нажимать клавишу F8. |
8. Теперь восстановите видимость второй сферы, преобразованной в сетку кусков Безье. Выделите ее, переключитесь на уровень выделения подобъектов-вершин и, действуя аналогичным образом, превратите ее в ножку грибка, подобную той, что показана на рис. 9.65. Для этого может потребоваться самое минимальное число действий с вершинами и их касательными векторами.
Рис. 9.65. За счет двух-трех перемещений угловых вершин кусков Безье и их касательных векторов малая сфера превращена в ножку гриба
9. На этом можно было бы и остановиться. Однако в учебных целях рассмотрим еще пару инструментов для работы с подобъектами сетки кусков Безье, пытаясь сформировать выступ на шляпке. Ведь мы делаем не просто гриб, а елочное украшение, и этот выступ будет изображать крепление для нити, на которой висит игрушка. Как указывалось в главе 8, к кускам Безье можно применять операции простого выдавливания и выдавливания со скосом боковых граней. Попробуем сформировать выступ на вершине шляпки методом выдавливания со скосом. Однако для этого вначале потребуется увеличить сегментацию сетки, ведь сейчас вся верхняя полусфера шляпки состоит из четырех больших треугольных кусков Безье. Выделите сетку шляпки и переключитесь на уровень выделения подобъекта Patch (Кусок). В окне вида сверху аккуратно выделите все четыре куска, составляющие верхнюю полусферу шляпки. В свитке Geometry (Геометрия) командной панели Modify (Изменить) щелкните на кнопке Subdivide (Подразделить). Каждый кусок будет дополнительно разбит на четыре треугольных куска меньшего размера. Теперь выделите четыре новых куска, примыкающих к верхнему полюсу сетки, и еще раз щелкните на кнопке Subdivide (Подразделить). Теперь вблизи полюса имеются куски достаточно малого размера, которые можно выдавить со скосом боковых граней.
10. Снова выделите в окне вида сверху четыре совсем уже небольших куска, примыкающих к вершине на верхнем полюсе шляпки. Щелкните в свитке Geometry (Геометрия) на кнопке Bevel (Скос). Переместите курсор в окно проекции Front (Вид спереди) и укажите им на выделенные куски. Когда курсор примет вид значка режима выдавливания, щелкните кнопкой мыши и перетаскивайте курсор, выдавливая выделенные куски в интерактивном режиме, как показано на рис. 9.66. Эта стадия операции в принципе не отличается от выдавливания граней обычной сетки, которое вы делали уже не раз. Выдавив куски на нужную высоту, отпустите кнопку мыши и дополнительно переместите курсор, обеспечив скос боковых сторон выдавленного фрагмента на нужный угол. Для завершения выдавливания со скосом боковых сторон щелкните левой кнопкой мыши, а для выхода из режима выдавливания — правой кнопкой.
Рис. 9.66. Выступ на верху шляпки создается выдавливанием четырех кусков Безье вблизи верхнего полюса сферы. Виден курсор режима выдавливания со скосом
11. Чтобы впоследствии иметь возможность применить к шляпке и ее выступу различные материалы, перейдите к свитку Surface Properties (Свойства поверхности). Выделите в окне вида спереди куски, образующие выступ, сформированный методом выдавливания со скосом. По умолчанию все куски сферы имеют одинаковые значения идентификатора материала, равные 1. Введите число 2 в счетчик Set ID (Установить идентификатор) раздела Material (Материал). Сохраните файл под заданным в начале работы именем Gribok.max.
ЗАМЕЧАНИЕ Итоговую модель грибка можно найти в файле Gribok.max, хранящемся в папке Scenes\ Glava_09 компакт-диска, прилагающегося к книге. |
Осваиваем модификатор Noise
Модификатор Noise (Неоднородности) вызывает случайные возмущения поверхности геометрической модели, производя впечатление природного происхождения объекта.
Чтобы опробовать на практике использование модификатора зашумления, выполните следующие действия:
1. Создайте в окне проекции Тор (Вид сверху) стандартный примитив Box (Параллелепипед) в виде плоской пластины с размерами по 200 единиц в длину и ширину и толщиной 5 единиц. Задайте 32 сегмента по длине (Length Segs) и ширине (Width Segs). Создайте копию объекта, переместив его вверх в окне проекции Front (Вид спереди) при нажатой клавише Shift. Разместите обе пластины симметрично по высоте относительно центра окна. При необходимости можете загрузить готовый файл описанной сцены, хранящийся под именем Dve plastini.max в папке Scenes\Glava_08 компакт-диска, прилагающегося к книге.
2. Выделите верхний объект и щелкните на строке Noise (Неоднородности) в раскрывающемся списке Modifier List (Список модификаторов). В нижней части командной панели Modify (Изменить) появится свиток Parameters (Параметры) модификатора зашумления. Задайте характерный пространственный масштаб возмущений в направлении вдоль поверхности в счетчике Scale (Масштаб) равным 50. В счетчике Z из раздела Strength (Амплитуда) установите амплитуду возмущений в направлении оси Z глобальных координат равной 20. Результат показан на рис. 8.16, вверху.
Рис. 8.16. Неоднородности формы объекта с пространственным масштабом возмущений в четверть размера стороны пластины (вверху) и в одну восьмую этого размера {внизу)
3. Теперь выделите нижний объект. Задайте для него в счетчике Scale (Масштаб) пространственный масштаб возмущений равным 25. Как видно из рис. 8.16, внизу, большие величины данного параметра ведут к более гладким на вид возмущениям, малые — к более шероховатым.
Если применить модификатор неодно-родностей с одними и теми же параметрами к двум одинаковым объектам, то сформированные неоднородности также будут идентичны. Однако если изменить значение параметра Seed (Номер выборки), инициирующего работу генератора случайных чисел, то у двух одинаковых объектов будут получены разные неоднородности даже при равенстве всех остальных параметров. В качестве параметра Seed (Номер выборки) может быть использовано любое натуральное число.
Для генерации неоднородностей можно применить фрактальный алгоритм, часто используемый для имитации таких природных объектов, как горы. С этой целью необходимо установить флажок Fractal (Фрактал). Размеры фрактальных возмущений (степень шероховатости поверхности) задаются в счетчике Roughness (Шероховатость). Допустимые значения лежат в пределах от 0 до 1, причем 1 соответствует максимальной шероховатости. Параметр Iterations (Итерации) определяет число вычислительных циклов фрактального алгоритма в процессе генерации неоднородностей. Большие значения ведут к более аккуратному рельефу, но вычисления при этом продолжаются дольше.
Установка флажка Animate Noise (Анимация неоднородностей) включает режим анимации неоднородностей, которые начинают случайным образом меняться от кадра к кадру. В этом случае счетчик Frequency (Частота) задает среднюю скорость случайных колебаний поверхности во времени. Чем больше частота, тем быстрее происходят колебания поверхности объекта. Параметр Phase (Фаза) позволяет управлять анимацией неоднородностей. Различные значения фазы ведут к различающимся на вид анимациям даже при прочих равных параметрах.
Практикуемся в применении эффекта сияющих ореолов к сцене «МАХ-кафе»
Попробуем применить эффект формирования сияющих ореолов к текстовому объекту, изображающему неоновую вывеску кафе «МАХ», и к материалу, примененному к плафонам настенных светильников внутри здания кафе. Это позво-ли г нам отработать навыки использования обоих типов каналов G-буфера: канала объектов и канала материалов.
Выполните следующие действия:
1. Сначала займемся сиянием вывески. Откройте файл MAX-kafe21.max или продолжите работу над сценой, если она уже загружена в программу max 7.5. При необходимости загрузите сцену со всеми материалами, фоновым изображением (если захотите имитировать и осень, и зиму) и эффектами тумана и горения из файла MAX-kafe21.max, хранящегося в папке Scenes\Glava_15 компакт-диска, прилагающегося к книге. Сохраните файл с инкрементированием имени.
2. Выделите текстовый объект Viv-eska, щелкните на нем правой кнопкой мыши и выберите в контекстном меню объекта команду Properties (Свойства). В появившемся окне диалога свойств объекта установите в счетчике Object Channel (Канал объекта) раздела G-Buffer (G-буфер) номер канала, равный 1.
СОВЕТ
Номер канала эффектов, применяемых к объекту, совсем не обязательно должен равняться 1. Можно задавать любой номер канала от 1 до 10. |
3. Раскройте окно диалога Environment and Effects (Внешняя среда и эффекты) на вкладке Effects (Эффекты), выберите группу фильтров Lens Effects (Линзовые эффекты) и перенесите имя фильтра Glow (Сияние) в правый список Lens Effects Parameters (Параметры линзовых эффектов).
4. Щелкните на корешке вкладки Options (Режимы) свитка Glow Elements (Элементы сияния), показанной на рис. 15.55, и установите в разделе Image Source (Источник изображения) флажок слева от параметра Object ID (Идентификатор объекта). Это означает, что сияние будет применено к объекту, номер канала G-буфера которого указан в счетчике справа от этого параметра. По умолчанию в этом счетчике уже установлен номер 1. В качестве всех остальных параметров оставьте их исходные значения.
Рис. 15.55. Вкладка Options свитка Glow Elements служит для настройки режимов действия фильтра
5. Щелкните на корешке вкладки Parameters (Параметры), показанной на рис. 15.56. Проследите, чтобы был установлен флажок On (Вкл.), включающий действие эффекта. Измените имя эффекта, чтобы не спутать его с еще одним эффектом сияния, который мы будем применять к материалу плафонов ламп. Для этого щелкните в текстовом поле Name (Имя) и введите имя Glow-viveska. В счетчике Size (Размер), задающем размер области сияния, установите значение 0,2. В счетчике Intensity (Интенсивность), определяющем яркость и степень прозрачности сияния, укажите 85. В счетчик Use Source Color (Цвет источника) введите величину 50. Это будет означать, что цвет области сияния будет на половину формироваться из цвета объекта и на половину — из цвета, указанного в поле левого цветового образца в разделе Radial Color (Цвет вдоль радиуса).
Рис. 15.56. Вкладка Parameters свитка Glow Elements позволяет настроить все параметры эффекта сияния
ЗАМЕЧАНИЕ Чем меньше размер области сияния, тем ярче оно выглядит при том же значении параметра Intensity (Интенсивность). |
6. Выполните пробную визуализацию изображения в окне проекции Camera01 (Камера01). Для этого можно действовать традиционным способом, а можно прокрутить область свитков окна диалога Rendering Effects (Визуализация эффектов) вниз и щелкнуть на кнопке Update Scene (Обновить сцену) в разделе Preview (Просмотр) свитка Effects (Эффекты). После определенного времени, необходимого программе на визуализацию сцены, будет сформировано изображение, которое должно быть похоже на рис. 15.57. Как видите, вывеска «засияла». Кстати, если вы внимательно следили за ходом визуализации, то могли заметить, что этап фильтрации выполнялся уже после формирования изображения сцены, как бы поверх него. Именно поэтому можно легко и быстро получать результаты настройки эффекта сияния: для этого не требуется повторный синтез всей картинки. Просто измените параметры и щелкните на кнопке Update Effect (Обновить эффект).
Рис. 15.57. Эффект сияния был применен к объекту-вывеске кафе, и вывеска «засияла»
7. Подготовьте материал плафонов настенных светильников к применению эффекта сияния. Для этого раскройте окно Редактора материалов и активизируйте ячейку образца материала Steklo lampi, который использован для «раскраски» плафонов. Щелкните на кнопке Material Effects Channel (Канал эффектов монтажа) и выберите на ее раскрывающейся панели номер канала G-буфера, отличный от нуля, скажем, 2.
8. Теперь назначьте еще один эффект сияния для материала плафонов настенных светильников. Если использовать тот же самый эффект, что для вывески, мы не сможем изменять его параметры — ведь после их модификации вывеска тоже станет сиять по-другому. В левом списке свитка Lens Effects Parameters (Параметры линзовых эффектов) снова выделите строку Glow (Сияние) и перенесите имя фильтра в правый список. Выделите имя фильтра в правом списке. Щелкните на корешке вкладки Parameters (Параметры) свитка Glow Elements (Элементы сияния) и измените имя фильтра в текстовом поле Name (Имя) на Glow-plafon.
ЗАМЕЧАНИЕ Имена фильтров можно и не менять. В сцене может быть много эффектов с именем Glow (Сияние), примененных к разным каналам объектов или материалов с различными параметрами сияния. Программа max 7.5 не запутается, а вот мы сами можем запутаться довольно легко. Так что уж лучше переименовывать фильтры. |
9. Щелкните на корешке вкладки Options (Режимы) и установите в разделе Image Source (Источник изображения) флажок слева от параметра Effects ID (Идентификатор эффектов). В результате сияние будет применено к материалу, номер канала G-буфера которого указан в счетчике справа от этого параметра. Установите в счетчике номер 2. На вкладке Parameters (Параметры) в счетчике Size (Размер), задающем размер области сияния, установите значение 5. В качестве всех остальных параметров оставьте их исходные значения.
10. Вновь выполните пробную визуализацию изображения в том окне проекции, где хорошо виден один из настенных светильников. Я использовал для этого окно дополнительной камеры, Camera05 (Камера05), но можно перенацелить камеру Сатега03 (Камера03). На рис. 15.58 показан вид фрагмента сцены до и после применения фильтра сияния к материалу плафона светильника. Сохраните сцену под измененным в начале упражнения именем МАХ-кафе22.тах. Файл описания сцены с эффектами сияния можно найти в папке Scenes\Glava_15 компакт-диска, прилагающегося к книге, под таким же именем МАХ-кафе22.тах.
Рис. 15.58. Фрагмент сцены «МАХ-кафе» до (слева) и после ( справа) применения эффекта сияния к материалу плафона светильника
В качестве задания для самостоятельной работы попробуйте выполнить визуализацию изображения «взбесившейся» посуды, летающей по помещению кафе, которое показано на рис. 1.24 первой главы. Для этого аккуратно переместите и нужным образом поверните отдельные предметы, используя рис. 1.24 в качестве образца и следя за сценой сразу в нескольких окнах проекций. Для визуализации используйте окно проекции Camera02 (Камера02). Прототип подобной сцены можно найти в папке Scenes\Glava_15 компакт-диска, прилагающегося к книге, под именем MAX-kafe23.max.
Это все, что нам было нужно дополнительно узнать о процессе визуализации, а также об основах имитации эффектов внешней среды и оптических эффектов, свойственных объективам реальных съемочных камер.
Применяем деформацию масштаба к финским саням
В этом упражнении мы построим тело лофтинга, используя трехмерную NURBS-кривую в форме финских саней, которую создавали в главе 6. Затем мы изменим форму тела лофтинга за счет деформации масштаба сечений. Цель упражнения — наглядно показать, что кривизна линии пути лофтинга не играет никакой роли при настройке кривых деформации масштаба.
Чтобы закрепить навыки настройки кривых деформации, полученные в предыдущем упражнении, выполните следующие действия:
1. Загрузите сохраненный в упражнении 2 главы 6 файл Finskie sani.max, содержащий трехмерную NURBS-кривую в форме финских саней. Если вы не сохранили такой файл, то можете найти его в папке Scenes\Glava_07 компакт-диска, прилагающегося к книге. Сохраните файл с инкрементированием имени.
2. Создайте в окне проекции Тор (Вид сверху) форму-сечение в виде стандартного сплайна-круга примерно такого размера по отношению к NURBS-кри-вой, как показано на рис. 7.37. Выделите NURBS-кривую, которая будет играть роль формы-пути.
Рис. 7.37. Форма-путь — трехмерная NURBS-кривая и форма-сечение — стандартный сплайн-круг
3. Выберите инструмент создания объектов типа Loft (Лофтинговые) в свитке Object Type (Тип объекта) командной панели Create (Создать). Убедившись что форма-путь все еще выделена, щелкните на кнопке Get Shape (Взять форму) в свитке Creation Method (Метод создания). Перейдите в любое окно проекции и щелкните на круге. Будет сформировано базовое тело лофтинга, показанное на рис. 7.38. Назовите созданный объект Sanki.
Рис. 7.38. Сформировано базовое тело лофтинга в форме финских саней
4. Чтобы сделать поверхность тела лофтинга менее угловатой, нужно увеличит сегментацию линии пути. Для этого проследите, чтобы тело лофтинга был выделено, перейдите на командную панель Modify (Изменить) и развернит свиток Skin Parameters (Параметры оболочки). Измените значение в счетчик Path Steps (Шагов пути) с 5 на 10.
5. Разверните свиток Deformations (Деформации) и щелкните на кнопке Scale (Mac штаб). Появится уже знакомое вам окно диалога Scale Deformation (Деформаци масштаба). Наша цель — сформировать утолщение тела лофтинга в районе спинки саней, симметричное по осям X и Y координат поперечного сечения тела, а затем выполнить несимметричную деформацию тела в области полозьев саней, сузив эти участки по координате толщины, но увеличив по высоте. Но прежде всего уменьшим диаметр кругового сечения тела лофтинга по всей его длине. Пользуясь тем, что кнопка Make Symmetrical (Симметрично по X и Y) включена по умолчанию, выделите оба маркера на концах кривой деформации и сместите их вниз, примерно до отметки 60 %. Диаметр трубки, образующей санки, уменьшится до 60 % от исходного.
6. Теперь займемся спинкой саней. Центр ее расположен ровно посередине общей длины пути лофтинга, то есть имеет вдоль шкалы пути координату 50 %. Создадим утолщение тела лофтинга в интервале от 45 до 55 % расстояния от начала пути. Не изменяя состояния кнопки Make Symmetrical (Симметрично по X и Y), создайте на кривой деформации четыре новых вершины типа Corner (С изломом), придав им координаты (45; 60), (45; 120), (55; 120) и (55; 60). Вид кривой деформации показан на рис. 7.39, а на рис. 7.40 продемонстрирован результат деформации, выразившийся в утолщении тела лофтинга в районе спинки саней до 120 % от исходного диаметра. Как видите, хотя кривая деформации и не повторяет затейливую форму линии пути лофтинга, утолщение появилось именно в том месте, где и планировалось, — в районе середины спинки.
Рис. 7.39. Вид кривых деформации, одинаковых по осям X и Y
Рис. 7.40. В области спинки саней диаметр тела лофтинга увеличен до 120 % от исходного, а в остальной части — уменьшен до 60 %
7. Щелкните на кнопке Make Symmetrical (Симметрично по X и Y), чтобы выключить этот режим и сделать возможным использование различных кривых деформации в продольных сечениях объекта по осям X и Y, ориентированным перпендикулярно линии пути. Щелкните в окне диаграммы деформации на кнопке Display Y Axis (Показать деформацию по Y). Появится линия диаграммы зеленого цвета. Чтобы сделать полозья саней тоньше, создайте на кривой деформации четыре новых вершины типа Corner (С изломом) в точках, отстоящих на 20, 22, 78 и 80 % от начала пути лофтинга. Затем выделите вершины с координатами (0; 60), (20; 60), (80; 60) и (100; 60), то есть первую, вторую, последнюю и предпоследнюю вершины кривой деформации, и опустите их вниз до отметки 20 % по вертикальной шкале, указывающей масштаб сечения в процентах от исходного.
8. Чтобы сделать полозья не только тоньше основной части тела лофтинга, но и несколько больше по высоте, переключитесь на отображение кривой деформации по оси X. Создайте на ней четыре новых вершины в тех же точках по шкале расстояния от начала пути лофтинга, что и на кривой деформации по оси Y. Выделите первую, вторую, последнюю и предпоследнюю вершины кривой деформации и поднимите их вверх до отметки 130 % по вертикальной шкале окна диаграммы деформации. На рис. 7.41 показан вид кривых деформации по обеим осям поперечного сечения тела лофтинга, а на рис. 7.42 — вид самого объекта после деформации масштаба.
Рис. 7.41. Вид кривых деформации по осям X и Y
Рис. 7.42. За счет настройки кривых деформации сечение полозьев саней по горизонтальной оси сделано меньше, а по вертикальной — больше
Надеюсь, после выполнения этих двух упражнений у вас больше не будет проблем с использованием деформации масштаба тел лофтинга любой, самой экзотической формы.
Применяем карту текстуры Flat Mirror в материалах столешниц
Отработаем на практике задачу использования текстурной карты Flat Mirror (Плоское зеркало) в составе многокомпонентного материала, чтобы обеспечить небольшую долю зеркального отражения предметов в полированных поверхностях столешниц.
1. Загрузите в mах 7.5 файл MAX-kafe15.max или продолжите работу, если файл сцены уже открыт. При необходимости сцену со всеми настроенными на данный момент материалами вы можете найти в файле MAX-kafe15.max, хранящемся в папке Scenes\Glava_14 компакт-диска, прилагающегося к книге. Сохраните файл с инкрементированием имени.
2. Активизируйте очередную свободную ячейку Редактора материалов. Если у вас уже не осталось свободных ячеек, то активизируйте любую и очистите ее, щелкнув на кнопке Reset Map/Mtl to Default Settings (Установить исходный материал/карту текстуры). Так как материал из ячейки используется в составе сцены, появится окно диалога Reset Mtl/Map Params (Восстановление исходных параметров материала/карты текстуры) с соответствующим предупреждением. Чтобы не испортить материал, уже нанесенный на объекты сцены, проследите, чтобы переключатель окна был установлен в положение Affect only mtl/map in the editor slot (Воздействовать только на материал/текстуру в ячейке) и щелкните на кнопке ОК.
3. Назовите новый материал Stoleshnica. Щелкните на кнопке справа от раскрывающегося списка имен материалов, на которой по умолчанию должна читаться надпись Standard (Стандартный), затем в появившемся окне диалога Material/Map Browser (Просмотр материалов и карт текстур) дважды щелкните на строке Multi/Sub-Object (Многокомпонентный). Появится окно диалога Replace Material (Заменить материал), в котором следует установить переключатель в положение Discard old material (Отбросить старый материал), иначе исходный стандартный материал из выбранной ячейки образца будет применен в качестве компонента создаваемого многокомпонентного материала. Щелкните на кнопке ОК. В свитке Multi/Sub-Object Basic Parameters (Базовые параметры многокомпонентного материала) щелкните на кнопке Set Number (Задать число) и установите в счетчике Number of Materials (Число материалов) появившегося окна число 3. Щелкните на кнопке ОК. Три материала понадобятся нам потому, что столешницы создавались как тела экструзии, а у таких тел грани верхнего основания имеют идентификатор материала, равный 1, нижнего основания — 2, а грани боковой поверхности — 3.
4. Для назначения материалов отдельным компонентам воспользуйтесь приемом перетаскивания образцов материалов с помощью мыши. Щелкните на образце ранее созданного материала Duboviy кар и перетащите курсор на кнопку свитка Multi/Sub-Object Basic Parameters (Базовые параметры многокомпонентного материала), относящуюся к первому компоненту многокомпонентного материала. На этой кнопке должна по умолчанию читаться надпись Material #... (Standard). Отпустите кнопку мыши. В появившемся окне диалога Instance (Copy) Material (Образец (копия) материала) установите переключатель в положение Сору (Копия) и щелкните на кнопке ОК. Первый компонент материала будет в дальнейшем применен к граням верхней плоскости столешницы, поэтому мы будем его модифицировать, для чего и требуется иметь независимую копию материала. Повторите аналогичные действия применительно ко второму и третьему компонентам многокомпонентного материала, однако в этих случаях устанавливайте переключатель типа дубликата в положение Instance (Образец).
5. Чтобы обеспечить формирование зеркальных отражений предметов в полированной древесине, нужно применить карту Flat Mirror (Плоское зеркало) в качестве текстуры зеркального отражения формируемого материала. Эта карта не является растровой, но от этого не становится менее полезной. Щелкните на кнопке первого материала-компонента, на которой должна читаться надпись Material #... (Standard). Разверните свиток Maps (Карты текстур) и щелкните на кнопке с надписью None (Отсутствует) справа от параметра оптической характеристики материала, именуемой Reflection (Зеркальное отражение). В окне просмотра материалов и карт текстур дважды щелкните на строке Flat Mirror (Плоское зеркало). Произойдет возврат в Редактор материалов, где появится свиток параметров карты текстуры плоского зеркала. Сбросьте в этом свитке флажок Use Environment Map (Использовать карту текстуры окружающей среды), так как нам не нужно, чтобы в столешницах отражался еще и фон сцены. Оставьте неизменными исходные значения всех остальных параметров и вернитесь на уровень работы с материалом, щелкнув на кнопке Go to Parent (Перейти к составному материалу). В свитке Maps (Карты текстур) на кнопке параметра Reflection (Зеркальное отражение) вместо надписи None (Отсутствует) будет читаться наименование выбранной карты. Установите в счетчике Amount (Доля вклада) зеркального отражения долю вклада текстуры равной 30 %, ведь в картине полированной древесины должен преобладать рисунок текстуры дерева, а отражения окружающих предметов должны проявляться с меньшей силой. Переименуйте данный компонент материала, назвав его, скажем, Dub+Zerkalo. Выделите обе столешницы и назначьте им вновь созданный многокомпонентный материал. Сохраните этот материал в библиотеке MAX-kafe.mat.
6. Выполните пробную визуализацию изображения сцены в окне проекции Сатега03 (Камера03). У вас должен получиться результат, похожий на изображения, показанные ранее на рис. 14.22-14.24. Сохраните сцену под измененным в начале упражнения именем.
Совершенствуем стол с помощью... трубы
Добавим к столу, созданному нами при выполнении упражнения 3, еще одну деталь, призванную оживить его дизайн.
1. Откройте ранее сохраненный файл Stol i stul.max, содержащий сцену, над которой шла работа в упражнении 3. Если вы по каким-то причинам не создали такой файл, загрузите его из папки \Scenes\Glava_05 прилагающегося к книге компакт-диска. Сохраните файл с инкрементированием имени.
2. В окне проекции Perspective (Перспектива) щелкните на объекте Stoleshnica, чтобы выделить его. После этого щелкните на кнопке инструмента Zoom Extents All Selected (Выделенные объекты целиком во всех окнах), которая находится на раскрывающейся панели инструмента Zoom Extents All (Сцена целиком во всех окнах), чтобы изображения столешницы отобразились целиком и приняли размер всех окон проекций.
3. Выберите инструмент Tube (Труба) на командной панели Create (Создать), переместите курсор в окно проекции Тор (Вид сверху) и щелкните в районе точки начала координат. Методом «от центра» создайте трубу со следующими
размерами: Radius 1 (Радиус 1) = 68, Radius 2 (Радиус 2) = 62 и Height (Высота) = 15 см. Назовите объект Obvi-azka и приведите его цвет в соответствие с цветом других деталей стола. Не отменяя выделения трубы, сделайте глобальные координаты ее расположения в сцене равными (0; 0; 55). Выделите все объекты, входящие в состав стола, и создайте из них группу, назвав ее Stol. Вид сцены после внесенных изменений показан на рис. 5.28. Сохраните сцену под инкрементиро-ванным именем Stol i stul01.max.
Рис. 5.28. Дизайн стола слегка усовершенствован за счет цилиндрической обвязки ножек
Создаем эскиз анимации «Летящий шар»
Для создания эскиза анимации, сформированной в упражнении 1, выполните следующие действия:
1. Загрузите в программу max 7.5 файл Letiasshiy shar.max. Если вы по каким-либо причинам не создали такой файл, можете найти его в папке Scenes\Glava_16 компакт-диска, прилагающегося к книге. Активизируйте окно проекции, в котором будет производиться эскизная визуализация.
2. Выберите команду меню Animation > Make Preview (Визуализация > Создать эскиз). Появится окно диалога Make Preview (Создание эскиза), показанное на рис. 16.39.
Рис. 16.39. Окно диалога Make Preview содержит полный набор параметров для настройки эскизов анимаций
ЗАМЕЧАНИЕ
В этом окне часто бывает можно оставлять все параметры в исходном состоянии, принятом по умолчанию. В данном упражнении мы производим настройку этих параметров исключительно в учебных целях. |
3. Задайте диапазон кадров для создания эскиза анимации в разделе Preview Range (Интервал эскиза). В данном случае оставьте переключатель в исходном положении Active Time Segment (Активный временной сегмент). Если потребуется визуализировать не весь активный сегмент, а только его часть, установите переключатель в положение Custom Range (Выборочный интервал) и задайте начальный и конечный номера кадров в двух счетчиках под переключателем Custom Range (Выборочный диапазон).
4. Установите или оставьте без изменения, как в нашем случае, частоту кадров эскиза анимации, задаваемую с помощью двух счетчиков раздела Frame Rate (Частота кадров):
Every Nth Frame (Каждый N-й кадр) — интервал выборки кадров анимации для включения в эскиз (результат визуализации будет содержать каждый N-й кадр анимации);
Playback FPS (Скорость воспроизведения) — частота кадров при воспроизведении эскиза анимации (в кадрах в секунду).
ЗАМЕЧАНИЕ
Если, скажем, в счетчике Every Nth Frame (Каждый N-й кадр) указано число 5, чтобы в эскиз включался только каждый пятый кадр анимации, а скорость воспроизведения задана 30 кадров в секунду, то для сохранения заданной скорости показа max 7.5 будет помещать в файл по пять одинаковых копий каждого кадра. |
5. Задайте разрешающую способность эскиза анимации в разделе Image Size (Размер изображения). Для этого укажите в счетчике Percent of Output (Процент результата) процентную долю разрешения эскиза от разрешения выходного изображения, заданного в разделе Output Size (Размер кадра) окна диалога Render Scene (Визуализация сцены). Так, если выходное изображение имеет разрешение 640x480 пикселей, а в счетчике Percent of Output (Процент результата) указано 50, то разрешение эскиза будет составлять 320x240 пикселей. Эта величина указывается в поле параметра Resolution (Разрешение). Оставьте в счетчике Percent of Output (Процент результата) исходное значение 50.
6. Укажите (при необходимости) типы объектов сцены, которые следует включать в эскиз анимации, используя флажки группы Display in Preview (Показывать в эскизе): Geometry (Геометрию), Shapes (Формы), Lights (Источники света), Cameras (Камеры), Helpers (Вспомогательные объекты), Space Warps (Объемные деформации), Particle Systems (Системы частиц), Active Grid (Активную сетку), Safe Frames (Области сохранения), Frame Numbers (Номера кадров), Background (Фон), Bone Objects (Объекты-кости).
ЗАМЕЧАНИЕ Обратите внимание на то, что в эскиз анимации можно включать даже объекты, которые не визуализируются в итоговом изображении сцены: значки источников света, камер, вспомогательных объектов, объемных деформаций, а также координатные сетки. Это бывает полезно при отладке. |
7. Выберите в раскрывающемся списке Rendering Level (Уровень качества визуализации) уровень качества визуализации объектов в эскизе анимации: Smooth + Highlights (Сглаживание + блики), Smooth (Сглаживание), Facets + Highlights (Грани + блики), Facets (Грани), Lit Wireframes (Освещенные каркасы), Wireframe (Каркасы), Bounding Box (Габаритные контейнеры). Анимация будет воспроизведена с выбранным качеством, а не с тем, какое установлено в окне проекции.
8. Задайте тип выходного файла или устройства для записи эскиза анимации с помощью переключателя раздела Output (Выходной результат):
AVI — эскиз будет записан в файл _scene.avi в формате «Видео для Windows». В данном упражнении оставьте переключатель в этом положении. Щелкните на кнопке справа от переключателя, чтобы выбрать кодек (codec — компрессор-декомпрессор), то есть алгоритм сжатия и последующей распаковки выходного файла, или степень сжатия видеоинформации. В появившемся окне диалога Video Compressor (Сжатие видео) выберите в раскрывающемся списке нужный тип кодека, например Microsoft Video 1 или Cinepac Codec by Radius, установите ползунок параметра Compression Quality (Качество сжатия) в положение, скажем, 75-90 и щелкните на кнопке ОК;
Custom File Type (Специальный тип файла) — позволяет выбрать тип выходного файла в окне диалога, появляющемся после щелчка на кнопке Create (Создать);
Use Device (Применить устройство) — позволяет записать эскиз анимации на внешний накопитель, подобный цифровому магнитофону Accom WSD, тип которого можно выбрать после щелчка на кнопке Choose Device (Выбрать устройство).
9. С помощью раскрывающегося списка в самом низу окна диалога укажите, в каком из окон проекций следует выполнять построение эскиза анимации. По умолчанию в списке указывается активное окно проекции.
10. Для запуска процесса генерации эскиза щелкните на кнопке Create (Создать). Визуализация эскиза производится в окне в средней части экрана 3ds max, а в нижней части экрана появляется прогресс-индикатор Creating Preview (Создание эскиза), как показано на рис. 16.40. Для прерывания визуализации щелкните на кнопке Cancel (Отмена), расположенной справа от прогресс-индикатора. Появится запрос: Do you want to stop creating a preview? (Хотите прервать создание эскиза?). Щелкните на одной из кнопок: Stop & Play (Прервать и воспроизвести), Stop & Don't Play (Прервать и не воспроизводить) или Don't Stop (He прерывать). Файл эскиза анимации сохраняется под именем _scene.avi в папке Previews, вложенной в папку с программным обеспечением max 7.5. По завершении визуализации эскиза mах 7.5 автоматически загружает приложение Windows Media Player (Проигрыватель Windows Media) системы Windows для воспроизведения сформированного файла. При желании вы можете просмотреть готовый файл эскиза анимации сцены Letiasshiy shar, который под именем _scene.avi имеется в папке Animations\Glava_16 компакт-диска, прилагающегося к книге.
Рис. 16.40. Вид экрана max 7.5 в режиме создания эскиза анимации: золотистая сфера летит на фоне облачного неба
СОВЕТ Чтобы отменить автоматическую загрузку приложения Windows Media Player (Проигрыватель Windows Media), сбросьте флажок AutoPlay Preview File (Автоматический просмотр эскиза) на вкладке General (Общие) окна диалога Preference Settings (Настройка параметров), вызываемого по команде главного меню Customize > Preferences (Настройка > Параметры). |
Создаем, размещаем
Теперь вы знаете все, что нужно для начала знать о настройке параметров осветителей любого типа. Чтобы закончить со всенаправленными источниками света, продолжите предыдущее упражнение, создав нужное число осветителей для кафе «МАХ» и настроив их параметры.
1. Удалите наш «экспериментальный» Всенаправленный осветитель и создайте вместо него пять новых. Разместите два из них внутри плафонов настенных светильников, третий — симметрично тому, который помещен в дальний от зрителя светильник, но у противоположной, правой стены кафе. Четвертый осветитель разместите на той же высоте, что и первые три, но у фасадной стены, справа от входной двери. Наконец, пятый Всенаправленный осветитель поместите внутрь камина, расположив его непосредственно над дровами, как показано на рис. 11.20. Возможно, для этого вам придется временно восстановить видимость объектов Kamin, Poleno01 и Poleno02, а затем вновь скрыть их. Выключите пока что этот источник света — огонь в камине еще не горит.
Рис. 11.20. В состав сцены включены пять всенаправленных осветителей
2. Задайте для четырех осветителей значение параметра Multiplier (Усилитель) равным 0,5, установите флажок On (Вкл.) в разделе Shadows (Тени) свитка General Parameters (Общие параметры) и убедитесь в том, что тени имеют тип Shadow Maps (Карты теней). Для всех остальных параметров оставьте значения, принятые по умолчанию. Выполните визуализацию изображения сцены. Появление в сцене нескольких источников света, освещающих ее с разных сторон, создаст весьма реалистичную картину мягких переплетающихся теней, как показано на рис. 11.21.
Рис. 11.21. Узор из теней от четырех всенаправленных осветителей
3. Создайте еще один, шестой Всенаправленный осветитель, и поместите его «на улице» перед фасадом здания кафе, в районе точки с координатами (-40; -650; 305). Задайте для него значение параметра Multiplier (Усилитель) равным 0,7 и установите режим отбрасывания теней типа Shadow Maps (Карты теней). Без этого осветителя стена кафе снаружи выглядела бы совсем черной. Чтобы этот осветитель не влиял на режим столь тщательно настроенного нами освещения предметов интерьера кафе, включите в число освещаемых им из всех объектов сцены только следующие: Viveska, Fasad, Osnovanie sceni, Fundament, Okno, Dveri, Stupenka, а также Snow01, Snow02 и Valik01-Valik03. Для этого, как вы помните, придется установить переключатель в окне диалога Exclude/Include (Включение/Исключение) в положение Include (Включить) и переместить имена упомянутых объектов в правую часть окна диалога. В заключение сохраните файл сцены под заданным еще в первом упражнении именем MAX-kafe09.max.
Итак, со всенаправленными осветителями мы разобрались, заодно испробовав массу параметров, имеющих столь же важное значение и для других типов стандартных и фотометрических осветителей. Надеюсь, теперь вы четко осознаете, что всенаправленные осветители играют весьма серьезную роль в формировании световой композиции трехмерной сцены. Впрочем, в нашем случае все эти осветители не относятся к числу ключевых, они лишь компенсируют дефицит освещенности по углам кафе. Виртуальный трехмерный мир сродни театральной сцене, а там не обойтись без прожекторов, способных выхватить из мрака тот или иной предмет или персонаж, чтобы приковать к нему внимание зрителя.