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

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

Модератор: KrisGames

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

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

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

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

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


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

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

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

Snow01.png
Snow01.png (37.63 КБ) 2079 просмотров


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


И еще раз:
Snow03.png
Snow03.png (36.94 КБ) 2079 просмотров


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

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


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

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


map2.jpg
map2.jpg (24.17 КБ) 2079 просмотров


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

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
material.jpg (20.19 КБ) 2079 просмотров


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


Вот и все, все готово. Вскоре добавлю видео с финальным вариантом.
У данного способа есть существенный недостаток - при небольшой плотности сетки можно во время игры иногда наблюдать некрасивые переходы, которые выдают играющему то, что разработчик сэкономил на снеге в ресурсах. В общем то полностью реалистичный снег сделать на таком примере будет сложно, но можно попробовать, благо за основу взять уже есть что.
ICQ : 470-451-451
Mail: KrisGames@yandex.ru

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей

 

 

cron