[enhancement] Разделить HD-проходы и WGSL; явно описать контракты цвета, глубины и времени #45

Closed
opened 2026-10-29 17:51:15 +00:00 by chexit · 1 comment
Owner

🤖 Filed by Codex, AI-агент Владимира (chexit).

Сформировано по прямому запросу автора проекта; текущий код просмотрен на f443f0a. В форке gfx/hd.rs объединяет ресурсы и большие строковые WGSL для света, воды, AO, TAA, bloom и tonemap. Баги #36/#37 показывают цену неявного смысла буферов.

Доработка

  • Вынести WGSL в отдельные файлы с проверяемой сборкой общих блоков; сохранить naga-тесты всех итоговых шейдеров.
  • Разделить владение ресурсами/пайплайнами по проходам, не создавать новую универсальную систему ради самой системы.
  • Для входов явно обозначить: opaque color/depth, цвет после прозрачностей, water depth, линейный HDR или display color, camera-relative координаты, reversed-Z, разрешение, jitter, источник времени.
  • Выделить render context камеры: её матрицы, свет, depth, истории TAA/объёмов, viewport и clock. Это нужно также для качественных реплеев и экспорта.
  • Чёткое владение кэшами и инвалидирование при resize, смене источника, камеры и мира; временные истории камер не смешиваются.
  • Синхронизация Rust/WGSL layout и тесты размеров/привязок, когда это применимо.

Приёмка

Рефакторинг сначала сохраняет внешний вид и производительность по #44. Исправления #36/#37 и #42 не блокировать этим большим изменением. Понятно, какие именно данные получает каждый проход; нет роста аллокаций/bind groups в установившемся кадре.

🤖 Filed by Codex, AI-агент Владимира (chexit). Сформировано по прямому запросу автора проекта; текущий код просмотрен на `f443f0a`. В форке `gfx/hd.rs` объединяет ресурсы и большие строковые WGSL для света, воды, AO, TAA, bloom и tonemap. Баги #36/#37 показывают цену неявного смысла буферов. ### Доработка - Вынести WGSL в отдельные файлы с проверяемой сборкой общих блоков; сохранить naga-тесты всех итоговых шейдеров. - Разделить владение ресурсами/пайплайнами по проходам, не создавать новую универсальную систему ради самой системы. - Для входов явно обозначить: opaque color/depth, цвет после прозрачностей, water depth, линейный HDR или display color, camera-relative координаты, reversed-Z, разрешение, jitter, источник времени. - Выделить render context камеры: её матрицы, свет, depth, истории TAA/объёмов, viewport и clock. Это нужно также для качественных реплеев и экспорта. - Чёткое владение кэшами и инвалидирование при resize, смене источника, камеры и мира; временные истории камер не смешиваются. - Синхронизация Rust/WGSL layout и тесты размеров/привязок, когда это применимо. ### Приёмка Рефакторинг сначала сохраняет внешний вид и производительность по [#44](https://gitea.maoniao.team/chexit/airdef/issues/44). Исправления #36/#37 и #42 не блокировать этим большим изменением. Понятно, какие именно данные получает каждый проход; нет роста аллокаций/bind groups в установившемся кадре.
chexit added the area:renderingtype:enhancementarea:toolingpriority:P2 labels 2026-10-29 17:51:15 +00:00
Author
Owner

🤖 Agent: сделано в https://gitea.maoniao.team/chexit/airdef/commit/9075717 (gfx/hd/: модуль и WGSL на проход, контракты в docs/HD-RENDERER.md).

🤖 Agent: сделано в https://gitea.maoniao.team/chexit/airdef/commit/9075717 (gfx/hd/: модуль и WGSL на проход, контракты в docs/HD-RENDERER.md).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chexit/airdef#45