diff options
author | Chris Robinson <[email protected]> | 2011-07-01 02:29:10 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2011-07-01 02:30:15 -0700 |
commit | a5ccae57793c75c6c4162d29be0ac6c5eae8ec63 (patch) | |
tree | d046ba61e2ba0781073658069ccb27cb48d15f6e | |
parent | 1635132fd52e99f17a12362b0458c736b873b9cf (diff) |
Do air absorption with linear gain values
This copies the way the calculation is done with the wet path
-rw-r--r-- | Alc/ALu.c | 12 | ||||
-rw-r--r-- | OpenAL32/Include/alMain.h | 2 |
2 files changed, 2 insertions, 12 deletions
@@ -537,17 +537,7 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext) // Distance-based air absorption if(AirAbsorptionFactor > 0.0f && EffectiveDist > 0.0f) - { - ALfloat absorb; - - // Absorption calculation is done in dB - absorb = (AirAbsorptionFactor*AIRABSORBGAINDBHF) * - EffectiveDist; - // Convert dB to linear gain before applying - absorb = aluPow(10.0f, absorb/20.0f); - - DryGainHF *= absorb; - } + DryGainHF *= aluPow(AIRABSORBGAINHF, AirAbsorptionFactor*EffectiveDist); //3. Apply directional soundcones Angle = aluAcos(aluDotproduct(Direction,SourceToListener)) * (180.0/M_PI); diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h index 5a5bbd93..7ed9c636 100644 --- a/OpenAL32/Include/alMain.h +++ b/OpenAL32/Include/alMain.h @@ -210,7 +210,7 @@ extern "C" { #define DEFAULT_OUTPUT_RATE (44100) #define SPEEDOFSOUNDMETRESPERSEC (343.3f) -#define AIRABSORBGAINDBHF (-0.05f) +#define AIRABSORBGAINHF (0.99426) /* -0.05dB */ #define LOWPASSFREQCUTOFF (5000) |