It is my understanding that right now, the default behavior is binary; as soon as sound hits a geometry with X transmission loss, it will lose X percent of transmission.
Is there a way to enable transmission loss based on the distance sound has to travel through a medium?
See this illustration: green shows the sound transmission, and the red shape in the middle is some geometry in space.
Something like this would be extremely helpful, especially for dynamic scenes. It would also allow us to play collision-induced sounds (that can slightly clip within geometry), and not worry so much that the sound won't play, because it'd be right on the surface. Sometimes we have a huge piece of geometry and setting a low transmission loss value on it will mean sounds will play just fine even if they are all the way on the other side, which is problematic, but a distance based approach would solve that!
From a programming perspective it should also be extremely straight forward to calculate: if the SoundToListener raycast hit geometry X, shoot a raycast from ListenerToSound that only traces against geometry X, and find the distance the sound had to go through! The cost should be at worst: a single raycast.
This would make my life extremely simple as a game developer having to deal with dynamic scenes and moving geometries. In the game, sounds aren't placed statically in the environment by a level designer; instead they are dynamically induced by collisions - so they are always close to geometry surfaces - and more often than I'd like they don't play. Setting a 0.1 transmission loss to solve this is not optional because transmission isn't distance based.
With the current state, as a programmer, I'd need to keep a list of all geometries sent to Wwise, and run my own geometry calculations and trace against primitives prior to placing the sound in the scene, meaning I'm doing audio-related scene queries that should be done in the Wwise spatial scene.
It'd be a huge improvement to quality of life for this to be a setting, so please consider adding this! :)
Thanks!