[bug] В HD-реплеях пропадают объёмные следы ракет и дымовые колонны пожаров #78

Closed
opened 2026-10-30 09:56:01 +00:00 by chexit · 1 comment
Owner

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

Ревью 76f680eba64b64eb28435e71ce9f22a84b0e5da1 (после 6f3fc64). После #54/#56 live бой и повтор используют разные источники объёмного дыма. В фильме/экспорте теряется важная часть нового визуала.

lib.rs::shown_smoke для replay временно подставляет replay_blasts в sim, забирает весь список fires, меняет tick и вызывает smoke::Smoke::default().segments(&sim). У нового Smoke нет trails/last; пожаров в sim уже нет. Получаются только дымовые billows активных взрывов. Track-история записи и record::replay_fires здесь не используются.

draw_ghosts рисует flame моделей пожаров и несколько vanilla smoke particles, но не восстанавливает HD fire columns или world-space trails. lights() также досрочно выходит для replay до списка пожаров.

Выполненная нативная проверка

Реальная запись с двумя летящими track и пожаром от события Hit. Player Full доведён до t=130, затем вызван фактический shown_smoke на тестовом AirDef:

tracks=2 fires=1
smoke_segments=12, trail_tunnels=0, fire_puffs=0

12 сегментов — только взрывы. В live Smoke trail имеет clear>0, fire-column ids — отдельный диапазон 0x4..., в replay обоих нет. Проверена генерация данных, GPU не запускался.

Нужно

Восстанавливать историю следов по записанным track/событиям либо сохранять lifecycle сегментов. Делать это как функцию replay timestamp, чтобы seek/пауза/cut не выращивали дым дважды. Из recorded fires получать HD columns и их свет; сохранять размеры, продления, воду/пар и budgets. Не использовать live trails вместо исторических.

Приёмка

Один timestamp live/replay/export содержит те же траектории следов и пожары; видны плотный шлейф и туннель в тумане. Прямой seek вперёд/назад даёт тот же результат, что последовательный просмотр. Не обрывать billows только потому, что короткий fireball уже удалён.

🤖 Filed by Codex, AI-агент Владимира (chexit). Ревью `76f680eba64b64eb28435e71ce9f22a84b0e5da1` (после `6f3fc64`). После #54/#56 live бой и повтор используют разные источники объёмного дыма. В фильме/экспорте теряется важная часть нового визуала. `lib.rs::shown_smoke` для replay временно подставляет `replay_blasts` в sim, **забирает весь список fires**, меняет tick и вызывает `smoke::Smoke::default().segments(&sim)`. У нового Smoke нет trails/last; пожаров в sim уже нет. Получаются только дымовые billows активных взрывов. Track-история записи и `record::replay_fires` здесь не используются. `draw_ghosts` рисует flame моделей пожаров и несколько vanilla smoke particles, но не восстанавливает HD fire columns или world-space trails. `lights()` также досрочно выходит для replay до списка пожаров. ### Выполненная нативная проверка Реальная запись с двумя летящими track и пожаром от события Hit. Player Full доведён до t=130, затем вызван фактический `shown_smoke` на тестовом AirDef: ```text tracks=2 fires=1 smoke_segments=12, trail_tunnels=0, fire_puffs=0 ``` 12 сегментов — только взрывы. В live Smoke trail имеет `clear>0`, fire-column ids — отдельный диапазон 0x4..., в replay обоих нет. Проверена генерация данных, GPU не запускался. ### Нужно Восстанавливать историю следов по записанным track/событиям либо сохранять lifecycle сегментов. Делать это как функцию replay timestamp, чтобы seek/пауза/cut не выращивали дым дважды. Из recorded fires получать HD columns и их свет; сохранять размеры, продления, воду/пар и budgets. Не использовать live trails вместо исторических. ### Приёмка Один timestamp live/replay/export содержит те же траектории следов и пожары; видны плотный шлейф и туннель в тумане. Прямой seek вперёд/назад даёт тот же результат, что последовательный просмотр. Не обрывать billows только потому, что короткий fireball уже удалён.
chexit added the type:bugarea:simulationarea:renderingpriority:P2 labels 2026-10-30 09:56:01 +00:00
Author
Owner

🤖 Agent: Сделано в 0f5c4136f3 (запушено в main). Следы и столбы пожаров строятся из записи как функция времени. Следы видны в игре, столбы пожаров отдельно не проверялись. Пар и огонь на воде не восстанавливаются.

🤖 Agent: Сделано в https://gitea.maoniao.team/chexit/airdef/commit/0f5c4136f3bbd2ae3ca06e0b4985f86882a76eb0 (запушено в main). Следы и столбы пожаров строятся из записи как функция времени. Следы видны в игре, столбы пожаров отдельно не проверялись. Пар и огонь на воде не восстанавливаются.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chexit/airdef#78