ОТЛОЖЕНО (решение пользователя): оптимизации — на потом.
T06. Бюджет GPU рельефа: с ~2,8 до ≤ 1,6 мс без потери картинки
Цель: проход рельефа снова дешёвый (NFR-1, VR-13) — вернуть бюджет, который съели полог, скалы, осыпи, ветер.
Контекст: docs/guide/terrain.md («Превью и замеры»), scripts/terrain/terrain.gdshader, terrain_common.gdshaderinc,
terrain_renderer.gd, bench.json T01 и последний замер T05.
Владения: scripts/terrain/{terrain.gdshader, terrain_common.gdshaderinc, terrain_renderer.gd, terrain.gd, height_layer.gd},
configs/world.json (terrain_look, rendering), configs/locations/*.json (render), docs/guide/terrain.md.
Шаги
- Профиль: выключать по одному блоку (полог Вороного, осыпи
scree_probe, снег в кулуарах, трипланар скал, ветер, детальные текстуры) и записать цену каждого в S1–S5. - Дорогие «на пиксель» признаки, не зависящие от камеры (вогнутость, поиск обрыва выше по склону, уклон/экспозиция), — запечь в текстуры при загрузке (в рабочем потоке, NFR-2 не хуже + 0,3 с).
- Ранний выход по дальности/
fwidth: полог, травяные и скальные текстуры, ветер — не считать, где их не видно. - Проверить LOD и overdraw юбок; число выборок текстур на пиксель — записать до/после.
Критерий приёмки (стенд T01, RTX 4070 SUPER, 1080p, Forward+)
- GPU «рельеф» ≤ 1,6 мс в каждом из S1–S5; полный кадр у земли (S1) и на 800 м ≤ 3,5 мс.
- Картинка: все 7 кадров против снимков до карточки — PSNR ≥ 35 дБ, метрики
compare_ref.py≤ 3 %. - Загрузка Онгудая ≤ 0,8 с; тесты
tests/terrainзелёные.
Зависимости: T05 (последняя в группе; меряет итоговый шейдер). Модель: opus. Размер: M.