This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Geometric Acoustics

Occlusion and reflections derived from world geometry — acoustic volumes and shapes, 15 material presets, listener-centric reverb, and an honest account of what is and is not simulated.

The base gem places sounds by direction and distance. Geometric acoustics adds the room: sound muffled by the geometry between it and the listener, and reverb derived from the space the listener is actually standing in rather than an effect an author dialled in.

Geometry is authored, not inferred. You mark up the acoustically significant parts of a level with volumes and shapes carrying material presets — you do not hand the simulation your render meshes.

 

Contents


Turning It On

Geometric acoustics is off by default. It is enabled on the Pro manager’s settings, which are additive to the base project settings.

SettingDefaultMeaning
Geometry EnabledfalseMaster switch for the whole system.
Occlusion EnabledtrueMuffle sounds behind geometry.
Occlusion Type—Raycast or Volumetric.
Occlusion Radius1.0Source sphere radius for volumetric occlusion, in metres.
Max Occlusion Samples16Rays used when sampling an occlusion volume.
Reflections EnabledtrueDerive reverb from geometry.
Reflection ModeListenerSee reflections.
Reflection Wet1.0How much reverb is added to the dry signal.
Reflection Smooth Time0.75Seconds to ease toward a new room. 0 snaps.
Reflection Order1Recursion depth, 0–4.
Simulation Update Rate30.0 HzHow often the simulator recomputes.

Authoring Geometry

Two components mark up a level. Both carry a material preset, plus a custom material for the Custom case.

ComponentWhat it contributes
Audio GeometryAn authored box volume.
Audio Shape GeometryReads an existing O3DE Shape component. A Quad becomes a single-layer plane, a Box becomes a box, and anything else falls back to its bounding box.

The Shape variant is usually the faster path — a wall you have already blocked out with a Shape becomes acoustically real by adding one component.

Registration goes through a request bus that takes raw vertices rather than entities. That is deliberate: it is what will let streaming systems fold geometry in and out of the simulation without the acoustics layer knowing anything about entity lifetimes.


Acoustic Materials

Fifteen presets, plus Custom.

GroupPresetsCharacter
Hard / reflectiveGeneric, Brick, Concrete, Ceramic, Glass, Plaster, Wood, Metal, RockBounce sound. Long, bright reverb.
AbsorptiveGravel, CarpetSoak sound up. Short, dull reverb.
Soft barriersCurtain, Blanket, Door, DrapeTransmit meaningfully — they muffle rather than silence.
Custom—Dial all seven coefficients by hand: absorption low/mid/high, scattering, and transmission low/mid/high.

The soft-barrier group is the interesting one for designers. A curtain over a doorway does not block the sound behind it, it dulls it — which is the effect people usually reach for a low-pass filter to fake.


Occlusion

Each voice is simulated against the geometry between it and the listener, and muffled accordingly.

ModeBehaviourCost
RaycastA single ray. A source is occluded or it is not.Cheap.
VolumetricSamples a sphere of the configured radius.Higher, scaling with sample count.

Volumetric is what gives partial occlusion at edges — a sound leaking around a doorframe rather than switching off as it passes behind the jamb. If occlusion feels binary and abrupt, this is the setting to change.

Occlusion ducks the direct signal.


Reflections

Reverb is derived from the geometry around the listener — one shared room, recomputed as the listener moves through the level. Reflection Mode has a PerSource value reserved for future work; it currently falls back to Listener.

Two behaviours are worth understanding because they are deliberate design choices, not side effects:

Reverb eases between rooms. Crossing a geometry boundary blends the reverb toward the new room over the Reflection Smooth Time rather than snapping. Set it to 0 if you want an instant change.

Reverb does not fade with distance. Each voice taps its raw source into a wet-only reverb, so the room stays constant across its whole volume while only the dry signal falls off with distance. This is what makes a large room sound like the same room from either end of it. The reverb send does taper at the far edge of a sound’s range — flat until three quarters of max distance, then eased to zero — so an event’s distance settings still bound how far it feeds the room.


How It Stays Safe

Worth knowing if you are budgeting for this system.

Reflections use a parametric reverb model — a handful of decay-time floats — rather than convolution. No impulse response ever crosses to the audio thread, and there is no ambisonic decode in the path.

The reflection simulation runs on a worker thread at up to 15 Hz, committing its results under a mutex. Occlusion and direct-path values are lock-free single-writer floats. Everything else stays on the main thread.

The practical consequence: enabling geometric acoustics adds a bounded, predictable cost rather than a per-sound one that scales alarmingly.


What This Does Not Do

State these to yourself before evaluating the result — each is a deliberate v1 boundary, not a defect.

  • Reverb cannot tell your room from the one next door. It is listener-centric, so a source sealed in an adjacent room still contributes to the same shared reverb. Distinguishing them is what per-source reflections would do, and that is not built.
  • An occluded source still feeds the room. Occlusion ducks the direct signal only. Within max distance, a muffled source still excites the reverb.
  • Geometry is what you author. Render meshes and PhysX colliders are not consulted — v1 is authored volumes and O3DE Shapes.
  • No offline baking. There are no precomputed reverb probes.
  • Reverb is the tail, not early reflections. The parametric model gives you the decay, not discrete early reflections.
  • CPU only. There is no GPU acceleration path.

See Also

For related systems:

For conceptual overviews and usage guides:


Get GS_Audio

GS_Audio — Explore this gem on the product page and add it to your project.