Unreal Engine
Ян Корвин
1680

Делаем олдскульный post-processing шейдер "под плойку" (PS1) в Unreal Engine 4

В этом туторе я научу делать вас прикольный пост-процессинговый шейдер, который "эмулирует" визуал PlayStation (первой). Он добавляет пикселизацию и ограничивает количество цветов.

В закладки

Создаём материал

Прежде всего стоит создать папку "Materials", если у вас её ещё нет. Правильная иерархия папок - залог успеха. Внутри этой папки создайте ещё одну, например, "PS1".

А теперь в папке PS1 создайте материал.

​ПКМ на пустом месте в Content Browser откроет контекстное меню

Назовём этот материал M_PS1_PostProcess."M" потому что материал, дальше его название, а суффикс описывает тип материала.

Откройте его. В опциях материала (панель Details, когда у вас не выбрано ни одного блока) выберите Material Domain -> Post Process.

Теперь воссоздайте вот эту структуру:

Хочу обратить внимание на некоторые ноды, т.к. может быть не понятно, откуда я их взял:

  • Scale - это параметр, он нужен для того, чтобы мы потом в экземпляре (instance) материала могли его легко изменять. Дайте ему значение 300 по умолчанию.
  • SceneTexture: PostProcessInput0 - здесь сначала нужно добавить ноду "SceneTexture" и в её свойствах (выберите её и смотрите в панель Details) выберите "PostProcessInput0"
  • STMultiplier - ещё один параметр. Задайте ему дефолтное значение 15.

Применяем материал

Сохраните материал и закройте редактор материалов. Теперь создайте экземпляр материала (ПКМ по материалу в Content Browser и тыкайте самую первую опцию - Create Material Instance).

Добавьте (если ещё не делали этого) или найдите PostProcessVolume на сцене. В параметрах (панель Details), в разделе "Rendering Features", найдите опцию "Post Process Materials" и добавьте новый материал в массив. В дропдауне, который называется "Choose", выберите asset reference.

Выберите созданный ранее M_PS1_PostProcess_Inst (дефолтное имя экземпляра материала) в поле asset reference.

Вуаля! По идее, изменения вы увидите сразу же, обновлять/билдить/етц ничего не нужно:

Если хочется, можно поиграться с настройками экземпляра материала. Просто откройте его, и в панели Details отметьте соответствующие опции (Scale и STMultiplier), чтобы перезаписать дефолтные значения, и меняйте их как угодно. Можно добиться довольно упоротых результатов:

{ "author_name": "Ян Корвин", "author_type": "self", "tags": ["\u0443\u0440\u043e\u043a","\u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b","\u0442\u0443\u0442\u043e\u0440","\u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b","unrealengine","ue4","tutorial","shader","postprocessing"], "comments": 13, "likes": 45, "favorites": 84, "is_advertisement": false, "subsite_label": "unrealengine", "id": 106316, "is_wide": false, "is_ugc": true, "date": "Mon, 24 Feb 2020 17:15:40 +0300", "is_special": false }
Объявление на DTF
0
13 комментариев
Популярные
По порядку
Написать комментарий...
5

Тогда: разработчики идут на хитрости, чтобы сделать картинку красивее и реалистичнее
Сейчас: разработчики идут на хитрости, чтобы сделать картинку стрёмной

По сбажу: на самом деле круто!

Ответить
2

Жесть получается. Надо добавить в игру. :)

Ответить
0

Блин, а прикольно. Что делаешь? Есть где посмотреть-почитать?

Ответить
1

Да можно попробовать демку по ссылке. Другой, правда, уровень. Этот еще в разработке.

Ответить
1

Класс, спасибо, поиграю как время будет) и подпишусь!

Ответить
1

Есть еще примеры шейдеров? Каких-нибудь психоделичных, наркоманских))

Ответить
0

CHAMELION в анрил маркете, там кууууча пост-эффектов, есть даже ALCHOCOL и DRUG

Ответить
0

Я вроде ровно то же самое написал чуть выше х)

Ответить
1

Ооо hivemind)

Ответить
0

Да, есть такое у меня. Вот видосы с ним https://www.youtube.com/playlist?list=PLK7ZBgUUeZW3fQIHA1wMYDZ8JXc4TRkPX

Ответить
0

А каких именно нужно?
Вообще, раздавали бесплатно плагин Chameleon (мб он и бесплатно навсегда стал, не помню), вот в нём есть эффекты типа наркота/алкоголь и прочие интересные вещи)

Ответить
0

Я пошёл делать свой Doom.

Ответить
0

Супер!

Ответить

Комментарии

{ "jsPath": "/static/build/dtf.ru/specials/DeliveryCheats/js/all.min.js?v=05.02.2020", "cssPath": "/static/build/dtf.ru/specials/DeliveryCheats/styles/all.min.css?v=05.02.2020", "fontsPath": "https://fonts.googleapis.com/css?family=Roboto+Mono:400,700,700i&subset=cyrillic" }