Explore: Steam Audio (ray-traced occlusion, reverb, pathing, HRTF) for in-world sounds #683
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#683
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
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?
Explore: physically based / ray-traced audio for in-world sounds using Steam Audio (Valve). It is free and open source under Apache 2.0 (since 2024), which is compatible with our LGPL viewer. Prompted by Rye's note that modern games use RT audio.
What it would give us
Questions to answer
Integration point: our audio stack is OpenAL (
LLAudioEngine_OpenAL). Do we use Steam Audio's effects (binaural, direct, reflection, path) on OpenAL sources via an effect/mixing stage, or move the mix to our own mixer with Steam Audio applied per source? What is the latency and CPU cost per source?Geometry: Steam Audio wants a scene (its own BVH, or Embree / Radeon Rays). Options:
SL geometry changes constantly. Measure scene build/update cost.
Materials: SL surfaces have no acoustic properties. Use one default material, a heuristic from texture/material names or PBR properties (metallic/rough → reflective), or a per-parcel / per-object override (a viewer-side setting or script-readable hint).
Scale: busy venues have many simultaneous sounds plus streaming music. Which sources get simulated (nearest N, priority by volume)? Parcel audio streams and voice stay dry by default; consider applying reverb to voice optionally.
Fallbacks: CPU path without RT hardware, a quality tiers setting, and off by default until proven.
Platforms: Linux / Windows / macOS builds of the Steam Audio SDK (prebuilt binaries vs source build), and their licence notices.
Deliverable
A prototype behind a setting: occlusion + reverb for in-world sounds in one test region, with measured CPU/GPU cost, then a go/no-go and an implementation plan.
Follow-ups filed:
Also related:
The full multi-bounce per-source echograms (Steam-Audio-class) remain this ticket's Phase 1 question.
Shipped in 1.4.0 Beta 1. Closing; reopen if it misbehaves.
Reopened: closed by mistake in a board sweep. The room acoustics shipped in Beta 1, but this ticket still has its Phase 1 question open: full multi-bounce reverb calculated per sound source. Follow-ups: #857, #858, #856, #852, #892.