Previous Post

Raytraced Audio - Godot Update

Next Post
Raytraced Audio - Godot Update
1 / 5
DESCRIPTION

With the C# SDK functional, I've started working on the Godot Raytraced Audio plugin.

I tested with Kenney's Starter FPS Kit and wasn't impressed with Godot's 3D audio:

Sound falloff doesn't seem right, with sounds becoming deeper when further away

Reverb is only supported for indoor environments, and doesn't have as many parameters to adjust (compared to EAX)

No HRTF / binaural support

Here's what Godot's spatialisation, low-pass filters and reverb sounds like. The left side is Godot and the right side is the raytracing simulation:

There's a video at the end of this post showing how it sounds with OpenAL

OpenAL with Godot

So the first step was to use OpenAL instead of Godot's in-built audio. I couldn't find an existing wrapper, so I created one here: https://github.com/vercidium-patreon/godot_openal.

This bypasses Godot's audio system and provides custom nodes for:

ALSource3D for sounds

ALManager for automatically loading sounds from disk, setting master volume, and choosing output/input devices

Using OpenAL in Godot makes it much easier to check if raytraced audio is working correctly, as I can compare it to my other audio demos.

Raytraced Audio Integration

The raytraced audio wrapper was straightforward to set up, it's one C# file that:

analyses Godot's scene tree to find all 3D models, adds them to the raytracing simulation, and handles any updates (movement, rotation, new models, etc)

automatically sets filters and effects on each sound

automatically creates and updates reverb effects

This C# file lives in an addon called vaudio, which automatically registers its custom nodes and creates a debug window for viewing the raytracing simulation:

Materials

Materials determine which nodes collide with rays:

Nodes have the "air" material by default and are ignored

Nodes with any other material (dirt, metal, etc) will be added to the raytracing simulation

You can set the material programmatically:

Or via the inspector:

Sounds

There's a new node type called RaytracedAudioNode, which is identical to the ALSource3D node from my godot_openal plugin, except it:

automatically enqueues the sound for raytracing

plays the sound once raytracing has completed

automatically updates the sound's low-pass filter and reverb effects over time

You can play a sound programmatically:

Or add a RaytracedAudioNode directly to your scene:

Here's what it sounds like with OpenAL and raytracing:

Next Steps

This Godot plugin is working great so far, but I need to test a more complex scene with more sound sources, ambient sounds, and different reverb scenarios. I'd also like to add more logging / warnings / errors for easier debugging.

If you are keen to test this, you can sign up at https://vercidium.com/audio and you'll receive an email when it's ready for testing (early 2026). Testing is closed as we are preparing for launch.

vercidium PATREON 2 favs
VIEWS1
FILES5 files
POSTEDJan 10, 2026
ARCHIVEDJan 10, 2026