Найти тему

Как создать шейдер Палантира в UE4

Оглавление

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

Весь проект шейдера можно скачать по ссылке в конце статьи - вы можете использовать его в любых целях.
Шейдер в UE4. Если создать Material Instance, станет возможным налету изменять параметры шейдера и сразу же видеть результат.
Шейдер в UE4. Если создать Material Instance, станет возможным налету изменять параметры шейдера и сразу же видеть результат.

Прежде всего, надо понимать, что несмотря на визуальную сложность, шейдер состоит из простейших слоёв, скомбинированных вместе. Шейдер содержит слои:

  • Внутреннее сияние - Inner Glow
  • Пульсирующий внутренний туман - Pulsing Fog
  • Два слоя тумана - Fog Front и Fog Background
  • Два слоя искр - Sparks Front и Front Back
  • Три корректирующих слоя типа "Fresnel"
  • Сияние по краям - Edge Glow
Структура шейдера в UE4. Всё очень просто!
Структура шейдера в UE4. Всё очень просто!

Внутреннее сияние - Inner Glow

Данный слой представляет собой простейшую функцию Fresnel. Параметры функции подобраны так, чтобы по центру сферы была видна светящаяся "изюминка".

Внутреннее сияние. Обычный 1-Fresnel
Внутреннее сияние. Обычный 1-Fresnel

Пульсирующий туман - Pulsing Fog

Пульсирующий туман сделан с помощь простейшей текстуры, сгенерённой в Photoshop. Текстура умножается на обычный синус - его аргументом является время.

Пульсирующий туман. Обратите внимание на узел Add, сразу после синуса. Он нужен, чтобы яркость слоя была только позитивной.
Пульсирующий туман. Обратите внимание на узел Add, сразу после синуса. Он нужен, чтобы яркость слоя была только позитивной.

Далее пульсирующий туман "умножается" на внутреннее свечение. Что из этого получается - на картинке ниже.

Пульсирующий туман, "умноженный" на внутреннее свечение
Пульсирующий туман, "умноженный" на внутреннее свечение

Fog Front и Fog Background

Как и всё, что есть в шейдере - это очень простые слои. В каждом слое использованы 2 бесшовные текстуры типа "Clouds", сгенерированные в Фотошоп. Для семплинга каждой из текстур используется Panner, причём паннеры имеют разную скорость. Текстуры перемножаются сначала друг на друга, а затем на цвет.

Структура слоёв тумана в UE4
Структура слоёв тумана в UE4

Результаты из обоих "слоёв тумана" далее просто суммируются. В результате материал получается глубину.

Результат суммирования слоёв. В динамике всё выглядит гораздо красивее.
Результат суммирования слоёв. В динамике всё выглядит гораздо красивее.

Sparks Front и Front Back

Эти два слоя подобны предыдущим двум, но их цель - создать искры, движущиеся внутри объекта.

Структура слоёв, отвечающих за искры
Структура слоёв, отвечающих за искры

Единственная особенность, которую можно выделить в этих слоях: для выборки текстур (текстура с набором точек, сгенерированная в Фотошоп) используется комбинация узла Panner и простейшей карты нормалей - благодаря этому искры при движении немного колыхаются. Также из слоя "Sparks Back" вычитается один из слоёв тумана - таким образом достигается эффект, будто бы искры скрываются слоем тумана.

Как и в случае тумана, два слоя искр смешиваются друг с другом обычным сложением.

Часть искр движется по поверхности, а часть - в глубине.
Часть искр движется по поверхности, а часть - в глубине.

Корректирующие слои типа "Fresnel"

Корректирующие слои, типа "1-Fresnel" используются для уменьшения светимости всех ранее созданных слоёв. Это даёт возможность уменьшить силу искр и тумана по краям шара.

Умножаем "Туман" на "1-Френель"
Умножаем "Туман" на "1-Френель"

Edge Glow

Данный слой добавляется самым последним. Функция Fresnel использована, чтобы дать объекту свечение по краям.

Свечение по краям. Опять Fresnel.
Свечение по краям. Опять Fresnel.

Если визуализировать этот слой, мы увидим изображение как на картинке ниже.

Свечение по краям. Симпатично.
Свечение по краям. Симпатично.

Результат

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

Результат лучше всего смотрится в динамике.
Результат лучше всего смотрится в динамике.

Проект, содержащий данный материал можно загрузить по ссылке:

https://drive.google.com/open?id=17bB6eLEjy-Gz-kXCQmkaGucWmBpSG5ix

Спасибо, что дочитали материал до конца. Надеюсь, вам понравился этот небольшой урок.

Если вы создаёте проекты на движке UE4, загляните на мою страницу на UE Marketplace. Возможно, какой-то из моих проектов придётся вам по душе.