Створення крижаних шейдерів

377

Бартломей Галас (Bartłomiej Galas) з NatureManufacture розповів як він створює деталізовані шейдери льоду.

Шейдер льоду

Коли я грав в Dragon Age Inquisition, під час зимової сцени я побачив на озері лід і він був чудовий, по більшій мірі із-за глибини льоду, таке відчуття, що по льоду був реальний проміжок, а не просто плоска текстура (і я говорю не тільки про тріщинах). Коли я подивився на нього, я зрозумів принцип і вирішив створити щось схоже. Після кількох тижнів роботи (спочатку в Unity, потім в Unreal) шейдер був завершений. Чесно кажучи, я робив його скоріше для особистого задоволення, ніж з метою створення запланованого продукту. Це лише маленький проект, який я зробив у процесі створення абсолютно іншого.

Створення крижаних шейдерів

Складності

Amplify Shader Editor дає величезну можливість тестувати і робити швидкі інтерполяції шейдерів. Він працює приблизно так само, як і інструменти для шейдерів від Unreal, але містить трохи менше функцій, хоча це змінюється з кожним днем, оскільки вони додають все нові і нові. Це просто чудово. Мені подобається співпрацювати з їх командою для виправлень та змін у їх системі. Вони завжди додають щось круте, або фиксят за пару днів якщо щось працює не як слід.

Елементи

Я зробив кілька різних типів льоду. Це змусило мене створити інші матеріали в Unreal і кілька інших шейдерів у Unity. В цілому конструкція досить проста, але деякі карти можуть поводитися по-різному щодо сирого і старого льоду. Мені довелося створити різні функції для карт нормалей щоб отримати такий ефект:

Створення крижаних шейдерів

Шейдери включають в себе тріщини з ефектом глибини (хоча я б сказав що у всіх текстур такий ефект), як наприклад бульбашки або замерзла вода під поверхнею. Це головна суть, яка дає цьому льоду ідею простору. Звичайно у нього є прозорість і затемнення кордонів, так що по суті він веде себе як вода. Мілину і кольору для різних рівнів глибини також присутні. Безумовно лід відображає, спотворює об’єкти під водою, що в загальному всі ці ефекти, які зібрані в одному місці бібліотекою з 60 текстур, дають величезну можливість модифікувати цей лід відповідно до особистих цілей. Ми зробили матеріали для моделей (тверді) і для озер (типи води).

Створення крижаних шейдерів

Організація шейдера

У шейдере/матеріалах ми можемо змінювати: глибину води, мілину, колір глибини, перекручення, відображення, глибину льоду, інтенсивність (2 рівня), тріщини і багато іншого.

Я завжди роблю свої шейдери складаються з модулів, щоб з легкістю копіювати і вставляти деякі вже готові функції в інший шейдер для отримання схожого ефекту. Це дає мені можливість створювати їх швидше. Наприклад шейдери павутини для мене дуже страшні, так що я намагався зробити все акуратно і по порядку.

Де його можна використовувати?

Шейдер може бути використаний для замерзлих озер і річок на різному етапі (сирої або старий лід). Він також хороший для моделей в крижаних печерах, або як бурульок.

Створення крижаних шейдерів

Пак доступний на движках Unity і Unreal, ось посилання:

Unity

Unreal Engine

Джерело: 80 lvl

Переклав: Гузь Богдан ([email protected])