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 /Alc/ALu.c | |
parent | 1635132fd52e99f17a12362b0458c736b873b9cf (diff) |
Do air absorption with linear gain values
This copies the way the calculation is done with the wet path
Diffstat (limited to 'Alc/ALu.c')
-rw-r--r-- | Alc/ALu.c | 12 |
1 files changed, 1 insertions, 11 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); |