What is Project Acoustics?
Project Acoustics is a wave acoustics engine for 3D interactive experiences. It models wave effects like occlusion, obstruction, portaling and reverberation effects in complex scenes without requiring manual zone markup or CPU intensive raytracing. It also includes game engine and audio middleware integration. Project Acoustics' philosophy is similar to static lighting: bake detailed physics offline to provide a physical baseline, and use a lightweight runtime with expressive design controls to meet your artistic goals for the acoustics of your virtual world.
Using wave physics for interactive acoustics
Ray-based acoustics methods can check for occlusion using a single source-to-listener ray cast, or drive reverb by estimating local scene volume with a few rays. But these techniques can be unreliable because a pebble occludes as much as a boulder. Rays don't account for the way sound bends around objects, a phenomenon known as diffraction. Project Acoustics' simulation captures these effects using a wave-based simulation. The acoustics are more predictable, accurate and seamless.
Project Acoustics' key innovation is to couple real sound wave based acoustic simulation with traditional sound design concepts. It translates simulation results into traditional audio DSP parameters for occlusion, portaling and reverb. The designer uses controls over this translation process. For more details on the core technologies behind Project Acoustics, visit the research project page.
Video Presentation from GDC 2019 (~30 min)
Project Acoustics Unity integration is drag-and-drop and includes a Unity audio engine plugin. Augment the Unity audio source controls by attaching a Project Acoustics C# controls component to each audio object.
Project Acoustics Unreal integration includes editor and game plugins for Unreal, and a Wwise mixer plugin. A custom audio component extends familiar Wwise functionality within Unreal with live acoustics design controls. Design controls are also exposed in Wwise on the mixer plugin.
- Pre-bake: Start with setting up the bake by selecting which geometry responds to acoustics, by, for example, ignoring light shafts. Then edit automatic material assignments and selecting navigation areas to guide listener sampling. There's no manual markup for reverb/portal/room zones.
- Bake: An analysis step is run locally, which does voxelization and other geometric analysis on the scene based on selections above. Results are visualized in editor to verify scene setup. On bake submission, voxel data is sent off to Azure and you get back an acoustics game asset.
- Runtime: Load the asset into your level, and you're ready to listen to acoustics in your level. Design the acoustics live in editor using granular per-source controls. The controls can also be driven from level scripting.
The Project Acoustics runtime plugins can currently be deployed to the following platforms:
- Xbox One
The Project Acoustics editor plugin is available for the following platforms:
- MacOS (Unity only)
- Project Acoustics Unity plugin and samples
- Project Acoustics Unreal & Wwise plugins and samples
- For Xbox binaries and other support, contact us via the forum.