Исходный размер 3420x4800

Результаты. Анализ шейдерных подходов и метрики производительности

Данный проект является учебной работой студента Школы дизайна или исследовательской работой преподавателя Школы дизайна. Данный проект не является коммерческим и служит образовательным целям

Ограничение области главы

Полноценные подразделы с реализациями и метриками приведены только для подходов, реализованных в рамках проекта. Подходы на основе compute-шейдеров и mesh-шейдеров в главе 3 не описываются; их теоретическое обсуждение перенесено в главу 4 (Обсуждение)

Базовая сцена

big
Исходный размер 3840x2160

Изображение базовой сцены

Фиксируем референсную конфигурацию сцены, относительно которой в дальнейшем сравниваются все шейдерные подходы к деформируемому снегу. В базовой сцене не применяются специализированные шейдеры деформации снега; рендеринг осуществляется стандартными средствами URP.

В этой сцене снег— множество отдельных белых элементов (без единой карты деформации). Специальных шейдеров деформации снега не используется. Платформа, персонаж и объекты рендерятся стандартным конвейером URP.

Loading...
Исходный размер 3008x3488

Таблица для базовой сцены

Подход на основе пиксельных (фрагментных) шейдеров

Данный подход не меняет геометрию сцены: снег по-прежнему представлен множеством отдельных. Шейдер лишь заменяет внешний вид снега во фрагментном этапе: по карте деформации (DeformMap) выполняется семплирование текстур снега и земли, смешивание и отсечение «убранного» снега (clip). Освещение — полное (основной свет, тени, дополнительные источники, specular, SampleSH)

Исходный размер 1706x957

Изображение сцены c фрагментными шейдерами

Вершинный этап (Vertex) только трансформирует позицию и передаёт UV и нормали. Геометрия остаётся той же, что и в базовой сцене — множество мешей (кусочков снега), без объединения в единую плоскость. Таким образом, пиксельный шейдер даёт визуальное при сохранении структуры сцены.

Loading...
Исходный размер 1504x1648

Таблица для пиксельного/фрагментного шейдера

Объём геометрии (Tris, Verts) близок к базовой сцене, поскольку снег по-прежнему представлен множеством элементов. Деформация без изменения геометрии - только смена и смешивание текстур во фрагменте.

Снег остаётся в виде многих кусочков; улучшается визуал. Единая глобальная текстура для всех отдельных.

Подход на основе вершинных шейдеров

Деформация снега и расчёт освещения выполняются в вершинном (Vertex) шейдере. Снег представлен в виде плоскости (plane), следы и зоны уборки реализованы за счёт карты деформации (DeformMap) и смещения вершин вдоль нормали. Как описано в работе (Hanák, 2021, Ch. 4.4)

Исходный размер 3840x2160

Изображение сцены c вершинными шейдерами

Подход переносит логику деформации в vertex stage. По карте высот (DeformMap) выполняется смещение вершин. Фрагментный этап не выполняет расчёт освещения - только отсечение «убранного» снега.

Loading...
Исходный размер 3008x3392

Таблица для вершинного шейдера

FPS выше базового за счёт упрощённого фрагментного этапа и меньшего объёма геометрии, в отличие от пиксельного шейдера, здесь снег - единая плоскость, а не много кусочков; деформация реализована через изменение геометрии (vertex displacement по DeformMap), визуально видны следы и зоны уборки, тени на снегу в данной реализации отключены намеренно для изоляции вершинного этапа.

Подход на основе тесселяции (Hull + Domain)

Деформация выполняется в Domain Shader. Hull-шейдер задаёт факторы тесселяции в зависимости от расстояния до камеры (LOD), фрагментный этап – отсечение. Снег представлен плоскостью с минимальной плотностью вершин на CPU, тесселяция увеличивает детализацию геометрии на GPU

Исходный размер 3840x2160

Изображение сцены с теселяционным шейдером

Исходная плоскость снега имеет мало вершин; Hull/Domain-шейдеры на GPU увеличивают число треугольников в зависимости от расстояния до камеры. Деформация (смещение по DeformMap) выполняется в Domain Shader, что позволяет получать плавную геометрию следов без передачи плотной сетки с CPU.

Разница в детализации плоскости снега

Loading...
Исходный размер 3008x3392

Таблица для теселяционного шейдера

Подход на основе геометрических шейдеров

Деформация снега отсутствует, геометрия повторяет базовую сцену. Геометрический шейдер формирует и модифицирует меш‑частицы падающего снега над сценой. Вершинный шейдер передаёт данные без деформации, сцена без полноценного освещения. Снег задаётся как набор mesh‑частиц

Результаты. Анализ шейдерных подходов и метрики производительности
Проект создан 26.03.2026
Глава:
1
2
3
4
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше