Голливуд на дому, или 3DS MAX 4

Голливуд на дому, или 3DS MAX 4

Привет всем начинающим гуру трехмерной графики! Надеюсь, после прочтения предыдущей статьи вы не охладели в стремлении постичь глубины мастерства. Если это так, то не лишним будет сказать, что с каждым разом изложенный материал будет немного усложняться. Сегодня мы попытаемся продолжить сцену с костром, поместив таковой на поляну, окутанную туманом. Затем, в следующем номере, будет еще один несложный урок — создание более-менее фотореалистичного солнечного заката над морской гладью, целью которого будет показать, что красивые пейзажи в Максе можно делать быстро и без особых затрат времени. Дальше на примере сложной сцены, насыщенной геометрией, я опишу азы трехмерного моделирования. Еще не испугались? Тогда продолжим.

Если вы читали предыдущую статью, более того, не поленились воспроизвести изложенный там материал при помощи 3ds Max 4, то должны иметь сохраненный файл с моделью костра. В обратном случае не стоит расстраиваться. Попытайтесь найти прошлый номер КГ и выполнить упражнение. Но если и это невозможно, то я кратко упомяну, как сделать более грубую модель костра. Правда, впоследующем я вряд ли смогу повторяться из-за ограниченности объема газеты и из-за все усложняющейся геометрии сцен. Поэтому советую не выбрасывать сразу предыдущие номера. Итак, откройте вышеупомянутый файл. В окне Вида сверху (Тор) при помощи кнопки
, находящейся в нижнем правом углу окна Макса, уменьшите костер до размера примерно в 5-10% окна проекции и кнопкой
того же меню расположите его в центре. Теперь выберите стандартный примитив Box меню Create и в том же окне Тор (вид сверху) создайте параллелепипед длиной и шириной примерно на все окно проекции и с минимальной высотой (см. рис.1). Число сегментов по длине и ширине =20, по высоте=1.


Рис.1

Расположите параллелепипед при помощи кнопок
так, чтобы хворост и гизмо-полусфера располагались на его плоскости, как на земле. Если надо, разгруппируйте костер и выровняйте ветки хвороста по отдельности. При желании увеличьте их число, как мы это делали прошлый раз (выделить объект и, удерживая Shift, перетащить его кнопками манипуляции). Не правда ли, поляна выглядит слишком плоской? Исправить этот недостаток поможет модификатор Displace. Сперва немного теории. Помните, на уроках географии каждый изучал физическую карту мира. Различная высота ландшафта задавалась там при помощи цвета — чем выше, тем цвет темнее. Так же и в вышеупомянутом модификаторе. Можно при помощи какого-либо графического редактора (Photoshop и т.д.) нарисовать карту с разными оттенками, и Displace переведет ее в трехмерный вид. Мы поступим проще. Ведь горы в сцене ни к чему, а легкую неровность поляны легко сделать, пользуясь картой Noise (Шум) редактора материалов.

Убедитесь в том, что выделен параллелепипед. Для удобства можете изменить его название, например, на "Поляна". Строка с текущим названием и цветом объекта находится справа. Скорее всего, это Вох01. Теперь войдите в свиток Modify
и выберите модификатор Displace. В поле Map нажмите кнопку None. Откроется меню Material/Map Browser. Выберите карту Noise (Шум) и нажмите OK. Параметр Strength (Сила влияния) задайте "по вкусу" — так, чтобы поверхность имела вид легкой неровности (см. рис.2).


Рис.2

Возможно, неровность приобретет лишь центральная часть "Поляны". Это объясняется тем, что гизмо-контейнер модификатора Displace слишком мал. Для его увеличения нажмите на значок + в окне, где написано название модификаторов. Выделите строчку Gizmo (см. рис. 3). В окнах проекции появится желтая рамка, обозначающая режим редактирования. При помощи кнопки
растяните гизмо-контейнер на всю ширину поляны. Для выхода из режима редактирования кликните левой кнопкой надпись Gizmo.


Рис.3

Чтобы поверхность имела менее грубые очертания, примените к поляне модификатор MeshSmooth (Сглаживание сетки). Он находится в свитке Modify. Число илетераций установите равным одному. Однако, если вы обладаете слабым компьютером, данный модификатор можно и не применять, так как он неплохо кушает ресурсы (см. рис.4).


