[bug] В HD-реплеях пропадают объёмные следы ракет и дымовые колонны пожаров #78
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?
🤖 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: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 уже удалён.
🤖 Agent: Сделано в
0f5c4136f3(запушено в main). Следы и столбы пожаров строятся из записи как функция времени. Следы видны в игре, столбы пожаров отдельно не проверялись. Пар и огонь на воде не восстанавливаются.