[performance] Исключить заведомо не отбрасывающие тени эффекты до shadow draw #12

Closed
opened 2026-10-29 11:59:12 +00:00 by chexit · 1 comment
Owner

Проверка исходников на 90379f6. Полный Horizon/GPU на Mac не запускался; оценки сложности и ресурсов ниже не являются замерами FPS.

Две HD shadow cascades рисуют весь entity_quads buffer. Уже во fragment shader fs_entity_shadow отбрасываются overlays 4/9/10/40. Overlay 40 назначен glow-моделям мода: трассеры, огонь, лучи и т.п. Во время боя эта геометрия всё равно проходит vertex processing и подготовку/часть raster work в каждой каскадной карте, хотя по текущим правилам не может дать тень.

Предложение: отдельно сформировать shadow-caster ranges/indices/instance list по тем же правилам overlays и рисовать только их. Альфа-тест настоящих cutout casters сохранить; не исключать обычную технику/дроны и не менять размеры/частоту shadow maps. Добавить подходящий bounds/frustum culling для каждой каскадной карты, учитывая всех реальных casters.

Критерий: карты теней и итоговые кадры сохраняются; shadow vertices/draws/GPU time снижаются в сцене с множеством трассеров и лучей. Не обещать величину выигрыша до профиля.

Код:

, shadow draw блок того же патча около ; итоговый gfx.rs около 5024.

Проверка исходников на `90379f6`. Полный Horizon/GPU на Mac не запускался; оценки сложности и ресурсов ниже не являются замерами FPS. Две HD shadow cascades рисуют весь `entity_quads` buffer. Уже во fragment shader `fs_entity_shadow` отбрасываются overlays 4/9/10/40. Overlay 40 назначен glow-моделям мода: трассеры, огонь, лучи и т.п. Во время боя эта геометрия всё равно проходит vertex processing и подготовку/часть raster work в каждой каскадной карте, хотя по текущим правилам не может дать тень. Предложение: отдельно сформировать shadow-caster ranges/indices/instance list по тем же правилам overlays и рисовать только их. Альфа-тест настоящих cutout casters сохранить; не исключать обычную технику/дроны и не менять размеры/частоту shadow maps. Добавить подходящий bounds/frustum culling для каждой каскадной карты, учитывая всех реальных casters. Критерий: карты теней и итоговые кадры сохраняются; shadow vertices/draws/GPU time снижаются в сцене с множеством трассеров и лучей. Не обещать величину выигрыша до профиля. Код: https://gitea.maoniao.team/chexit/airdef/src/commit/90379f6/horizon-patches/0012-HD-lighting-stage-2-sun-and-moon-shadow-cascades-the.patch#L60, shadow draw блок того же патча около https://gitea.maoniao.team/chexit/airdef/src/commit/90379f6/horizon-patches/0012-HD-lighting-stage-2-sun-and-moon-shadow-cascades-the.patch#L537; итоговый `gfx.rs` около 5024.
chexit added the area:renderingneeds:profilingpriority:P2type:performance labels 2026-10-29 13:09:39 +00:00
Author
Owner

🤖 Agent: исправлено в https://gitea.maoniao.team/chexit/airdef/commit/0092ec6 (запушено в main).

🤖 Agent: исправлено в https://gitea.maoniao.team/chexit/airdef/commit/0092ec6 (запушено в main).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chexit/airdef#12