Строка треков
Строка треков, располагающаяся в нижней части экрана max 7.5 под строкой ползунка таймера анимации, представляет собой средство ускоренного доступа к ключам анимации выделенного объекта (или объектов) сцены, позволяя обойтись без вызова окна Track View (Просмотр треков). В max 7.5 строка треков похожа на мерную линейку благодаря нанесенным на ней делениям, обозначающим номера кадров. Номер текущего кадра указывается прозрачным голубым ползунком с вертикальной риской, как показано на рис. 16.4. На этом рисунке текущим является кадр № 14, на что указывают надпись на ползунке таймера анимации и позиция ползунка строки треков.
СОВЕТ
Иногда при загрузке сцен, созданных в прежних версиях 3ds max, строка треков исчезает с экрана. Если такое случится, проверьте, установлен ли флажок слева от команды основного меню Customize > Show Ul > Show Track Bar (Настройка > Показать Ul > Показать строку треков). Эта команда включает и выключает отображение строки треков на экране max 7.5. |
После начальной загрузки max 7.5, когда анимация еще не создана, строка треков пуста, как видно на рис. 16.4. На рис. 16.5 показана строка треков объекта, для которого созданы ключи анимации в нулевом, 50-м и 100-м кадрах. Эти ключи обозначены на строке треков квадратиками красного цвета. Цифры на ползунке таймера и положение ползунка строки треков указывают на то, что текущим в данном случае является кадр № 30.
Рис. 16.5. Строка треков с ключами анимации
ЗАМЕЧАНИЕ
В max 7.5 реализовано цветовое кодирование типов ключей. Так, ключи положения в строке треков обозначаются прямоугольниками красного цвета, ключи поворота — прямоугольниками зеленого цвета, ключи масштаба — желтого цвета, ключи характеристических параметров объекта — синего цвета и т. д. Если в одном и том же кадре создано несколько разнотипных ключей анимации выделенного объекта, значки ключей могут окрашиваться полосками нескольких разных цветов. |
Строка треков может полностью преображаться, превращаясь в подобие упрощенного редактора функциональных кривых, представляющих собой графики изменения анимированных параметров во времени. Для такого превращения служит кнопка Show Curves (Показать кривые), расположенная на левом краю строки треков и показанная на рис. 16.5.
После щелчка на кнопке Show Curves (Показать кривые) вид окна max 7.5 преображается, как показано на рис. 16.6. По сути дела строка треков превращается в упрощенную версию окна Track View — Curve Editor (Просмотр треков — Редактор кривых), представляющего собой одну из двух модификаций прежнего окна просмотра треков анимации. Эта упрощенная версия имеет строку меню, панель инструментов и остальные атрибуты — отсутствует только строка заголовка.
Рис. 16.6. Вид окна max 7.5 со строкой треков в режиме показа функциональных кривых, характеризующих изменения параметров анимации во времени
СОВЕТ После превращения строки треков в упрощенный вариант окна Редактора кривых исчезает привычный ползунок таймера анимации вместе с обычной линейкой времени. Однако это не исключает возможности перемещения по шкале времени, которая имеется в правой части окна строки треков. Для смены текущего кадра просто перетаскивайте показанный на рис. 16.6 ползунок в виде голубоватой вертикальной полоски в правой части окна строки треков. |
Рис. 16.7. Строка треков max 7.5 в режиме показа функциональных кривых превращена в плавающее окно
С помощью окна, возникающего на месте строки треков после щелчка на кнопке Show Curves (Показать кривые), можно не только просматривать функциональные кривые анимации, но и выполнять операции редактирования их формы, добавления и перемещения ключей анимации и т. п. Подробнее об использовании окна Track View — Curve Editor (Просмотр треков — Редактор кривых) вы можете прочитать в разделе «Знакомимся с окном диалога Track View» этой главы.
Чтобы закрыть окно просмотра кривых и вернуться к прежнему виду строки треков, следует щелкнуть на кнопке Close (Закрыть), расположенной на левом краю панели инструментов этого окна.
Структура книги
Весь материал книги разбит на три части, первая из которых состоит из четырех глав, вторая — из шести, а третья включает семь.
В первой части, озаглавленной «Картинки в твоем букваре» и включающей главы 1-4, рассказывается о том, без чего не имеет смысла приступать к моделированию трехмерной графики и анимации. Вы узнаете, что представляют собой и из чего состоят трехмерные объекты, каким образом они отображаются на экране компьютера, как сохраняются в виде файлов, какие инструменты имеются в вашем распоряжении для манипулирования такими объектами в пространстве сцены и во времени анимации и т. п. Первая часть книги, таким образом, и в самом деле представляет собой подобие букваря, однако не стоит пренебрегать ее изучением: виртуальный трехмерный мир темен и необъятен и в нем так легко заблудиться, если не знать азов навигации...
Вторая часть, названная «Что нам стоит дом построить» и состоящая из глав 5-10, целиком посвящена средствам и методам разработки геометрической модели трехмерной сцены. В программе 3ds max 7.5 сосредоточено огромное количество таких средств. Мы рассмотрим только часть из них, но с таким расчетом, чтобы переданный в ваши руки набор инструментов позволял реализовывать многие, если не все, трехмерные фантазии. Умея рисовать двумерные и трехмерные кривые, строить простейшие трехмерные тела-примитивы, преобразовывать кривые-профили в трехмерные объекты методами выдавливания, вращения или лофтинга, корректировать форму сетчатых оболочек на уровнях подобъектов, вы сможете чувствовать себя вполне уверенно, приступая к построению геометрической модели практически любой сложной сцены. Кульминацией данной части книги, безусловно, являются главы 9 и 10, знакомящие вас с секретами моделирования из копилки истинных мастеров трехмерной графики. Поистине безграничны созидательные возможности таких методов и приемов, описываемых в тексте этих глав, как моделирование объектов произвольной формы за счет редактирования сетки примитива-параллелепипеда, «лепка» объектов из кусков Безье и натягивание оболочек на трехмерные сплайновые каркасы, редактирование NURBS-поверхностей и формирование NURBS-объектов произвольной формы.
Наконец, в третьей части, представленной главами 11-17 и названной «Просто ты работаешь волшебником...», вам будет предоставлена возможность приобщиться к таинству превращения бестелесных сетчатых оболочек в подобие реальных объектов и «оживления» ваших творений. Речь пойдет о таких важных этапах работы над трехмерной сценой, как настройка освещения, подбор выигрышных ракурсов наблюдения сцены с помощью моделей съемочных камер, применение материалов и, наконец, визуализация и анимация. Вы научитесь создавать и правильно применять различные типы осветителей, управлять моделями съемочных камер, не уступающих по возможностям настоящим камерам, а по ряду параметров значительно превосходящих свои механические или электронные аналоги. Приобретете практические навыки создания материалов — как простейших стандартных, весь облик которых формируется за счет подбора цветовых оттенков, так и более сложных, которым сходство с реальными прототипами придается за счет включения в их состав различных текстурных карт. Обучаясь основам визуализации, вы освоите методы воспроизведения таких эффектов, свойственных живой природе, как туман, дымка, пламя огня, пучки света в туманной или пыльной атмосфере, а также научитесь применять оптические фильтры. Наконец, вы приобретете опыт «оживления» трехмерной сцены, ведь 3ds max 7.5 — это программа не только трехмерной графики, но и анимации. Знакомство с модулем для создания динамических сцен reactor позволит вам создавать сложные анимационные сцены, в которых объекты смогут взаимодействовать между собой.
Свиток Properties (Свойства) модификатора reactor Cloth (Реактор: Ткань)
В свитке Properties (Свойства) модификатора reactor Cloth (Реактор: Ткань) можно настроить следующие параметры тканей:
Mass (Масса) — величина массы сказывается на растяжении ткани при столкновении с жесткими телами, причем чем больше масса, тем меньше растяжение;
Friction (Трение) — коэффициент трения ткани;
Rel Density (Относительная плотность) — ткань не имеет толщины и объема, поэтому плотность называется относительной. Она имеет значение только для анимаций, в которых ткань по сценарию должна падать в воду. По умолчанию плотность ткани равна плотности воды;
Air Resistance (Сопротивление воздуха) — вызывает замедление падения ткани.
Для расчетов анимации ткани можно использовать две модели действующих на ткань сил:
Simple Force Model (Простая модель сил) — простая и быстрая для расчетов, не очень точная модель. Имеет два параметра для настройки:
Stiffness (Жесткость) — управляет гибкостью ткани;
Damping (Демпфирование) — задает скорость затухания упругих колебаний;
Complex Force Model (Сложная модель сил) — более сложная и требующая большего времени на расчеты, но более точная модель поведения ткани. Имеет четыре настраиваемых параметра:
Stretch (Растяжение) — задает степень растяжения ткани; > Bend (Изгиб) — задает степень сопротивления изгибам;
Shear (Разрыв) — задает степень сопротивления разрывам;
Damping (Демпфирование) — задает скорость затухания упругих колебаний.
Переключатель Fold Stiffness (Жесткость складок) позволяет выбрать один из трех вариантов:
None (Нет) — в этом варианте, принятом по умолчанию, ткань ведет себя подобно шелку;
Uniform Model (Равномерная модель) — в этом варианте жесткость складок ткани равномерна на всем ее протяжении;
Spatial Model (Пространственная модель) — позволяет менять жесткость складок только в определенных местах ткани.
Остальные параметры свитка являются одинаковыми для всех деформируемых тел:
Avoid Self-Intersections (Избегать самопересечений) — установка этого флажка позволяет избежать случаев пересечения отдельными частями ткани себя самой;
Constrain Deformations (Ограничить деформации) — установка этого флажка позволяет ограничить растяжение ткани при деформациях в счетчике Мах (%) (Максимум (%));
Start With Current State (Начинать с текущего состояния) — если данный флажок установлен, то модификатор запоминает состояние объекта в текущем кадре. При открытии окна предварительного просмотра ткань будет загружаться в это окно в том деформированном виде, которое запомнено модификатором. Например, откройте окно предварительного просмотра и запустите анимацию ткани. Когда ткань деформируется в окне должным образом, приостановите воспроизведение анимации, нажав клавишу Р. Выберите команду МАХ > Update МАХ (МАХ > Обновить МАХ). В итоге ткань в окнах проекций будет деформирована аналогично тому, как она выглядит в окне предварительного просмотра. Это состояние запоминается модификатором, и если снова открыть окно предварительного просмотра при установленном флажке Start With Current State (Начинать с текущего состояния), то ткань загрузится в деформированном виде. При сброшенном флажке ткань загружается в исходном виде, какой она имела до применения деформаций;
Clear Keyframes (Очистить ключи) — щелчок па этой кнопке ведет к удалению всех ключей, созданных для ткани модулем reactor (Реактор). Число таких ключей обозначается над кнопкой в строке ... keyframes stored (сохранено .... ключей);
Use Soft Selection (Использовать плавное выделение) — позволяет использовать плавное выделение при ограничении подвижности вершин сетки деформируемого объекта;
Reset Default Values (Восстановить исходные значения) — щелчок на этой кнопке восстанавливает исходные значения всех параметров модификатора.
С остальными параметрами модификатора reactor Cloth (Реактор: Ткань) познакомьтесь самостоятельно, используя справочную систему mах 7.5.
Сводим вместе элементы геометрической модели сцены
Наконец-то наступил момент, когда все составные части проекта «МАХ-кафе» готовы и мы можем свести их воедино, закончив тем самым конструирование геометрической модели сцены. Представленное в данном разделе упражнение позволит вам закрепить навыки использования целого ряда команд и инструментов max 7.5, предназначенных для работы с файлами, группирования, преобразования и дублирования объектов.
Свойства стандартных материалов, имитируемые картами текстур
Средства управления характеристиками стандартных материалов, создаваемых с использованием карт текстур, сосредоточены в свитке Maps (Карты текстур) Редактора материалов, показанном на рис. 14.1. Свиток содержит 24 однотипных группы элементов управления, в каждую из которых входит флажок активизации карты, наименование характеристики материала, имитируемой картой текстуры, счетчик доли вклада карты в результирующий вид материала (Amount) и кнопка выбора типа карты текстуры, на которой по умолчанию имеется надпись None (Отсутствует). При этом 12 групп названных элементов активны, а еще 12 находятся в резерве и недоступны для использования. Кнопки выбора карт текстуры являются аналогами маленьких квадратных кнопок без надписи, располагающихся справа от многих параметров материалов в свитках базовых параметров методов раскраски, рассмотренных выше.
Рис. 14.1. Свиток Maps
С помощью этого свитка можно выбрать и настроить параметры карт текстур для восьми базовых оптических характеристик стандартных материалов. Это те характеристики, которые снабжены в свитках базовых и дополнительных параметров раскраски маленькими квадратными кнопками, предназначенными для назначения текстурных карт. В их числе:
цвета подсветки (Ambient Color), диффузного рассеивания (Diffuse Color), зеркального отражения (Specular Color) и отфильтрованного света (Filter Color). Использование карт текстуры позволяет или полностью заместить названные цвета материала изображениями текстур, или, за счет уменьшения доли вклада карты, совместить соответствующий компонент цвета с изображением текстуры;
глянцевитость (Glossiness) и сила блеска (Specular Level). Применительно к этим характеристикам материала использование карт текстуры позволяет управлять степенью глянцевитости и интенсивностью блеска участков зеркальных бликов материала. За счет этого можно сделать область блика менее однородной и, как следствие, более естественной. Белым участкам карты соответствуют максимальные глянцевитость и интенсивность отражения в области блика, а черным — полное отсутствие глянца и минимальная интенсивность блеска;
самосвечение (Self-Illumination) и непрозрачность (Opacity). Карты текстуры помогают в данном случае управлять светимостью и прозрачностью материала. Чем ближе цвет отсчета текстурной карты к белому, тем выше яркость самосвечения и непрозрачность материала. Черным отсчетам карты соответствуют участки отсутствия светимости и полной прозрачности. Промежуточные значения обеспечивают полупрозрачность и умеренную светимость материала.
ЗАМЕЧАНИЕ Каждую строку свитка Maps (Карты текстур), содержащую флажок, наименование характеристики материала, счетчик доли вклада карты и кнопку выбора типа карты текстуры, часто называют каналом материала. В этом случае слова «поместить текстуру в канал диффузного цвета» как раз и означают полную или частичную замену текстурной картой цвета диффузного рассеивания материала. |
Помимо этого в свитке Maps (Карты текстур) имеются средства для замещения текстурными картами еще нескольких характеристик материала, которые нельзя заменить текстурами иначе, как с помощью элементов управления данного свитка:
Bump (Рельефность) — позволяет применить карту текстуры для придания поверхности объекта видимости трехмерных неровностей. Геометрия поверхности не меняется (скажем, плоскость остается плоской), но впечатление неровностей возникает за счет имитации бликов и теней. Кажущаяся рельефность управляется яркостью отсчетов текстурной карты: светлые отсчеты «выступают» над поверхностью, а темные «вдавливаются» в нее;
Reflection (Отражение) — позволяет применить карту текстуры для имитации отражения окружающих объектов на поверхности зеркального материала. Забегая вперед, скажу, что max 7.5 допускает использование четырех типов карт для имитации зеркального отражения: карта типа Bitmap (Растровая) позволяет просто спроецировать на поверхность объекта изображения любых предметов или пейзажа, создавая впечатление того, что объект сделан из зеркального материала; карты типа Reflect/Refract (Отражение/Преломление) и Raytrace (Трассируемая) обеспечивают отображение на поверхность объекта проекций окружающих объектов в том виде, в каком они наблюдаются из центра зеркального объекта; карта типа Flat Mirror (Плоское зеркало) обеспечивает формирование зеркальной проекции окружающих объектов на плоскую поверхность;
Refraction (Преломление) — позволяет применять карту текстуры для имитации преломления световых лучей прозрачным объектом. В таком качестве могут использоваться карты типа Bitmap (Растровая), Reflect/Refract (Отражение/Преломление) и Raytrace (Трассируемая). Использование двух последних карт воспроизводит реальное наблюдение окружающих предметов сквозь поверхность прозрачного материала;
Displacement (Смещение) — обеспечивает фактическое изменение геометрии поверхности пропорционально яркости отсчетов карты. Смещение применимо только к объектам, представленным сетками кусков Безье или NURBS-no-верхностями. Визуализация материала, основанного на карте текстуры смещения, требует значительного времени и большого расхода памяти.
Попробуем разобраться поподробнее в том, что такое карты текстур, какие они бывают и как используются.
Сворачивание стека
За всякие удобства приходится платить — так и за предоставляемую стеком возможность доступа ко всем параметрам объекта или его модификаторов приходится платить увеличением объема файла сцены и времени работы max 7.5. Хранить все эти параметры в стеках объектов имеет смысл лишь до тех пор, пока не завершено редактирование геометрической модели сцены. Еще одной причиной, вызывающей необходимость сохранять стек модификаторов объекта, может являться то, что параметры того или иного модификатора подвергаются анимации. Если же модификаторы объекта не участвуют в анимации, а корректировка формы этого объекта завершена, целесообразно свернуть стек модификаторов. Сворачивание стека означает устранение всех модификаторов с сохранением итогового вида объекта и преобразованием его в один из редактируемых типов: в редактируемую сетку, редактируемый сплайн или NURBS-поверхность. Объект после этого напрочь «забывает» о своем прошлом и дальнейшую его правку можно производить только на уровне подобъектов: вершин, сегментов, граней и т. п. Допускается сворачивание не всего стека, а только какой-то его нижней части.
Отработаем навыки сворачивания стека на примере объектов, подготовленных ранее для включения в проект «МАХ-кафе».
Терминология и язык
Признаться, вопрос о выборе терминологии и языка изложения оказался не таким тривиальным, как может показаться на первый взгляд. Терминология понятий, относящихся к трехмерной графике и анимации, еще не устоялась. В книгах разных издательств по данному вопросу одни и те же английские слова переводятся по-разному, что вызывает путаницу и затруднения (не буду приводить примеры — их масса). Может быть когда-нибудь нас и осчастливят «Словарем» или «Справочником по терминологии» трехмерной графики. Пока же будем в основном придерживаться тех терминов, которые уже знакомы читателям по целому ряду книг издательства «Питер», посвященных программам 3ds max разных версий.
Что же касается языка... В сети Интернет можно найти немало пособий и советов по использованию 3ds max, в которых изложение ведется примерно так: «Селектнем вертексы, экструднем сплайн, лофтанем пару шейпов, конвертнем меш, нанесем микс из двух мэпов, включим трейсинг — и все, можно рендерить!» В переводе на обычный язык это должно означать: «Выделим вершины, применим к кривой операцию выдавливания, построим оболочку по паре опорных форм-сечений, преобразуем сетку, нанесем смесь из двух текстурных карт, включим режим трассировки лучей — и все, можно визуализировать!» Конечно, последний вариант звучит менее «круто», но зато более по-русски и, на мой консервативный взгляд, все же более понятно (после объяснения, что означают такие «научные» слова, как «текстура», «трассировка» или «визуализация»). В предстоящих главах мы будем стараться говорить именно на таком языке, по возможности избегая слов-копий с английского, хотя полностью без этого пока не обойтись.
Типы дубликатов — копии, образцы и экземпляры
Рассмотрим различия между тремя типами дубликатов — копиями, экземплярами и образцами объектов:
Cору (Копия). Копия объекта — это его точный независимый дубликат. Единственной разницей между копией и оригиналом является имя объекта.
Применение преобразований или модификаторов к копиям объектов никак не сказывается на других копиях или оригинале. В качестве примера на рис. 4.22 показано, что применение модификатора Stretch (Растяжение) к объекту-ори-гиналу никак не сказалось на трех копиях этого объекта. Используйте копии объектов, когда заранее известно, что задача одновременного внесения изменений во все дубликаты не возникнет.
Рис. 4.22. Применение модификатора к объекту-оригиналу не влияет на три его копии
ЗАМЕЧАНИЕ
Подробно о том. что такое модификаторы и как ими пользоваться, вы узнаете из главы 8, «Совершенствуем навыки модификации объектов». Пока же достаточно знать, что модификаторы — это специальные инструменты max 7.5, позволяющие, в частности, изменять (модифицировать) форму готовых объектов. |
Instance (Образец). Образец — это дубликат объекта, сохраняющий неразрывную связь с оригиналом и определенную зависимость от него. Применение модификаторов к объекту-оригиналу проявляется на всех образцах, а модификация любого образца равносильна модификации оригинала — результаты сказываются как на оригинале объекта, так и на всех остальных образцах. В качестве примера на рис. 4.23 показано, что три дубликата-образца унаследовали модификатор Stretch (Растяжение), примененный к объекту-оригиналу, а применение к одному из дубликатов модификатора Twist (Скрутка) распространилось и на остальные дубликаты, и на оригинал. Все образцы просто-напросто используют те же самые модификаторы, что и оригинал. Во внутреннем представлении max 7.5 образец является всего лишь местозаполнителем {placeholder), то есть ссылкой, указывающей программе, что в определенной точке сцены нужно изобразить дубликат объекта. Впрочем, каждый образец сохраняет и свои уникальные свойства, например, имеет собственные координаты в пространстве, углы поворота и коэффициенты масштаба, собственный набор свойств (имя, цвет и т. п.), может иметь собственный материал и собственные связи с источниками объемных деформаций. Образцы могут с успехом использоваться при моделировании однотипных предметов — посуды, мебели или строительных блоков.
образцов распространяется на все семейство
Рис. 4.23. Применение модификаторов к объекту-оригиналу или к любому из дубликатов- образцов распространяется на все семейство объектов
Reference (Экземпляр). Экземпляр подобен образцу, но имеет одностороннюю связь с оригиналом. Если в оригинал объекта вносятся изменения, они распространяются и на все его экземпляры. Но если изменяется экземпляр, это не влияет ни на остальные экземпляры данного объекта, ни на оригинал. На рис. 4.24 в качестве примера показано, что три дубликата-экземпляра унаследовали результат применения к оригиналу модификатора Stretch (Растяжение).
Рис. 4.24. Дубликаты-экземпляры наследуют модификаторы, примененные к объекту-оригиналу, но сами допускают индивидуальную модификацию
Однако применение к одному из экземпляров модификатора Twist (Скрутка) не распространилось ни на другие дубликаты, ни на оригинал. Используйте экземпляры тогда, когда дубликаты должны иметь свойства, унаследованные от оригинала, и в то же время обладать индивидуальными отличиями, как, например, листья одного дерева или лица родственников.
Типы и составные части NURBS-кривых
Различают два типа NURBS-кривых:
точечная кривая {point curve) проходит через все опорные точки, заданные на • плоскости;
CV-кривая (CV curve) плавно изгибается вблизи всех опорных точек, заданных на плоскости и называемых управляющими вершинами {Control Vertices — CV).
Соответственно, подобъектами NURBS-кривых точечного типа являются точки {points) и собственно кривые, а NURBS-кривых типа CV — управляющие вершины {curve CV's) и собственно кривые.
шестнадцать различных типов осветителей сцены.
Чтобы разобраться в системе освещения max 7.5, нужно проявить терпение и упорство. Программа предоставляет в ваше распоряжение — вдумайтесь! — шестнадцать различных типов осветителей сцены. И это не считая двух встроенных осветителей, не подлежащих настройке, и двух готовых систем объектов, включающих в свой состав источники света: Sunlight (Солнечный свет) и Daylight (Дневной свет), о которых мы уже упоминали во второй главе.
Восемь из шестнадцати источников света относятся к разновидности Standard (Стандартные), а оставшиеся восемь — к разновидности Photometric (Фотометрические).
Стандартные осветители позволяют обеспечивать визуально правдоподобное освещение, не слишком заботясь при этом о соблюдении реальных физических законов распространения и отражения световых лучей. Например, по умолчанию свет от стандартных источников не затухает с расстоянием, что явно противоречит реальности, но в большинстве случаев не слишком мешает освещению сцен max 7.5.
Фотометрические осветители подобны стандартным, однако они позволяют точно воспроизводить освещенность, цвет и пространственное распределение силы света, свойственные реальным источникам, будь то обычная лампочка накаливания, люминесцентная лампа дневного света или солнце. Свет, испускаемый фотометрическими осветителями, всегда затухает обратно пропорционально квадрату расстояния до освещаемой поверхности. Характеристики света, испускаемого фотометрическими источниками, задаются в max 7.5 в действующих физических единицах, таких как канделы (cd), люмены (1т) или люксы (1х).
ЗАМЕЧАНИЕ В физике принято характеризовать световое излучение понятиями светового потока, силы света и освещенности. Световой поток задает энергию света, излученную за единицу времени, и измеряется в люменах. Световой поток, испускаемый в пределах заданной области пространства, называется силой света. Сила света позволяет сравнивать источники с различным пространственным распределением света и измеряется в канделах. Наконец, отношение светового потока к площади освещаемой поверхности называется освещенностью и измеряется в люксах. |
Помимо физической точности свойств моделируемого светового излучения, фотометрические осветители обладают и рядом других особенностей по сравнению со стандартными осветителями. Например, излучатели таких источников могут представлять собой не только точку, но и линию или плоскую площадку, что обеспечивает дополнительные возможности при настройке освещения. Как правило, фотометрические осветители применяют в специальных случаях, например, когда требуется точно спрогнозировать освещенность углов конкретного помещения светильником того или иного типа, подвешенным под потолком или установленным в углу комнаты. Причем если просто поместить один или два таких осветителя в сцену шах 7.5, света от них, как правило, будет явно не хватать. Реальные достоинства использования фотометрических осветителей проявляются только в случае привлечения алгоритмов расчета так называемой глобальной освещенности, с которой вы познакомитесь чуть позже в разделе «Глобальная освещенность: первое знакомство».
В число стандартных входят следующие восемь осветителей:
Всенаправленный (Omni) и все направленный площадной для mental ray (mr AreaOmni);
нацеленный и свободный направленные источники (Target Directional и Free Directional);
нацеленный и свободный прожекторы (Target Spot и Free Spot), а также площадной прожектор для mental ray (mr AreaSpot);
имитатор света неба (Skylight).
Всенаправленный осветитель — это источник света, который испускает световые лучи из одной точки равномерно во всех направлениях, подобно лампочке без абажура или солнцу по отношению к окружающим его планетам. Всенаправленный источник может отбрасывать тени и служить проектором изображений на поверхность объектов сцены, подобно обычному проектору слайдов.
Направленный источник испускает пучок параллельных лучей света, подобно Всенаправленному источнику на бесконечно большом удалении от него. Такой пучок может иметь круглое или квадратное сечение регулируемых размеров. Направленный источник света часто используется для имитации солнечного освещения при моделировании уличных сцен.
Прожектор отличается от направленного источника тем, что его лучи не параллельны, а расходятся коническим или пирамидальным пучком из единой точки, в которой располагается источник, подобно свету настоящих прожекторов, театральных софитов, автомобильных фар или карманных фонариков. Угол расхождения пучка лучей легко регулируется.
Направление лучей свободных источников света определяется ориентацией оси пучка, для изменения которой к источнику нужно применять преобразование поворота.
Нацеленные источники света отличаются от свободных наличием мишени {target) — объекта-пустышки, на который нацелена ось пучка лучей источника света. При перемещении мишени источник света автоматически меняет свою ориентацию, постоянно оставаясь нацеленным на нее. Это позволяет выполнять анимацию объектов, не выпуская их из освещенной зоны.
У площадных (Area) стандартных источников свет испускается совокупностью точечных осветителей, расположенных в пределах некоторой площадки. Такие осветители позволяют моделировать протяженные в двух измерениях светильники, наподобие матового экрана или окна.
Осветитель-имитатор света неба отличается от остальных стандартных источников света тем, что его воображаемые лучи не исходят из какой-то одной точки или совокупности небольшого числа точек. При размещении осветителя Skylight (Свет неба) в составе сцены она как бы накрывается сверху воображаемым куполом в виде бесконечно большой полусферы, все точки которой являются источниками световых лучей. Чтобы получить нужный эффект от включения в состав сцены осветителя Skylight (Свет неба), требуется применять специальный алгоритм расчета, именуемый Light Tracer (Трассировщик света).
В max 7.5 реализованы следующие три типа фотометрических осветителей, каждый из которых может быть нацеленным или свободным:
точечный нацеленный (Target Point) и свободный (Free Point);
линейный нацеленный (Target Linear) и свободный (Free Linear);
площадной нацеленный (Target Area) и свободный (Free Area).
Кроме того, имеются еще два типа фотометрических источнтков-имитатороа света солнца (IES Sun) и света неба (IES Sky).
В исходном состоянии точечный фотометрический осветитель испускает свет с одинаковой силой во всех направлениях. Внимательные читатели, вероятно, уже задумались над вопросом, зачем же такому осветителю мишень? Дело в том, что для точечного фотометрического источника света можно задавать различные варианты пространственного распределения силы излучения, превращая его в подобие прожектора. В этом случае наличие мишени становится уже вполне оправданным: она располагается на оси максимума силы излучения света и позволяет управлять направлением этой оси.
Линейный свободный и нацеленный фотометрические осветители позволяют моделировать линейно-протяженные светильники, наподобие ламп дневного света или галогенных ламп.
Площадной свободный и нацеленный фотометрические осветители позволяют моделировать светильники, протяженные в двух измерениях, подобно площадным стандартным источникам света.
Фотометрические имитаторы света неба и света солнца служат для воспроизведения физически точного по цвету, интенсивности и направленности света, испускаемого реальными солнцем и небом, как открытым, так и полностью или частично затянутым облаками. Эти источники могут использоваться как самостоятельно, так и в составе системы объектов Daylight (Дневной свет). Сокращение IES в названиях этих осветителей происходит от названия организации, разрабатывающей стандарты описания параметров светильников и создаваемого ими освещения — Illuminating Engineering Society.
Пока в состав сцены не введен хотя бы один осветитель, для ее освещения по умолчанию применяются встроенные источники света с фиксированными параметрами, не подлежащими настройке.
Освещение сцены зависит также от подсветки, не имеющей источника и проявляющейся в равномерном изменении начального уровня освещенности всех объектов. Настройка подсветки производится в окне диалога Environment (Внешняя среда).
и наиболее широко используемым типом
Основным и наиболее широко используемым типом материала является Standard (Стандартный). Визуальное сходство с объектами реального мира обеспечивается подбором характеристик стандартного материала, к которым относятся: цвета отдельных компонентов света — диффузно рассеянного, зеркально отраженного, видимого только благодаря подсветке или пропущенного материалом; сила блеска поверхности; степень светимости и прозрачности. Возможности использования стандартных материалов значительно расширяются за счет того, что многие свойства материала допускается имитировать с помощью текстурных карт (maps) — фотографий или синтезированных изображений, воспроизводящих характерный рисунок той или иной поверхности. В max 7.5 используется целых 33 типа карт текстур, поэтому для того, чтобы познакомиться с их особенностями, а главное, научиться всеми ими пользоваться, придется приложить некоторые усилия! Назначение и использование некоторых типов карт текстур будет рассмотрено нами в следующей главе.
Состав материалов, доступных в max 7.5, зависит от выбора текущего алгоритма визуализации сцены. При использовании исходного сканирующею визуализатора (default scanline renderer) в max 7.5 доступно 15 типов материалов, из которых оригинальными, помимо стандартного, являются еще четыре:
Architectural (Архитектурный) — материал, воспроизводящий с высокой точностью физические свойства поверхностей предметов реального мира. Рекомендуется к применению в архитектурных проектах, в которых для освещения используются фотометрические осветители, а для визуализации — алгоритм Radiosity (Перенос освещения);
Raytraced (Трассируемый) — материал, подобный стандартному, но обеспечивающий формирование эффектов отражения и преломления методом трассировки световых лучей. С его помощью можно прекрасно моделировать гладкие полированные поверхности, в которых отражаются окружающие предметы, или объекты из стекла с их свойствами прозрачности, преломления световых лучей и некоторой способностью к отражению;
Matte/Shadow (Матовый/Затеняемый) — материал, воспроизводящий на своей поверхности изображение фона сцены, но непрозрачный для объектов и способный воспринимать тени от них. Поставленная на переднем плане сцены «ширма» с таким материалом полностью сливается с фоном сцены, маскируя расположенные позади нее объекты. Тени, отброшенные объектами на такую «ширму», кажутся падающими прямо на фон сцены. Например, благодаря применению такого материала к основанию сцены, показанной на рис. 1.7 первой главы, создается впечатление, что тени от объектов — домика, кустарника живой изгороди, фигуры коровы — отбрасываются на траву фоновой фотографии сцены;
Ink'n Paint (Обводка и заливка) — материал, позволяющий выполнить стилизацию синтезируемого изображения объекта под картинку, нарисованную пером и раскрашенную кисточкой, как принято в традиционной мультипликации или при рисовании комиксов. Так как цель нашего проекта состоит в синтезе фотореалистичных изображений, мы не будем разбираться в особенностях применения такого материала. Те, кому это все-таки интересно, могут обратиться к справочной системе mах 7.5 или к моей книге «3ds max. Материалы, освещение, визуализация», выпущенной издательством «Питер» в 2005 году.
Остальные 10 материалов относятся к числу составных (Compound Materials), образуемых на базе вышеназванных оригинальных материалов:
Multi/Sub-Object (Многокомпонентный) — материал, состоящий из множества различных материалов, которые можно назначать отдельным граням объекта с учетом идентификаторов материала этих граней;
Blend (Смесь) — материал, представляющий собой смесь двух других типов материалов, наносимых один поверх другого. Управлять тем, в каких местах будет виден один материал, а в каких другой, можно с помощью маски;
Double Sided (Двусторонний) — материал, состоящий из двух материалов, один из которых предназначен для лицевой, а другой — для изнаночной стороны граней объекта;
Top/Bottom (Верх/Низ) — материал, состоящий из двух материалов, один из которых назначается граням объекта, нормали которых направлены вверх, а другой — граням, нормали которых направлены вниз;
Composite (Многослойный) — материал, включающий до десяти слоев других материалов с регулируемой прозрачностью, которые могут просвечивать друг сквозь друга с суммированием или вычитанием цветов;
Shellac (Шеллак) — материал, подобный многослойному, но состоящий всего из двух слоев: слоя базового материала и слоя шеллака (так называется специальная смола, применяемая в живописи) с регулируемой прозрачностью, цвет которого суммируется с цветом базового материала;
Morpher (Морфинговый) — многоканальный материал, который применяется только к морфинговым составным объектам и позволяет имитировать плавные изменения материалов на отдельных фазах преобразования морфинга;
Advanced Lighting Override (Замена свойств улучшенного освещения) — материал-модификатор, специально разработанный с целью управления свойствами других материалов max 7.5, которые принимаются в рассмотрение при решении задачи переноса излучения, рассмотренной в предыдущей главе. В частности, он позволяет изменять способность исходного материала отражать, пропускать или подкрашивать отраженные световые лучи. Этот материал применяется не к объекту, а к уже готовому базовому материалу, нанесенному на этот объект;
Shell Material (Материал-оболочка) — материал, представляющий собой просто контейнер для двух других материалов, один из которых, Baked Material («Запеченный» материал), автоматически создается в результате выполнения новой операции max 7.5 — визуализации в текстуры. В результате оказывается возможным применение к объектам «готовых к употреблению» текстур, «запеченных» вместе с тенями и зеркальными бликами света;
Lightscape Mtl (Материал для Lightscape) — материал, который не может быть использован в max 7.5 и применяется только к объектам, предназначенным для экспорта в программу Lightscape. Данная программа обеспечивает расчет глобальной освещенности трехмерной сцены методом переноса излучения.
При переключении на модуль визуализации mental ray список доступных материалов меняется. Из него исключаются материалы Advanced Lighting Override (Замена свойств улучшенного освещения), Lightscape Mtl (Материал для Lightscape) и Morpher (Морфинговый). В то же время появляются семь новых материалов:
DGS (Diffuse, Glossy, Specular) Material (Диффузный, глянцевый, зеркальный — ДГЗ-материал) — материал, способный при визуализации модулем mental ray с физической точностью воспроизводить такие свойства реальных материалов, как диффузное рассеивание света (Diffuse), глянцевитость (Glossy) и зеркальное отражение (Specular);
Glass (Стекло) — материал, с физической точностью воспроизводящий как поверхностные свойства стекла, так и его способность пропускать свет;
mental ray — материал, позволяющий выбрать из обширного набора и настроить 10 алгоритмов раскраски, или шейдеров, с помощью которых имитируются основные свойства реальных материалов;
SSS Fast Material (Быстрый материал подповерхностного рассеивания), SSS Fast Skin Material (Быстрый материал подповерхностного рассеивания для кожи), SSS Fast Skin Material+Displace (Быстрый материал подповерхностного рассеивания для кожи + смещение) и SSS Physical Material (Физический материал подповерхностного рассеивания) — четыре материала, позволяющие с физической точностью воспроизвести эффект подповерхностного рассеивания.
В последующих разделах данной главы мы на практике познакомимся с использованием материала типа Standard (Стандартный), а в следующей главе — Multi/Sub-Object (Многокомпонентный). Порядок и особенности применения материалов других типов при необходимости попробуйте изучить самостоятельно, пользуясь электронной справочной системой max 7.5 или моей уже упоминавшейся книгой «3ds max. Материалы, освещение, визуализация», выпущенной издательством «Питер» в 2005 году.
ЗАМЕЧАНИЕ Уверяю вас, что даже владея только этими двумя материалами, можно выполнить имитацию внешнего вида практически любых объектов окружающего мира или мира вашего воображения. Стандартный материал составляет основу всех типов составных материалов, а многокомпонентный материал может заменить собой большую часть этих составных материалов. Трассируемый материал с успехом можно заменить стандартным, в состав которого включена карта текстуры типа Raytrace (Трассируемая). |
Типы проекционных координат
Выбор проекционных координат нужного типа производится за счет установки переключателя в разделе Mapping (Проекционные координаты) свитка Parameters (Параметры) в одно из следующих положений:
Planar (Плоские) — служат для проецирования растровых текстур на ровные плоские поверхности объектов. Вид значка плоских проекционных координат показан выше на рис. 14.25. На тех гранях объекта, которые расположены перпендикулярно плоскости проекции, изображение текстуры сильно растягивается и искажается, как показано на рис. 14.27;
Рис. 14.27. Проецирование текстуры с использованием плоских координат
Cylindrical (Цилиндрические) — применяются к объектам, имеющим форму, близкую к цилиндрической, наподобие консервной банки или кегли. Изображение текстуры оборачивается вокруг вертикальной оси объекта, совпадающей с осью габаритного контейнера проекционных координат, а затем проецируется на поверхность объекта с цилиндрической поверхности габаритного контейнера, показанного на рис. 14.28. Установка флажка Сар (Торец) включает режим, при котором на торцевые поверхности объекта также будет нанесено по отдельной копии растровой текстуры, как показано на рис. 14.29;
Рис. 14.28. Значок цилиндрических проекционных координат
Рис. 14.29. Проецирование текстуры с использованием цилиндрических координат при установленном флажке Сар
Spherical (Сферические) — создают габаритный контейнер модификатора проецирования в виде сферы, окружающей объект (рис. 14.30). Использование данного типа координат предпочтительно для объектов, имеющих округлую или сферическую форму, однако сферическое проецирование применимо и к любым другим объектам, как показано на рис. 14.31;
Рис. 14.30. Значок сферических проекционных координат
Рис. 14.31. Проецирование текстуры с использованием сферических координат
Shrink Wrap (Обтягивающие) — специальная система координат, разработанная для проецирования текстур на объекты сложной формы органического типа, наподобие моделей растений, фигур людей или животных. Эта система является по сути сферической и имеет точно такой же габаритный контейнер в форме сферы, но обеспечивает усечение углов карты текстуры и соединение их в единственной точке-полюсе, что дает минимальные искажения рисунка, как показано на рис. 14.32;
Рис. 14.32. Проецирование текстуры с использованием обтягивающих координат
Box (Прямоугольные трехмерные) — обеспечивают отображение текстуры на поверхность объекта с шести граней габаритного контейнера в форме прямоугольного параллелепипеда (рис. 14.33). Применяются преимущественно для объектов прямоугольной формы. Если использовать для подобных объектов плоскую систему координат, то на каких-то гранях всегда будет наблюдаться растяжение рисунка текстуры. В случае прямоугольного трехмерного проецирования к каждой из шести сторон параллелепипеда применяется плоская проекция текстуры, так что растяжение исключается (рис. 14.34);
Рис. 14.33. Значок прямоугольных трехмерных проекционных координат
Рис. 14.34. Проецирование текстуры с использованием прямоугольных трехмерных координат
ЗАМЕЧАНИЕ Чтобы обеспечить одинаковый масштаб изображения текстуры на каждой из сторон объекта в виде прямоугольного блока, примените к нему модификатор UWV Map (UVW-проекция), установите проекционные координаты типа Box (Прямоугольные трехмерные) и придайте габаритному контейнеру модификатора форму куба с одинаковыми размерами по всем трем осям проекционных координат U, V и W. |
Рис. 14.35. Проецирование текстуры с использованием координат граней объекта
XYZ to UVW (XYZ в UVW) — обеспечивают растяжение рисунка трехмерных процедурных текстур вместе с оболочкой объекта, как показано на рис. 14.36. Две копии сферы с процедурной текстурой были растянуты по вертикали. Рисунок текстуры на правой сфере, нанесенный с использованием модификатора XYZ to UVW (XYZ в UVW), растянулся вместе с оболочкой, а на средней — нет.
Рис. 14.36. Пример применения модификатора проекций XYZ to UVW
о том, что составные объекты
В главе 2 уже упоминалось о том, что составные объекты (compound objects) — это трехмерные тела, составленные из двух или более простых объектов. Всего в max 7.5 реализовано десять типов составных объектов:
Morph (Морфинговые) — объекты этого типа позволяют выполнять анимацию поэтапного, растянутого во времени и содержащего ряд промежуточных стадий превращения одного тела в другое;
Scatter (Распределенные) — объекты этого типа представляют собой результат распределения дубликатов одного объекта по поверхности другого объекта или в некоторой области трехмерного пространства. Могут использоваться для имитации стеблей травы, стаи птиц или рыб, деревьев на модели ландшафта и т. п.;
Conform (Согласованные) — объекты этого типа формируются путем проецирования вершин одного трехмерного тела на поверхность другого. В результате обеспечивается возможность выполнять имитацию таких эффектов, как плавление, таяние или растекание;
Connect (Соединяющиеся) — использование объектов этого типа позволяет соединить между собой отверстия в оболочках двух исходных тел своеобразным туннелем;
BlobMesh (Капля-сетка) — объекты этого типа обладают способностью сливаться в одно целое при сближении. Такие объекты называются метасфера-ми (metaballs) и используются в основном для имитации органических объектов, таких как капли жидкости.
Shape Merge (Слитые с формой) — объекты этого типа позволяют соединить сплайновую форму с поверхностью трехмерного тела. Формы либо встраиваются в сетку поверхности тела, либо вырезаются из нее;
Boolean (Булевские) — объекты этого типа представляют собой трехмерные тела, оболочки которых формируются из оболочек двух других трехмерных тел путем их объединения, вычитания или пересечения;
Terrain (Ландшафт) — объекты этого типа позволяют формировать модели трехмерного рельефа горного ландшафта на основе совокупности нескольких замкнутых форм, представляющих собой изолинии равных высот, подобных тем, что используются на контурных картах;
Loft (Лофтинговые) — объекты этого типа представляют собой трехмерные тела, которые строятся методом лофтинга, то есть путем формирования оболочки по опорным сечениям, расставляемым вдоль заданной траектории произвольной формы;
Mesher (Сеточник) — объект-сеточник изначально создается как простейшая полигональная сетка в форме четырехугольной пирамидки, которая способна принимать вид любого другого указанного вами объекта сцены. Служит для замены процедурных объектов, таких как системы частиц, полигональными сетками, к которым можно применять обычные модификаторы формы.
ЗАМЕЧАНИЕ В этой главе мы будем знакомиться с приемами создания только двух типов составных объектов: Loft (Лофтинговые) и Boolean (Булевские). Остальные составные объекты при необходимости попробуйте освоить самостоятельно, используя электронную справочную систему max 7.5. |
Точный ввод параметров преобразования
Выполнение преобразований в интерактивном режиме с помощью мыши не всегда может обеспечить требуемую точность. Однако в mах 7.5 предусмотрено средство для ввода данных преобразования с любой необходимой точностью — окно диалога, вызываемое по команде главного меню Tools > Transform Type-In (Сервис > Ввод данных преобразования). Это окно диалога одновременно служит средством точного определения положения и ориентации любого объекта в трехмерной системе координат.
СОВЕТ
Для вызова окна диалога Transform Type-In (Ввод данных преобразования) достаточно щелкнуть на кнопке одного из инструментов преобразований главной панели инструментов правой кнопкой мыши. |
Для ввода точных значений параметров преобразований перемещения, поворота или масштаба выполните следующие действия:
1. Щелкните на одной из кнопок Select and Move (Выделить и переместить), Select and Rotate (Выделить и повернуть) или Select and Scale (Выделить и масштабировать) панели инструментов, после чего выберите команду меню Tools > Transform Type-In (Сервис > Ввод данных преобразования) или просто щелкните на кнопке выбранного преобразования правой кнопкой мыши. Появится окно диалога для ввода данных того преобразования, кнопка которого активна на панели инструментов. Наименование типа преобразования включается в заголовок окна. Так, при активной кнопке преобразования Select and Move (Выделить и переместить) окно диалога будет иметь заголовок Move Transform Type-In (Ввод данных преобразования перемещения), как показано на рис. 4.38. Если вызвать это окно диалога, не выбрав предварительно один из инструментов преобразований, то поля счетчиков координат будут пусты и недоступны для ввода. Присутствие этого окна на экране не мешает продолжению работы с объектами в окнах проекций и выполнению любых других команд mах 7.5.
Рис. 4.38. Окно диалога для считывания и изменения значений координат текущего положения, углов ориентации и коэффициентов масштаба объектов сцены
2. Выделите объект сцены, координаты или ориентацию которого вы хотите определить или изменить. Пока объект не выделен, поля счетчиков окна Transform Type-In (Ввод данных преобразования) будут пусты и недоступны для ввода. Прочитайте значения координат, углов ориентации или коэффициентов масштаба объекта по соответствующим координатным осям глобальной системы координат в счетчиках X, Y и Z группы Absolute: World (Абсолютные: Глобальные). Перемещение, поворот или масштабирование объекта с помощью мыши сопровождается отображением новых значений параметров преобразования в окне диалога Transform Type-In (Ввод данных преобразования).
3. Чтобы изменить параметры выбранного преобразования, введите их числовые значения по соответствующим координатным осям в одну из двух групп счетчиков X, Y и Z. При этом в группе Absolute: World (Абсолютные: Глобальные) задаются абсолютные значения параметров в глобальной системе координат, а в группе Offset: Screen (Приращения: Экранные) указываются приращения текущих значений параметров в экранной системе координат. Величины приращений обнуляются после каждой операции изменения параметров преобразования, то есть после каждого нажатия клавиш Enter или Tab, завершающего ввод данных в один из счетчиков. Преобразования объектов в окнах проекций будут производиться по мере ввода значений в счетчики.
Поэкспериментируйте с вводом точных значений параметров преобразований перемещения, поворота и масштабирования, используя объекты учебной сцены, и вы убедитесь в том, насколько удобен этот способ для выполнения точных преобразований объектов.
В max 7.5 процедура численного ввода параметров преобразований предельно упрощена: эти данные при активном инструменте преобразования можно вводить прямо в ноля отсчета координат в нижней части экрана, расположенные в строке состояния. При этом можно вводить как абсолютные значения параметров, так и значения их приращений, в зависимости от того, нажата или нет кнопка
Absolute Mode Transform Type-In (Ввод абсолютных значений преобразования), расположенная слева от полей отсчета координат. Использование этой кнопки было описано в главе 2, «Знакомимся с 3ds max 7.5».
Трехмерные карты текстур
Трехмерные карты текстур (3D maps) — это процедурные карты, генерируемые расчетным путем. Рисунок таких текстур меняется в трехмерном пространстве. Материалы на основе процедурных карт занимают очень мало памяти, так как в ней хранятся только коэффициенты математического уравнения, а не множество отсчетов растровой картинки. С другой стороны, в связи с необходимостью выполнения расчетов для генерации изображения визуализация процедурных карт требует несколько большего времени, чем визуализация карт растровой текстуры. Впрочем, при нынешнем быстродействии процессоров это замедление невозможно ощутить. Для получения полного списка трехмерных карт текстур необходимо действовать так же, как было описано в разделе «Двумерные карты текстур», однако установить переключатель в левом нижнем углу окна диалога Material/Map Browser (Просмотр материалов и карт текстур) в положение 3D maps (Трехмерные карты). К данному типу относятся следующие карты текстур:
Cellular (Ячеистая) — позволяет генерировать ячеистые текстуры, пригодные для имитации множества различных природных и искусственных объектов, таких как гранит, песок, пенопласт или морская пена. В качестве примера на рис. 14.8 карта текстуры Cellular (Ячеистая) использована для имитации рельефа фасада и цвета диффузного рассеивания фундамента «МАХ-кафе»;
Рис. 14.8. Пример использования карты текстуры типа Cellular
Dent (Вмятины) -- создает случайные пятна но фрактальному алгоритму. При использовании в качестве текстуры рельефа она обеспечивает имитацию трехмерных вмятин на поверхности объекта, как показано на рис. 14.9;
Рис. 14.9. Рельеф фасада обусловлен использованием карты текстуры типа Dent
Falloff (Спад) — служит для генерации черно-белой полутоновой карты, интенсивность отсчетов которой пропорциональна углу ориентации нормали в каждой точке поверхности объекта. По умолчанию ориентации нормали перпендикулярно плоскости текущего окна проекции соответствуют белые отсчеты карты, а параллельно плоскости окна проекции — черные. Данная карта обычно используется в качестве текстуры непрозрачности, повышая достоверность изображения стекла и других прозрачных материалов, как показано на рис. 14.10;
Рис. 14.10. Использование карты текстуры типа Falloff для уменьшения степени прозрачности на краях правого бокала
Marble (Текстура мрамора) и Perlin Marble (Перламутровый мрамор) — позволяют имитировать материалы, напоминающие природный мрамор, как показано на рис. 14.11. Обратите внимание на истинно трехмерный характер текстуры: рисунок продолжается на боковых гранях столешницы, как будто она вырезана из цельного куска мрамора;
Рис. 14.11. Процедурная карта Marble использована для имитации цвета диффузного рассеивания материала столешницы
Noise (Неоднородности) и Smoke (Задымление) — позволяют создать материалы с рисунком в виде областей случайной формы и яркости на основе двух исходных цветов или текстур (Неоднородности) или в виде аморфных областей случайного характера, призванных имитировать эффекты дыма или тумана в луче света (Задымление). Карта неоднородностей часто применяется в качестве текстуры диффузного рассеивания, чтобы сделать расцветку материала менее однородной, что придает ей более естественный вид;
Particle Age (Возраст частиц) и Particle MBlur (Смаз движущихся частиц) — применяются в составе материалов, назначаемых системам частиц. Карта типа Particle Age (Возраст частиц) обеспечивает по мере «старения» частиц плавное изменение их цвета от оттенка, соответствующего только что родившимся частицам, через оттенок «зрелого» возраста к цвету «умирающих» частиц. Карта типа Particle MBlur (Смаз движущихся частиц) обеспечивает изменение цвета на переднем и заднем (по отношению к направлению их движения) краях частиц;
Planet (Планетарная) — использует фрактальный алгоритм генерации случайной картины пятен, напоминающих по цвету материки и океаны на глобусе, как показано на рис. 14.12;
Рис. 14.12. Процедурная карта Planet использована для имитации цвета диффузного рассеивания материала столешницы
Speckle (Крапинки), Splat (Брызги краски) — служат для создания рисунков случайных крапинок, способных имитировать материалы зернистой структуры наподобие гранита или песка или напоминающих результат разбрызгивания краски на поверхность материала с помощью аэрографа, как показано на рис. 14.13.
Рис. 14.13. В составе цвета диффузного рассеивания тарелки использована карта текстуры Splat
Так как оба цвета, входящих в состав этой карты, можно, в свою очередь заменить текстурами, что позволяет создать впечатление, будто одна текстура выглядывает из-под другой (рис. 14.14). Обычно карта крапинок применяется в качестве текстуры цвета диффузного отражения или рельефа;
Рис. 14.14. Карта текстуры Splat дает возможность имитировать полуобвалившуюся штукатурку, сквозь дыры в которой видна кирпичная кладка
Stucco (Штукатурка) -- обычно используется в качестве текстуры рельефа и позволяет имитировать неровности, напоминающие, в зависимости от настройки параметров, самые разные материалы — от шероховатой оштукатуренной поверхности, как показано на рис. 14.15, до шкурки апельсина;
Рис. 14.15. Шероховатый рельеф стены имитируется картой текстуры Stucco
Waves (Волны) — позволяет имитировать случайную картину бликов и теней на взволнованной поверхности воды. На рис. 14.16 показан результат использования карты Waves (Волны) в качестве текстур цвета диффузного рассеивания и рельефа основания сцены «МАХ-кафе», что позволило создать впечатление, будто здание стоит посреди огромной лужи;
Рис. 14.16. Использование карты текстуры Water в качестве цвета диффузного рассеивания и рельефа основания сцены «МАХ-кафе»
Wood (Древесина) — предназначена для имитации рисунка древесных слоев. Благодаря своей трехмерности эта карта текстуры позволяет имитировать поверхности как поперечного, так и продольного срезов ствола дерева, обеспечивая высокую степень правдоподобия изображений деревянных досок и брусков. В примере, показанном на рис. 14.17, использование карты текстуры Wood (Древесина) в качестве цвета диффузного рассеивания создает впечатление, что столешница выполнена из цельного куска дерева.
Рис. 14.17. Использование карты текстуры Wood в качестве цвета диффузного рассеивания столешницы
Труба
Выберите в раскрывающемся списке командной панели Create (Создать) вариант Standard Primitives (Стандартные примитивы) и щелкните на кнопке Tube (Труба) в свитке Object Type (Тип объекта). С помощью данного инструмента можно создать трубу, то есть цилиндр с продольным отверстием, а также цилиндрический сектор трубы и многогранную призму с отверстием (рис. 5.26).
Рис. 5.26. Все эти различные на вид объекты построены на базе примитива Tube
Учимся настраивать окна в трехмерный мир
Окна проекций max 7.5 — это очень удобные и гибкие по своим возможностям инструменты для наблюдения за трехмерной сценой, формируемой в памяти компьютера, однако их использование требует определенных навыков и привычки. В следующей части главы вы научитесь правильно настраивать эти окна, чтобы не чувствовать себя беспомощно в виртуальном пространстве.
Учимся настраивать параметры визуализации
Для настройки параметров визуализации служит окно диалога Render Scene (Визуализация сцены), показанное на рис. 15.12. В название окна включается наименование текущего модуля визуализации, например Render Scene: Default Scanline Renderer (Визуализировать сцену: исходный сканирующий визуализатор), которое при дальнейшем описании будет опускаться. По умолчанию это окно содержит пять вкладок — Common (Общие настройки), Renderer (Визуализатор), Render Elements (Визуализация элементов), Raytracer (Трассировщик) и Advanced Lighting (Улучшенное освещение), — позволяющих настроить как общие параметры визуализации, так и параметры, определяющие работу используемого модуля визуализации. При смене такого модуля состав вкладок и размещенных на них свитков меняется.
Рис. 15.12. Вкладка окна Common диалога Render Scene содержит набор параметров визуализации, объединенных в три свитка
Вкладка Render Elements (Визуализация элементов) позволяет выполнить раздельную визуализацию и сохранение в виде отдельных изображений так называемых элементов изображения, под которыми в данном случае понимаются, скажем, картины зеркальных бликов, областей диффузного рассеивания света, самосвечения или теней сцены. Можно получить отдельное изображение только фона сцены или полутоновое изображение Z-буфера (буфера глубины расположения объектов сцены), о котором речь пойдет в разделе «Z-буфер и G-буфер — что это такое?». Такое раздельное сохранение отдельных составных частей общей картины позволяет строить из них послойные композиции с использованием какого-либо из стандартных редакторов растровой графики наподобие программ Photoshop компании Adobe или Combustion компании Discreet, достигая дополнительных эффектов выразительности. Мы не будем рассматривать параметры этого свитка. При необходимости вы можете изучить их самостоятельно с использованием электронной справочной системы max 5.
Вкладка Advanced Lighting (Улучшенное освещение) содержит средства для выбора одного из двух алгоритмов расчета глобальной освещенности — Light Tracer (Трассировщик света) или Radiosity (Перенос излучения) — и настройки его параметров. Элементы настройки этой вкладки были подробно рассмотрены в главе 11, «Расставляем и настраиваем осветители и съемочные камеры».
По умолчанию в max 7. 5 используется визуализатор Default Scanline Renderer (Исходный сканирующий визуализатор). Его параметры настраиваются на вкладке Renderer (Визуализатор). Подробнее об этой вкладке вы прочтете в разделе «Настройка параметров сканирующего визуализатора» данной главы.
Вкладка Common (Общие настройки) окна диалога Render Scene (Визуализация сцены) содержит три свитка: Common Parameters (Общие параметры), Email Notifikations (Оповещения по e-mail) и Assign Renderer (Назначить визуализатор). Содержимое этой вкладки не зависит от выбранного модуля визуализации.
Свиток Email Notification (Оповещение по e-mail) служит для настройки системы оповещения о ходе визуализации, выполняемой семейством компьютеров, объединенных в сеть. Сетевая визуализация применяется для создания сложных анимаций, состоящих из десятков тысяч кадров. Каждый отдельный компьютер синтезирует часть кадров, процесс распараллеливается и за счет этого происходит быстрее. Оповещение по электронной почте упрощает контроль за ходом этого сложного процесса, но мы не будем в данной книге рассматривать особенности сетевой визуализации.
Свиток Assign Renderer (Назначить визуализатор) служит для раздельного выбора одного из доступных модулей визуализации, который будет использоваться в каждом из допустимых режимов — итоговом (Production), режиме активной раскраски (ActiveShade), а также при визуализации материалов в окне Редактора материалов (Material Editor). Подробнее об этом свитке вы прочтете в разделе «Выбор алгоритма визуализации» данной главы.
Мах 7.5 хранит два полных набора общих и зависящих от алгоритма визуализации параметров, один из которых носит название Production (Итоговый), а другой — ActiveShade (Активная раскраска). Выбор набора настраиваемых параметров производится переключателем уровней качества визуализации в левом нижнем углу окна диалога Render Scene (Визуализация сцены). Изменение значений параметров в одном из наборов не сказывается на другом.
Если необходимо визуализировать изображение сцены не в том окне проекции, которое было активизировано перед вызовом окна диалога Render Scene (Визуализация сцены), выберите наименование окна проекции, подлежащего визуализации, в раскрывающемся списке Viewport (Окно проекции) в нижней части окна диалога.
Для запуска процесса визуализации щелкните на кнопке Render (Визуализировать). Щелчок на кнопке Close (Закрыть) в правом верхнем углу окна диалога закрывает окно с сохранением всех настроек параметров, выполненных в свитках окна.
В рамках нашей книги нет возможности (да, впрочем, и необходимости) рассматривать назначение и настройку всех параметров, имеющихся на вкладках окна диалога Render Scene (Визуализация сцены). Рассмотрим лишь те из них, которые могут реально понадобиться вам на первых этапах освоения тонкостей визуализации.
Учимся пользоваться съемочными камерами
До сих пор мы визуализировали сцену в окне проекции Perspective (Перспектива), и это давало совсем неплохие результаты. И все-таки управлять изображением в этом окне не так-то просто. Попробуйте-ка с помощью трекбола, устанавливаемого в окне проекции по щелчку на кнопке Arc Rotate (Повернуть), повернуть изображение так, чтобы наблюдать сцену ровно с противоположной стороны. Думаю, далеко не у каждого из вас это получится гладко с первого раза. Чуть ниже вам предстоит убедиться, насколько легко выполнить такую операцию, используя модель съемочной камеры max 7.5. Кроме того, для манипулирования изображением, наблюдаемым «через объектив» съемочной камеры, имеется много дополнительных инструментов.
Помните, в первой главе мы говорили о том, что моделирование трехмерной графики напоминает имитацию процесса фотографирования или видеосъемки? Вот мы и подошли к тому моменту, когда геометрия сцены готова, осветители расставлены и настроены. Чтобы теперь найти выигрышные ракурсы и приступить к съемке, дело за съемочными камерами.
Как и в реальной жизни, съемка трехмерной сцены редко ведется одной камерой. Дело в том, что «поймав» с помощью модели камеры удачную точку съемки, лучше не трогать эту камеру. Воспроизвести заново однажды подобранные условия съемки бывает иногда очень непросто. К счастью, ничто не мешает для съемки с других точек ввести в сцену еще одну или несколько камер.
Если выполнить анимацию перемещения камеры по сцене в процессе съемки, то результат будет напоминать видеоэкскурсию по виртуальному трехмерному миру.
В max 7.5 имеется два типа камер:
нацеленная (Target) камера характеризуется точкой съемки (eye position), в которой помещается сама камера, и точкой нацеливания, или мишенью (target point), то есть точкой в трехмерном пространстве, на которую направлена линия взгляда камеры;
свободная (Free) камера отличается от нацеленной только тем, что не имеет точки нацеливания.
Вид нацеленной камеры в окне проекции (рис. 11.57) похож на вид нацеленного прожектора с прямоугольным сечением луча света, а действия, которые нужно произвести в окне проекции для создания нацеленной камеры, совершенно аналогичны действиям по созданию нацеленного прожектора. То же самое можно сказать и о свободных камерах. Однако значок камеры не спутаешь со значком прожектора. В главе 2 мы уже упоминали о том, что в max 7.5 значки виртуальных камер выглядят почти как настоящие кинокамеры с контейнерами для катушек с пленкой и раструбом бленды на конце объектива.
Рис. 11.57. Так выглядит нацеленная камера в том окне проекции, в котором она создана (слева), и на виде сбоку (справа)
ЗАМЕЧАНИЕ Для наглядности размер значков камер на рис. 11.57 увеличен в три раза по сравнению с принятым по умолчанию за счет изменения значения в счетчике Non-scaling object size (Размер немасштабируемых объектов) на вкладке Viewports (Окна проекций) окна диалога Preference Settings (Настройка параметров), вызываемого по команде меню Customize > Preferences (Настройка > Параметры). Если в качестве единиц измерения в программе max 7.5 используются дюймы, то изменить значение в счетчике нужно с 1 на 3, а если, скажем, метры — то с 0,025 на 0,075 м. |
ЗАМЕЧАНИЕ Величина поля зрения нацеленной камеры не зависит от расстояния между значком камеры и мишенью. При перемещении мишени или камеры угол при вершине пирамиды видимости остается постоянным. |
С полем зрения камеры однозначно связана другая характеристика — фокусное расстояние объектива {Lens Length). Чем больше фокусное расстояние, тем уже поле зрения, и наоборот. Вы можете произвольно задавать любую из этих двух величин, при этом вторая определяется программой автоматически.
ЗАМЕЧАНИЕ Для любителей математики и физики: тангенс половины угла поля зрения равен отношению диаметра выходного отверстия объектива к удвоенному фокусному расстоянию. В max 7.5 расчеты поля зрения и фокусного расстояния производятся в предположении, что диаметр выходного отверстия объектива камеры составляет 36 мм. |
Учимся применять метод лофтинга
Метод лофтинга является логическим продолжением тех методов преобразования форм-кривых в трехмерные тела, с которыми вы познакомились в предыдущей главе, так что имеет смысл начать изучение составных объектов с такого типа, как Loft (Лофтинговые). Объект, созданный методом лофтинга, или лофтишовый объект (loft object), — это трехмерное тело, поверхность которого строится как огибающая одной или нескольких опорных двумерных форм (loft shapes), размещенных вдоль некоторой кривой, называемой путем (path). Формы, на которые опирается поверхность подобного объекта, становятся его поперечными сечениями, а форма-путь определяет размещение сечений в пределах объекта. Чтобы создать объект методом лофтинга, требуются как минимум две формы — одна в качестве сечения (сечений может быть и несколько) и одна — в роли пути. Если используется только одна форма-сечение, то max 7.5 разместит ее на обоих концах пути.
Единственными ограничениями на формы-сечения являются требования, чтобы все они состояли из одинакового числа сплайнов или NURBS-кривых и чтобы сплайны в их составе имели одинаковый порядок вложенности. Последнее означает, что если одно из сечений представляет собой две замкнутые кривые, вложенные одна в другую, как, например, сплайн-кольцо, то и остальные сечения должны иметь вид двух кривых, вложенных друг в друга, а не расположенных рядом друг с другом.
ЗАМЕЧАНИЕ
Помните, в главе 6 мы говорили о том, что при выдавливании самопересекающейся линии контура полученное тело будет иметь только боковую поверхность и не будет накрыто «крышками» верхнего и нижнего оснований? Так и при операции лофтинга, которая является разновидностью выдавливания, тело не получит «крышек» на торцах (то есть в начале и в конце линии пути), если форма-сечение будет иметь самопересечения. Поэтому лучше не использовать самопересекающиеся линии в качестве форм-сечений. |
Единственным ограничением на форму-путь является требование, чтобы она состояла только из одного сплайна или NURBS-кривой. Например, кольцо не может служить путем, так как состоит из двух сплайнов.
После того как вы создали две формы, необходимо выделить одну из них, чтобы получить доступ к инструменту лофтинга. Процесс создания объектов методом лофтинга имеет множество вариантов, но базовый способ достаточно прост. Попробуйте освоить его на практическом примере.
Учимся применять метод выдавливания профиля
Опыт, приобретенный вами в процессе постижения премудростей создания тел вращения, вполне пригодится при освоении навыков формирования трехмерных тел методом выдавливания (экструзии) профиля. В данном случае также необходимо сначала нарисовать двумерную форму — профиль, который должен играть роль матрицы, предназначенной для «выдавливания» трехмерного тела — как при штамповке деталей из листового материала. Кривая формы-профиля, как и в предыдущем случае, может быть как разомкнутой, так и замкнутой и представлять собой либо сплайн-линию, либо NURBS-кривую. Форма для выдавливания может состоять и из нескольких кривых. Для преобразования формы-профиля в тело экструзии к ней следует применить модификатор Extrude (Выдавливание). Если профиль представлен NURBS-кривой, то превратить его в тело экструзии можно, кроме того, с помощью инструмента Create Extrude Surface (Создать поверхность выдавливанием).
В арсенале инструментов max 7.5 имеется еще пара инструментов, позволяющих преобразовывать двумерные профили в тела экструзии, — это модификаторы Bevel (Скос) и Bevel Profile (Скос по профилю). С использованием модификатора Bevel (Скос) мы познакомимся в ходе выполнения практического упражнения 5, а особенности применения модификатора Bevel Profile (Скос по профилю) вам предлагается изучить самостоятельно.
Это означает, что вы должны
Последнее, что нам предстоит в данной главе, — это научиться работать с файлами max 7.5. Это означает, что вы должны будете уметь выполнять по крайней мере следующие действия:
начинать работу над новой сценой с сохранением текущих настроек или с перезагрузкой max 7.5;
открывать файлы ранее сохраненных сцен для продолжения работы над ними;
присоединять к текущей сцене объекты из ранее сохраненных файлов или устанавливать перекрестные ссылки на такие объекты;
импортировать и экспортировать файлы с описаниями трехмерных сцен в форматах, отличающихся от формата max 7.5.
Учимся рисовать кривые и создавать формы
В начале этой главы мы познакомимся с приемами рисования кривых, которые в max 7.5 объединяются общим названием формы {shapes). Формы могут быть двумерными, то есть целиком лежащими в одной плоскости, и трехмерными, состоять из одной замкнутой или разомкнутой кривой или из произвольного числа кривых. Например, стандартная форма Donut (Кольцо) состоит из двух концентрических кругов, не пересекающихся и не касающихся друг друга.
Категория Shapes (Формы) представлена в max 7.5 двумя разновидностями объектов: Splines (Сплайны) и NURBS Curves (NURBS-кривые). Сплайны всех типов за исключением одного, сплайна-спирали, — это линии, целиком лежащие в одной плоскости. NURBS-кривые также могут создаваться как двумерные линии, однако при рисовании таких кривых можно свободно перемещать курсор из одного окна проекции в другое и рисовать кривую в трехмерном пространстве. Как сплайны, так и NURBS-кривые предназначены в первую очередь не для самостоятельного использования (хотя в max 7.5 формы могут быть визуализированы в составе сцены), а для того, чтобы служить заготовками при создании трехмерных объектов по сечениям методами вращения, выдавливания, лофтинга или сплайнового каркаса.
Чтобы нарисовать сплайн или NURBS-кривую, необходимо зафиксировать положение определенного числа точек-вершин. Сплайны обязаны проходить через все свои вершины, а NURBS-кривые могут или проходить через вершины, или плавно огибать их.
Удаление окна Track View
Чтобы удалить окно Track View (Просмотр треков) с экрана max 7.5, достаточно щелкнуть на кнопке Close (Закрыть) в его правом верхнем углу или при активном окне Track View (Просмотр треков) нажать стандартную комбинацию клавиш Alt+F4. Окно исчезнет с экрана, но его имя появится в подменю Saved Track Views (Сохраненные окна Просмотр треков) меню Graph Editors (Графические редакторы). Щелкнув на этом имени, можно вновь вызвать появление окна с набором ранее установленных параметров.
Для полного удаления дополнительных окон Track View (Просмотр треков) следует выбрать команду меню Graph Editors > Delete Track View (Графические редакторы > Удалить окно Просмотр треков). Появится окно диалога Delete Track View (Удаление окна Просмотр треков). Выделите имя окна Track View (Просмотр треков), которое нужно удалить, в списке окна диалога Delete Track View (Удаление окна Просмотр треков) и щелкните на кнопке ОК.
Углубляем знания о модификаторах
Модификаторы max 7.5 имеют различное назначение: управление проецированием на поверхность объектов материалов, основанных на картах текстур; выделение, редактирование, удаление или добавление отдельных подобъектов сеток — вершин, сегментов, граней; корректировка формы сплайнов и преобразование их в трехмерные тела и т. п. Однако наибольшее количество модификаторов предназначено для внесения разнообразных изменений в форму трехмерных тел.
ЗАМЕЧАНИЕ
Чтобы применение модификатора формы было удачным, сетчатая оболочка объекта должна состоять из достаточно большого числа сегментов (хотя бы 8-12). |
Для управления применением модификаторов, воздействующих на форму геометрических моделей, используется специальный объект, называемый габаритным контейнером модификатора (gizmo). Этот объект появляется после применения модификатора и имеет вид параллелепипеда коричневого цвета, окружающего геометрическую модель. Посредством вращения, перемещения и масштабирования габаритного контейнера модификатора можно управлять тем, каким образом max 7.5 применяет модификатор к геометрической модели.
Для изменения габаритного контейнера модификатора следует щелкнуть на квадратике со значком «плюс» слева от имени модификатора в окне стека и выбрать в раскрывшемся дереве подобъектов строку Gizmo (Габаритный контейнер). После этого габаритный контейнер модификатора приобретет ярко-желтую окраску и станет подобен обычному параллелепипеду. Его можно будет перемещать, поворачивать и масштабировать до тех пор, пока активна строка Gizmo (Габаритный контейнер). После завершения манипуляций с контейнером модификатора щелкните в окне стека на строке Gizmo (Габаритный контейнер) еще раз, чтобы отменить выделение контейнера.
Вы уже имеете опыт применения целого ряда модификаторов, из которых Lathe (Вращение), Extrude (Выдавливание) и Bevel (Скос) рассмотрены нами достаточно подробно. Так как общее число модификаторов max 7.5 достаточно велико (как я уже говорил, всего их более 100), ограничимся рассмотрением только некоторых из них, которые, на мой взгляд, могут на первых порах оказаться наиболее полезными в работе над геометрией сцены.
Управление изображением в окнах проекций
Мало уметь переключать окна проекций на показ проекции нужного типа, важно еще активно управлять изображением трехмерной сцены в окне проекции. Управлять изображением сцены — это значит уметь следующее:
уменьшать и увеличивать масштаб всего изображения сцены или его части (то есть как бы «отдалять» и «приближать» объекты) в одном отдельном окне или во всех окнах сразу;
подгонять размер изображения части сцены под размер активного окна или всех окон;
«распахивать» отдельное окно во весь экран и восстанавливать его исходный размер;
выполнять прокрутку, то есть сдвиг изображения в окне в произвольном направлении, чтобы увидеть скрытые за краем окна участки проекции;
изменять ориентацию плоскости проекции, то есть свободно перемещать вокруг объекта ту воображаемую видеокамеру, которая дает изображение проекции.
Управление экспозицией
При использовании алгоритмов расчета глобальной освещенности, особенно при наличии в составе сцены всего лишь одного осветителя, на изображении могут возникать слишком темные участки, куда попадает мало переотраженных лучей. Да и в целом изображение обычно оказывается недостаточно светлым, темно-серым. Чтобы исправить эту ситуацию, рекомендуется применять режим логарифмического управления экспозицией.
Те, кто занимался фотографией, знают, что под термином «экспозиция» понимается совокупность условий фотосъемки (длительность времени открытия затвора, называемая выдержкой, а также диаметр отверстия на входе объектива, характеризуемый понятием диафрагма), от которых зависит, будет снимок светлым или темным, контрастным или сереньким. В программе max 7.5 реализована возможность имитации средств управления экспозицией воображаемой съемочной камеры. С этой целью весь диапазон рассчитанных значений яркости визуализированного изображения, от самого темного до самого светлого, разбивается на интервалы, равномерные или неравномерные, которые затем отображаются на равномерные интервалы черно-белой или цветной шкалы оттенков, демонстрируемых на экране дисплея. Не вдаваясь в математические подробности, скажу только, что логарифмическое управление экспозицией не только делает изображение в целом существенно более светлым, но и обеспечивает «осветление» наиболее темных участков изображения, позволяя разглядеть детали картинки, которые иначе были бы скрыты в темноте.
В max 7.5 для имитации средств управления экспозицией воображаемой съемочной камеры служит свиток Exposure Control (Управление экспозицией) окна диалога Environment (Внешняя среда). Приобрести навыки работы с этим свитком вам предстоит чуть позже в ходе выполнения упражнений, а подробное знакомство с данным окном состоится в главе 15, «Осваиваем тонкости визуализации сцены и внешней среды».
Рассмотрим особенности алгоритмов Light Tracer (Трассировщик света) и Radiosity (Перенос излучения), а затем познакомимся с ними на практике в ходе выполнения упражнений.
Управление отображением отдельных объектов
Применительно к отдельным объектам можно устанавливать индивидуальные режимы отображения, а также по своему желанию делать объекты невидимыми или снова видимыми.
Управление положением рисунка текстуры
Для управления положением текстуры в пределах поверхности объекта включите режим правки на уровне подобъектов, щелкнув на квадратике со знаком «плюс» слева от надписи UVW Mapping (UVW-проекция) в окне стека модификаторов командной панели Modify (Изменить), и выберите в списке подобъектов уровень Gizmo (Габаритный контейнер). Перемещайте, масштабируйте и поворачивайте значок проекционных координат подобно любому объекту сцены, как показано на рис. 14.37. Закончив преобразования значка, щелкните на строке UVW Mapping (UVW-проекция) в окне стека, чтобы выключить режим работы с объектом Gizmo (Габаритный контейнер).
Рис. 14.37. Сдвиг вправо габаритного контейнера модификатора проекций привел к смещению рисунков текстуры на верхней и передней гранях объекта
Установите нужные размеры габаритного контейнера модификатора проекций с помощью счетчиков Length (Длина), Width (Ширина) и Height (Высота) в разделе Mapping (Проекционные координаты) свитка Parameters (Параметры). Если значок проекционных координат имеет меньший размер, чем объект, на который проецируется текстура, то на поверхности объекта будет размещено нужное число копий изображения текстуры, как показано на рис. 14.38.
Рис. 14.38. Габаритный контейнер модификатора проекций у левого объекта равен ему по размерам, а у правого — в три раза меньше объекта
В счетчиках U/V/W Tile (Кратность по U/ V/W) можно задавать кратность повторения образца текстуры в пределах объекта по каждой из координат U, V и W (рис. 14.39).
Рис, 14.39. У левого объекта кратность текстуры равна 1, а у правого V Tile = 2
ЗАМЕЧАНИЕ
Имейте в виду, что при стыковке копий образцов текстуры могут возникать заметные швы. Создание так называемых «бесшовных» текстур — задача не такая простая, как кажется на первый взгляд. Она может быть решена, например, с помощью программы Adobe Photoshop. |
Установка соответствующих флажков Flip (Перевернуть) позволяет зеркально отразить изображение текстуры при проецировании относительно любой из трех осей.
Управление режимом активной раскраски
Для управления режимом активной раскраски как в окне проекции, так и в отдельном окне служит четвертное меню, вызываемое щелчком правой кнопки мыши в любой точке окна и показанное на рис. 15.11.
Рис. 15.11. Четвертное меню с командами управления режимом активной раскраски в окне проекции
Это меню включает следующие команды:
Close (Закрыть) — выключает режим активной раскраски в окне проекции и восстанавливает режим отображения сцены, который использовался до включения активной раскраски, или закрывает отдельное окно ActiveShade (Активная раскраска);
Act Only on Mouse Up (Действие только после освобождения кнопки мыши) — если данный режим включен, то при изменении параметров осветителей или материалов процесс обновления изображения в окне активной раскраски начнется только после того, как будет отпущена кнопка мыши, с помощью которой производилось, например, изменение параметров в каком-то из счетчиков источника света методом перетаскивания курсора. Если режим выключен, то обновление будет происходить прямо в процессе перетаскивания курсора;
Auto Initialization (Автоинициализация), Auto Update (Автообновление) — две однотипные команды, позволяющие включать и выключать режимы автоматической инициализации и автоматического обновления изображения в окне активной раскраски. При включенном режиме автоматической инициализации любые изменения параметров текстур материалов сцены будут вести к выполнению повторной визуализации изображения в окне активной раскраски. При включенном режиме автоматического обновления повторную визуализацию вызывают изменения параметров осветителей или материалов, не имеющих в своем составе текстурных карт;
Draw Region (Рисование области) — включает/выключает возможность рисования прямоугольной области в окне активной раскраски. Если такая область нарисована, то обновление изображения будет касаться только этой области, что существенно ускоряет визуализацию;
Initialize (Инициализация), Update (Обновление) — две команды принудительного запуска режимов инициализации и обновления изображения в окне активной раскраски. Использовать команду Update (Обновление) следует, если выключен режим автообновления. Команду Initialize (Инициализация) необходимо выполнять даже при включенном режиме автоматической инициализации после внесения изменений в геометрическую модель сцены;
Select Object (Выделить объект) — включает/ выключает режим выделения объекта прямо в окне активной раскраски. Допускается выделение только одного объекта. Если такой объект выделен, то повторная визуализация производится только применительно к этому объекту;
Toggle Toolbar (Панель инструментов вкл./выкл.) — эта команда имеется в меню только в случае использования режима активной раскраски в окне проекции. Ее выполнение включает/выключает в верхней части окна проекции изображение панели инструментов активной раскраски, ничем не отличающейся от панели инструментов окна виртуального буфера кадров, рассматриваемого ниже в разделе «Заглядываем в окно визуализированного кадра».
СОВЕТ После того как изображение панели инструментов в окне проекции, использующем режим активной раскраски, включено с помощью команды Toggle Toolbar (Панель инструментов вкл./выкл.), для ее последующего выключения/включения можно нажимать клавишу Пробел. |
Управление точками центров преобразований
Результаты преобразований поворота и масштаба существенно зависят от выбора центра преобразования, то есть точки в трехмерном пространстве, вокруг которой будет выполняться поворот объекта, а также к которой будет происходить стягивание или от которой будет происходить растяжение объекта при изменении его масштаба.
Имеется возможность выбрать один из трех вариантов центра преобразования поворота:
поворот каждого из совокупности объектов относительно собственной опорной точки;
поворот относительно геометрического центра выделенного набора объектов;
поворот относительно точки начала текущей системы координат.
Как уже говорилось в главе 1, каждый объект max 7.5 имеет опорную точку {pivot point), положение которой определяется в момент создания объекта. Обычно опорная точка помещается в центре основания объекта или в геометрическом центре его габаритного контейнера. Чтобы сделать видимой опорную точку объекта, необходимо выделить его, перейти на командную панель Hierarchy (Иерархия) и щелкнуть на кнопке Effect Pivot Only (Только опора). В окнах проекций max 7.5 опорная точка изображается тройкой «утолщенных» векторов красного, зеленого и синего цветов. Красный вектор символизирует ось X локальной системы координат объекта, зеленый — ось У, а синий — ось Z, как показано на рис. 4.40.
Рис. 4.40. Значок опорной точки
После создания объекта можно использовать инструменты командной панели Hierarchy (Иерархия) для перемещения опорной точки независимо от объекта и ее поворота на произвольный угол. Даже если опорная точка оказывается вынесенной за пределы объекта, она продолжает определять координаты объекта в пространстве, оставаться центром преобразований объекта и исполнять все остальные функции, закрепленные за опорной точкой.
Для выбора центра преобразования служит группа из трех кнопок главной панели инструментов — Use Pivot Point Center (Использовать опорные точки объектов), Use Selection Center (Использовать центр выделения) и Use Transform Coordinate Center (Использовать начало координат). Назначение каждой из кнопок описывается в следующем перечне:
Use Pivot Point Center (Использовать опорные точки объектов) — включает режим преобразования объекта ( или набора объектов) относительно опорных точек каждого из объектов. Контейнер выбранного преобразования помещается при этом только в опорную точку объекта, выделенного первым. На рис. 4.41 демонстрируется поворот объектов примерно на 45° относительно опорных точек каждого из них. Обратите внимание на то, что только левый из объектов снабжен контейнером преобразования.
Рис. 4.41. Поворот объектов относительно собственных опорных точек
Use Selection Center (Использовать центр выделения) — в этом режиме преобразования производятся относительно центра выделенного набора объектов, в качестве которого используется геометрический центр параллелепипеда, описанного вокруг совокупности выделенных объектов. Если выделен только один объект, используется геометрический центр его габаритного контейнера. Данный режим выбирается по умолчанию при выделении нескольких объектов. На рис. 4.42 демонстрируется поворот объектов примерно на 45° относительно центра выделенного набора. Обратите внимание на то, где расположен контейнер преобразования.
Рис. 4.42. Поворот объектов относительно центра выделенного набора
Use Transform Coordinate Center (Использовать начало координат) — при включении данного режима преобразования поворота и масштаба производятся относительно начала текущей системы координат. Центр преобразования устанавливается в начало той системы координат, с которой ведется работа в данный момент. По умолчанию используется система координат типа View (Оконная), при которой центр окна проекции является началом системы координат и центром преобразования. На рис. 4.43 демонстрируется поворот объектов на угол порядка 45° относительно центра оконной системы координат.
Рис. 4.43. Поворот объектов относительно начала оконной системы координат
Анимация мячика
Рассмотрим простой пример имитации динамики жестких тел средствами модуля reactor (Реактор). В прошлой главе я предлагал вам просмотреть анимацию Kukla i miach.avi, которую можно найти в папке Animations\G!ava_16. Напомню, что в этой анимации кукла бьет по мячику рукой, в результате чего он стукается о поверхность пола и отскакивает. Представим себе, что рука куклы перестала бить по мячу. Как в таком случае должно будет выглядеть продолжение анимации? Мячик должен будет еще несколько раз по инерции отскочить от пола, причем каждый раз на все меньшую высоту, после чего покатиться по нему. Создать подобную анимацию без использования модуля reactor (Реактор) довольно сложно, ведь движения мяча будут постоянно изменяться, а не повторяться, как в анимации Kukla i miach.avi. Для модуля reactor (Реактор), напротив, такая задача, в которой жесткие тела двигаются только под действием силы тяжести, является одним из наиболее простых заданий. Для создания сцены с прыгающим на полу мячом выполните следующие действия:
1. Откройте сцену Miach.max из папки Scenes\Glava_17 на компакт-диске. Это — знакомая вам сцена Kukla i miach.max, из которой были удалены все ненужные объекты и параметры анимации. Вы также можете создать такую сцену самостоятельно. Роль пола может играть параллелепипед, а роль мячика — сфера. Разместите сферу над полом, и можно начинать работу с reactor (Реактор).
2. Выделите мячик и пол (в сцене его роль выполняет объект Вох01) и щелкните на кнопке Create Rigid Body Collection (Создать коллекцию жестких тел) панели инструментов reactor (Реактор). В составе сцены будет автоматически создана коллекция жестких тел, и оба примитива будут автоматически помещены в список Rigid Bodies (Жесткие тела) свитка RB Collection Properties (Свойства коллекции жестких тел) на панели Modify (Изменить), показанный на рис. 17.11.
Рис. 17.11. В список свитка RB Collection Properties на командной панели Modify автоматически включены объекты, которые были выделены
3. Переключитесь на командную панель Utilities (Утилиты) и щелкните на кнопке reactor (Реактор) в свитке Utilities (Утилиты), чтобы запустить утилиту имитационного моделирования. Разверните свиток Properties (Свойства). Выделите в окне проекции примитив, играющий роль пола сцены. Убедитесь в том, что в счетчике Mass (Масса) указана величина 0. Это означает, что данный примитив будет оставаться неподвижным. Выделите мячик и укажите для него массу 2 кг, а параметр эластичности — 3.
4. Разверните на командной напели Utilities (Утилиты) свиток World (Реальность) и установите значение параметра Col. Tolerance (Допуск столкновения) равным 1. Эта величина определяет расстояние, на котором поверхности взаимодействующих объектов начинают оказывать друг на друга влияние.
5. Теперь все готово для просмотра анимации. Разверните на командной панели Utilities (Утилиты) свиток Preview & Animation (Просмотр и анимация) и щелкните на кнопке Preview in Window (Просмотреть в окне), чтобы вызвать появление интерактивного окна reactor Real-Time Preview (Просмотр в реальном времени модуля Реактор). Нажмите клавишу Р, чтобы запустить просмотр анимации. Мячик под действием силы тяжести упадет на пол, подпрыгнет несколько раз, после чего покатится (рис. 17.12). Анимация простая, однако создана автоматически и воспроизводит реальное поведение тяжелого объекта в поле силы тяжести. Нажмите клавишу R, чтобы остановить воспроизведение и привести объекты в окне просмотра в исходное состояние.
Рис. 17.12. Исходный вид сцены с мячиком до начала действия в окне предварительного просмотра (а), во время отскока (б) и на конечном этапе (в)
6. Обратите внимание на то, что в окне предварительного просмотра время воспроизведения анимации не ограничено, а в окнах проекций анимация длится ровно столько, сколько отведено на активный временной сегмент анимации. По умолчанию продолжительность анимации составляет 100 кадров, то есть при частоте в 30 кадров в секунду время анимации составляет около трех секунд. Измените продолжительность анимации до 400 кадров в окне Time Configuration (Настройка временных интервалов). Установите в счетчике End Frame (Последний кадр) свитка Preview & Animation (Просмотр и анимация) утилиты reactor (Реактор) также величину 400.
7. Для завершения процесса следует создать ключи анимации объектов трехмерной сцены. Щелкните на кнопке Create Animation (Создать анимацию) свитка Preview & Animation (Просмотр и анимация) на командной панели Utilities (Утилиты). Щелкните на кнопке ОК в окне предупреждения о том, что данная операция не подлежит отмене. После некоторого времени, требующегося на расчеты, создание ключей будет закончено и анимацию можно будет воспроизвести в окнах проекций max 7.5 или выполнить ее визуализацию обычными средствами. Вы можете сравнить то, что у вас получилось, со сценой Miach01.max, которая находится на компакт-диске в папке Scenes\Glava_17.
Каустика в бокале с вином
Рассмотрим пример создания эффекта каустики в сцене с бокалом, в который налито немного вина. Для того чтобы было удобно наблюдать этот интересный эффект, нам понадобится сцена, в которой бокал будет помещен в закрытое пространство. Создадим объекты, которые будут участвовать в сцене. Бокал у нас уже есть, мы создали его в шестой главе методом вращения профиля, а вот остальные объекты придется добавить. Откройте сохраненный ранее файл Bokal.max или загрузите его из папки Scenes/Glava06 с компакт-диска.
1. Первое, что нам необходимо сделать, — переместить центр локальных координат объекта в его геометрический центр. В созданной нами сцене центр локальных координат не совпадает с реальным геометрическим центром, что может вызвать неточности при использовании операции выравнивания. Перейдите на вкладку Hierarchy (Иерархия) командной панели и щелкните на кнопке Affect Pivot Only (Влиять только на опорную точку). После этого щелкните на кнопке Center to Object (Переместить в центр объекта). Теперь центр локальных координат бокала расположится правильно. Еще раз щелкните на кнопке Affect Pivot Only (Влиять только на опорную точку), чтобы выключить режим работы с опорной точкой.
2. Теперь создадим коробку, в которую будет помещен бокал. Закрытое пространство даст возможность лучше наблюдать эффект каустики. Создайте объект Box (Параллелепипед) и в счетчиках Length (Длина), Width (Ширина) и Height (Высота) свитка Parameters (Параметры) установите параметры 100, 75 и 75 соответственно. Выровняйте коробку относительно бокала с помощью инструмента Align (Выровнять), работа с которым описывалась в главе 4. Чтобы расположить бокал внутри, нужно задать параметры выравнивания относительно осей X и Y по центру, а относительно оси Z — по минимуму. Правда, после этого бокал «попадет» в коробку, и вы его перестанете видеть. Параллелепипед по умолчанию виден только с одной стороны — наружной, которая обращена к зрителю. Если перевернуть нормали поверхностей этого объекта, можно будет наблюдать за тем, что делается у него внутри. Используйте модификатор Normal (Нормаль) для выполнения этой операции. Примените этот модификатор к параллелепипеду и установите флажок Flip Normals (Обратить нормали). Теперь бокал станет виден. Сохраните сцену под названием caustika.max.
ЗАМЕЧАНИЕ
Вы можете найти сцену, подготовленную для имитации эффекта каустики, на компакт-диске. Загрузите файл caustika.max из папки Scenes\Glava_15. |
3. Поскольку эффект каустики в 3ds max без помощи дополнительных модулей (плагинов) можно создать, только используя визуализатор mental ray, необходимо выбрать его для визуализации сцены. Сделать это можно при помощи свитка Assign Renderer (Назначить визуализатор) на вкладке Common (Общие настройки) окна Render Scene (Визуализация сцены), как было описано ранее в подразделе «Выбор алгоритма визуализации» этой главы.
4. Для того чтобы увидеть каустику, необходимо, чтобы в сцене присутствовал источник света. Поскольку мы работаем с визуализатором mental ray, лучше использовать один из его собственных источников. Добавьте в сцену источник света mrAreaSpot (Площадной прожектор для mental ray) и установите его так, как показано на рис. 15.21. Проследите, чтобы значок светильника оказался внутри коробки! Хотя нормали поверхностей параллелепипеда и перевернуты, однако если светильник окажется снаружи, внутри коробки будет полный мрак. В настройках источника света включите отображение теней, установив флажок On (Вкл.) в разделе Shadows (Тени) свитка General Parameters (Общие параметры). В списке раздела Shadows (Тени) выберите тип тени mental ray Shadow Map (Карта теней mental ray). Чтобы увеличить освещаемую площадь, в свитке Spotlight Parameters (Параметры прожектора) введите в счетчик Falloff/ Field (Край пятна/Поле) значение 80.
Рис. 15.21. Размещение источника света mrAreaSpot в сцене
5. Выполните первую пробную визуализацию сцены в окне проекции Perspective (Перспектива) (рис. 15.22). Пока никакого эффект каустики нет, но при дальнейшей настройке он будет наблюдаться в той области, куда падает тень от объекта.
Рис. 15.22. Сцена после первого просчета каустики пока нет
6. Теперь сделаем бокал прозрачным. Поскольку для mental ray существует специальный тип материала Glass (physics_phen) (Стекло (физическое_явление)), нет необходимости создавать материал для бокала вручную. Выберите этот тип материала, назначьте его модели бокала, выберите светло-серый цвет для параметра Light Persistence (Неизменность цвета), а коэффициент преломления (Index of Refraction) установите равным 1,03. Повторная визуализация покажет, что бокал теперь стал прозрачным, однако тень от него по-прежнему темная (рис. 15.23). Для того чтобы сделать тень более правдоподобной, нужно включить просчет прозрачных теней и каустики. Для этого перейдите в настройки источника света и установите флажок Enable (Включить) в разделе Transparent Shadows (Прозрачные тени) свитка mental ray Shadow Map (Карта теней mental ray).
Рис. 15.23. Сцена после второго просчета: бокал стал прозрачным
7. Откройте вкладку Indirect Illumination (Непрямое освещение) окна диалога Render Scene (Визуализация сцены) и в разделе Caustics (Каустика) установите флажок Enable (Включить). Чтобы эффект каустики проявился, в сцене должен иметься хотя бы один объект, назначенный источником каустики, и хотя бы один объект, назначенный приемником каустики. Поскольку в нашей сцене всего лишь два объекта, мы можем установить флажок All Objects Generate & Receive Gl and Caustics (Все объекты являются источниками и приемниками глобальной освещенности и каустики) в разделе Geometry Properties (Свойства геометрии).
СОВЕТ Если в сцене большое количество объектов, устанавливать флажок All Objects Generate & Receive Gl and Caustics (Все объекты являются источниками и приемниками глобальной освещенности и каустики) неразумно, поскольку просчет займет достаточно много времени. В этом случае нужно назначить объекты источниками или приемниками каустики вручную. Щелкните на нужном объекте правой кнопкой мыши и выберите в разделе transform (преобразование) четвертного меню команду Properties (Свойства). В появившемся окне Object Properties (Свойства объекта) переключитесь на вкладку mental ray и установите флажки Generate Caustics (Генерировать каустику), чтобы объект мог служить источником бликов, отбрасываемых на другие объекты сцены, и Receive Caustics (Воспринимать каустику), чтобы позволить объекту воспринимать такие блики. |
8. Чтобы повысить качество эффекта каустики, нужно в разделе Samples per Pixel (Отсчетов на пиксель) свитка Sampling Quality (Качество выборки) на вкладке Renderer (Визуализатор) увеличить значения параметров Minimum (Минимум) до 4 и Maximum (Максимум) до 16 (рис. 15.24).
Рис. 15.24. Свиток Sampling Quality
Раскрывающиеся списки Minimum (Минимум) и Maximum (Максимум) из раздела Samples per Pixel (Отсчетов на пиксель) позволяют выбрать количество отсчетов, рассчитываемых для формирования одной точки изображения (пикселя). Числа меньше единицы означают, что один рассчитанный отсчет будет применяться для формирования нескольких пикселей картинки. Числа больше единицы означают, что несколько отсчетов будут усредняться при формировании одного пикселя изображения. При малых значениях числа отсчетов на пиксель изображение будет выглядеть угловатым, но зато будет рассчитываться несравненно быстрее, что позволит грубо оценить эффекты освещения. В связи с этим при черновой визуализации данным параметрам можно придавать значения 1/16 и 1/4 или даже 1/64 и 1/16, а при итоговой чистовой визуализации — 1 и 4, 4 и 8 или более, как в нашем случае. Не следует устанавливать равные значения параметров Minimum (Минимум) и Maximum (Максимум). Произведите визуализацию и наблюдайте эффект каустики (рис. 15.25).
Рис. 15.25. Эффект каустики
9. Осталось налить в наш бокал немного вина, которое будет давать дополнительный эффект каустики. Вино в трехмерной графике — это совсем не обязательно жидкость, и в этом мы с вами сейчас убедимся. Для создания вина вам нужно будет вспомнить все, о чем мы говорили, когда разбирали инструменты редактирования полисетки. Преобразуйте бокал в полисетку и создайте независимую копию объекта. Временно скройте все объекты сцены, кроме полученной копии, чтобы они не мешали.
Теперь перейдите на уровень подобъектов-полигонов, выделите нижнюю и верхнюю часть бокала и удалите их (рис. 15.26).
Рис. 15.26. То, что должно остаться от копии бокала
Оставшаяся часть копии бокала и будет играть роль того самого «вина», которое мы «нальем» в исходный объект. Теперь удалите внешний ряд полигонов. Это удобно сделать, выделив их при помощи инструмента Grow (Нарастить). Выделите один из полигонов и нажимайте эту кнопку много раз до тех пор, пока не будет выделена вся наружная поверхность. Удалите выделенные полигоны. Теперь выделите все оставшиеся полигоны и нажмите кнопку Flip (Обратить). Наконец, необходимо закрыть модель сверху крышкой, поскольку «вино» никак не может быть полым. Для этого перейдите на уровень подобъекта Border (Граница) и выделите любое ребро в верхнем основании объекта. В результате выделится вся совокупность ребер, образующих край поверхности. Используйте кнопку Сар (Покрыть) для замыкания поверхности. Остается только «налить вино» в бокал, для чего просто включите отображение исходного тела вращения, которое мы скрыли в самом начале этого пункта упражнения. Если вы не перемещали и не вращали объект, который играет роль вина, он должен оказаться в нужном месте бокала (рис. 15.27).
Рис. 15.27. Бокал с вином
10. Прежде, чем производить конечную визуализацию, назначьте вину подходящий материал. Поскольку вино тоже прозрачное, для него подойдет тот же тип материала Glass (physics_phen) (Стекло (физическое_явление)), который мы использовали для бокала. В настройках материала выберите ярко-красный цвет для параметра Light Persistence (Неизменность цвета), а в счетчике Index of Refraction (Коэффициент преломления) установите значение 1,26. Прейдите к настройкам визуализации на вкладке Indirect Illumination (Непрямое освещение) окна диалога Render Scene (Визуализация сцены). В разделе Light Properties (Свойства освещения) свитка Caustics and Global Illumination (Gl) (Каустика и глобальная освещенность (Gl)) установите значение параметра Average Caustic Photons per Light (Среднее значение фотонов каустики в освещении) равным 1 000 000. В области Trace Depth (Глубина трассировки) выберите значения счетчиков Max. Depth (Максимальная глубина) и Max. Refractions (Максимальные преломления) равными 8. Затем в свитке mental ray Indirect Illumination (Непрямое освещение mental ray) настроек источника света установите значение параметра Energy (Энергия) равным примерно 0,7. Просчитайте изображение и наблюдайте эффект каустики, полученный от бокала и вина (рис. 15.28). Сохраните файл под названием caustika01.max. Вы можете сравнить полученный результат с моим, загрузив одноименный файл с компакт-диска. Он находится в папке Scenes\ Glava_15.
Рис. 15.28. Просчитанное изображение с эффектом каустики от вина и бокала
Начинаем с простейшей анимации «Летящий шар»
Попробуйте создать в автоматическом режиме простейшую анимацию перемещения объекта-примитива. При выполнении этого упражнения мы заодно отработаем вопросы просмотра готовой анимации в окне проекции.
Выполните следующие действия:
1. Перезагрузите max 7.5 и сохраните пустую сцену в файле под именем Letiasshly shar.max.
2. Создайте в окне проекции Тор (Вид сверху) объект-примитив Sphere (Сфера) радиусом порядка 60 см. Установите флажок Base To Pivot (Точка опоры внизу), чтобы вся сфера располагалась над координатной плоскостью. Переместите сферу в точку с координатами (-1000 см; 2000 см; 0 см). Активизируйте окно проекции Perspective (Перспектива), которое должно выглядеть, как на рис. 16.10.
Рис. 16.10. Первый кадр простейшей анимации «Летящий шар»
3. Убедитесь в том, что текущим является кадр № 0 (на ползунке таймера анимации должна быть видна надпись 0/100). Включите режим анимации, щелкнув на кнопке Auto Key (Автоключ). Кнопка, строка ползунка таймера и рамка окна Perspective (Перспектива) окрасятся в темно-красный цвет.
4.
Установите в качестве текущего кадр № 100, перетащив ползунок вправо до появления на нем надписи 100/100. С этой же целью можно щелкнуть на кнопке Go to End (Перейти в конец).
5. Переместите сферу в точку (100 см; -300 см; 0 см), как показано на рис. 16.11. Снова щелкните на кнопке Auto Key (Автоключ), чтобы выключить режим анимации. Как ни странно, но это все! Анимация из 100 кадров под названием «Летящий шар» готова. Обратите внимание на появление двух ключей анимации в виде красных квадратиков в начале и конце строки треков.
Рис. 16.11. Последний кадр анимации «Летящий шар» (режим анимации включен)
6.
Воспроизведите анимацию и просмотрите ее в окне проекции. Для этого сначала щелкните па кнопке Go to Start (Перейти в начало), чтобы перейти к начальному кадру анимации — кадру № 0. Затем щелкните на кнопке Play Animation (Воспроизведение анимации) и наслаждайтесь бесконечно повторяющейся картиной того, как шар летит вам навстречу из левого верхнего угла окна проекции, постепенно
увеличиваясь в размерах по законам перспективы. Чтобы остановить просмотр анимации, щелкните на кнопке Stop (Стоп), в которую превращается после запуска анимации кнопка Play Animation (Воспроизведение анимации). Можете попробовать режим покадрового воспроизведения, управляя им с помощью кнопок Next Frame (Следующий кадр) и Previous Frame (Предыдущий кадр).
ЗАМЕЧАНИЕ Когда max 7.5 воспроизводит анимационную последовательность, он пытается делать это с максимальной скоростью при наилучшем качестве тонирования изображения. Если из-за ограниченной производительности процессора скорость анимации спадает ниже определенного порога, для ее повышения max 7.5 переходит к менее качественному режиму тонирования объектов. Чтобы запретить ухудшение качества отображения сцены в активном окне проекции, выполните команду меню Views > Adaptive Degradation Toggle (Проекции > Адаптивная деградация вкл./выкл.). |
7. При желании примените к сфере какой-либо материал (например, материал Pozolota из библиотеки MAX-kafe.mat) и установите фон сцены в виде фотографии облачного неба, действуя так, как описывалось в предыдущей главе. Сохраните созданную сцену. Все параметры анимации запоминаются программой max 7.5 в том же файле типа .max, в котором хранятся сведения о геометрической модели сцены, освещении, камерах и материалах. При необходимости сравните полученную анимацию с той, что имеется на компакт-диске, сопровождающем книгу, в файле под таким же именем Letiasshiy shar.max.
В качестве задания на самостоятельную проработку попробуйте дополнить созданную анимацию ключами изменения других параметров — например, масштаба сферы, силы блеска или цвета ее материала. Для этого достаточно всего лишь включить режим анимации, выбрать нужный ключевой кадр, применить к сфере преобразование масштаба или внести изменения в параметры материала и выключить режим анимации.
Подробно разбираем создание первого материала на основе растровых текстурных карт
В первом упражнении этой главы мы подробно разберем процесс включения карт растровой текстуры в состав стандартного материала в качестве цвета диффузного рассеивания и рельефа. Итак, выполните следующие действия:
1. Запустите max 7.5 и откройте файл MAX-kafe12.max. При необходимости можете загрузить нужную сцену из файла MAX-kafe12.max, хранящегося в папке Scenes\Glava_13 компакт-диска, прилагающегося к книге. Сохраните файл сцены с инкрементированием имени.
2. Раскройте окно Material Editor (Редактор материалов). В предыдущей главе мы уже использовали под простейшие материалы десять ячеек образцов, поэтому переключите Редактор материалов в режим отображения большего числа ячеек, скажем, 5x3 или 6x4. «Одевать» сцену текстурами начнем с элементов наружной части здания кафе «МАХ».
3. Подготовьте материал для фасада здания, назвав его, скажем, Oblicovka. Активизируйте свободную ячейку образца материала и установите холодный темно-синий оттенок цвета Ambient (Подсветка) с RGB-компонентами, равными (6; 7; 29). Оттенок цвета Diffuse (Диффузный) сделайте ненасыщенным серовато-бежевым (150; 150; 135). Значения остальных параметров оставьте в исходных состояниях.
СОВЕТ
При использовании карты текстуры в качестве цвета диффузного рассеивания оттенок цвета Diffuse (Диффузный) следует устанавливать таким, каким был бы основной цвет материала в отсутствие карты текстуры. Это дает возможность при необходимости настраивать долю вклада карты в результирующий облик материала. |
4. Щелкните на квадратной кнопке без надписи справа от образца цвета Diffuse (Диффузный), чтобы вызвать появление окна диалога Material/Map Browser (Просмотр материалов и карт текстур) с перечнем карт текстур. Дважды щелкните на строке Bitmap (Растровая). Произойдет возврат в Редактор материалов, где появятся свитки параметров растровой текстуры.
5. Щелкните на длинной кнопке без надписи справа от поля Bitmap (Растровая карта) в верхней части свитка Bitmap Parameters (Параметры растровых текстур). В появившемся окне диалога Select Bitmap Image File (Выбор файла растрового изображения), показанном ранее на рис. 14.47, выберите подходящий графический файл с изображением облицовочного материала для фасада кафе. Установка флажка Preview (Просмотр) в нижней части окна позволяет видеть миниатюрные изображения текстур, что облегчает поиск. Можно использовать файл Rufbrik.jpg из набора текстур архитектурных материалов, которые имеются в папке Maps\Architex компакт-диска, прилагающегося к книге. Если вам не понравится такая текстура, выберите любое другое подходящее изображение, например фотографию кирпичной кладки, какая встречается очень часто. В комплект поставки max 7.5 входит целый ряд образцов подобной текстуры, например Brkwea.jpg. Дважды щелкните на имени файла, чтобы вернуться в окно Редактора материалов.
В свитке Bitmap Parameters ( Параметры растровых текстур) на кнопке справа от поля Bitmap (Растровая карта) появится полное имя выбранного файла растровой текстуры с маршрутом доступа к этому файлу. Оставьте пока все параметры растровой текстуры в исходных состояниях. Щелкните на кнопке Show Map in Viewport (Показать текстуру в окне проекции), чтобы иметь возможность видеть изображение текстуры материала в окнах проекций.
СОВЕТ Если изображение текстуры в окне проекции выглядит искаженным, скажем, имеет разрывы и «складки», включите режим коррекции текстуры. Для этого щелкните на имени окна проекции правой кнопкой мыши и выберите в появившемся меню команду Texture Correction (Коррекция текстуры). |
6.
Щелкните на кнопке Go to Parent (Перейти к составному материалу), чтобы вернуться с уровня настройки карты текстуры цвета диффузного рассеивания на уровень материала. Разверните свиток Maps (Карты текстур), щелкните на кнопке с надписью Map #1 (rufbrik.jpg) (Карта №1 (rufbrik.jpg)) в строке параметра Diffuse Color (Диффузное рассеивание), перетащите курсор на кнопку параметра Bump (Рельефность) и отпустите кнопку мыши. В появившемся окне Copy (Instance) Map (Копия (образец) карты) установите переключатель в положение Instance (Образец) и щелкните на кнопке ОК. Тем самым вы назначите образец той же текстуры в качестве карты рельефа материала. Установите в счетчике Amount (Доля вклада) параметра Bump (Рельефность) значение 100. Это значение не является предельным: как уже отмечалось, величина данного параметра может меняться от 0 до 999. Дважды щелкните на ячейке образца, чтобы рассмотреть полученный материал в окне увеличителя (рис. 14.53).
Рис. 14.53. Увеличенный образец материала для облицовки фасада «МАХ-кафе»
7. Назначьте полученный материал объекту Fasad. Рассматривая изображение в окне проекции Camera01 (Камера01 ), вы убедитесь в том, что блоки на стене фасада выглядят слишком крупными. Следовательно, необходимо увеличить кратность повторения образца текстуры в составе материала. Щелкните на кнопке с надписью Map #1 (rufbrik.jpg) (Карта №1 (rufbrik.jpg)) в свитке Maps (Карты текстур), чтобы перейти на уровень правки растровой текстуры. Установите в счетчиках группы Tiling (Кратность) свитка Coordinates (Координаты) значение 2 по оси U и 4 — по оси V. Выполните визуализацию изображения сцены в окне проекции Camera01 (Камера01). Теперь фасад должен выглядеть так, как нужно (рис. 14.54). Обратите, кстати, внимание на то, что свет падает на основание сцены через непрозрачное окно, у которого ранее было выключено свойство отбрасывать тень. Сохраните материал в библиотеке, открыв предварительно файл MAX-kafe.mat. Сохраните также файл сцены под измененным в начале работы именем, но не закрывайте файл, так как работа над сценой будет продолжена.
Рис. 14.54. Вид фасада «МАХ-кафе» после применения материала с растровой картой цвета диффузного рассеивания и рельефа
Не закрывайте программу, так как работа над материалами будет продолжена.
СОВЕТ По мере усложнения сцены и насыщения ее материалами процесс визуализации будет становиться все продолжительнее. Чтобы ускорить черновую визуализацию, временно скрывайте от просмотра все объекты, не оказывающие влияния на отрабатываемый элемент сцены. Например, отлаживая материал фасада, можно временно сделать невидимыми все объекты внутренней обстановки кафе. |
СОВЕТ Если при попытке визуализировать сцену появится окно диалога Missing Map Coordinates (Пропущены проекционные координаты), в списке которого будет указано имя объекта (объектов) с пропущенными проекционными координатами и канал проекции, например (UVW 1): Fasad, значит, при создании объекта Fasad вы забыли установить флажок генерации проекционных координат. Щелкните на кнопке Cancel (Отмена) для прерывания визуализации и примените к названному объекту модификатор UVW Map (UVW-проекция), а затем повторите процедуру визуализации заново. |
Превращаем детали кресла, стола, зеркала и лампы... в сетку
1. Откройте файл Kreslo.max, с которым мы уже работали в этой главе выше и который должны были после экспериментов закрыть без сохранения внесенных изменений. Этот файл при необходимости можно найти в папке Scenes\ Glava_06 компакт-диска, прилагающегося к книге. Сохраните файл с инкрементированием имени.
2. Выделите объект Spinka, перейдите на командную панель Modify (Изменить) и щелкните правой кнопкой мыши на строке модификатора Bend (Изгиб) в окне стека модификаторов. Появится меню, показанное выше на рис. 8.5. Выберите в меню команду Collapse All (Свернуть все), активизирующую операцию сворачивания всех модификаторов стека с одновременным преобразованием объекта к одному из редактируемых типов. Появится предупреждение, говорящее о том, что в результате данной операции будут удалены все элементы стека, включая характеристические параметры объекта, его модификаторы и возможную анимацию этих параметров. В ответ на завершающую фразу предупреждения: Are you sure you want to continue? (Уверены, что хотите продолжить?) щелкните на кнопке Yes (Да). Объект Spinka превратится в редактируемую сетку, о чем можно судить по появлению надписи Editable Mesh (Редактируемая сетка) в списке стека. Если щелкнуть на кнопке No (Нет) или нажать клавишу Esc, то окно предупреждения закроется, а стек не будет изменен.
3. Произвести сворачивание стека можно и иным способом. Давайте освоим его в учебных целях. Отмените произведенную в предыдущем пункте операцию, щелкнув на кнопке Undo (Отменить). Затем щелкните правой кнопкой мыши на выделенной спинке кресла в окне проекции. В появившемся четвертном меню, показанном на рис. 8.9, выберите команду Convert to Editable Mesh
Рис. 8.9. Подменю Convert То четвертного меню объекта содержит команды, позволяющие преобразовывать этот объект к одному из редактируемых типов
(Превратить в редактируемую сетку) подменю Convert To (Превратить в). Обратите внимание на то, что, как и в предыдущем случае, все модификаторы после этого исчезают из стека объекта и в окне стека остается только строка Editable Mesh (Редактируемая сетка).
ЗАМЕЧАНИЕ
Чтобы произвести сворачивание не всего стека модификаторов, а только его части, нужно выделить в стеке строку модификатора, до которого включительно нужно свернуть стек, щелкнуть на выделенной строке правой кнопкой мыши и выбрать в меню стека команду Collapse To (Свернуть до). В появившемся окне предупреждения о критичности операции сворачивания части стека следует щелкнуть на кнопке Yes (Да) для продолжения или на кнопке No (Нет) для отмены действия. |
4. Используя тот или иной способ, произведите аналогичные действия по сворачиванию стеков применительно к остальным деталям кресла, имеющим модификаторы, — боковинам и подушке. Обратите внимание на то, что свернуть стек обеих боковин можно за один прием, выделив их обе и далее действуя, как описано выше. Детали, не имеющие модификаторов, можно не преобразовывать в редактируемую сетку. В заключение выделите все детали кресла и сгруппируйте их, назвав созданную группу Kreslo01. Сохраните файл.
5. Преобразуйте в редактируемую сетку щит и плафон светильника, хранящегося в ранее созданном вами файле Lampa02.max. Если вы не сохранили этот файл, то откройте файл Lampa02.max, расположенный в папке Scenes\Glava_07 компакт-диска, прилагающегося к книге. Чтобы превратить в редактируемую сетку кронштейн, являющийся телом лофтинга, выделите его и щелкните на строке Loft (Лофтинг) в окне стека правой кнопкой мыши. Появится меню, показанное на рис. 8.10, которое по составу команд отличается от меню модификатора, рассмотренного нами выше и показанного на рис. 8.5. Так как этот объект не имеет модификаторов, то сворачивания стека или манипулирования модификаторами не требуется и соответствующие команды в меню заменяются командами преобразования объекта к одному из редактируемых типов. Аналогичное меню появляется при щелчке правой кнопкой мыши в окне стека на наименовании типа любого объекта, не являющегося редактируемым сплайном, редактируемой сеткой или полисеткой, а также NURBS-объектом. Выберите команду Editable Mesh (Редактируемая сетка) в подменю Convert To (Превратить в) появившегося меню. После этого сгруппируйте все детали — Plafon, Sshitok, Kronshtein, Podstavka и Otrazhatel — и назовите группу Lampa01. He включайте в группу кривые — путь и сечение, — по которым методом лофтинга строился кронштейн светильника. Сохраните файл иод инкрементированным именем Lampa03.max.
Рис. 8.10. Контекстное меню стека тела лофтинга или объекта-примитива содержит команды, позволяющие преобразовывать этот объект к одному из редактируемых типов
6. Откройте ранее сохраненный файл Stol i stul02.max или загрузите файл Stol i stul02.max из папки Scenes\ Glava_08 компакт-диска, прилагающегося к книге. Выделите столешницу стола и сверните ее стек. Затем выделите объекты Nozhka stola01 — Nozhka stola04, Obviazka и Stoleshnica и сгруппируйте их, назвав группу Stol01. Сохраните файл под инкрементированным именем Stol i stul03.max.
7. В заключение откройте файл Zerkalo.max. Файл с таким именем имеется в папке Scenes\Glava_07 компакт-диска, прилагающегося к книге. Преобразуйте объект Rama, являющийся телом лофтинга, в редактируемую сетку и сгруппируйте его с параллелепипедом, изображающим зеркальное стекло, назвав группу Zerkalo. Сохраните файл под инкрементированным именем Zerkalo01.max.
Превращаем NURBS-поверхность в скатерть
Суть упражнения состоит в том, чтобы создать стандартную NURBS-поверхность и придать ей форму наброшенной на стол скатерти со свободно свисающими краями, подобной той, какая была показана на рис. 2.23 главы 2, за счет перемещения управляющих вершин в трехмерном пространстве и настройки весов этих вершин.
ЗАМЕЧАНИЕ
В max 7.5 есть и другая возможность придать форму скатерти простому фрагменту плоскости. Эта возможность связана с использованием мощных инструментов модуля reactor (Реактор), с которыми вы познакомитесь в главе 17, «Постигаем основы динамики». |
Выполните следующие действия:
1. Проделайте ставшие уже ритуальными действия по перезагрузке программы и сохраните файл пустой сцены под именем Skatert.max.
2. Создайте в окне вида сверху NURBS-поверхность типа CV размером, скажем, 205 на 205 см. Если вы забыли, как создаются подобные объекты, обратитесь к главе 5. Указанные размеры выбраны из тех соображений, что стол, который мы создавали в главе 5, имел столешницу размером 145x145 см. Еще по 30 см с каждой стороны добавлено на загиб краев скатерти. Впрочем, на самом деле начальные размеры NURBS-поверхности не играют особой роли, так как их можно произвольным образом менять в ходе редактирования, перемещая крайние ряды управляющих вершин. Не выключая режим создания поверхности, задайте по каждой из координат 9 рядов управляющих вершин в счетчиках Length CVs (Вершин по длине) и Width CVs (Вершин по ширине). Для завершения режима создания поверхности щелкните правой кнопкой мыши. Выбрав инструмент Select and Move (Выделить и переместить), введите в поля отсчетов координат X и Y в нижней части экрана mах 7.5 значения 0, чтобы центр поверхности совпадал с началом глобальных координат.
3. Начнем редактирование поверхности с перемещения целых рядов и столбцов управляющих вершин. В исходном состоянии такие вершины скрыты от просмотра. Чтобы получить к ним доступ, переключитесь на командную панель Modify (Изменить), разверните в окне стека список подобъектов, щелкнув на квадратике со значком «плюс» слева от наименования NURBS Surface (NURBS-поверхность), и выберите в списке строку подобъекта Surface CV (Вершины поверхности). На экране появится сетка из управляющих вершин, изображаемых в окнах проекций квадратиками зеленого цвета и соединенных между собой желтыми линиями, образующими решетку деформации NURBS-поверхности.
4. Выделите рамкой и сдвиньте второй, а за ним и третий столбцы вершин к первому, идущему вдоль левого края поверхности, а седьмой и восьмой столбцы — к девятому на противоположном краю, обозначив кромки будущей скатерти. Для точного размещения третьего столбца вершин, который будет обозначать линию изгиба скатерти, выделите все вершины этого столбца и введите в поле отсчета координаты X величину -72,5 см. Для всех вершин седьмого столбца, который также будет обозначать линию изгиба, введите значение координаты X, равное 72,5 см. Второй столбец разместите посередине между первым и третьим, а восьмой — посередине между седьмым и девятым. Четвертый и шестой столбцы сдвиньте в стороны от центра так, чтобы они расположились на расстоянии примерно 50 см слева и справа от пятого, центрального столбца вершин. Затем проделайте аналогичные манипуляции с горизонтальными рядами вершин. В итоге поверхность должна принять вид, показанный на рис. 10.3. Чтобы не усложнять картину, было выключено отображение изолиний за счет установки значения 0 в счетчиках U Lines (U-изолиний) и V Lines (V-изолиний).
Рис. 10.3. Расположение рядов и столбцов управляющих вершин NURBS-поверхности после их перемещения
5. Выделите рамкой пять рядов по пять вершин, расположенных в центральной части поверхности, как бы над воображаемой столешницей, и измените их вес с 1,0 на 100,0, введя соответствующее значение в счетчик Weight (Вес) свитка CV (Управляющие вершины). Увеличение веса управляющей вершины NURBS-новерхности приводит, как и в случае с NURBS-кривыми, к тому, что поверхность как бы притягивается к такой вершине. Это нужно, во-первых, чтобы изгибы скатерти на краях столешницы были достаточно резкими, и, во-вторых, чтобы при загибании краев скатерти ее центральная часть не вздувалась пузырем.
6. Теперь загните края скатерти, оставив пока незагнутыми ее углы. Для этого поочередно выделяйте на виде сверху по три средние вершины сначала в крайних, а затем в ближайших к крайним рядах и столбцах с каждой стороны поверхности и смещайте их на виде сбоку вниз и к центру скатерти. Перемещаемые тройки вершин первого и второго столбцов расположите на виде сбоку под вершинами третьего столбца, тройки вершин девятого и восьмого столбцов — под вершинами седьмого столбца, чтобы края скатерти загибались под прямым углом к плоской части поверхности. Так же поступите и с тройками двух крайних горизонтальных рядов вершин с каждой стороны поверхности. В итоге скатерть на видах сверху и спереди должна выглядеть, как показано на рис. 10.4. На рис. 10.5 показано, как выглядит наша скатерть на данный момент в тонированном режиме отображения и при произвольном направлении взгляда. Управляющие вершины на рис. 10.5 не видны, потому что в окне стека выбран верхний уровень выделения поверхности в целом — NURBS Surface (NURBS-поверхность).
Рис. 10.4. Вид формируемой скатерти после загиба краев, но с еще не загнутыми углами
Рис. 10.5. Вид той же поверхности, что на рис. 10.4, в тонированном отображении
7. Теперь наступает самый сложный момент: мы должны обработать углы скатерти так, чтобы придать им естественный вид складок ткани. Укрупненное изображение одного из углов поверхности показано на рис. 10.6, вершины пронумерованы для удобства ссылок в тексте.
Рис. 10.6. Укрупненное изображение управляющих вершин одного из углов скатерти
Сначала выделите вершины 1—3, 6 и 8 и на виде сбоку опустите их вниз до уровня нижнего обреза загнутого края скатерти. Затем выделите вершины 4, 5 и 7 и также опустите их вниз, но до уровня второго от края ряда вершин. Теперь угол скатерти на видах сверху и сбоку в плоскости, проходящей через диагональ поверхности, должен выглядеть, как на рис. 10.7.
Рис. 10.7. Вид угла скатерти после перемещения управляющих вершин по вертикали
Несколько уменьшите общий размер угловой складки. Для этого выделите сначала вершины 4—6 и сместите их на виде сверху несколько вниз, затем так же сместите вниз тройку вершин 1—3. Вслед за этим в том же окне проекции последовательно сместите влево тройки вершин 2,5, 7 и 3, 6, 8, как показано на рис. 10.8.
Рис. 10.8. Вид угла скатерти после перемещения управляющих вершин в сторону краев столешницы с целью уменьшения угловой складки
8. Переместите вершину 3 вдоль диагонали поверхности в сторону центра скатерти, почти на место вершины 5, а вершину 5, в свою очередь, переместите вдоль диагонали в противоположном направлении, вдаль от центра стола, как бы поменяв эти вершины местами. Удаление вершины 5 в сторону от центра нужно для того, чтобы угловая складка не имела провала посередине. С этой же целью увеличьте вес вершины 3, управляющей самым уголком скатерти, до 20. Затем на виде сбоку опустите вершину 3 еще немного вниз. Угловая складка скатерти должна иметь вид конуса или клина, расширяющегося книзу. Чтобы добиться этого, снова перейдите в окно вида сверху и переместите вершины 2 и б, располагающиеся па уровне нижнего обреза бокового края скатерти, широко в стороны, а вершины 1 и 8 — к центру поверхности, примерно так, как показано на рис. 10.9. Рассмотрите изображение под разными углами в тонированном режиме, чтобы понять, как описанное перемещение вершин позволяет сформировать угловую складку скатерти.
Рис. 10.9. Вид сверху на управляющие вершины угла скатерти (слева) и вид самой угловой складки в тонированном режиме (справа)
9. В целом угловая складка уже приняла правдоподобные очертания, однако боковые края скатерти пока что выглядят неестественно ровными, как можно было видеть выше на рис. 10.9. Чтобы придать этим краям некоторую естественную волнистость, переместите вершины 9 и 11, обозначенные на рис. 10.9, к середине скатерти, а вершины 10 и 12 — наружу, от середины скатерти. Проделайте аналогичные манипуляции с соответствующими вершинами на другой стороне скатерти, прилегающей к данному углу.
10. Чтобы закончить работу, повторите действия шагов 7-10 применительно к остальным трем углам скатерти. Готовая скатерть должна выглядеть подобно изображению на рис. 10.10. Сохраните файл, которому в начале работы было назначено имя Skatert.max. Можете сравнить то, что у вас получилось, с готовой моделью NURBS-скатерти, которая имеется в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге, в файле Skatert.max.
Рис. 10.10. Готовая модель скатерти в виде NURBS-поверхности типа CV
При реализации собственных проектов на базе поверхностей типа NURBS вам придется самостоятельно определять нужную последовательность и направления перемещения управляющих вершин. Чтобы выполненное упражнение приобрело более общий характер, попробуем извлечь из него некоторые уроки.
Основные секреты придания требуемой формы стандартной NURBS-поверхно-сти, знание которых помогло нам выполнить только что завершенное упражнение, можно сформулировать следующим образом:
сегментация NURBS-поверхности не должна быть равномерной, плотность расположения управляющих вершин следует увеличивать в местах, где требуется формирование мелких деталей поверхности, и уменьшать там, где форма меняется мало;
чтобы сформировать на NURBS-поверхности выступ или углубление, нужно иметь как минимум три группы управляющих вершин, средняя из которых будет перемещаться, а две другие по обе стороны от первой — ограничивать область выступа (углубления);
для формирования резких перегибов формы NURBS-поверхности следует увеличивать вес управляющих вершин вдоль линии перегиба в 10-100 раз по сравнению с весами остальных вершин;
при редактировании формы стандартной NURBS-поверхности нужно обязательно рассматривать поверхность под разными углами в тонированном режиме отображения.
Превращаем параллелепипед в камин
Цель первого упражнения заключается в том, чтобы превратить прямоугольную «коробку» в камин для нашего кафе «МАХ». Выполните для этого следующие действия:
1. Выполните перезагрузку программы max 7.5 и сохраните пустую сцену под именем Kamin.max.
2. Создайте в окне проекции Perspective (Перспектива) примитив Box (Параллелепипед) примерно с такими размерами: длина — 160 см, ширина — 65 см и высота — 120 см, установив число сегментов по длине равным пяти, по ширине — четырем и по высоте — пяти. Ну, откуда взялись такие размеры, несложно попять: из тех соображений, чтобы будущий камин хорошо вписался в отведенное ему место у стены кафе. Но вдумчивый читатель, конечно, может заинтересоваться, как ему заранее определить, сколько именно сегментов по каждой из координат необходимо устанавливать? На этот счет есть только одно общее правило: число сегментов должно определяться формой будущего объекта. Нарисуйте эскиз, прикиньте, какие вершины будете перемещать и какие грани выдавливать. Если с первого раза не получится, удалите примитив и создайте новый, с иным числом сегментов. В данном случае мы собираемся создать конструкцию, показанную на рис. 9.1, слева. Четыре сегмента по ширине позволят сформировать наклонную часть основания дымохода, оставляя место для каминной полки. Пять сегментов по длине и по высоте позволят вдавить часть граней передней стенки и сформировать топку камина. Очевидно, что предлагаемая сегментация является избыточной. В конце упражнения мы рассмотрим, как можно избавляться от лишних сегментов.
Рис. 9.1. Форма моделируемого тела (слева) определяет сегментацию исходного параллелепипеда(справа)
ЗАМЕЧАНИЕ
Всегда нужно стремиться к созданию моделей трехмерных объектов с минимально необходимым числом граней. Когда такие модели объединяются в достаточно насыщенную объектами сцену, каждая лишняя грань ведет к усложнению процесса и увеличению времени визуализации. |
3. Превратите объект в редактируемую сетку (Editable Mesh) любым из уже известных вам способов. Включите режим показа невидимых ребер сетки. Для этого, как объяснялось в главе 3, щелкните на выделенном объекте правой кнопкой мыши, выберите в контекстном четвертном меню команду Properties (Свойства) и сбросьте в окне свойств объекта флажок Edges only (Только края). Зачем это нужно, станет понятно чуть ниже.
4. Перейдите на уровень подобъекта Vertex (Вершина) и выделите восемь вершин сетки на верхней стороне параллелепипеда, как показано на рис. 9.2.
Рис. 9.2. Восемь выделенных вершин на верхней стороне параллелепипеда для наглядности показаны стрелками
5. Переместите эти восемь вершин вверх, в направлении оси Z, чтобы сформировать наклонное основание дымохода. Казалось бы, нужный результат достигнут, но если присмотреться внимательно, то можно заметить, что на правом и левом краях наклонной части сетка изогнулась по-разному, как показано на рис. 9.3. Мы переместили выделенные вершины. При этом полигоны сетки, которым принадлежали по четыре или по две из этих вершин, переместились параллельно или расположились под наклоном, но не претерпели излома. Однако у двух крайних полигонов второго ряда приподнялось всего по одной вершине, так что они «переломились» по своим диагоналям. А так как диагонали по отношению к перемещаемым вершинам располагались у них по-разному, выступ сетки оказался несимметричным.
Рис. 9.3. Расположение ребер, вдоль которых происходит изгиб сетки (для наглядности показаны стрелками), приводит к асимметрии сформированного выступа
6. Чтобы исправить положение, нужно повернуть одно из ребер, показанных на рис. 9.3 стрелками. Предположим, мы хотим, чтобы у выступа сетки, изображающего основание дымохода, было три наклонных стороны. Тогда нужно повернуть ребро, которое обозначено на рис. 9.3 левой стрелкой. Если повернуть правое из указанных стрелками ребер, то у выступа будет пять наклонных сторон. Перейдите на уровень выделения подобъекта Edge (Ребро), щелкните на кнопке Turn (Повернуть) в свитке Edit Geometry (Правка геометрии) командной панели Modify (Изменить), а затем — на левом «проблемном» ребре. Ребро повернется так, что будет соединять две другие вершины полигона, как показано на рис. 9.4. На этот раз выступ формируется симметрично, в чем можно убедиться, разглядывая тело под разными углами.
Рис. 9.4. Ребро, повернутое с целью обеспечения симметрии выступа, для наглядности показано стрелкой
7. Теперь возникает другая проблема, которую можно обнаружить, если включить режим тонированного просмотра объекта. Линии изгиба сетки, сформировавшиеся при перемещении вершин, не видны на тонированном изображении, как показано на рис. 9.5. Если бы это соответствовало замыслу, то все было бы в порядке. Но мы хотим иметь в этой части модели камина четкие линии перегиба формы. В чем дело? А дело в том, что алгоритм тонированной визуализации делает видимыми на изображении только ребра сетки, разделяющие грани, принадлежащие к разным группам сглаживания (вспомните первую главу), и сглаживает ребра между гранями, которые относятся к одной и той же группе сглаживания. При создании примитива-параллелепипеда каждому набору граней, относящихся к одной из шести его сторон, автоматически назначается своя группа сглаживания. Хотя после перемещения вершин некоторые грани оказались лежащими в разных плоскостях, все они продолжают относиться к одной и той же группе сглаживания, имевшейся у верхней стороны параллелепипеда.
Рис. 9.5. Линии изгиба выступающей части сетки не видны на тонированном изображении, они сглажены алгоритмом визуализации
8. Инструменты управления группами сглаживания сосредоточены в разделе Smoothing Groups (Группы сглаживания) свитка Surface Properties (Свойства поверхности) и становятся доступными при переключении на уровень одного из таких подобъектов, как Face (Грань), Polygon (Полигон) или Element (Элемент). Группа сглаживания — это идентификатор, присваиваемый каждой грани и представляющий собой число из диапазона от 1 до 32. Грани с одинаковыми значениями идентификатора считаются относящимися к одной и той же группе сглаживания. Можно было бы назначить каждой стороне выступа свою собственную группу сглаживания, но мы поступим проще: отменим назначение групп сглаживания граням выступа. Результат будет тем же — на тонированном изображении появятся отчетливо видимые ребра перегиба между гранями выступа, не лежащими в одной плоскости. Перейдите на уровень подобъекта Face (Грань) и щелкните на кнопке Select By SG (Выделить по группе сглаживания). В появившемся окне Select By Smooth Groups (Выделение по группам сглаживания) вы увидите кнопки с номерами от 2 до 7 — по числу групп сглаживания исходной сетки параллелепипеда. Заранее трудно сказать, какую группу сглаживания имеют нужные нам грани, поэтому щелкните на кнопке 2, затем на кнопке ОК. Посмотрите, какие грани объекта окажутся выделенными. В нашем случае это должны оказаться грани нижней стороны параллелепипеда. Снова щелкните на кнопке Select By SG (Выделить по группе сглаживания). На этот раз щелкните на кнопке 2, чтобы перевести ее в исходное неактивное положение, а затем — на кнопке 3, чтобы выделить грани с третьей группой сглаживания. Проследите, чтобы был установлен флажок Clear Selection (Отменить выделение), в этом случае при выделении новых граней происходит сброс ранее выделенных. Теперь окажутся выделенными нужные нам грани верхней стороны параллелепипеда, включая и грани выступа. Обратите внимание на раздел Smoothing Groups (Группы сглаживания) свитка Surface Properties (Свойства поверхности): в нем должна быть нажата кнопка 3. Чтобы отменить назначение групп сглаживания выделенным граням, просто щелкните на кнопке 3, приведя ее в исходное, ненажатое состояние. Теперь линии перегиба поверхности будут четко видны на тонированном изображении, как показано на рис. 9.6.
Рис. 9.6. После отмены назначения группы сглаживания граням выступа линии изгиба выступающей части сетки стали четко видны
ЗАМЕЧАНИЕ Очевидно, что грани, которым следует назначить ту или иную группу сглаживания, можно выделять и традиционным способом, щелкая на них или растягивая вокруг них выделяющую рамку. Прием выделения по группам сглаживания был рассмотрен в учебных целях, хотя, как вы могли видеть, он иногда очень удобен. |
9. Чтобы сформировать трубу дымохода, применим экструзию, или выдавливание, граней. Переключитесь на уровень выделения подобъекта Polygon (Полигон) и выделите три полигона в верхней части выступа сетки. Щелкните на кнопке Extrude (Выдавить) в свитке Edit Geometry (Правка геометрии). Дальше можно действовать двумя способами. Можно переместить курсор к выделенным полигонам и, когда он примет вид, показанный на рис. 9.7, щелкнуть кнопкой мыши и перетаскивать курсор вверх или вниз по экрану, следя за выдавливанием граней. Такой прием интерактивного выдавливания был опробован нами в предыдущей главе. Но мы поступим другим способом. После щелчка на кнопке Extrude (Выдавить) укажите в счетчике справа от кнопки высоту выдавливания, скажем, 135 см. Окна проекций отобразят сформированный дымоход, показанный на рис. 9.8. Снова щелкните на кнопке Extrude (Выдавить), чтобы выключить режим выдавливания.
Рис. 9.7. Изменившийся вид курсора указывает на готовность к началу выдавливания
Рис. 9.8. Дымоход сформирован методом экструзии граней
СОВЕТ Чтобы выделяемые полигоны окрашивались в окнах проекций красным цветом, нужно установить флажок Shade Selected Faces (Тонировать выделенные грани) на вкладке Rendering Method (Метод визуализации) окна диалога Viewport Configuration (Метод визуализации). Вызвать это окно диалога можно, например, как было описано в главе 3, щелкнув на имени любого окна проекции правой кнопкой мыши и выбрав в меню окна команду Configure (Конфигурировать). |
10. Теперь применим метод экструзии граней для формирования углубления топки камина. Заодно познакомимся с еще одним приемом, широко используемым при моделировании на базе параллелепипедов. Предположим, что мы хотим сделать так, чтобы пространство топки внутри раздавалось вширь, превышая размеры отверстия на передней стенке камина. Чтобы добиться этого, нужно сначала выдавить внутрь сетки грани передней стенки камина, а затем дополнительно выдавить в стороны боковые грани образовавшегося углубления. Однако если выполнить выдавливание граней передней стенки за один прием, то боковые поверхности выдавленной части сетки не будут иметь сегментации в направлении выдавливания. Взгляните на сформированный выше дымоход. По координате направления выдавливания в его поверхности представлено всего по одному полигону. Если бы мы захотели, скажем, создать утолщение в верхней части дымохода, нужна была бы дополнительная сегментация в виде ряда поперечных ребер. Наличие такой сегментации позволило бы выдавить грани в верхней части дымохода в стороны, сформировав нужное утолщение. Чтобы создать нужную сегментацию по координате направления выдавливания, эту операцию проводят в несколько приемов. При использовании счетчика экструзии для этого вводят значение глубины выдавливания, на которой должен располагаться первый ряд поперечных ребер, затем нажимают клавишу Enter, вводят новое значение глубины и снова нажимают клавишу Enter. Так можно делать многократно, добиваясь требуемой сегментации боковой поверхности. При выдавливании с помощью мыши перетаскивают курсор первый раз, выдавив грани до уровня первого ряда поперечных ребер, отпускают кнопку мыши, снова устанавливают курсор на выделенные грани, нажимают кнопку мыши и продолжают выдавливание. Итак, выделите 12 полигонов в центре передней стенки камина. Если соберетесь делать это рамкой в окне вида слева, не забудьте предварительно установить флажок Ignore Backfacing (Игнорировать изнаночные). Щелкните на кнопке Extrude (Выдавить), установите курсор на выделенные полигоны, щелкните кнопкой мыши и начинайте перетаскивать курсор, вдавливая грани внутрь объема сетки в интерактивном режиме. Следите за счетчиком глубины экструзии. Сделайте остановку, отпустив кнопку мыши при глубине выдавливания примерно -15 см. Затем продолжите выдавливание и завершите операцию, выдавив грани еще примерно на -65 см, как показано на рис. 9.9.
Рис. 9.9. Двенадцать полигонов в центре передней стенки камина выдавлены внутрь за два приема. На стенках углубления образовался ряд дополнительных ребер, показанных стрелкой
При такой глубине экструзии топка окажется глубже, чем толщина исходного параллелепипеда, и на задней стороне камина появится выступ, показанный на рис. 9.10. Представляется, что такой вариант выдавливания позволит при установке камина в состав сцены создать дополнительную иллюзию глубины, усиливая впечатление, что камин не просто механически приставлен к стене, а встроен в конструкцию здания.
Рис. 9.10. Глубина выдавливания превышает ширину исходного параллелепипеда, и на задней стороне камина появляется выступ
СОВЕТ Чтобы видеть на обратной стороне камина выступ, грани которого обращены к зрителю оборотными сторонами, нужно сбросить флажок Backface Cull (Отбрасывание граней) в окне диалога Object Properties (Свойства объекта). Это окно вызывается по команде Properties (Свойства) контекстного меню объекта, как было описано в главе 3. |
11. Теперь можно выполнить выдавливание боковых сторон углубления в стороны, чтобы увеличить внутреннее пространство топки. Поверните объект так, чтобы видеть верх внутренности топки, и выделите три дальних полигона, как показано на рис. 9.11. Выдавите их внутрь сетки примерно на -(15-20) см, чтобы «потолок» топки оказался выше края отверстия на передней стенке. Попробуйте самостоятельно выдавить в стороны полигоны боковых поверхностей топки, дополнительно увеличив ее внутренний объем. Таких полигонов должно быть по пять с каждой стороны — четыре было изначально, пятый образовался после вдавливания «потолка» топки. В итоге камин должен принять вид, показанный ранее на рис. 9.1, слева. Сохраните файл под заданным в начале работы именем Kamin.max, чтобы можно было вернуться к объекту в том состоянии, какое он имеет на данный момент. Затем для продолжения работы сохраните файл с инкрементированием имени.
Рис. 9.11. Три полигона верхней части топки выделены для выдавливания с целью увеличения внутреннего объема топки
12. Теперь, когда объекту придана требуемая форма, наступает возможность избавиться от излишней сегментации. Это очень важная задача, и именно в силу ее важности в max 7.5 предусмотрены различные средства для ее решения. В одних случаях оптимизация структуры сетки может быть выполнена автоматически, в других это требует ручной работы. Ознакомимся сначала с методом устранения излишней сегментации вручную. Для устранения ненужных сегментов применим перемещение и последующее слияние групп вершин. Переключитесь на уровень подобъекта Vertex (Вершина) и в окне проекции, отображающем вид камина спереди, выделите с помощью рамки вертикальный ряд вершин, показанный стрелкой на рис. 9.12. Не забудьте перед этим сбросить флажок Ignore Backfacing (Игнорировать изнаночные). Обратите внимание на сообщение в нижней части свитка Selection (Выделение): 26 Vertices Selected (Выделено 26 вершин). Переместите этот ряд вершин целиком влево строго вдоль оси X, приблизив его вплотную к ряду вершин, расположенных вдоль левого края дымохода.
Рис. 9.12. Вертикальный ряд вершин, показанный стрелкой, выделен для перемещения
СОВЕТ Всегда используйте рамку для выделения вершин, которые в окне проекции расположены строго одна за другой вдоль линии взгляда и видны как одна точка. Если пытаться выделить такие вершины, щелкая на них кнопкой мыши, то выделится только одна из группы вершин. |
13. Выполните слияние двух близко расположенных друг от друга рядов вершин, выделив вершины обоих рядов. Обратите внимание, что в нижней части свитка Selection (Выделение) сообщается: 58 Vertices Selected (Выделено 58 вершин). Почему 58, а не 2x26 = 52? Вспомните о шести вершинах на краю отверстия топки камина — они не имеют парных вершин в перемещенном ряду, как показано на рис. 9.13. Чуть ниже вам станет ясно, почему мы фиксируем внимание на этой мелочи. А пока в разделе Weld (Слить) свитка Edit Geometry (Правка геометрии) увеличьте значение, указанное в счетчике, расположенном справа от кнопки Selected (Выделенные), скажем, до величины 5,0 см. Эта величина задает предельное расстояние между выделенными вершинами, которые будут слиты программой в одну вершину. Щелкните на кнопке Selected (Выделенные). В свитке Selection (Выделение) вы прочтете, что теперь выделена только 31 вершина. Следовательно, слияние произошло. Внимательное рассмотрение показывает, что слились 24 пары и одна четверка вершин в нижней части топки, находящихся друг от друга на расстоянии менее 5 см. В итоге получилось 25 новых вершин плюс 6 непарных, не попавших под слияние, — вот почему их осталось 31.
Рис. 9.13. Два близко расположенных вертикальных ряда вершин выделены для слияния; шесть вершин, показанных стрелками, не имеют пар и не будут участвовать в слиянии
14. Так как слитые вершины заняли промежуточное положение между сливавшимися, а шесть вершин, не имевших пары, остались на своих прежних местах, стенка входного отверстия топки как бы слегка прогнулась влево. Можно не обращать на это внимания, а можно увеличить масштаб изображения в окне проекции, отображающем вид камина спереди, выделить рамкой проблемные вершины, как показано на рис. 9.14, и немного сместить их вправо, выправив стенку топки.
Рис. 9.14. После слияния новые вершины располагаются посередине между сливающимися. Вершины, не имевшие пар (выделены рамкой), остаются на своих местах, вызывая изгиб сетки
15. Проделайте точно такую же операцию с вертикальным рядом вершин, располагающимся справа от указанного стрелкой на рис. 9.12. Выделите этот ряд, сместите его вправо и слейте с рядом вершин на правом краю дымохода. Топка камина тоже имеет излишнюю сегментацию. Слейте вместе второй, третий и четвертый снизу горизонтальные ряды вершин. Это можно сделать за один прием, сблизив ряды на расстояние менее 5 см. Затем сместите вершины образованного после слияния ряда вниз, к основанию камина, и слейте их с вершинами самого нижнего ряда. При этом возникнет некоторый прогиб основания по той же причине — из-за наличия непарных вершин. Выделите их и слегка сместите вверх, выправив дефект. После всех этих действий оптимизированный по числу сегментов камин должен выглядеть, как на рис. 9.15.
Рис. 9.15. Сетка камина после оптимизации числа сегментов за счет слияния лишних рядов вершин
16. На шаге 10 мы выдавили грани передней стенки камина дальше его задней стенки, но задняя-то стенка при этом осталась на месте. Ненужные грани задней стенки в пределах углубления топки следует удалить, так как они могут в дальнейшем помешать реализации эффекта горения. Проследив, чтобы был сброшен флажок Backface Cull (Отбрасывание граней) в окне свойств объекта (ведь грани задней стенки наблюдаются через углубление топки с оборотной стороны и в обычном режиме не видны), выделите большой полигон в центре топки, как показано на рис. 9.16, и удалите его, нажав клавишу Delete.
Рис. 9.16. Ненужные грани задней стенки исходного параллелепипеда в пределах углубления топки подготовлены к удалению
17. В заключение осталось только назначить граням камина нужные идентификаторы материала, которые позволят в дальнейшем применить к нашей модели многокомпонентный материал. Скажем, мы собираемся «облицевать» камин снаружи одним материалом, а топку изнутри «выложить» другим. Для начала на уровне подобъекта Polygon (Полигон) выделите все полигоны сетки камина, охватив его целиком выделяющей рамкой. Введите значение 1 в счетчик Set ID (Установить идентификатор) свитка Surface Properties (Свойства поверхности). Тем самым всем граням объекта будет назначен один и тот же идентификатор материала, равный 1. Теперь аккуратно выделите полигоны, образующие внутреннюю поверхность топки, включая и боковые стороны, и верх, и низ. Введите в счетчик Set ID (Установить идентификатор) число 2. Назовите полученный объект Kamin. Сохраните файл, которому после шага 11 было присвоено имя Kamin01.max. Вы можете сравнить то, что у вас получилось, с готовой моделью камина, загрузив ее из файла Kamin01.max, который хранится в папке Scenes\Glava_09 компакт-диска, прилагающегося к книге.
Итак, модель камина готова. По-видимому, описать, как она делалась, было труднее, чем построить этот довольно простой объект. Подробность описания оправдывается тем, что на первых порах требовалось разъяснить отдельные нюансы новых методов и приемов моделирования. Подобные приемы — простое выдавливание и повторное выдавливание граней для создания дополнительной сегментации, перемещение и слияние групп вершин, повороты ребер, назначение граням групп сглаживания и идентификаторов материала — постоянно требуются при моделировании объектов на основе простых параллелепипедов.
Выполненное вами вручную уменьшение сегментации сетки, безусловно, помогло получить навыки сближения ребер и слияния вершин. В то же время, полагаю, вам стала очевидна и трудоемкость подобной процедуры. К сожалению, в ряде случаев, не столь простых, как рассмотренный нами пример, ручной работы не избежать. Однако иногда, если объект имеет достаточно простую форму, для уменьшения сегментации можно эффективно применять специальный модификатор — Optimize (Оптимизация). Рассмотрим пример его использования:
1. Загрузите модель камина, сохраненную в п. 11 предыдущего упражнения, как раз перед началом работы над уменьшением сегментации, в виде файла Kamin.max. Если вы по каким-то причинам не сохранили подобный файл, то создайте его заново или просто загрузите готовый файл Kamin.max из папки Scenes\Glava_09 компакт-диска, прилагающегося к книге.
2. Выделите модель камина, перейдите на панель Modify (Изменить), раскройте список модификаторов и дважды щелкните на строке Optimize (Оптимизация). Сетка объекта будет моментально оптимизирована без видимой потери качества модели (рис. 9.17).
Рис. 9.17. За счет применения модификатора Optimize сетка модели камина оптимизирована без всякой настройки параметров
3. Прокрутите вверх свиток параметров модификатора и в самом низу найдите раздел Last Optimize Status (Данные последней оптимизации). Там указываются через дробную черту значения числа вершин (Vertices) и граней (Faces) до и после (Before/After) оптимизации. Обратите внимание на то, что за счет автоматической оптимизации число вершин сетки уменьшилось с 200 до 34, а число граней — с 396 до 64. Кстати, выполненная нами ранее вручную оптимизация сетки уменьшила число вершин до 80, а граней — до 154. В этом легко убедиться, если загрузить сохраненный ранее файл Kamin01.max (подобный файл имеется в папке Scenes\Glava_09 компакт-диска, прилагающегося к книге) и выполнить команду меню File > Summary Info (Файл > Сведения). В появившемся окне диалога Summary Info (Сведения) общее число вершин (Vertices) и граней (Faces) в сетчатых моделях объектов сцены указывается в разделе Mesh Totals (Сводка по сеткам).
ЗАМЕЧАНИЕ Столь поразительный на первый взгляд успех автоматической оптимизации сетки объясняется в данном случае довольно просто. Наш объект состоит в основном из прямоугольных участков плоскостей, а каждый такой участок легко представить как состоящий всего из двух треугольных граней. К сожалению, данный модификатор далеко не всегда дает столь хорошие результаты, если объект имеет сложную форму. |
4. Если оптимизация при исходных значениях параметров модификатора оказывается не вполне удовлетворительной, можете попробовать настроить следующие элементы управления:
Face Thresh (Порог граней) — задает пороговое значение угла между нормалями граней, которые будут объединяться в ходе оптимизации. Малые значения угла ведут к низкому уровню оптимизации, при котором объединяется мало граней, а большие значения — к большому числу объединенных граней;
Edge Thresh (Порог ребер) — задает пороговое значение угла между открытыми ребрами, каждое из которых принадлежит только одной грани. Низкие значения этого порога предохраняют ребра, ограничивающие отверстия в сетчатой оболочке, от исчезновения;
Bias (Смещение) — значение из диапазона от 0 до 1, снижающее вероятность появления вырожденных треугольных граней в ходе оптимизации. Такие грани при визуализации вызывают появление на изображении ложных деталей. Чем выше значение параметра Bias (Смещение), тем меньше упомянутая вероятность;
Max Edge Len (Макс. длина ребра) — если это значение отлично от нуля, оно задает максимальную длину ребер сетки, формируемых при оптимизации;
Auto Edge (Авторебра) — установка этого флажка обеспечивает автоматическое формирование открытых ребер и исключает формирование ребер между гранями, углы между нормалями которых лежат в пределах порогового угла.
5. Убедившись, что выполненная автоматическая оптимизация не испортила вид модели, что, повторюсь, бывает, к сожалению, далеко не всегда, можно свернуть стек модификаторов объекта, который снова превратится в стандартную редактируемую сетку, пригодную для дальнейшей правки. Можете при желании сохранить полученный объект в виде файла, однако, мы в дальнейшем будем работать с тем объектом, оптимизация которого выполнена вручную и который хранится в файле Kamin01.max.
Разумеется, работу над моделью можно еще продолжать и продолжать. Например, перемещая вершины, можно оформить верх отверстия топки в виде арки, с помощью экструзии украсить конструкцию дополнительными выступами вдоль вертикальных краев камина и т. п. Попробуйте проделать что-то подобное самостоятельно в качестве домашнего задания, а пока продолжим наши упражнения.
Простейший лофтинг: создаем кронштейн для лампы
В предыдущей главе вы начали создавать настенный светильник для «МАХ-кафе». Продолжите работу над светильником, создав методом лофтинга кронштейн для лампы. Выполните следующие действия:
1. Откройте сохраненный в предыдущей главе файл Lampa01.max, содержащий два объекта: плафон и опору в форме щита. Если этого файла у вас нет, то загрузите файл Lampa01.max из папки Scenes\Glava_06 прилагающегося к книге компакт-диска. Сохраните файл под именем Lampa02.max, используя прием инкрементирования имени. Временно скройте плафон и опору от просмотра, чтобы они не мешали работе. Переместите начало координат сетки в окне проекции Left (Вид слева) в левый нижний угол окна и установите масштаб, при котором вертикальный размер видимой части сетки в окне проекции составляет примерно 50 см. Разверните окно проекции на весь экран.
2. Выберите на командной панели Create (Создать) инструмент Point Curve (Точечная кривая) и нарисуйте кривую, показанную на рис. 7.1, которая будет играть роль пути для тела лофтинга. При определении размеров кривой исходите из того, что она должна вписываться в воображаемый квадрат со стороной около 40 см. Затем создайте стандартный сплайн Circle (Круг) радиусом 1,5 см, представляющий собой сечение формируемого кронштейна.
Рис. 7.1. Линия пути в виде точечной NURBS-кривой и сплайн-профиль сечения кронштейна
3. Приступайте к созданию кронштейна методом лофтинга. Щелкните на кнопке Geometry (Геометрия) командной панели Create (Создать) и выберите в раскрывающемся списке разновидностей объектов вариант Compound Objects (Составные объекты). В свитке Object Type (Тип объекта) появятся девять кнопок, соответствующих типам составных объектов, как показано на рис. 7.2. Проследите, чтобы форма-путь была выделена, так как для обеспечения доступа к кнопке Loft (Лофтинговые) в составе сцены должна иметься хотя бы одна выделенная форма. Щелкните па кнопке, и в нижней части командной панели появятся свитки параметров лофтинга: Creation Method (Метод создания), Surface Parameters (Параметры поверхности), Path Parameters (Параметры пути) и Skin Parameters (Параметры оболочки).
Рис. 7.2. Свиток Object Type командной панели Create с инструментами создания составных объектов
4. В свитке Creation Method (Метод создания) имеются две кнопки — Get Path (Взять путь) и Get Shape (Взять форму). Мах 7.5 проверяет, можно ли использовать выделенную форму в качестве пути (то есть состоит ли она из единственного сплайна). Если нет, то данная форма может служить только опорным сечением создаваемого объекта и в этом случае в свитке Creation Method (Метод создания) будет доступна только кнопка Get Path (Взять путь). Если заранее выделенная форма будет использоваться как сечение, следует щелкнуть на кнопке Get Path (Взять путь), чтобы выбрать форму-путь. В нашем случае выделенная заранее форма должна быть использована как путь, поэтому щелкните на кнопке Get Shape (Взять форму), чтобы выбрать форму-сечение. Выбранная кнопка подсвечивается желтым цветом. Не изменяйте принятую по умолчанию установку переключателя в свитке Creation Method (Метод создания), который может быть установлен в одно из трех положений:
Move (Переместить) — форма, которая будет указана после щелчка на кнопке Get Shape (Взять форму) пли Get Path (Взять путь), будет помещена в создаваемый объект и удалена со сцены;
Сору (Копировать) — в составе создаваемого объекта будет использована независимая копия исходной формы;
Instance (Образец) — будет использован образец формы (этот вариант выбирается по умолчанию).
5. При активизированной кнопке Get Shape (Взять форму) перейдите в любое окно проекции и укажите курсором па форму, которая будет служить сечением (если активизирована кнопка Get Path (Взять путь), то укажите на форму, которая будет служить путем). Курсор принимает вид, соответствующий режиму выделения формы-сечения или формы-пути, как показано па рис. 7.3. Щелкните кнопкой мыши. При выборе формы-сечения она прикрепляется к первой вершине формы-пути, а при выборе формы-пути она прикрепляется к форме-сечению.
Рис. 7.3. Сразу же после выбора формы-сечения ее образец прикрепляется к первой вершине формы-пути
6. Готово! Оболочка объекта уже построена методом лофтинга, хотя увидеть объект можно по умолчанию только в тех окнах проекций, где установлен режим тонированного отображения (рис. 7.4). Чтобы увидеть оболочку объекта в окнах с каркасным режимом отображения, необходимо развернуть свиток Skin Parameters (Параметры оболочки) и установить флажок Skin (Оболочка) в разделе Display (Отображение). Назовите полученный объект Kronshtein и назначьте ему тот же цвет, который был использован для щита опоры. Щелкните правой кнопкой мыши для выключения режима лофтинга. Оригиналы формы-профиля и формы-пути можно теперь удалить, хотя иногда бывает полезно оставить их с целью коррекции формы оболочки объекта лофтинга.
Рис. 7.4. Кронштейн светильника сформирован методом лофтинга
7. Восстановите видимость скрытых элементов светильника — щита опоры и плафона. Чтобы завершить работу над светильником, создайте два оставшихся элемента, используя стандартные примитивы Cylinder (Цилиндр) и Cone (Конус): подставку для плафона в виде цилиндра радиусом 5,5 см и высотой 3,5 см и отражатель света в виде усеченного конуса с нижним основанием радиусом 23 см, верхним основанием радиусом 10 см и высотой 7 см. Назовите эти объекты Podstavka и Otrazhatel. Разместите все детали светильника так, как показано на рис. 7.5. По завершении работы сохраните файл под заданным в начале упражнения именем. Сопоставьте результат своей работы с моделью светильника, содержащейся в файле под именем Lampa02.max в папке Scenes\Glava_07 компакт-диска, прилагающегося к книге.
Рис. 7.5. Готовый светильник
Сажаем траву вокруг кафе «МАХ»
По нашему замыслу кафе «МАХ» распахивает свои двери зимой, поэтому вокруг него земля занесена снегом. Однако в этом упражнении в учебных целях превратим зимний пейзаж в летний и посадим вокруг здания кафе «МАХ» траву. Откройте сцену MAX-kafe07.max, с которой вы работали ранее. Если по каким-либо причинам вы не сохранили этот файл, вы можете открыть его с компакт-диска. Он находится в папке Scenes\Glava__08. Первое, что мы сделаем — уберем снежные заносы, ведь, согласитесь, трава с ними сочетается не очень хорошо. Выделите объекты Valik01, Valik02 и Valik03 и удалите их. Сохраните сцену под названием MAX-kafe_trava.max. Теперь проделайте следующее:
1. Выделите объект Osnovanie sceni и примените к нему модификатор Hair and Fur (WSM) (Волосы и шерсть (WSM)). Вы увидите, что плоскость полностью покроется кривыми красного цвета. Эти линии являются схематическим обозначением травинок. Растительность расположена хаотично и выглядит совсем не так, как нам хотелось бы. Даже на таком схематическом представлении мы можем увидеть, что трава растет не только вокруг кафе «МАХ», но и внутри здания, пробиваясь сквозь пол. Более того, высота травы такая, как будто бы ее не косили несколько столетий. Придется поработать над этими недостатками.
2. Сначала обозначим участки, на которых должна расти трава. Убедитесь, что плоскость все еще выделена, раскройте список подобъектов модификатора Hair and Fur (WSM) (Волосы и шерсть (WSM)) и переключитесь на уровень выделения подобъекта Polygon (Полигон). Выделите полигоны, образующие область, на которой должна расти трава. Пусть это будет область вокруг здания. Только не забудьте оставить протоптанную дорожку, ведущую ко входу, иначе посетителям кафе «МАХ» придется вытаптывать заботливо выращенную вами траву. Для выделения нужной области удобно использовать инструмент выделения Paint Selection (Выделение кистью), вызвать который вы можете, нажав клавишу q четыре раза подряд. Выделив нужные участки, нажмите кнопку Update Selection (Обновить выделение) в свитке Selection (Выделение). Заросли травы станут немного реже и появятся лишь на тех участках, которые вы выбрали (рис. 12.4).
Рис. 12.4. Теперь трава растет только там, где нужно
3. Теперь самое время поработать над высотой травы. Нет, газонокосилка вам для этого не понадобится, в mах 7.5 есть более удобные средства для приведения газона в порядок. Перейдите к свитку General Parameters (Общие параметры) (рис. 12.5). Задайте количество травинок посредством счетчика Hair Count (Количество волос) равным 21 000, а количество сегментов на травинке (Hair Segments) равным 8. Поскольку нам не нужна высокая точность, для экономии времени визуализации выберите значение счетчика Hair Passes (Число проходов визуализации) равным 1. Плотность размещения травинок (Density) задайте равной 100, их длину в процентном соотношении (Cut Length) равной 100, а в счетчике Rand Scale (Случайное масштабирование) укажите 30. Установите в счетчике Scale (Масштаб) значение 7 и сделайте толщину волос возле корней равной 1,6.
Рис. 12.5 Свиток General Parameters
4. Перейдите к свитку Material Parameters (Параметры материала), чтобы выбрать цвет для травы. Можете пофантазировать: если лето жаркое, то трава наверняка выгорела и теперь коричнево-золотистого цвета, если же ее регулярно поливают дожди или заботливый служащий кафе «МАХ», она должна быть ярко-зеленой. Выберите цвет для кончиков (Tip Color) и оснований травинок (Root Color).
5. Чтобы увидеть, что получилось, нажмите клавишу F9. Если вы внимательно настраивали эффект, у вас должно получиться то же, что и у меня (рис. 12.6). Сохраните файл под заданным ранее именем. Вы можете сравнить свою сцену с той, которая находится на компакт-диске в папке Scenes\Glava_12.
Рис. 12.6.
Вокруг кафе «МАХ» выросла трава
Создаем простейшие стандартные материалы для «МАХ-кафе»
В этом упражнении мы научимся создавать простейшие стандартные материалы, не требующие использования карт текстур. В частности, мы создадим простой белый материал для потолка помещения, материал, напоминающий фаянс тарелок, а также материал в виде металла золотистого цвета, который понадобится при визуализации ложек, вилок, рамы зеркала, деталей светильника, полосок на тарелке и бокале. Попробуем также создать упрощенный вариант прозрачного материала для бокалов, просто чтобы убедиться: сделать материал прозрачным — этого далеко не достаточно, чтобы он стал похож на стекло. Заодно мы освоим сохранение созданных материалов в виде библиотеки.
Итак, повторяйте за мной.
1.
Запустите или перезагрузите max 7.5, чтобы все параметры приняли свои исходные значения. Щелкните на кнопке Materia! Editor (Редактор материалов) панели инструментов или выполните команду меню Rendering > Material Editor (Визуализация > Редактор материалов), чтобы раскрыть окно Редактора материалов. С той же целью можно просто нажать клавишу т. Чтобы лучше видеть нюансы цветовых оттенков создаваемых материалов, измените цвет подсветки на темно-серый с RGB-компонентами (55; 55; 55). Если вы забыли, как это делается, обратитесь к главе 11, «Расставляем и настраиваем осветители и съемочные камеры».
2. Создайте в первой (активной по умолчанию) ячейке образца материал, который будет имитировать побелку потолка кафе. Введите в текстовую строку раскрывающегося списка имен материалов имя для нового материала — Pobelka. He изменяйте значения параметров в свитке Shader Basic Parameters (Базовые параметры раскраски), оставив в качестве метода раскраски вариант Blinn (Блинн).
3. В свитке Blinn Basic Parameters (Базовые параметры раскраски по Блинну) разблокируйте цвета подсветки и диффузного рассеивания. Щелкните поочередно на образцах цвета подсветки, диффузного рассеивания и зеркального отражения и установите в окне Color Selector (Выбор цвета) следующие значения RGB-компонентов этих цветов: Ambient (Подсветка) — (200; 240; 250), светло-голубой, чтобы обеспечить голубоватые тени; Diffuse (Диффузный) — (230; 230; 230), светло-серый, и Specular (Зеркальный) — (245; 245; 245), почти белый. Настройте параметры зеркального блика, сделав его почти незаметным: Specular Level (Сила блеска) = 20; Glossiness (Глянцевитость) = 25. Величины всех остальных параметров материала оставьте равными их исходным значениям. В итоге материал должен принять вид, показанный на рис. 13.36.
Рис. 13.36. Так выглядит образец материала Pobelka в первой ячейке Редактора материалов
4. Создайте библиотеку для сохранения вновь создаваемых материалов. Для этого щелкните на кнопке Get Material (Получить материал) и установите в окне диалога Material/ Map Browser (Просмотр материалов и карт текстур) переключатель Browse From (Источник) в положение Mtl Library (Библиотека материалов). Будет открыта стандартная библиотека материалов 3ds max. mat. Щелкните на кнопке Clear Material Library (Очистить библиотеку материалов) окна просмотра материалов и карт текстур. В появившемся окне с запросом на подтверждение очистки библиотеки щелкните на кнопке Yes (Да). Все материалы из библиотеки 3ds max.mat будут удалены. Теперь сохраните очищенную библиотеку под новым именем, щелкнув на кнопке Save As (Сохранить как). В окне диалога Save Material Library (Сохранение библиотеки материалов) введите имя для новой библиотеки — MAX-kafe — и щелкните на кнопке Save (Сохранить). Расширение имени mat присваивается автоматически. Не закрывайте пока окно диалога Material/Map Browser (Просмотр материалов и карт текстур).
5.
Теперь сохраните только что созданный материал в новой библиотеке. Если окно Material/Map Browser (Просмотр материалов и карт текстур) еще открыто, можно просто щелкнуть на образце материала и перетащить его в окно просмотра материалов и карт текстур. Другой способ сохранения материала в библиотеке состоит в том, чтобы щелкнуть в окне Редактора материалов на кнопке Put to Library (Поместить в библиотеку). В этом случае появится окно диалога, позволяющее изменить имя, под которым данный материал будет помещен в библиотеку. Если изменять имя не требуется, то просто щелкните на кнопке ОК.
6. Активизируйте вторую ячейку Редактора материалов, чтобы создать там материал, имитирующий фаянс тарелок. Введите для материала имя Faians. Выберите в раскрывающемся списке свитка Shader Basic Parameters (Базовые параметры раскраски) вариант раскраски Phong (По Фонгу). В свитке Phong Basic Parameters (Базовые параметры раскраски по Фонгу) разблокируйте цвета подсветки и диффузного рассеивания. Настройте следующие значения основных цветов материала: Ambient (Подсветка) — (190; 190; 190), светло-серый; Diffuse (Диффузный) — (240; 240; 240), почти белый, и Specular (Зеркальный) — (255; 255; 255), чисто-белый. Зеркальный блик сделайте ярким и достаточно сосредоточенным: Specular Level (Сила блеска) = 95; Glossiness (Глянцевитость) = 80, Soften (Размыть) = 0. Величины всех остальных параметров материала оставьте равными их исходным значениям. Сохраните новый материал в библиотеке, щелкнув на кнопке Put to Library (Поместить в библиотеку). Вид материала показан на рис. 13.37.
Рис. 13.37. Образец материала Faians во второй ячейке Редактора материалов
7. Теперь активизируйте третью ячейку образца — в ней мы будем создавать материал, напоминающий золотистый металл. Назовите материал Pozolota. Выберите в раскрывающемся списке свитка Shader Basic Parameters (Базовые параметры раскраски) вариант раскраски Metal (Металл). В свитке Metal Basic Parameters (Базовые параметры металлической раскраски) настройте следующие значения основных цветов материала: Ambient (Подсветка) — (66; 59; 29), темно-бежевый; Diffuse (Диффузный) — (183; 165; 79), золотистый. Создайте яркий, хорошо выраженный зеркальный блик, имитирующий металлический блеск: Specular Level (Сила блеска) - 77; Glossiness (Глянцевитость) = 75. Величины всех остальных параметров материала оставьте равными их исходным значениям. Сохраните новый материал в библиотеке, щелкнув на кнопке Put to Library (Поместить в библиотеку). Вид материала в ячейке образца показан на рис. 13.38.
Рис. 13.38. Образец материала Pozolota в третьей ячейке Редактора материалов
8. Теперь активизируйте четвертую ячейку образца, чтобы создать в ней образец прозрачного материала, призванного заменить стекло бокалов. Измените фон ячейки на разноцветные шахматные клетки, щелкнув на кнопке Background (Фон). Назовите материал просто: Steklo.
9. Выберите в раскрывающемся списке свитка Shader Basic Parameters (Базовые параметры раскраски) вариант раскраски Metal (Металл). В свитке Metal Basic Parameters (Базовые параметры металлической раскраски) настройте следующие значения основных цветов материала: Ambient (Подсветка) — (0; 0; 0), черный; Diffuse (Диффузный) — (178; 178; 178), серый. Создайте очень яркий сосредоточенный зеркальный блик, имитирующий блеск стекла; Specular Level (Сила блеска) - 100; Glossiness (Глянцевитость) - 85. Сделайте материал почти прозрачным, установив Opacity (Непрозрачность) = = 20. Если сделать непрозрачность равной нулю, то «стекла» просто не будет видно. Полностью прозрачным материал можно сделать только в том случае, если в его составе использованы карты текстур, управляющих непрозрачностью и имитирующих отражение, но это уже предмет рассмотрения следующей главы. В свитке Extended Parameters (Дополнительные параметры) установите переключатель Falloff (Спад) раздела Advanced Transparency (Свойства прозрачности) в положение In (Внутрь), задав тем самым характер изменения прозрачности материала, свойственный пустотелым тонкостенным прозрачным объектам. Задайте степень изменения непрозрачности от середины к краям Amt (Степень) - 20. Величины всех остальных параметров материала оставьте равными их исходным значениям. Сохраните новый материал в библиотеке, щелкнув на кнопке Put to Library (Поместить в библиотеку). Вид материала в ячейке образца показан на рис. 13.39.
Рис. 13.39. Образец материала Steklo в четвертой ячейке Редактора материалов
Создаем Всенаправленный осветитель и выполняем простейшую визуализацию сцены
Свет проявляет себя только тогда, когда есть что освещать: как говорится, сначала надо создать небо и землю, а уж потом свет, чтобы увидеть, что это хорошо. Иными словами, для настройки параметров осветителей необходимо иметь определенную сцену с набором предметов, при визуализации которой можно будет видеть распределение освещения, теней, ярких бликов и т. п. Чтобы не заниматься созданием специального «испытательного полигона» для отработки навыков размещения и настройки осветителей, воспользуемся готовой геометрической моделью сцены «МАХ-кафе». Поэкспериментировав со светом, мы заодно снабдим нашу сцену нужным числом осветителей и настроим освещение требуемого качества. В окнах проекций даже при тонированном режиме показа изображение сцены формируется упрощенно, тонкие перепады света передаются грубо, а тени от объектов не показываются совсем. Поэтому для наблюдения за результатами настройки освещения нам потребуется освоить простейший вариант визуализации сцены, не требующий никаких настроек. Итак, приступаем: 1. Откройте файл MAX-kafe08.max, содержащий полную геометрическую модель сцены «МАХ-кафе». При необходимости вы можете найти нужную сцену в файле под именем MAX-kafe08.max, хранящемся в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге. Используя инструменты свитка Hide (Скрыть) командной панели Display (Дисплей), скройте от просмотра объекты Osnovanie sceni, Fasad, Viveska, Okno, Dveri, Valik01-Valik03, а также все предметы внутреннего убранства интерьера кафе, кроме двух светильников и кресел. Сохраните сцену под инкрементированным именем.
ЗАМЕЧАНИЕ
Обратите внимание на то, что после добавления в состав сцены «МАХ-кафе» всех необходимых элементов геометрической модели файл сцены стал «весить» около 16 Мбайт, что, естественно, не могло не сказаться на времени загрузки сцены, прорисовки изображений в окнах проекций и, особенно, времени визуализации. |
2. Щелкните на кнопке Lights (Источники света) командной панели Create (Создать), а затем — на кнопке Omni (Всенаправленный) в свитке Object Type (Тип объекта). Переместите курсор в окно проекции Front (Вид спереди), где он примет вид перекрестья, и щелкните в районе точки (-45; 0; 170), чтобы создать Всенаправленный осветитель над группой кресел. Значок Всенаправленного осветителя имеет вид маленького восьмигранника. Переместите осветитель в окне проекции Тор (Вид сверху), чтобы он расположился примерно над центром ближней к зрителю группы кресел, в районе точки, где координата Y составляет -135 см, как показано на рис. 11.7. Обратите внимание, как изменился характер освещения в окне проекции Perspective (Перспектива), где по умолчанию используется тонированный режим отображения. Щелкните правой кнопкой мыши, чтобы выключить режим создания всенаправленных источников света.
Рис. 11.7. Правильное размещение Всенаправленного осветителя в окнах вида сверху и спереди
ЗАМЕЧАНИЕ По умолчанию значок источника света, если он не выделен, изображается в окнах проекций желтым цветом, однако его можно «перекрасить» в любой другой цвет, используя свиток Name and Color (Имя и цвет). |
3.
Вид сцены в окне проекции Perspective (Перспектива) не дает полного представления о реальном качестве введенного нами освещения. Чтобы увидеть, как на самом деле выглядит сцена с единственным всенаправленным осветителем, выполним ее визуализацию. Воспользуемся простейшим способом, не требующим настройки абсолютно никаких параметров. Итак, активизируйте окно проекции Perspective (Перспектива) и щелкните на кнопке Quick Render (Быстрая визуализация) главной панели инструментов. Появится окно диалога Rendering (Визуализация), в котором нас пока будет интересовать только один элемент — прогресс-индикатор Current Task (Текущая задача), наглядно демонстрирующий ход синтеза изображения сцены. Собственно изображение будет построчно выводиться в окне диалога, называемом окном визуализированного кадра {Rendered Frame Window) и показанном на рис. 11.8. В заголовке окна указывается имя окна проекции, для которого выполнялась визуализация, и номер текущего кадра анимации (в данном случае это кадр 0).
Рис. 11.8. Окно визуализированного кадра с изображением сцены
ЗАМЕЧАНИЕ Обратите внимание на то, что на визуализированном изображении не видно самого источника света. Во-первых, сам значок не визуализируется, поскольку он является всего лишь вспомогательным объектом. Во-вторых, никакой «светящейся субстанции», похожей на привычную электрическую лампочку, на месте значка тоже не появляется. Так что, если вы хотите, чтобы на визуализированном изображении был виден какой-то светящийся предмет, изображающий источник света, для этого нужно принять специальные меры. В частности, можно создать объект в форме светильника и применить к нему соответствующий материал. Иногда для усиления правдоподобия к источнику света или материалу применяют еще оптический эффект сияния, воспроизводить который вы научитесь в главе 15, «Осваиваем тонкости визуализации сцены и внешней среды». |
Внимательно рассмотрите визуализированное изображение и убедитесь в том, что Всенаправленный источник действительно испускает свет во все стороны: пятна света видны и в центре потолка, и посередине пола, и на стенах. У кресел освещены только те части, на которые падают лучи света этого источника.
Задумайтесь о том, почему имеются затемнения в углах комнаты. Дело здесь не в удаленности этих углов от осветителя: ведь я уже говорил, что свет стандартных осветителей max 7.5 по умолчанию не ослабевает с расстоянием. Причина в другом: яркость освещения поверхности зависит от угла, под которым падают на нее световые лучи. Максимум яркости достигается, когда лучи падают на поверхность перпендикулярно к ней, то есть направлены параллельно нормали этой поверхности. По мере отклонения лучей от нормали они освещают поверхность все слабее, а когда лучи оказываются перпендикулярны к нормали, они начинают скользить вдоль поверхности, совершенно не освещая ее. Именно поэтому те участки пола и потолка, которые находятся точно под или над всенаправленным источником, освещены сильнее, чем удаленные края этих объектов: просто на края свет падает под меньшими углами. То же самое относится и к стенам комнаты, а также ко всем остальным объектам сцены. Обратите также внимание на отсутствие теней от объектов — так принято по умолчанию для всех вновь создаваемых осветителей.
Не выходите из программы: в следующем упражнении мы будем продолжать начатую работу и попробуем изменить некоторые параметры Всенаправленного осветителя.
Создаем вывеску для «МАХ-кафе»
Воспользуемся только что полученными знаниями и создадим для нашего проекта «МАХ-кафе» вывеску в виде строки сплайна-текста. Итак, повторяйте:
1. Запустите или перезагрузите max 7.5 и откройте ранее сохраненную сцену MAX-kafe03.max, содержащую, как вы помните, «выстроенное» в предыдущей главе здание кафе. Если вы не сохранили или не создали эту сцену, то откройте файл MAX-kafe03.max, расположенный в папке Scenes\Glava__06 компакт-диска, прилагающегося к книге. Сразу же после загрузки сохраните файл с инкрементированием имени.
2. Щелкните на кнопке Shapes (Формы) командной панели Create (Создать) и выберите в раскрывающемся списке разновидностей объектов вариант Splines (Сплайны). Щелкните на кнопке инструмента Text (Текст).
3. Выберите в списке шрифтов свитка Parameters (Параметры) какую-нибудь симпатичную гарнитуру, подходящую для вывески кафе. Я использовал шрифт Matura MT Script Capitals. Если на вашем компьютере не установлен такой шрифт, выберите любую другую гарнитуру на свой вкус. Щелкните на кнопке I (Курсив), чтобы установить курсивное начертание символов. Задайте размер символов порядка 70 см. Введите в поле Text (Текст) строку Cafe MAX Ваг.
4. Разверните свиток General (Общие свойства) и установите в разделе Rendering (Визуализация) флажок Renderable (Визуализируемый). Задайте видимую толщину линии сплайна в счетчике Thickness (Толщина) равной 5 см. Установите флажок Generate Mapping Coords (Проекционные координаты).
5. Переместите курсор в окно проекции Front (Вид спереди), установите его примерно посередине верхней половины фронтальной стены и щелкните кнопкой мыши. Надпись будет создана на координатной плоскости, поэтому в режиме тонированного показа ее пока не видно: она заслоняется фасадом. Чтобы увидеть надпись, включите в окне проекции режим каркасного отображения, нажав клавишу F3. Выберите для символов текста подходящий цвет, например светло-голубой, и назовите этот объект Viveska.
6. Переместите надпись на положенное ей место — чуть впереди фасада здания. Щелкните на кнопке инструмента Select and Move (Выделить и перемесить). Убедитесь, что надпись все еще выделена, а если нет, то выделите ее. Проверьте, чтобы не была нажата кнопка Absolute Mode Transform Type-In (Ввод абсолютных значений преобразования) в строке состояния, и введите в поля отсчетов координат требуемые координаты положения вывески (0; -330; -300). В результате надпись расположится на 10 см впереди фасада, как показано на рис. 6.9.
Рис. 6.9. На фасаде здания МАХ-кафе появилась вывеска, которую в дальнейшем мы заставим сиять как неоновую рекламу
7. Сохраните файл сцены.
Создаем «земную твердь» для сцены «МАХ-кафе»
Воспользуйтесь только что полученными знаниями, чтобы создать первый элемент представленной в главе 1 сцены «МАХ-кафе» — опорную поверхность для размещения остальных объектов сцены.
1. Запустите программу max 7.5, выберите команду меню File > Open (Файл > Открыть) и загрузите подготовленный в главе 3 файл пустой сцены с именем MAX-kafe.max. Как вы помните, в этом файле хранятся предварительно подготовленные нами настройки единиц измерения, сетки и привязок. Если вы не создавали файла с такими настройками, то загрузите файл MAX-kafe.max из папки \Scenes\Glava_05 компакт-диска, сопровождающего книгу, — это как раз то, что требуется. Сохраните только что загруженный файл под именем MAX-kafe01.max. С этой целью выберите команду меню File > Save As (Файл > Сохранить как) и щелкните в появившемся окне диалога на кнопке со знаком «плюс» слева от кнопки Save (Сохранить).
ЗАМЕЧАНИЕ
Напомню, что сохранение только что загруженного файла под инкрементированным именем не только является «хорошим тоном» разработчика трехмерных сцен, но и позволяет при необходимости восстановить исходный файл и начать текущий сеанс редактирования заново. |
2. Уменьшите масштаб в окнах проекций. Для этого щелкните на кнопке Zoom All (Масштаб всех окон), переместите курсор в окно Tор (Вид сверху), щелкните кнопкой мыши и перетащите курсор вниз. Уменьшить масштаб нужно примерно так, чтобы по вертикали в этом окне уместились четыре полные большие клетки, образованные главными линиями координатной сетки. При этом размер каждой мелкой ячейки сетки должен составлять 1 м (Grid = 100 см), а большой клетки — 1000 см, то есть 10 м.
3. Постройте плоскость размером 30x40 м, призванную играть роль «земной тверди» — опорной поверхности, на которой будут размещаться все остальные объекты. Для этого щелкните на кнопке Plane (Плоскость) в свитке Object Tуре (Тип объекта) командной панели Create (Создать). Переместите курсор в окно проекции Tор (Вид сверху), установите его в точку с координатами (-2000; 1500; 0), щелкните кнопкой мыши и перетащите курсор по диагонали в точку (2000; -1500; 0). Отпустите кнопку мыши, фиксируя размеры плоскости, показанной на рис. 5.8.
Рис. 5.8. Вид сверху на плоскость-основание сцены «МАХ-кафе»
4. Перейдите на командную панель Create (Создать) и установите в свитке Parameters (Параметры) флажок Generate Mapping Coords (Проекционные координаты). Измените имя объекта в свитке Name and Color (Имя и цвет), назвав его Osnovanie sceni. При необходимости можете также изменить цвет объекта на более приемлемый для «земной тверди», например на бежевый или коричневый.
5. Сохраните сцену.
Строим сферу и слегка настраиваем ее параметры
Итак, пусть вашим первым трехмерным объектом станет сфера — шар, симметричный со всех сторон. Куда уж проще! Для создания сферы выполните шаг за шагом следующие действия:
Запустите max 7.5, переместите курсор на командную панель Create (Создать) и щелкните на кнопке Sphere (Сфера) в свитке Object Type (Тип объекта). Кнопка зафиксируется и подсветится желтым цветом, как показано на рис. 3.1.
Рис. 3.1. На командной панели Create нажата кнопка Sphere
Переместите курсор в окно проекции Тор (Вид сверху), где он примет вид перекрестья, и установите перекрестье в центр окна, в точку пересечения толстых черных линий - осей сетки координат. Щелкните кнопкой мыши и, удерживая ее, перетащите курсор в сторону от центра, наблюдая за тем, как увеличивается в размерах создаваемый объект-сфера. Когда сфера почти заполнит собой окно проекции Perspective (Перспектива), отпустите кнопку мыши. В окнах проекций Тор (Вид сверху), Front (Вид спереди) и Left (Вид слева) сфера изображается в виде «проволочного каркаса», образованного ребрами между гранями, а в окне Perspective (Перспектива) — в виде тонированной оболочки, как показано на рис. 3.2. Линии каркаса имеют белый цвет. Таким цветом в окнах проекций max 7.5 изображаются каркасы выделенных (selected) объектов, а всякий вновь созданный объект непосредственно после создания оказывается выделенным, то есть подготовленным к преобразованиям или редактированию.
Рис. 3.2. Вид экрана max 7.5 с объектом-сферой в окнах проекций
Посмотрите на свиток Parameters (Параметры) в нижней части командной панели Create (Создать). В счетчике Radius (Радиус) вы увидите значение радиуса только что созданной сферы, оно должно составлять что-нибудь около 65-70 единиц. Чтобы задать точное значение радиуса, щелкните в поле счетчика Radius (Радиус), измените число на 65 и нажмите клавишу Enter или Tab. В счетчике Segments (Сегментов) указывается число частей, на которые разбивается оболочка сферы по ее экватору. По умолчанию сегментов 32, и это хорошо видно в окне Тор (Вид сверху). Такое число сегментов вполне нас устроит.
a
Чтобы выключить режим создания сфер, переместите курсор в активное окно проекции и щелкните правой кнопкой мыши или щелкните левой кнопкой мыши на кнопке инструмента Select Object (Выделить объект). Кнопка Sphere (Сфера) перейдет в исходное состояние, а курсор из перекрестья снова превратится в наклонную стрелку.
СОВЕТ Ошибки на первых порах неизбежны. Но не забывайте о том, что в вашем распоряжении есть инструменты Undo (Отменить) и Redo (Повторить). Совершив ошибку, щелкните на кнопке Undo (Отменить) или нажмите клавиши Ctrl+z, и ошибочное действие будет отменено. Если же вы по ошибке отменили операцию, щелкните на кнопке Redo (Повторить) или нажмите клавиши Ctrl+a, чтобы повторить ее снова. |
Набрасываем скатерть на стол
В главе 10 мы уже создавали скатерть, используя технику NURBS-моделирова-ния. Главный недостаток скатерти, созданной таким методом — ее очень трудно анимировать. При взаимодействии ткани с каким-либо объектом ее поверхность деформируется по всей площади. Использовать привычные способы создания анимации в данном случае очень сложно. Нам пришлось бы устанавливать ключи анимации для огромного количества точек объекта, что заняло бы много времени и сил. С помощью модуля reactor (Реактор) эта задача решается очень просто. Программа автоматически высчитывает воздействие, производимое на ткань внешними силами, и соответственно задает деформацию объекта. Более того, за поведением ткани можно наблюдать в режиме реального времени с помощью специальной функции предварительного просмотра. Анимация ткани, просчитанная с помощью модуля reactor (Реактор), выглядит очень реалистично, а сам процесс просчета занимает немного времени, особенно при правильно выбранных настройках.
Итак, для создания скатерти, падающей на стол, выполните следующие действия: 1. Откройте сцену с любым из созданных нами в рамках нашего проекта столов. Вы можете использовать сцену Stol.max, находящуюся в папке Scenes\Glava_05, я работал именно с ней. Сохраните ее под именем Stoljeactor.max. Перейдите в окно проекции Тор (Вид сверху). Создайте примитив Plane (Плоскость), расположив его таким образом, чтобы созданная вами плоскость была по площади немного больше стола. Подобрав необходимые настройки модуля reactor (Реактор), мы добьемся того, что эта плоскость будет обладать свойствами ткани. Переключитесь в окно проекции Perspective (Перспектива) и передвиньте объект Plane (Плоскость) вдоль оси Z вверх, чтобы она располагалась над столом, как показано на рис. 17.13. Если бы в реальной жизни мы могли каким-то образом зафиксировать ткань в таком положении и отпустить, то, поскольку на нее воздействует только сила гравитации, она начала бы падать вниз. После столкновения с поверхностью стола ткань начнет деформироваться, обхватывая краями объект столкновения. Поскольку наша плоскость должна изменять форму аналогичным образом, необходимо позаботиться о том, чтобы модель ткани, содержала достаточное количество сегментов по длине и ширине. Если объект, имитирующий ткань будет содержать малое количество полигонов, участки на изгибах выдадут трехмерную подделку, а просчитанная анимация будет выглядеть нереалистично. Увеличьте сегментацию плоскости, установив 24 сегмента по каждой из координат.
Рис. 17.13. Исходный вид трехмерной сцены с тканью, подготовленной для анимации модулем reactor
2. Создайте коллекцию жестких тел и включите в нее все объекты, составляющие стол — Stoleshnica, Nozhka stola01, Nozhka stola02, Nozhka stola03 и Nozhka stola04. Затем создайте коллекцию тканей. Для этого можно щелкнуть на кнопке Create Cloth Collection (Создать коллекцию тканей) панели инструментов reactor (Реактор), а затем щелкнуть в нужной точке окна проекции.
3. Выделите плоскость и примените к ней модификатор reactor Cloth (Реактор: Ткань), щелкнув, к примеру, на кнопке Apply Cloth Modifier (Применить модификатор Ткань) панели инструментов reactor (Реактор). На панели Modify (Изменить) появятся свитки параметров модификатора Properties (Свойства) (рис. 17.14) и Constraints (Ограничители). Оставьте в исходном состоянии настройки всех параметров модификатора reactor Cloth (Реактор: Ткань). Убедитесь в том, чтобы был установлен флажок Avoid Self-Intersections (Избегать самопересечений).
Рис. 17.14. Свиток Properties модификатора reactor Cloth
4. Добавьте плоскость в коллекцию тканей. Для этого щелкните на значке коллекции CLCollection (Коллекция тканей), после чего щелкните на кнопке Pick (Указать) под списком Cloth Entities (Образцы тканей) в свитке Properties (Свойства) на панели Modify (Изменить) и в заключение щелкните на плоскости в любом из окон проекций. Имя объекта Plane01 (Плоскость01) появится в списке.
5. Переключитесь на панель Utilities (Утилиты). Просмотрите анимацию в окне предварительного просмотра. Вы увидите, как плоскость подобно скатерти накроет стол, и ее края еще будут продолжать движение, создавая иллюзию настоящей ткани (рис. 17.15).
Рис. 17.15. Вид сцены с тканью в окне предварительного просмотра соответственно: перед началом анимации, на промежуточной стадии и перед завершением действия
6. Создайте ключи анимации ткани, щелкнув на кнопке Create Animation (Создать анимацию) в свитке Preview & Animation (Просмотр и анимация) утилиты reactor (Реактор), и просмотрите анимацию в окнах проекций. После того как программа завершит просчет сцены, анимированным объектам будут присвоены ключи анимации для каждого кадра анимации. Иногда такое обилие ключей анимации затрудняет работу над сценой. Кроме этого, некоторые ключи анимации и вовсе лишние. Так, например, если в сцене трехмерный объект совершает прямолинейное движение с постоянной скоростью, для описания его движения достаточно двух ключей анимации — в начале движения и в конце. Если требуется уменьшить количество ключей анимации, просчитанных в reactor (Реактор), вы можете произвести отбор главных ключей, удалив ненужные с помощью инструмента Reduce Keys (Уменьшить число ключей).
ВНИМАНИЕ Прежде чем начинать просчет трехмерной анимации в модуле reactor (Реактор), следует проверить правильность выбранных настроек, а еще лучше сохранить копию сцены и с инкрементированием имени. После завершения вычислений возврат на этап, предшествующий просчету динамики, будет невозможен. Если полученная анимация вас не удовлетворила, вы можете сравнить свою сцену с моей. Она находится в папке Scenes\Glava_17 под названием Stol_reactor.max. Это — сцена с настроенными параметрами, но не доведенная до конечного просчета модулем reactor (Реактор). Там же вы найдете файл Stol_reactor01.max с уже просчитанной анимацией reactor (Реактор). |
Назначаем материалы из библиотеки объектам «МАХ-кафе»
Теперь попробуем назначить созданные материалы объектам сцены «МАХ-кафе» и оценить вид этих объектов после визуализации. Выполните следующие действия:
1. Откройте файл МАХ-кафе 1 l.max. При необходимости можете загрузить файл МАХ-кафе11 .max из папки Scenes\Glava_11 компакт-диска, прилагающегося к книге. Сохраните файл с инкрементированием имени.
2. Раскройте окно Редактора материалов и щелкните на кнопке Get Material (Получить материал). В окне диалога Material/Map Browser (Просмотр материалов и карт текстур) установите переключатель Browse From (Источник) в положение Mtl Library (Библиотека материалов) и щелкните на кнопке Open (Открыть). В появившемся окне Open Material Library (Открытие библиотеки материалов) выделите имя нужной библиотеки — MAX-kafe — и щелкните на кнопке Open (Открыть).
3. Выделите в списке окна просмотра имя материала Pobeika и перетащите его в первую ячейку Редактора материалов. Затем перетащите материалы Faians, Pozolota и Steklo во вторую, третью и четвертую ячейки Редактора.
4.
Выделите в сцене объект Potolok. Активизируйте первую ячейку образца с материалом Pobeika и щелкните на кнопке Assign Material to Selection (Назначить материал выделенным объектам). В данном случае такой прием оказывается удобнее, чем методика «перетащить и положить», так как сцена насыщена перекрывающимися объектами и указать курсором именно на объект Potolok довольно трудно.
5. Теперь назначьте материал Faians всем тарелкам. Выделите объекты Tarelka01-Tarelka08. Удобнее всего это сделать по именам с помощью инструмента Select by Name (Выделить по имени) главной панели инструментов. Затем активизируйте ячейку с образцом материала Faians и снова щелкните на кнопке Assign Material to Selection (Назначить материал выделенным объектам), применив материал сразу ко всем тарелкам сцены.
6. Действуя аналогичным образом, назначьте материал Pozolota объектам Rama, Lozhka01-Lozhka08, Vilka01-Vilka08, а также всем деталям обоих светильников, кроме плафонов. Для этого придется временно открыть объекты-группы Zerkalo, Lampa01 и Lampa02, а затем снова закрыть их. Кроме того, примените золотистый материал к елочному украшению — объекту Mesiac. Назначьте всем восьми бокалам материал Steklo из четвертой ячейки Редактора материалов.
7. Сохраните файл сцены под измененным в начале упражнения именем МАХ-кафе12.max, но не выходите из программы, так как работа над материалами будет продолжена.
На представленных ниже рис. 13.40 и 13.41 демонстрируются результаты визуализации фрагмента сцены, изображающего стол с посудой до и после назначения объектам простейших материалов. Обратите внимание на появление световых бликов на раме зеркала, тарелках и ложках. Отметьте также и то, что бокалы, хотя и стали прозрачными, пока мало похожи на предметы из стекла. Да, на их стенках видны яркие блики, но совершенно отсутствуют отражения окружающей обстановки. Для того чтобы реализовать на поверхности объекта эффект отражения окружающих объектов сцены, требуется применить к материалу объекта одну из карт текстуры, имитирующих зеркальное отражение, что мы и сделаем в следующей главе.
Рис. 13.40. Фрагмент сцены без материалов
Рис. 13.41. Тот же фрагмент, что на рис. 12.40, после применения материалов к раме, тарелкам, бокалам, ложкам и вилкам
На рис. 13.42 и 13.43 показан фрагмент сцены со светильником до и после назначения материалов. Хорошо заметно, что «позолоченные» объекты выглядят более темными, чем эти же объекты без материалов. Это результат низкого уровня диффузного рассеивания от гладких металлических поверхностей, что имеет место и в реальном мире. Обратите внимание также на то, что в блестящей поверхности щита, играющего роль опоры светильника, не отражаются ни кронштейн, ни другие элементы конструкции светильника. Как и в случае с бокалами, устранение этого недостатка требует использования текстурных карт, о которых речь пойдет в следующей главе «Учимся применять карты текстур и многокомпонентные материалы».
Рис. 13.42. Фрагмент сцены без материалов
Рис. 13.43. Тот же фрагмент, что на рис. 12.42, после применения материалов к раме и деталям светильника (кроме плафона)
ЗАМЕЧАНИЕ Для формирования показанных выше изображений было выполнено перенацеливание камеры Camera04 из состава сцены MAX-kafe, а после визуализации исходные координаты камеры и ее мишени были восстановлены. |
Одним движением руки создаем... чайник
Сцена из одного объекта — это чересчур примитивно, поэтому создайте нашему шару компаньона в лице маленького уютного чайника.
В свитке Object Type (Тип объекта) щелкните на кнопке Teapot (Чайник), переместите курсор в окно проекции Тор (Вид сверху) и поместите перекрестье слева от сферы в точке с координатами примерно (-100; 0; 0).
Чайник создается точно так же, как и сфера. Щелкните кнопкой мыши и, удерживая ее, перетаскивайте курсор в сторону, наблюдая за ростом чайника с носиком, ручкой и крышкой. Следите за значением параметра Radius (Радиус) в свитке Parameters (Параметры) командной панели Create (Создать) и отпустите кнопку мыши, когда радиус достигнет величины 10-15 единиц.
Выключите режим создания чайников, щелкнув правой кнопкой мыши в активном окне проекции или щелкнув левой кнопкой мыши на кнопке инструмента Select Object (Выделить объект).
Готово! Примерный вид нашей сцены в окнах проекций max 7.5 показан на рис. 3.4. Такой маленький по сравнению со сферой чайник нам нужен для того, чтобы использовать только что созданную сцепу для наглядной демонстрации возможностей управления изображением в окнах проекций, о чем речь пойдет в следующей части главы.
Рис. 3.4. Вид простейшей сцены в окнах проекций
в учебных целях выполним визуализацию
По замыслу сцена «МАХ-кафе» должна визуализироваться на фоне серо-голубого зимнего неба. Однако в учебных целях выполним визуализацию на фоне фотографического изображения реального заката солнца. В предыдущей главе, работая над материалом для окна кафе «МАХ», мы говорили о необходимости использовать в подобном случае растровый файл с изображением заката в качестве текстуры зеркального отражения оконного стекла. Тот же файл следует применить и в качестве текстуры фона.
Итак, чтобы визуализировать сцену «МАХ-кафе» на фоне заходящего солнца, выполните следующие действия:
1. Загрузите сцену из ранее сохраненного вами файла MAX-kafe17.max. При необходимости нужную сцену со всеми материалами можно найти в папке Scenes\ Glava_15 компакт-диска, прилагающегося к книге, где она хранится под именем МАХ-кафе 17.max. Сохраните сцену с инкрементированием имени файла.
2. Раскройте окна диалога Environment and Effects (Внешняя среда и эффекты) и Material Editor (Редактора материалов). Щелкните на кнопке Environment Map (Карта текстуры фона) в разделе Background (Природный фон) на вкладке Environment (Внешняя среда) окна диалога Environment and Effects (Внешняя среда и эффекты). В появившемся окне Materila/Map Browser (Просмотр материалов и карт текстур) дважды щелкните на строке карты типа Bitmap (Растровая карта). Наименование типа карты появится на кнопке Environment Map (Карта текстуры фона) и одновременно появится окно диалога Select Bitmap Image File (Выбор файла растровой текстуры), позволяющее выбрать файл растровой текстуры. Выберите тот файл с фотографией заката, который использовали для имитации отражений в оконном стекле. Я использовал для этих целей файл Sunset.tga, который можно найти в панке Maps\Backgrnd компакт-диска, прилагающегося к книге. Щелкните на кнопке Environment Map (Карта текстуры фона), перетащите курсор в свободную ячейку Редактора материалов и отпустите кнопку мыши, создав дубликат-образец текстуры. Назовите текстуру Bagroviy zakat. На рис. 15.38 показан вид выбранной фотографии заката в окне увеличителя.
Рис. 15.38. Изображение драматического багрового неба на закате солнца выбрано в качестве фона сцены «МАХ-кафе»
3. Сделайте выбранный фон видимым в окне проекции max 7.5. Для этого выполните команду главного меню Views > Viewport Background (Проекции > Фон окна проекции). В появившемся окне диалога Viewport Background (Фон окна проекции) установите флажки Use Environment Background (Использовать фон внешней среды) и Display Background (Показывать фон). Выделите объект Camera01 (Камера01) и установите для этой камеры флажок Show Horizon (Показать горизонт) в свитке параметров камеры на командной панели. Вид сцены в окне проекции Camera01 (Камера01) на данный момент показан на рис. 15.39. Как видно, линии горизонта сцены и фонового изображения явно не совпадают. У фотографии горизонт проходит вдоль нижнего обреза изображения, а у сцены в данном окне проекции — почти посередине окна.
Рис. 15.39. Вид сцены в окне проекции Camera01 показывает несовпадение линий горизонта фона и сцены
4. Настройте параметры растровой текстуры для согласования перспективы фона и сцены. Так как в окне проекции Camera01 (Камера01) видна только небольшая часть фотографии неба (примерно одна четвертая), можно выполнить такое согласование простым смещением растровой карты. В свитке Coordinates (Координаты) текстуры Bagroviy zakat начните постепенно увеличивать значение в счетчике группы Offset (Смещение), относящемся к оси V. Наблюдайте за смещением линии горизонта фона вверх, при этом «выталкиваемая» за пределы верха окна часть растровой карты будет отображаться в его нижней части (рис. 15.40). На мой взгляд, величины смещения около 0,42 будет вполне достаточно.
Рис. 15.40. Изображение фона в окне проекции Camera01 смещено вверх на 0,42 по оси V
5. Теперь можно дополнительно сместить изображение по горизонтали, чтобы в левой верхней части окна проекции, где фон не будет заслонен объектами сцены, наблюдалась наиболее выразительная, богатая деталями часть фотографии. Для этого увеличивайте значение в счетчике группы Offset (Смещение), относящемся к оси U, наблюдая за обновляемой картиной фона в окне проекции. Мне показалось, что неплохо подойдет значение смещения в районе 0,53-0,55 (рис. 15.41).
Рис. 15.41. Изображение фона в окне проекции Camera01 смещено по горизонтали (по оси U) на 0,53
6. Скройте из вида снежные валики па фундаменте и ступеньке кафе. Примените к основанию сцены материал, имитирующий текстуру асфальта. При необходимости вы можете найти подходящий материал с именем Asfalt в библиотеке MAX-kafe.mat. Выполните визуализацию изображения в окне проекции Camera01 (Камера01). Теперь это изображение, показанное на рис. 15.42, отличает от картины, приведенной на рис. 1.19 первой главы, только отсутствие тумана и сияющего ореола вокруг букв вывески, но этим мы займемся чуть позже. В заключение сохраните сцену под измененным в начале работы именем.
Рис. 15.42. Сцена «МАХ-кафе» визуализирована на фоне фотографии заката