[performance] Исключить заведомо не отбрасывающие тени эффекты до shadow draw #12
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Проверка исходников на
90379f6. Полный Horizon/GPU на Mac не запускался; оценки сложности и ресурсов ниже не являются замерами FPS.Две HD shadow cascades рисуют весь
entity_quadsbuffer. Уже во fragment shaderfs_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 снижаются в сцене с множеством трассеров и лучей. Не обещать величину выигрыша до профиля.
Код:
gfx.rsоколо 5024.🤖 Agent: исправлено в https://gitea.maoniao.team/chexit/airdef/commit/0092ec6 (запушено в main).