Рис.4

Далее назначим "Поляне" соответствующий материал. Если вы читали предыдущую статью, то знаете, как это сделать, если нет, то повторю: для вызова окна Редактора материалов выберите в меню Rendering (Визуализация) команду Material Editor (Редактор материалов). Затем вызовите диалоговое окно Material/Map Browser (Просмотр материалов и карт текстур). Для этого щелкните по кнопке Standard в окне Редактора материалов. Появится окно просмотра материалов. Выделите там стандартный материал Ground_Grass, он лучше всего подойдет для наших целей. Нажмите OK. Теперь немного модифицируем этот материал. Прокрутите окно редактора материалов немного вниз. Там вы увидите свиток Maps. Раскройте его.



Появится масса кнопок с названиями карт, которые используются в данном материале. В нашем случае карта одна — файл Grass2.jpg, но находится он в двух разных каналах, возле которых поставлены птички. Канал Diffuse color отвечает непосредственно за передачу вида карты, в данном случае jpg-файла, на трехмерном объекте. А канал Bump позволяет имитировать некоторую 3d-неровность текстуры. Степень влияния этого канала по умолчанию установлена в 30%. Измените значение на 80%. Теперь вновь прокрутите панель Редактора материалов вверх, чтобы видеть сам материал в окне. Теперь там два материала — один принадлежит поленьям костра, а второй мы сейчас назначим поляне. Для этого убедитесь, что она выделена, и нажмите
. Материал назначен.

Выйдите из Редактора материалов. Не отменяя выделение поляны, войдите в меню кнопкой Modify (модифицировать)
. Найдите в списке модификатор UVW Map и примените его к объекту.

Еще раз, если нужно, подровняйте расположение хвороста и гизмо-полусферы костра. Возможно, вам будет мешать плоскость поляны. Чтобы она не выделялась, заморозьте ее. Для этого выделите объект "Поляна" и кликните правой кнопкой мыши в активном окне проекции. Появится небольшое меню, где надо выбрать строку Freeze Selection (Заморозить выбранное). Чтобы все вернуть, надо выбрать там же строку Unfreeze All (Разморозить все) (см. рис.5).


Рис.5

Если вы не сделали костер из прошлой статьи, то можете сделать его упрощенную копию. Хворост неплохо получится из обычных цилиндров, относящихся к стандартным примитивам меню Геометрия (рис.6). Задайте веткам материал на свой вкус, как это делалось выше.


Рис.6

Затем активизируйте окно проекции Тор (Вид сверху) и создайте контейнер атмосферного эффекта в форме полусферы непосредственно над хворостом. Для этого нажмите кнопку Helpers (вспомогательные объекты) командной панели Create (создать), выберите в раскрывающемся списке пункт Atmospheric Apparatus (Атмосферный аппарат) (рис.7).


Рис.7

Щелкните на кнопке Sphere Gizmo в свитке Object Tape. Переместите курсор в окно Вида сверху, щелкните над хворостом и перетащите курсор (как при создании обычной сферы). Диаметр выберите самостоятельно, помня, что это будет диаметр пламени. Установите флажок Hemisphere (Полусфера).

Переключитесь на Вид спереди и поместите полусферу над ветками. Затем вытяните ее при помощи инструмента неравномерного масштабирования
из раскрывающегося меню, которое активируется, если удерживать кнопку
. Как сделать эффект горения, будет сказано позже.

Давайте теперь предположим, что на дворе начало осени. Поэтому поляну должна окутывать легкая туманная дымка. Создать ее будет довольно просто. Во-первых, активизируйте окно проекции Тор (Вид сверху) и поместите на поляну CylGizmo из пункта Atmospheric Apparatus (Атмосферный аппарат) — см. выше и рис.7. Этот цилиндрический гизмо-контейнер должен располагаться так, чтобы иметь костер в центре. По высоте он должен в 4-6 раз превышать костер (см. рис.8).


Рис.8

Теперь можно наполнить этот контейнер туманом. Причем наши действия будут во многом аналогичны тому, как мы действовали при поджигании хвороста в прошлый раз.

