Волшебный мир текстур. Создание игрового ландшафта

Волшебный мир текстур. Создание игрового ландшафта

Мастерская — Волшебный мир текстур. Создание игрового ландшафта
"...Обрисуем задачу: нам нужен полнофункциональный 3D-ландшафт, на котором будет множество асфальтированных дорог, мостов, рек и озер. Поэтому до того, как начинать что-либо делать, нарисуйте примерный план. Географическую карту местности, на которой четк
Игроманияhttps://www.igromania.ru/
Мастерская
Волшебный мир текстур. Создание игрового ландшафта
    В предыдущей статье из цикла "Волшебный мир текстур" мы научились создавать различные текстуры и накладывать их на трехмерные модели, используя модификаторы UVW Map (Карта UVW) и Unwrap UVW (Развертка UVW). Сегодня мы разберемся, как создать ландшафт для игры, не используя специальных игровых редакторов.
    Как сделать земную поверхности с дорогами, лесами, горами и реками? Такую, чтобы на ней можно было проводить гонки на авто или организовать битву роботов и танков? Если при создании ландшафта вы будете придерживаться некоторых несложных правил, то ваше творение смогут использовать программисты при разработке движка.

   
Особенности моделирования
   
Прежде всего надо четко представить себе объем работ. Обрисуем задачу: нам нужен полнофункциональный 3D-ландшафт, на котором будет множество асфальтированных дорог, мостов, рек и озер. Поэтому до того, как начинать что-либо делать, нарисуйте примерный план. Географическую карту местности, на которой четко должны быть обозначены дороги, реки и мосты через них. Эта условная карта и послужит нам прототипом рельефа. Помните, что вы ничем не ограничены, подключайте свою фантазию — и смело начинайте работу.

    Главной особенностью всех моделей, созданных специально для игр, является их низкополигональность. Это необходимо для того, чтобы ускорить процесс отрисовки кадров
(frame rate). Поэтому сразу стоит поставить перед собой первое ограничение: никаких сложных о
24 Kb
Карта высот
бъектов с сотнями тысяч полигонов на карте быть не должно. Полигонов на ширину дороги лучше всего взять пять, и из этих цифр рассчитывать общее число полигонов на всей земле. Я в качестве объекта для земли использовал плоскость Plane с размерами 200х200 и количеством сегментов по ширине и длине, равным 120. Такая плотность позволила создать более-менее гладкий рельеф без острых углов и при этом не перегрузить процессор.
    Другой важной особенностью является то, что применяемые текстуры должны быть определенного размера и формата. Форму текстуры обычно выбирают квадратной, а размер — степенью двойки, то есть 32х32, 64х64, 128х128, 256х256, 512х512. Формат файлов — лучше всего TARGA (tga) с альфа-каналом для прозрачных участков. При текстурировании ландшафта можно применять не одну огромную текстуру на всю землю, а много повторяющихся (тайлов — tile) бесшовных одинаковых текстур маленького размера.
    Текстурная плотность должна быть одинаковой на всех объектах
3D-мира, то есть на маленькие объекты не стоит накладывать гигантские текстуры, иначе объект будет выделяться своей детализацией на фоне размазанных текстур окружения.
    И последнее, на что стоит обратить внимание. Если вы действительно собираетесь использовать ваш ландшафт в игре, то называть объекты 3D-мира стоит определенным образом, согласно схеме, а не оставлять бессмысленные имена, типа Box01, задаваемые 3D Max по умолчанию.

   
Карта высот
   
Существует несколько способов создания ландшафта, самый простой из которых — использовать модификатор Edit Mesh (Редактирование каркаса). Примените его на созданную плоскость и начинайте перетаскивать точки-вершины вверх и вниз. Но полагаю, что таким образом вы вряд ли получите симпатичную картину, особенно если учесть, что на плоскости более 14 тысяч точек...
    Есть способ лучше! Наиболее удобным и гибким в этом смысле является модификатор Displace (Смещение). Он работает по принципу: вы задаете черно-белую картинку-растр, по которой модификатор
изменит плоскость: черные области он "опустит" вниз, создавая долины и овраги, а белые — "поднимет" вверх, создавая горы и холмы. Промежуточные оттенки серого цвета добавят плавные переходы.
20 Kb
Результат действия
модификатора Displace

    Самым трудоемким этапом является создание карты высот — черно-белой картинки. У меня на ее полную отрисовку в PhotoShop ушло несколько часов. Чем тщательнее вы нарисуете карту рельефа, чем точнее укажете оттенки серого, тем более плавным и красивым будет итоговый ландшафт. Обратите внимание: если вы хотите, чтобы поверхность дорог была ровной, делайте ее строго одноцветной (белой, черной или серой), без переходов. Там, где необходимо изобразить подъем дороги вверх или спуск под гору, сделайте плавный переход цвета, используя инструмент Заливка градиента (Растяжка цвета).
    После того как карта высот будет готова, примените на плоскость (Plane) с большим числом сегментов модификатор Displace, а в качестве изображения (Bitmap) в настройках модификатора укажите созданный вами файл
с картой. Измените значение Strength (Сила), наблюдая за тем, как ровная плоскость приобретает нужные очертания. Если результат вас не устраивает, вы в любой момент можете продолжить редактировать карту высот, добиваясь желаемого.


12 Kb
Маска дорог правого нижнего
квадрата
    Текстурирование
   
