Доброго дня!
Сегодня будем создавать материал для постобработки в стиле Borderlands.
В Place Actors находим Post Process Volume и переносим его на наш уровень. Выделяем его и в Details ищем Infinite Extent(Unbound). Напротив ставим галочку, что позволит использовать постобработку не только внутри куба, но и на весь уровень (Рис. 1)
В Content Browser создаете папку и называете как вам захочется. В ней создаем пустой материал уже известным нам способом. Затем нажимаем правой кнопкой мыши по материалу и выбираем Create Material Instance, для последующей настройки параметров без постоянного компилирования шейдеров.
Снова выделяем Post Process Volume и в поиске вбиваем Material. В Post Process Material напротив Array нажимаем на плюс и в появившейся строчке выбираем Asset reference. Нажимаем на None и находим созданный Material Instance (Рис 2)
Затем заходим в наш пустой материал и выделяем ноду со свойствами материала. Слева во вкладке Details, напротив Material Dommain, в выпадающем списке выбираем Post Process. Shading Model должен стоять на Default Lit. У ноды при этом останется только одно свойство Emissive Color (Рис. 3)
Добавляем ноду SceneTexture и в ней, во вкладке Details, напротив Scene Texture Id устанавливаем SceneDepth. Дальше вызываем ноду TextureCoordinate и зажав клавишу A, нажимаем левой кнопкой мыши на пустом месте и вызываем ноду сложения Add. TextureCoordinate подключаем к Add в пин A. Зажав клавишу M и нажав левую кнопку мыши вызываем Multiply - умножение. Соединяем SceneTexture пином InvSize в пин A Multiply. Зажав цифру 2 на клавиатуре, и нажав левую клавишу мыши, вызовем константу с двумя векторами. Выделив ее, в Details напротив R ставим 1. Подключаем константу к пину B Multiply, а его к пину B Add. Копируем SceneTexture и выходящий пин Add подключаем к Uvs скопированной ноды. Вызываем ComponentMask и в нем добавляем третий канал цвета B (Рис 4)
Выделяем все ноды, копируем и вставляем ниже. В скопированной константе меняем 1 на -1. Копируем SceneTexture и вставляем ниже. Из пина Color выводим и подключаем к ComponentMask (Рис. 5)
Дальше вызываем ноду Subtract, копируем ее и подключаем выходящий пин Mask первой конструкции в пин B первого Subtract. Также делаем со второй конструкцией и скопированной нодой Subtract. От выходящего пина Mask, что подсоединен к SceneTexture, проводим две связи в пин A первой ноды Subtract и второй. Затем оба Subtract складываем спомощью ноды Add (Рис. 6)
Выделяем две первых конструкции, копируем и вставляем под третьей. В первой константе напротив канала R ставим 0, а напротив канала G ставим 1. Во второй константе также, но напротив канала G ставим -1. Получается такая конструкция (Рис 7)
Добавляем ноду сложения Add и подключаем к ней выходящие пины Add наших 2-х конструкций. Выделяем и копируем всю нашу конструкцию и вставляем ниже. Выделяем все вставленные ноды SceneTexture и в Details напротив Scene Texture Id выбираем WorldNormal (Рис. 8)
Из ноды Add первой большой конструкции выводим пин, и создаем ноду Multiply, из нее ноду Power. Создаем 2 константы с одним параметром. Первую называем Depth MultiLine и подключаем к пину B ноды Multiply. Вторую константу называем Depth BiasLine и подключаем к пину Exp ноды Power. В этих двух константах в Details, напротив Default Value устанавливаем 1.
Во второй большой конструкции, рядом с нодой Add добавляем ноду AddComponents. Выходящий пин Add подключаем к пину f3(V3) AddComponents. Копируем конструкцию как на Рис. 9 и вставляем рядом с нодой AddComponents. Переименовываем константы в Normal MultiLine и Normal BiasLine.
Выходящий пин f3 ноды AddComponents подсоединяем к пину A ноды Multiply. Эти две конструкции соединяем нодой Max (Рис 10)
Создаем такие ноды как на Рис. 11 и подключаем к ноде Max. В ноде SceneTexture в Details выбираем PostProcessInput0. Нода под названием Color - это константа с 4 параметрами. Зажав цифру 4 на клавиатуре и нажав левой кнопкой мыши появится нода. Нажав на нее правой кнопкой мыши выбираем Convert to Parameter. И при желании переименовываем как на рисунке.
Остается подключить выходящий пин ноды Lerp к Emissive Color.
Материал для пост обработки готов (Рис. 12)
Теперь применяем и сохраняем наш материал. Заходим в MaterialInstance и устанавливаем нужные параметры (Рис. 13)
Подпишись Поделись Лайкни