Как собрать toon-шейдер для VR в Unity URP
В Shmackle VR базовые Unlit-шейдеры давали плоскую картинку и нестабильные 70 FPS на Quest 2. Автор собрал систему из трёх частей: ступенчатого света, экранных контуров и краевого освещения, которое отделяет силуэт от фона.
Свет квантуется по скалярному произведению нормали и направления на источник: плавный градиент превращается в несколько уровней. Для дальних объектов расчёт переносится с пикселей на вершины по уровню детализации. Контуры ищутся фильтром Собеля в буферах глубины и нормалей, поэтому отдельная геометрия не нужна.
В проекте автора частота закрепилась на 90 FPS, вызовы отрисовки сократились с 340+ до 180, а варианты шейдера с 12 до 4. Это ориентир, а не гарантия: архитектуру и код прохода контуров стоит проверять профилированием прямо на целевом шлеме.
Post #2107
320