1. Выполните команду основного меню Rendering Environment. Нажмите кнопку Add (Добавить), которая расположена в свитке Atmosphere окна Environment. Выберите в появившемся окне Add Atmospheric Effect строку Volume Fog (Объемный туман) и нажмите OK. Теперь в списке Effects (Эффекты) свитка Atmosphere у тех, кто делал костер в прошлый раз, присутствуют 2 эффекта: Fire Effect и Volume Fog. Если это не так, то введите эффект Fire Effect описанным выше способом.

2. Выделите строку Volume Fog и войдите в свиток Volume Fog Parameters, как показано на рисунке 9.


Рис.9

Нажмите кнопку Pick Gizmo (Выбрать Гизмо) и затем выберите нарисованный вокруг костра гизмо-контейнер щелчком левой кнопки мыши. Название его появится в списке справа (см. рисунок).

3. Далее необходимо настроить параметры тумана в свитке Volume Fog Parameters. Вот они. Exponential = on, Density = 0,1, Step Size = 20, Max Steps = 5, Fog Background = on, Noise Threshold: High =1. Остальные параметры оставьте без изменения.

4. Также настройте параметры пламени Fire Effect, если вы не сделали это в прошлый раз, только не забудьте при помощи кнопки Pick Gizmo выбрать гизмо-полусферу костра, а тот, кто делал, немного поменяйте параметры: Flame Type = Tendril (Язык), Stretch (Растяжение) = 1, Regularity = 0.2, Flame Size = 25, Flame Detail =10, Density = 30, Samples = 25.

Теперь можно выйти из окна Environment.

Созданная сцена должна быть освещена, иначе объекты этой сцены будут не видны. В предыдущих занятиях вопрос освещения не стоял, поскольку все построенные объекты были видны. Их освещали два источника света, установленных по умолчанию. Свет от одного из них падает на объекты спереди из левого верхнего угла сцены, а от другого — сзади из правого нижнего угла. Оба источника света отключаются, если появляется созданный источник света, а при удалении всех созданных источников света восстанавливаются.

Как я и говорил раньше, огонь Макса обладает той неприятной особенностью, что от него практически нет света. Чтобы добиться реальной картины горения, внутрь пламени непременно надо ввести осветитель типа Omni. Настала пора этим заняться.

