Спустя год с лишним - откопал невыложенный ранее четвёртый стрим по шейдерам, который стал заключительным (было слишком мало активности в дискорде).
На этот раз - делаем шейдерные партиклы, которые позволят с лёгкостью отображать галактику с несколькими десятками тысяч звёзд даже на мобилках.
Запись от 09.05.2020
Discord-сервак: / discord
GitHub: https://github.com/Lex-DRL/unity-shad...
Тайминги:
00:00:00 Вступление
00:03:18 Болванка шейдера
00:03:41 Зачем шейдерам C#-скрипты
00:06:38 Блок Category
00:09:30 Блок CGINCLUDE
00:10:49 Остальная часть ShaderLab
00:14:51 Очередь рендера
00:17:12 Болванка готова
00:17:57 Обзор задачи
00:23:40 Как сделать из квада спрайт
00:27:39 Заминка
00:29:10 "Надуваем" спрайт из точки по UV-шкам
00:33:11 "Надувать" надо по осям камеры
00:34:27 Как найти вектор взгляда
00:35:52 Функция, выдающая 3D-оффсеты в world'е
00:38:10 Заминка
00:38:59 Строим матрицу, превращающую 2D-оффсет в 3D
00:42:17 Где найти built-in переменные
00:43:00 Пространство камеры
00:46:50 Достаём оси из матрицы камеры через swizzle
00:50:15 Заминка (не та матрица)
00:52:00 Оси камеры + #define
00:53:36 Макросы
00:56:17 Заминка
00:58:00 Таки получили оси, строим матрицу
01:04:12 TA-DA! Теперь - оптимизируем
01:06:19 git
01:07:37 Пора брать реальный меш
01:09:04 Тестовый эффект - должен нравиться
01:12:45 Как сделан тестовый меш
01:21:37 Импорт меша
01:23:59 Обновляем шейдер под реальный меш
01:25:19 Заминка (дебаг, вечная беда со скейлом)
01:37:15 ОЗАРЕНИЕ
01:38:32 АЛЛИЛУЙЯ!
01:39:19 Текстура - Alpha8
01:40:54 Пора партиклы раскрашивать
01:42:45 Заминка (обновляем текстуру)
01:42:45 HDR-текстура в 8 бит через gamma-space
01:47:11 Раскодируем текстуру, цвет - из меша
01:48:50 Заминка (дебаг)
01:50:05 Да будет цвет! Надо цветнее...
01:53:47 ВОООТ!
01:54:43 Заминка (текстура - детальнее, glow - больше)
01:55:58 РЕЗУЛЬТАТ. Что ещё можно сделать.
01:57:54 А если ЕЩЁ больше партиклов?
01:59:47 Твикать можно бесконечно