### shader pass и shader variant - это одно и то же? **Коротко — нет, это разные вещи:** - **Shader Pass (проход шейдера)** — отдельный блок `Pass { … }` внутри файла шейдера, в котором описаны все GPU-состояния и программы (VS/PS). Каждый активный проход требует отдельного вызова `SetPass`, поэтому два пасса ⇒ минимум два переключения рендер-состояния за кадр. - **Shader Variant (вариант шейдера)** — конкретная скомпилированная версия _одного_ pass’а, полученная из него путём подстановки значений ключевых слов (`#pragma multi_compile` / `shader_feature`). Варианты отличаются только тем, какие участки кода включены после препроцессора; движок выбирает нужный вариант, но сам pass остаётся тем же. Итого: **Pass определяет структуру рендеринга, Variant — параметризованную сборку этого pass’а.** Несколько вариантов могут выполняться в одном Pass-switch’е, пока не меняется материал, а разные Pass’ы всегда увеличивают счётчик `SetPass Calls`.