thedocruby / resounding

A New Minecraft mod that provides realistic audio physics using parallel wave tracing and an improved physics algorithm.
https://thedocruby.dev/resounding
GNU Lesser General Public License v3.0
85 stars 4 forks source link

raycast outliers: reverb problems #40

Open YurgenSchn opened 2 years ago

YurgenSchn commented 2 years ago

While walking around in the overworld, near slopes, walls and small holes/depressions, you can hear short reverbs. They are not that loud, but feel uncanny. You can also hear longer reverbs from sounds produced high above ground.

Edit: reverbs high above ground can get really loud without air/humidity absorption

To Reproduce

  1. Walk around blocks/walls, do it jumping, while eating steak or throwing snowballs (easier to spot if you produce the sound in the air, due to another bug)
  2. Start flying up high, while throwing snowballs, eventually you will hear longer and somewhat quiet reverbs.

Expected behavior I'd expect to hear quieter, if not no reverbs in open spaces.

My Machine

mikenrafter commented 2 years ago

This was an issue with DynSFX as well... One theoretical solution would be to smoothly transition values (an approximation trick - definitely not a solution for ultra-high-fidelity-mode), and clamp effects based on minimum activation thresholds - or dampen their effect based on how close they are to such a threshold ← this is far more realistic than the first idea, but may be more difficult to calibrate.

My hacky and temporary fix for DynSFX was to alternate ray casting positions to improve geometrical understanding. But that's a hacky solution and definitely does not work for this mod, as the geometry is already understood in far greater depth here in this mod.

mikenrafter commented 2 years ago

I have noticed this in my debugging attempts as well: image ^ a lot of reverb | very little reverb v image

This would probably be fixed by #46, but I'm unsure.

mikenrafter commented 1 year ago

This is potentially simply a problem with the way we're doing raycasting. In the future, there might be a solution for this, however...