При создании освещения сцены используют пять типов источников света:

  • всенаправленный (Оmni), излучающий свет равномерно во все стороны;
  • -свободно направленный источник (Free Direct);
  • -нацеленный источник (Target Direct);
  • -нацеленный прожектор (Free Spot).
  • 1. На командной панели Create (Создать) нажмите кнопку Lights (Источники света).


    В свитке Object Type (Тип объекта) появятся кнопки для создания различных источников света (рис.10).


    Рис.10

    2.Щелкните на кнопке Omni (Всенаправленный).

    3. Щелкните в проекции окна в центре костра. Не отпуская кнопку мыши, можно передвинуть появившийся значок источника света, уточняя его положение в пространстве сцены. Сверьтесь со всеми окнами проекций. Всенаправленный источник света должен находиться прямо в середине гизмо-контейнера, обозначающего пламя. Очень вероятно, что придется его немного подвигать при помощи инструмента манипуляции
    .

    4. Теперь заставим Omni уподобиться истинному огню. Для этого он должен отбрасывать случайные пятна света, как у пламени. Выделите наш источник света. Войдите в свиток Modify
    . Там вы увидите параметры осветителя. Настройте их, как на рисунке 11.


    Рис.11

    5. Установите в свитке Projector Parameters (Параметры проектора) флажок Map (Карта) и кликните на расположенной справа от него кнопке с надписью None (Отсутствует). В появившемся окне Material/Map Browser (Просмотр материалов и карт текстур) два раза щелкните на строке Noise (Шум). Эта текстурная карта предназначена для введения неоднородностей, а случайные пятна световых бликов ими и являются.

    Наша картина почти готова к визуализации. Для этого в состав сцены надо ввести камеру. Тут может последовать вполне логичный вопрос: а для чего она, в сущности, нужна? Ведь рендерить можно и в окне проекции. Ответ здесь прост. Только в виде из камеры адекватно отражаются все настроенные эффекты. Попробуйте выбрать окно Perspective и визуализировать его содержимое (в меню Rendering (Визуализация) выберите команду Render (Визуализировать), в диалоговом окне нажмите кнопку Render (Визуализировать)). Уверен, результат никого не впечатлит.

    1. Нажмите на командной панели Create (Создать) кнопку Cameras (Камеры)
    . В свитке Object Type (Тип объекта) появятся кнопки двух типов камер — Target (Нацеленная) и Free (Свободная) (рис.12).


    Рис.12

    2. Щелкните на кнопке Target (Нацеленная). В нижней части командной панели появится свиток Parameters (Параметры), одинаковый для обоих типов камер.

    3. Щелкните в той точке окна проекции, откуда будете смотреть на объект. Подберите положение камеры на свой вкус, помня, что можно оперировать как самой камерой, так и ее направлением при помощи прямоугольника, находящегося на прямой линии поля зрения. Также, чтобы получить вид из камеры, в окне Perspective нажмите кнопку С. Примерный вид сцены, полученный при помощи камеры, показан на рисунке 13 (переключение между тонированным и сетчатым отображением в окне проекции, как я уже говорил, происходит по нажатии F3).


    Рис.13

    Можно рендерить. Однако полученная картинка слишком статична. Попробуем оживить ее. Для этого нужно заставить языки огня двигаться, источник освещения отбрасывать изменяющиеся блики, а туман клубиться под влиянием воздушных масс. Вкратце опишу, как это сделать.

    1. Нажмите на большую кнопку Animate (Анимация) в нижней части экрана программы. Она приобретет красный цвет. Затем передвиньте ползунок анимации до упора, чтобы на нем было написано (100/100). Анимация будет состоять из 100 кадров.

    2. Не отпуская кнопку Animate, зайдите в Rendering Environment/ Fire Effect Parameters, как мы это делали выше. В разделе Motion (Движение) находятся параметры: Phase (Фаза), которая задает частоту мерцания вспышек пламени и Drift (Дрейф) — он задает скорость разрастания огня. Я установил их так: Phase = 50, Drift = 180. Если при визуализации вид огня вам не понравится, можете изменить данные параметры.

    3. Войдите в свиток Volume Fog Parameters. В пункте Noise установите значение Phase = 5. Если после визуализации вид тумана вам не понравится, его можно отключить через меню Environment.

    4. Закройте окно Environment. Не отпуская кнопку Animate, выделите при помощи
    источник света типа Omni, расположенный в костре. Зайдите в меню параметров источника света свитка Modify
    , как это делали недавно. Откройте окно Редактора материалов. В свитке Projector Parameters (Параметры проектора) источника света нажмите левой кнопкой мыши на карту Noise, которую мы ввели недавно, и перетащите ее, не отпуская кнопку мыши, в свободную ячейку Редактора материалов (см. рис.14). В свитке Noise Parameters полученной карты в Редакторе материалов установите Phase =5. Закройте Редактор материалов и отпустите кнопку Animate.


    Визуализируйте вид из камеры. Для этого в меню Rendering (Визуализация) выберите команду Render (Визуализировать). В появившемся окне настройте следующие параметры: Time Output = Active Time Segment 0 to 100 (будут визуализироваться кадры от 1 до 100), выберите разрешение файла AVI (например, 640*480), нажмите кнопку Files (Файлы) в пункте Render Output и задайте имя, местоположение файла, а также укажите его тип — AVI. Нажмите Сохранить и согласитесь с выбором кодека.

    В окне Render нажмите кнопку Render (Визуализировать). Процесс пошел.



    Надеюсь, вам понравится ваш первый клип. Если что-либо пошло не так, попробуйте еще раз просмотреть изложенный материал и найти свою ошибку. Однако, возможно, какие-либо вопросы все равно останутся. Сбрасывайте их мне на e-mail, постараюсь ответить.

    Дмитрий Сташкевич


    Компьютерная газета. Статья была опубликована в номере 46 за 2002 год в рубрике soft :: графика

    ©1997-2021 Компьютерная газета