21

Godot путь новичка. Шейдер ч.2

Добрый вечер, мои дорогие подписчики. Это будет продолжение поста Godot путь новичка. Первый Enemy и первый Шейдер


Смотрел, как сын делал задание по прошлому посту, понял, что ему например, совсем не все понятно было. Постараюсь разъяснить в меру сил, ну и немножко доработать шейдер, в конце поста получится, примерно, следующая анимация.

Ну во первых, что такое UV - это развертка, по сути просто преобразование координат с трехмерного объекта в соответствующие координаты на текстуре, поскольку спрайт это двумерный объект, то все ещё проще и развертка соответствует самому спрайту, разве что координаты в UV идут от 0.0 до 1.0.
Очень наглядно демонстрируется это в туториалах Godot.

Ну добавим в шейдере ранее написанном, одну строчечку для наглядности ещё разок.

Вот ну думаю из этого уже можно догадаться, что белый цвет это значения всех каналов равны 1, а черный это когда цветов нет и значения всех каналов равны 0. Серый это смешение всех каналов в равной пропорции, чем ближе к 1 тем ярче цвет серого. Что это дает и зачем нужно, а так же какое отношение имеет к тому, что пиксели начинали пропадать. Как говорил, в прошлом посте функция random, дает случайные значения от 0.0 до 1.0, то есть по сути разные значения серого. Применим этот шум, к текущему спрайту, чтобы было понятнее о чем говорю.

Ну и собственно в прошлом посте увеличивая прогресс, сравнивали значение прогресса с этой невидимой картой шума и уже уменьшали альфу до нуля. Вот надеюсь стало понятнее, что к чему, да я сам новичок ещё в этих всех вещах, так что может не очень толково объясняю, но чему научился за пару месяцев, тем и пытаюсь поделиться, как просили)

Но просто рандом это дискретный набор случайностей, потому и выглядит как не пойми чего итоговый результат. Шум Перлина же в свою очередь, имеет градиентную основу, что позволяет делать более плавные и крутые штуки. https://ru.wikipedia.org/wiki/Шум_Перлина
вот гуглите про шум Перлина на здоровье, в детали алгоритма у меня влезать большого желания нет пока, но попользоваться им очень даже можно и нужно.

Смело топаем на godotshaders и в снипетах копируем шум перлина
https://godotshaders.com/snippet/2d-noise/

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

на самом деле, шейдер полностью готов к использованию и даст результат такой же, как и в видяшке из начала поста. Но покажу, что именно рисует функция noise в зависимости от параметра density.

В принципе готов даже к неконструктивной критике, ибо влезаю в вещи которые сам не до конца ещё понимаю. Но работает же, учел ошибки прошлого поста, немножко разъяснил. К следующему посту, постараюсь максимально разобрать непонимание в этом, а заодно погляжу, как сын будет делать, чтобы самое непонятное высмотреть так сказать.
В любом случае, визуально эффект очень приятный, в следующем посте сделаю цветную линию, которая будет появляться перед исчезновением пикселя ну и дающая тот самый чудесный эффект, типа спрайтик плавится перед исчезновением. В целом думаю можете и сами догадаться, что надо просто параметр прогресс сравнивать не только с альфой, а добавить ещё один, чтобы разброс значений был чуть больше. Условно, если прогресс, 0.3, то все что меньше 0.3 то исчезает, а все что между 0.3 и 0.5, меняет цвет. Это и даст тот самый эффект, а можно по краешку пустить черную каемку, линию сделать красненькую и запилить эффект сгорающей бумаги. Ну это унесло меня опять, ладно поглядим что дальше получится.
Спасибо за внимание, надеюсь это разъяснит ещё чуть больше и вы начнете пилить крутые шейдеры и делиться своим практическим опытом в постах, а те кто уже опытные, те не будут писать, что все гавно и ты все делаешь не так. А подробненько изложат, как делать правильно, но не взрывая при этом мозг сложными материями.

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества