top of page

OCCLUSION+ & PROPAGATION+

Programming in C++ and Unreal Engine Metasounds

image.png

SUMMARY

During the development of a game made for blind people called “GRIM”, we decided to program our own propagation and occlusion solution for Unreal Engine. The purpose wasn't necessarily to achieve realism, but rather to allow for a blind person to navigate the world more easily. Since the game had no visuals, it was essential that the audio systems in place gave the player a spatial awareness to navigate around rooms and obstacles towards their target.

We also used Microsoft Project Acoustics to give the player a greater sense of size in the rooms, which generated baked reverb which was material dependent.

Customized Material Occlusion

The bi-directional raycast measure thickness and material properties to apply volume modulation and low pass modulation dynamically. Every material can have it's own occlusion value applied to it, making the occlusion system react uniquely for every mesh based on it's material.

By finding the impact point of the occluding mesh, found from the raycast sent from the player to the audio source, and subtracting the world coordinates of the exit point (impact point from the raycast sent from the audio source towards the player), we calculate a mesh thickness. We also made sure that thickness could accumulate through multiple meshes.

Propagation through A* Algorithm

Through an A* algorithm, we calculate the fastest travel in three dimensions from the audio listener to the audio source, which creates a path. Along the path, nodes are created, and when a node is out of sight for the player, it is considered the propagation source and a copy of the audio source will be placed there. This gives an idea of sound propagation, similar to how Rainbow Six Siege handles it. By using this system, a blind player can navigate a maze by following the sound.

This is admittedly not at all how sound works in the real world, but for our purposes of giving better navigational capabilities to a blind gamer, it worked great!

© 2025 BY MARTIN CERVELL

bottom of page