Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
#Круги добра
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Погрузись в Свидания с отличиями — романтическую игру «поиск отличий», где ты встречаешь девушек, наслаждаешься захватывающими историями и планируешь новые свидания. Множество уровней и очаровательные спутницы ждут тебя!

Свидания с отличиями

Казуальные, Головоломки, Новеллы

Играть

Топ прошлой недели

  • SpongeGod SpongeGod 1 пост
  • Uncleyogurt007 Uncleyogurt007 9 постов
  • ZaTaS ZaTaS 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
12
rikshaspal
rikshaspal
10 месяцев назад
Лига Разработчиков Видеоигр
Серия Ретро-рендер мечты

Создание шейдера для Unity с эффектом дрожания вершин в стиле PlayStation 1⁠⁠

Создание шейдера для Unity  с эффектом дрожания вершин в стиле PlayStation 1 Unity, Шейдеры, Разработка, Игры, Демейк, Олдскул, Кривые руки, Gamedev, Гифка, Длиннопост

Дрожь Вершин. Работает на Unity 6.

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

Как обычно пара вступительных слов: для ЛЛ ссылка на гитхаб в конце и мой дисклеймер - я ни разу не программист шейдеров, и зачастую понятия не имею, что делаю и зачем, но методом проб и ошибок это начинает работать.

В предыдущей статье мы реализовали довольно неплохой эффект старого рендера из ранних 90х. Однако, ощущения от него будут неполными, если мы не введем другие характерные для того времени ограничения. Нет-нет, 10 фпс и имитацию слабых компьютеров вводить не будем, но постараемся ввести один значимый для ретро-рендера эффект. Возможно он не является частью общей парадигмы, особенно в области рендеринга на РС, но добавит особую атмосферу. Речь идет, конечно же, об эффекте дрожания вершин, характерный для Playstation 1.

Эффект «дрожания вершин» в PlayStation 1, был следствием ограниченной точности расчетов, использовавшихся на этом железе. Поскольку PlayStation 1 использовала фиксированную точку для вычисления координат вершин, это приводило к визуальным артефактам, когда позиции вершин «дрожали» при перемещении камеры или объектов. Мы, как и в прошлый раз, попробуем воссоздать данный эффект только с помощью шейдера в Unity, без использования дополнительных скриптов на C#.

Основная идея простая — нужно будет обойти все доступные шейдеру вершины и округлить их позиции относительно проекционных координат .

Основы шейдера

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

Создание шейдера для Unity  с эффектом дрожания вершин в стиле PlayStation 1 Unity, Шейдеры, Разработка, Игры, Демейк, Олдскул, Кривые руки, Gamedev, Гифка, Длиннопост

Здесь мы задаём два параметра для будущего материала: _MainTex — текстура и _JitterAmount — слайдер для точной настройки силы эффекта дрожания.

Еще нам, конечно же, понадобятся две структуры:

  • appdata — данные вершин, передаваемые в вершинный шейдер из Unity

  • v2f — данные, передаваемые из вершинного шейдера в пиксельный шейдер и, в конечном итоге, в графический конвейер

Добавим функцию округления позиций вершин. Мы применяем округление только к clipPos.xy, то есть к координатам, которые уже находятся в проекционных координатах (после всех трансформаций объекта). Это даст эффект «дрожания», как на PlayStation 1, когда камера или объект движется. Параметр clipPos будет передаваться в функцию, как и параметр jitterAmount, который позволяет контролировать, насколько сильным будет эффект дрожания.

Создание шейдера для Unity  с эффектом дрожания вершин в стиле PlayStation 1 Unity, Шейдеры, Разработка, Игры, Демейк, Олдскул, Кривые руки, Gamedev, Гифка, Длиннопост

Округление в clip space означает, что каждая вершина будет «привязана» к определенным фиксированным позициям на экране. При движении камеры или объекта из-за этого квантования вершины будут перескакивать с одного положения на другое, создавая желаемый эффект «дрожания».

Начинаем колдовать

Пишем «вершинный» блок шейдера.

Создание шейдера для Unity  с эффектом дрожания вершин в стиле PlayStation 1 Unity, Шейдеры, Разработка, Игры, Демейк, Олдскул, Кривые руки, Gamedev, Гифка, Длиннопост

Здесь мы сначала получаем clipPos функцией UnityObjectToClipPos для нашей вершины. Затем получаем новую позицию вершины через вызов написанной ранее функции JitterVertex, которой передаем полученный clipPos и наш параметр _JitterAmount из инспектора.
Возвращаем новые данные вершины. UV-координаты оставляем без изменений.

