Unity: впихнуть невпихуемое [Оптимизация графики - часть 1]

Обучающий стрим, который я проводил для Стаса с канала "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 tracing with Graphic...      • What's new in Mali Offline Compiler 7.2   Также: Playlist: Mali GPU Training -    • Mali GPU Training   Unity Shader Performance: How to Quickly Measure the GPU Cycles Your Shaders Take -    • Unity Shader Performance: How to Quic...   Тайминги: 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 Вопросы из чата

Смотрите также