Небольшой разбор эффекта трейла, созданного с помощью компонента Trail renderer и нодового редактора шейдеров Amplify Shader Editor. В дальнейшем такой трейл можно использовать как часть более комплексного эффекта, например для магических снарядов.
Сразу оговорюсь - я не являюсь профессиональным художником по спецэффектам и все нижеизложенное является моей интерпретацией знаний со всего интернета. Как следствие, многие вещи могут быть неоптимальны или (возможно!) ошибочны. Спасибо за понимание:)
Необходимые ресурсы
Главная текстура - бесшовная по оси X, это основное требование. Остальное зависит от вашей идеи.
Второстепенные текстуры - различные шумы, маски и т.д. В моем варианте шейдера не являются обязательными, так как я использую процедурные ноды из Amplify Shader Editor (но возможность использовать текстуры оставил, просто спрятал за переключателем).
Шейдер
Для удобства понимания, я разбил шейдер на несколько модулей.
UV+Time
Модуль с переменными, которые будут использоваться в остальных частях шейдера, например для скроллинга текстур или для создания градиентов.
Mask
Как понятно из названия, модуль используется для мягкого отсечения конечного результата от краев.
Flow
Модуль для задания искажений с помощью текстуры или генератора шума. Так же задает движение основной текстуры. Искажение я использую в маленьких дозах, иначе слишком уж результат рябит.
Dissolve
Модуль, создающий движение с помощью растворения правой части основной текстуры.
Комментарий недоступен
Ну можно получить и бесплатно ( ͡° ͜ʖ ͡°)
А трейл хороший) Пробуй дальше
А вы не думали что это так медленно едет из-за не возможности сделать быстро и не баговано для всех. Ведь если так по судить, то ase по сути не нативка, и если допустим разраб решит забить на продукт свой. Разработчики останутся у разбитого корыта. И предъявить будет некому, что ваш проект сломался. Это просто мои мысли как разработчика.
Вообще амплифай шейдеры не идут в релиз в нормальном проекте. В них можно набросать так называемое превью работы шейдера, а потом тех артист уже переписывает начисто подобный функционал, который в 10 раз легче, оптимизирован и работает именно в этом проекте.
Старая версия-то останется для старой юнити. А то, что сами юнитеки вместо развития своих же инструментов создают еще больше недоделанных инструментов - это вас не смущает?)
Юнитологи просто ленивые жопы. И рукожопы. Что там, уже можно уже в шейдер графе без кастом ноды направление дирекшн лайта взять? Позорище блин
Я не силен в этом, но разве это не в рамках жизненных циклов проектов. Умер Максим - да и хуй с ним. В рамках проекта устраивает всех - ок. Разраб забил - функционал для текущих проектов всех устраивал. Ничего страшного не стряслось.
процедурные нойзы запредельно редко используются в реальных проектах, должно быть очень весомое обоснование для этого
зачем делать маску для отсечения краёв? в трейлах есть альфа, в текстурах нет края, зачем дублировать функционал?
Шейдер создан для экспериментов. Я не уверен, что шейдер из редактора вообще можно использовать в, так сказать, боевой обстановке. Но при необходимости удалить лишние ноды можно за несколько секунд.
Можно) Тут гуляли слитые исходники Гвинта - там вот как раз есть шейдера из Shader Forge. Идеальных проектов нет и не будет
Зависит от типа проекта - в консолях/пк вполне можно встретить генерированный перлин. Вопрос в том, что эффекты требует более художественного подхода и почти всегда проще нарисовать текстуру. Растровая маска не помешает - альфа интерполируется по точкам и иногда проще не зависеть от них и использовать текстуру
Не используют в норм проектах генерацию шума в рантайме практически никогда, за супер редким исключением, всё пребейкнутое
А можно скрин, где понятно, как соединены Flow, Dissolve, Mask в целый шейдер? А то я с шейдерами на вы, но всегда стараюсь разобраться, что и как работает :).
Все просто перемножается.
Т.е. макароны не надо тянуть от RegisterLocalVar? Все и так работает?
Да, в этом все удобство. Как минимум, для читаемости.
Спасибо! Попробую на досуге поделать трейлы. Давно такую штуку искал.
Это статья или перевод? К чему это я. Не совсем понимаю почему, при том что уже давно в релизе Shader Graph досих пор используется многими не нативное решение в виде Amplify ? В чем профит? удобство? понятность?
P.S. я анрильщик, но Unity когда то был основным инструментом.
Комментарий недоступен
в юнити всегда, все через попу, тут даже нет нормальных хоткеев типа U O 1 2 3 4, и для плейсмента ноду нужно лишних 2 клика минимум, так еще и названия нод тупые: я хочу свои break и append
Я ase купил за 32$ попал под скидку. Ase ни к чему не привязывается. Он генерит обычный hlsl, а визуализацию нод кодирует в коменте под кодом шейдера. Т.е. по сути выдает обычный шейдер. Сейчас ase может гораздо больше чем стандартный зародыш редактора шейдеров, который с инстансами местами или косячит или не умеет. Причем я нашел в ase багу, не применялись инстансируемые параметры в пиксельном шейдере. Не хватало пары строчек для инициализации обращения к инстанс буферу. Поправили быстро и выкатили обнову. Самые свежие обновы можно забирать у них на сайте, а не в маркете, просто указываешь номер оплаченного заказа из маркета и держи. Меня пока устраивает.
Есть канал чувака, который профессионально занимается Unity VFX. Он на английском, но думаю при желании можно понять что к чему.
https://www.youtube.com/channel/UC5c5JgFyiFXKXCVRh2DsRJg
Комментарий недоступен
все норм кроме реальтаймового Вороного