Параметр _JitterAmount нужно держать в пределах от 0.01 до 0.1, этого достаточно для заметного эффекта. Однако, никто не запрещает эксперименты — все ваших руках.

Осталось только добавить фрагментную (пиксельную) часть, в которой мы просто отдаем текстуру, как есть.

Создание шейдера для Unity  с эффектом дрожания вершин в стиле PlayStation 1 Unity, Шейдеры, Разработка, Игры, Демейк, Олдскул, Кривые руки, Gamedev, Гифка, Длиннопост

Полный код шейдера лучше посмотреть в репозитории. Выкладывать картинку сюда было бы издевательством )

Настройка текстуры

Шейдер использует стандартную текстуру, которую можно задать в Unity через инспектор. Текстура рендерится через стандартную функцию tex2D, которая отображает текстуру по UV-координатам, переданным из вершинного шейдера. С помощью бегунка _JitterAmount плавно регулируем эффект дрожания. В зависимости от проекта, свойства самой текстуры настраиваются индивидуально, но стилистически, конечно же, желательно выключить фильтрацию и использовать текстуры с небольшим разрешением, вроде 64х64 или 128х128.

Создание шейдера для Unity  с эффектом дрожания вершин в стиле PlayStation 1 Unity, Шейдеры, Разработка, Игры, Демейк, Олдскул, Кривые руки, Gamedev, Гифка, Длиннопост

На будущее

По итогу, мы имеем простой, но эффективный шейдер для добавления эффекта дрожания, которые совместно с шейдером олдскульного рендеринга из прошлой статьи даст нам интересный ламповый эффект ретро-гейминга. Однако это далеко не все.

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

Ссылка на github: https://github.com/rikovmike/YetAnotherVertexJitter

Показать полностью 5
[моё] Unity Шейдеры Разработка Игры Демейк Олдскул Кривые руки Gamedev Гифка Длиннопост
0
12
CyberCook
11 месяцев назад
Лига Разработчиков Видеоигр

Раздача ассета для постобработки Toon Detailer: Cavity & Contours на asset store unity⁠⁠

UPD:

Правильная ссылка : ЗАБРАТЬ К сожалению поздно заметил ошибку.

Toon Detailer: Cavity & Contours

Раздача ассета для постобработки Toon Detailer: Cavity & Contours на asset store unity Разработка, Gamedev, Раздача, Unity, Unity3D, Инди, Инди игра, Asset store, Asset, Шейдеры, Постобработка, Видео, YouTube, Длиннопост
Раздача ассета для постобработки Toon Detailer: Cavity & Contours на asset store unity Разработка, Gamedev, Раздача, Unity, Unity3D, Инди, Инди игра, Asset store, Asset, Шейдеры, Постобработка, Видео, YouTube, Длиннопост

ЗАБРАТЬ

Код : INABSTUDIO

Улучшите внешний вид своей игры с помощью «Toon Detailer». Сделайте края яркими, покажите вмятины и подчеркните изгибы. Идеально подходит для оживления низко полигональной, мультяшной или стилизованной эстетики.

Описание

Присоединяйтесь к Discord для получения обновлений, чтобы сообщить о проблемах или просто поздороваться!

Перед покупкой ознакомьтесь с документацией.

Особенности:

  • Простота использования: просто прикрепите «Toon Detailer» к камере или конвейеру рендеринга и начните настраивать параметры.

  • Затухание глубины: позвольте эффекту постепенно затухать на удаленных объектах, гарантируя, что все будет выглядеть гладко во всех сценариях.

  • Маскирование: используйте маски, чтобы легко применить эффект к определенным областям или объектам в вашей сцене или исключить некоторые из них.

  • Несколько свойств: настройте различные контуры, полости и другие параметры, чтобы добиться желаемого вида.

Совместимость:

  • Поддерживает URP и встроенные версии 2021.3 и выше.

  • Поддержка Unity 6! (см. ограничения ниже)

  • Для работы демонстрационных сцен требуется встроенный Shader Graph.

Ограничения:

  • В Unity 6 (URP) отложенный рендеринг поддерживается не полностью. (пока!) Подробнее см. в документации.

  • Не поддерживает VR, webGL

ЗАБРАТЬ

Код : INABSTUDIO

Показать полностью 2
Разработка Gamedev Раздача Unity Unity3D Инди Инди игра Asset store Asset Шейдеры Постобработка Видео YouTube Длиннопост
2
15
AndrewAlexArt
AndrewAlexArt
1 год назад
Лига Разработчиков Видеоигр

