Обучающий стрим, который я проводил для Стаса с канала "Houdini по-русски": / houdinirus
Делюсь опытом оптимизаций графики для мобилок.
Первая часть, запись от 14.06.2022
Корректировки (актуально на 10.03.2024):
01:38:40 Таки можно врубить эти опции галкой Allow Material Override, но для PBR-материалов это делается вместе с выбором metallic/specular, что, опять же, грузит билд лишними вариантами.
01:39:53 Аргумент снят: условную компиляцию делать можно - я тогда просто не разобрался, где создаётся keyword-параметр... но нельзя сделать свой кастомный property drawer, который автоматически задаёт кейворд - например, если вставлена текстура.
Ссылки:
Прошлый стрим с теорией графического пайплайна (первое видео плейлиста по шейдерам): • [Unity Shaders] 0. Гра...
• Android graphics traci...
• What's new in Mali Off...
Также:
Playlist: Mali GPU Training - • Mali GPU Training
Unity Shader Performance: How to Quickly Measure the GPU Cycles Your Shaders Take - • Unity Shader Performan...
Тайминги:
00:00:00 Привет
00:06:51 Bottlenecks
00:10:13 ▶ Stall vs overhead
00:16:03 ▶ Как считать бюджеты
00:21:13 ▶ Overhead от вертексов
00:26:46 Profiling / Debugging
00:29:15 ▶ Внешний дебаггер - RenderDoc
00:34:18 Batching
00:35:13 ▶ Static Batching
00:37:29 ▶ Set Pass vs Draw Call
00:39:41 ▶ Dynamic Batching
00:40:18 ▶ SRP Batching
00:46:24 ▶ GPU instancing
00:50:37 ▶ ▶ Vertex overhead при инстансинге
00:54:47 ▶ Непредсказуемость Dynamic Batching
00:58:45 ▶ Самодельный батчинг (вручную)
01:02:51 ▶ Что ломает батчинг
01:03:58 ▶ ▶ Много текстур ➡ Атласинг
01:05:02 ▶ ▶ Transparent Hell
01:11:30 ▶ ▶ Атласинг для Transparent
01:16:06 ▶ ▶ Transparent Hell: решение?
01:17:32 ▶ ▶ Submeshes
01:21:43 ▶ ▶ Lightmaps
01:24:49 ▶ ▶ Forward vs Deferred: multiple lights
01:27:24 ▶ ▶ Как работает свет в Deferred
01:29:46 ▶ UI / Sprites и батчинг
01:33:19 ShaderGraph: сгенерённый код
01:35:11 ▶ НОЛЬ оптимизаций
01:38:24 ▶ Параметры для Pass State
01:39:53 ▶ Условная компиляция
01:41:46 ▶ Как использовать ShaderGraph МОЖНО
01:44:58 ▶ Всё - per-fragment
01:46:17 Noise в шейдере
01:50:44 ▶ sin/cos noise
01:53:05 ▶ Blended noise
01:56:20 Отличия SRP
01:58:38 ▶ Актуальный HLSL
02:02:28 ▶ Sprite atlas variants
02:05:38 Render Feature / Post-FX
02:08:13 ▶ Command buffer
02:10:26 ▶ Render Texture
02:11:51 ▶ Проблема Dual Blit
02:17:25 ▶ Render Feature vs Post-Process stack
02:21:34 ▶ Multiple Render Targets (MRT)
02:27:00 ▶ ▶ Deus Ex: HR - кастомные маски в MRT (нет)
02:31:37 Профайлинг на мобилках - MGD (Mali Graphics Debugger / Analyzer)
02:40:57 ▶ Mali Offline Compiler
02:50:29 ▶ ▶ float vs half
02:56:48 Вопросы из чата
10 сен 2024