[enhancement] Адаптировать акустику Sound Physics Remastered для Horizon: преграды, отражения и реверберация #96
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.Запрос и текущая основа
Нужно ощущение пространства: взрыв в ущелье отдаётся эхом, за горой приглушается, под крышей/в тоннеле звучит иначе, чем в открытом поле. Мод уже задерживает звук по расстоянию и использует near/far слои (
lib.rs::emit,cinema.rs). Mixer Horizon (horizon-client/src/audio.rs) умеет панораму/attenuation/pitch, но геометрического occlusion/reflections/reverb в просмотренном тракте нет.Основной технический референс — исходники и алгоритмы Sound Physics Remastered. Пользователь уточнил: нужно изучить рабочую реализацию и оценить перенос/адаптацию механики в Horizon под AirDef, а не ограничиваться README и разработкой похожего эффекта с нуля. Точная волновая симуляция всего мира не требуется.
Исследование реализации и адаптация под AirDef
Первый этап — разбор актуального исходного кода Sound Physics Remastered с фиксацией commit и ссылками на конкретные функции. В первоначальном архитектурном обзоре Codex изучил только README; разбор реализации и пригодность её алгоритмов ещё не выполнены и не должны считаться доказанными.
Результат исследования — работающий небольшой прототип и сравнение на одинаковом звуковом полигоне: без акустики / адаптированный вариант. Оценить слышимость, устойчивость и CPU/память на Mac; затем расширять реализацию по этапам ниже. Не обещать совпадение с SPR или ускорение до разбора исходников и проверки.
Этапы
Бюджеты и приёмка
Opt-in настройка форка/мода с прозрачным fallback; без изменения обычного игрового звука по умолчанию. Лимиты rays/probes/voices/reflection taps, LRU и telemetry. В callback нельзя обращаться к миру, блокирующим запросам или бесконтрольно выделять память.
Полигон: поле, одна стена/дверь, тоннель, ущелье, динамически разрушенная преграда, массовый перехват. Измерить CPU/аудиопропуски и память на Mac; бюджет установить по измерению, не обещать бесплатный эффект. Эхо продолжается после конца исходного хлопка, не после unload другой сессии. Offline MP4 использует тот же DSP по sample clock независимо от скорости GPU. Псевдоэхо случайным повторением one-shot не считается выполнением задачи.
Общий порядок и зависимости: архитектурная дорожная карта.
[enhancement] Акустика Horizon в духе Sound Physics: преграды, ранние отражения, эхо и реверберацияto [enhancement] Адаптировать акустику Sound Physics Remastered для Horizon: преграды, отражения и реверберация🤖 Agent: Codex — уточнение запроса пользователя.
Задача обновлена: Sound Physics Remastered теперь указан как основной референс для разбора исходников и оценки переноса/адаптации акустики в Horizon. Убрано прежнее категорическое «без переноса его кода»; добавлены сопоставление алгоритмов, проверка лицензий и прототип под AirDef. Первоначальный обзор ограничивался README, реализация SPR пока не исследована.
🤖 Agent: этапы 2 и 3 (эхо и реверберация) и кнопка в меню в https://gitea.maoniao.team/chexit/airdef/commit/57a5426. Открыта, пока не послушают в игре.
🤖 Agent: Codex — ревью 31 октября 2026.
На действующих стадиях акустики подтверждены отдельные проблемы: #110 (снимок/кэш не слышит lifecycle чанков), #111 (канал сохраняет старый low-pass после выхода из RANGE), #112 (смена top-8 оставляет 16 активных echo-наборов). Исходный Acoustics проверен в native harness с synthetic Geometry; полный game/GPU не запускался. Реализация стадий и сам план адаптации остаются в этой задаче.
🤖 Agent: Codex, при участии GPT-6.1 Terra и GPT-6 Luna. Продолжение в
kimi-work: код.В документации опубликованы результаты реально выполненных синтетических fixtures на закреплённом движке. Occlusion: ниже 300 Гц −5.2 dB, 300–1500 −7.4, 1500–5000 −19.7, выше 5000 −40.0. Echo: gorge 158.9/242.1 ms, room 39.9 ms, field без отражения. Reverb RT60: gorge 0.10 s, tunnel 0.87 s, room 1.39 s; field без хвоста. Reverb прошёл текущий допуск анализатора 35%, не целевой 15%.
Echo и reverb экспортируются в разные каталоги, иначе совпадающие имена WAV перезаписывают друг друга. GPL/MIT тексты и notices исходников добавлены в игровые архивы workflow. Это процедурные тестовые сигналы без аудиоустройства: прослушивание, игровой CPU/массовые голоса и реальный MP4 пока не проверены. Issue не закрываю.
🤖 Agent: Codex, with GPT-6.1 Terra.
Published engine e44ad82a9, included in pin 57f8b2853. Added opt-in export_moving_mass_raid through production Audio::tick_acoustics and film_mix: 100 moving looping sources + up to 16 impulses, echo/reverb, listener cut, invalidation and world epoch transition. Two complete 6-second runs compare equal sample-for-sample, output must be non-silent/finite/bounded, and a new capture must contain exact silence after cleanup. No audio device or player resources used; signals/geometry synthetic.
Actual release run on Apple M5/macOS arm64: step+mix per 50 ms audio p50=3.551625 ms, p95=4.297167 ms, max=5.573375 ms; max116 sources, direct4056 cells/tick, echo36835. JSON, invocation and PCM hash. Excludes world snapshot construction, GPU and encoder. A live MP4 attempt did not produce an accepted artifact, so MP4/listening acceptance remains open; RT60 tolerance remains35%. No Windows FPS improvement claimed. Issue state unchanged.
🤖 Agent: Kimi Code, с участием DeepSeek.
Опубликовано в
kimi-workкакabf3d76fd(документация и проверки; нового DSP-кода не было).Настоящий MP4 с акустикой проверен на парах ON/OFF одного replay без
HORIZON_NO_AUDIO: acoustics/captureready, H.264 + AAC без обрезки. В каменном дворе после вычитания масштабированного сухого сигнала измерен низкочастотный стерео-декоррелированный wet-остаток; в поле подтверждены окклюзия/поглощение. Цифры и ограничения.Не заявляю прослушивание, отдельные ранние отражения или чистый RT60 из MP4; 10-минутный экспорт и Windows/Linux остаются. Issue открыт.