Самописный SSS шейдер для Unity URP⁠⁠

Код кастом ноды и сами ноды в Телеге - 🎯 Cod3Art по тегу #ShaderTips

[моё] Unity Инди Gamedev Разработка Шейдеры Видео Без звука
3
4
aks2dio
aks2dio
1 год назад

Про изучение шейдеров⁠⁠

Интересная идея для изучения шейдеров: делать не какой-то визуальный эффект, а повторить логику работы другого шейдера, например стандартного URP/Lit, как в прикреплённом видео 📺

Так можно прочувствовать, что приходится сделать, чтобы получить определённую опцию ⚙️, а не определённую картинку 🖼. Что с технической точки зрения проще для понимания и запоминания 🧠

Для меня шейдера - не профильная деятельность, делать их приходится не часто. Поэтому визуальный язык у меня не сформировался. Я понимаю, как работает рендер и какая математика крутится внутри 📈. Если есть ТЗ с техническими инструкциями – я сделаю. "Добавить шум с такими-то настройками", например.

Но если нужно "сделать вот такой-же эффект магнитного поля" 🧲 – это уже сложнее, т.к. нужно уметь декодировать визуал на составные математические операции 👨‍🏫 Здесь часто работа ведётся "методом тыка" 👉 и после завершённого эффекта в голове вообще не остаётся ничего 🙅‍♂️ Через условную неделю перерыва повторить этот опыт уже не удаётся и приходится начинать RnD сначала 🔍

На мой взгляд, если нет планов становится программистом графики, и душа не лежит к разработке визуала, то уроки по типу "сегодня мы научимся делать шейдер для молнии в воде" ⚡️ программистам понимания не добавят. А вот то, как делать определённые настройки ⚙️ или что можно удалить из вашего шейдера, чтобы он работал порезвее 🏎 , поможет лучше понять это ремесло 🤓

Показать полностью
[моё] Unity Gamedev Разработка Шейдеры Графика Игры Обучение Блог Видео YouTube Рекомендации
0
gemerel132
gemerel132
1 год назад

Красота Minecraft с модами)⁠⁠

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

Красота Minecraft с модами) Сервер, Minecraft, Видеоигра, Моды, Скриншот, Фотография, Шейдеры, Industrial Craft 2

Те кто когда-то играл с модами с кем-то пришлите скриншоты.

Сервер Minecraft Видеоигра Моды Скриншот Фотография Шейдеры Industrial Craft 2
0
5
Boogernator
Boogernator
1 год назад
Свидетели Godot'овы

Godot. Градиентные переливы)⁠⁠

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

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


Может не все хорошо получилось, вернусь ещё к этой теме, можно и партиклами добиться примерно такого-же эффекта. Посмотрим ещё.

Спасибо, за внимание.

Показать полностью 1
[моё] Gamedev Инди Godot Engine Godot VFX Шейдеры Видео Без звука Вертикальное видео YouTube
0
2
svLimones
svLimones
1 год назад
Gliitch Art
Серия [glitch_art]

Неустойчивость Тьюринга. Реакция Диффузии⁠⁠

Красота нелинейной динамического хаоса.

Исходники могу выложить через неделю, слишком устарели.

https://studme.org/189362/matematika_himiya_fizik/struktury_...

https://www.techinsider.ru/news/news-1620237-obyyasnit-kak-o...

https://elementy.ru/novosti_nauki/431953/Idei_Alana_Tyuringa...

https://t.me/art_glitch

[моё] Unity Шейдеры Реакция Алан Тьюринг Математика Графика Видео YouTube Telegram (ссылка)
3
4
BIanF
1 год назад
Лига Разработчиков Видеоигр

RGB подсветка наше всё⁠⁠

Захотелось вот поделиться шейдерной анимацией игровой клавиатуры, которую делал пару дней. (Руками без всяких там шейдерграфов.) Кстати, настоящие аниме-пикабушники могут узнать кружочки с монитора.

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

Затем, перешёл на глобальные координаты экрана и до меня дошло, что анимация стала "круглой", хотя клавиатура наклонена. Исправил обычным костылём: вернулся к относительным координатам и просто сделал текстуру подсветки квадратной вместо того, чтобы париться с умножением матриц.

Узнали кружочки?
Всего голосов:
Показать полностью 1 1
Опрос Unity3D Unity Шейдеры Gamedev Инди Инди игра Разработка Клавиатура Анимация Игровая клавиатура Кликер Визуальная новелла Мобильные игры Видео Без звука Длиннопост
0
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии