Создание снега

(Материалы по UDK)

Модератор: Buxyr

Аватара пользователя
KrisGames

Универсал Коммандо Лидер
Командор
Сообщения: 1171
Рег. Ср апр 28, 2010 10:20 am
Награды: 3
Репутация: 428
Вклад в проект: 75
Откуда: Иваново
Благодарил (а): 129 раз
Поблагодарили: 19 раз

Создание снега

Сообщение KrisGames » Ср янв 11, 2012 2:07 pm

Сегодня я покажу вам один из способов создания снега в UDK без использования Эмиттеров (источников частиц). В основе данного урока лежит идея использовать редактор материалов, для того, чтбы сделать прозрачный двигающийся шейдер, который будет похожим на снег.


На основе данного материала легко можно будет сделать и такие вещи как град, дождь, бури, метели (однако тут не помешает еще и дополнительно использовать систему частиц). В чем же фишка создания снега без эмитеров? В том, что это будет съедать меньшее количество компьютерных ресурсов, а значит позволит добиться большей производительности. Но в то же время будет сложно соорудить реалистичность таких осадков. Однако, давайте от слов переходить к делу и разберемся что к чему.

1) Создаем текстуры снега в Photoshop.
Я использовал CS3 версию, вы же можете использовать любую другую версию или вообще программу, отличную от фотошопа. Однако, чтобы было проще и понятнее, я решил сделать текстуру именно в PS.

Для начала я нашел подходящие кисти в интернете (например, отсюда) и нарисовал снег белым цветом на черном полотне размером 256x256 (это важно, чтобы размеры текстур были двойкой в степени). При рисовании я следил, чтобы расположение снежинок были приблизительно равномерными по всей площади. В итоге я применил стандартный фильтр Filter > Pattern Maker (Конструктор узоров) в PS для создания бесшовных текстур и вот что у меня получилось:

Snow01.png


Сохранив этот результат, я применил еще раз тот же самый фильтр и получил еще одну текстурку, но уже немного другую:
Snow02.png


И еще раз:
Snow03.png


Для начала и для демонстрации способа, три текстуры нам вполне будет достаточно.

2) Импорт в UDK и подготовка уровня.
Теперь есть смысл запустить наш горячо любимый движок и импортировать свежеиспеченные текстуры. Для этого три наших текстуры сохраним в каком либо поддерживаем формате 2д графики в UDK, я решил использовать для этого *.png. Затем импортируем их в Content Browser в свой package.
snows.jpg


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

Для примера я сделал комнату из простого холокуба (куб со внутренней и внешней стенкой) размерами 1024x1024. Текстуры пола/стен можете выбрать по своему усмотрению. Добавьте свет, точку старта и каких нибудь декораций, если хотите (я решил не перебарщивать, пример все таки). Вот что вышло у меня, вид сверху и общий вид (можно кликнуть для полного просмотра):
map.jpg


map2.jpg


Итак, комната готова, теперь сделаем нечто, что будет носить наш материал снега.

3) Создаем сетку для потока снега.
Вся хитрость приема заключена в этом шаге. ам необходимо сделать сетку плоскостей в этой комнате равномерным образом, чтобы пустить по ним материал снега.

Делаем сетку из панелей размерами 1024х1024 (тобы охватывали всю комнату) и располагаем примерно так:
map3.jpg


map4.jpg


У меня на картинке выше панели все вместе уже конвертированы в один Static Mesh
(вам нужно сделать тоже самое), так удобнее будет работать и добавлять снежное пространство куда захотим. Материал который был при конвертации нам не важен, мы его потом всегда можем изменить в настройках сатик меша.

4) Создание материала.
Пожалуй, самая основная часть того, ради чего мы здесь собрались. Все остальное было подготовкой к этому шагу. Приступаем. Создайте новый материал в Content Browser'е и назовите по своему усмотрению, например Snow_Material_01.

Теперь рассмотрим сам уже готовый материал и ваша задача сделать такой же или со своими изменениями, как вам больше нравится. На картинке я добавил комментарии и значения, так что вопросов возникнуть не должно. Не забудьте также настроить сам метериал: Bland Mode- BLAND_Translucent, Lighting Model - MLM_Unlit, Two Sided - Yes, Allow Lightmap Specular - No.
material.jpg


И сама финальная картинка с примеенением этого материала на нашу сетку из панелей (в которой нужно в настройках отключить восприятие света во всех световых слоях и тенях - иначе свет может не пройти "через" снег).
final_01.jpg


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


ICQ : 470-451-451
Mail: KrisGames@yandex.ru

Вернуться в «Конструктор UDK»

 

 

cron