Пора переходить к текстурированию. На мой взгляд, лучше поступить следующим образом: разбить глобальный ландшафт на четыре равные части и для каждой из частей нарисовать свою собственную маску дорог. Она будет задавать программе, какие участки земли покрывать текстурой асфальта, а какие — травой. Разумеется, вид вашей карты дорог полностью зависит от того, какую карту высот вы нарисовали.
    После того как карта дорог для первого квадрата будет готова, наложите на плоскость-ландшафт модификатор Edit Mesh. В стеке будет два модификатора: Displace,
которым мы создали ландшафт, и Edit Mesh, с помощью которого можно определить полигоны, на которые будет наложена карта дорог. Включите режим выбора полигонов в свойствах модификатора и выберите в окне проекции Top (Вид сверху) 1/4 часть всей земли (правый нижний квадрат). После выбора эти полигоны окрасятся в красный цвет.
    Откр
ойте редактор материалов, нажав M, и перейдите во вкладку Maps (Карты). В ней напротив пункта Diffuse Color (Диффузный цвет) щелкните на кнопку None и в открывшемся окне выберите тип карты Mix (Смешанная), установив флажок на New (Новый). Такой тип карты позволяет смешать две текстуры, используя маску.
    Кликните на кнопке справа от Color#1 (Цвет 1) и в открывшемся окне выберите тип Bitmap (Растр), после чего укажите путь к файлу с текстурой асфальта.
Текстуру асфальта вы можете нарисовать сами, загрузить из интернет-библиотеки или использовать стандартную текстуру 3D Max.
8 Kb
Готовый материал

    Таким же образом установите текстуру травы напротив Color#2. Нажав на третью кнопку, установите маску дорог, указав путь к ней на диске.
    В итоге материал должен выглядеть, как показано на скриншоте "Готовый материал".
    Присвойте данный материал выбранным полигонам, нажав кнопку Assign Material to Selection в редакторе материалов. Если все сделано правильно, поверхностьпокроется текстурой травы и асфальта там, где это необходимо.
49 Kb
Наложенный материал

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

   
Добавление деталей
67 Kb
Добавление деталей в сцену

   
Ландшафт создан, но его необходимо детализировать. Прежде всего нужно добавить мосты, по которым будут ездить машины. Создайте модели мостов в отдельных файлах, а затем совместите их с основной сценой с помощью функции File/Merge (Совместить). Не забудьте, что вы моделируете для игры, поэтому количество полигонов должно быть минимальным, и все невидимые полигоны стоит удалить.
    Дороги следует ограничить по обе стороны заградительными столбиками или забором, чтобы машины при движении не сходили с трассы. Если вы хотите сделать воду — создайте плоскость и наложите полупрозрачный материал (параметр Opacity) с отражением (канал Reflection: Raytrace).
    Деревья следует создавать по следующему принципу: ствол из цилиндра с небольшим числом граней, а листья — перекрестьем плоскостей с наложенной текстурой листьев; края лучше делать невидимыми. Вспомните,
64 Kb
Итоговый вид ландшафта
похожим образом мы делали флаг в предыдущей статье цикла.
    Добавьте на карту мелкие детали, камни, фонари, домики... Ландшафт готов. Пришло время устраивать гонки по бездорожью или высадить десант боевых роботов для завоевания сектора.


   
Добавление спецэффектов
   
Ландшафт выглядит отлично, но... не хватает изюминки. Этой изюминкой станут спецэффекты, которые мы сейчас добавим в сцену.
    Если вы читали предыдущие выпуски журнала, то без труда сможете создать, например, эффект яркого солнца. Однако есть еще несколько интересных спецэффектов, о которые вы еще не знаете. Они помогут придать проекту реализм.
    Используем спецэффект Объемный свет. Представьте себе: наступил вечер, вы едете по темной ночной улице, вдали тусклый свет от фар, отблески фонарей... Попробуем создать нечто подобное при помощи 3D Max.
33 Kb
Расположение
источника света

    Загрузите сцену с
вашим проектом, если вы уже вышли из программы. Создайте простую низкополигональную модель высокого фонаря. Как только модель будет готова, сделайте новый источник света — направленный прожектор (Target Spot). Добавление прожектора осуществляется с помощью панели Create / Lights (Создать /Источники света). Расположите источник света так, чтобы его начало располагалось в модели лампочки фонаря, а цель (Target) — на поверхности земли под фонарем.
    Пришло время применить спецэффект Объемный свет. Для этого откройте диалоговое окно Environment (Окружающая среда), вызвав его одноименной командой из меню Rendering
(Визуализация). В диалоговом окне Environment нажмите на кнопку Add (Добавить) в нижне
7 Kb
Эффект объемного света
й части окна и в появившемся списке укажите тип эффекта: Volume Light (Объемный свет). Появится панель Volume Light Parameters (Параметры объемного света), в которой, щелкнув на кнопке Pick Light (Указать источник света), вы сможете выбрать источник света в окне проекции, который вы только что создали. Сделайте это, а затем визуализируйте результат.
    Если хотите, настройте дополнительные параметры эффекта объемного света: для этого в панели Volume Light Parameters диалогового окна Environment установите флажок Exponential (Экспоненциальное затухание яркости света) и настройте по своему вкусу параметр Density (Плотность эффекта).
    Для того чтобы сцена не была слишком темной, добавьте слабый всенаправленный источник света (Omni), который будет символизировать лунный свет.
    Эффект объемного света готов. Обратите внимание: вы можете значительно повысить реалистичность сцены, добавив эффект свету фар машины.

   
* * *
   
Данная статья завершает цикл "Волшебный мир текстур". Но это совсем не значит, что мы закончили изучение 3D Max.Впереди еще много интересных тем.
Комментарии
Загрузка комментариев