OpenAL sound: Use a simpler distance model
In createPlayingSoundAt(), AL_ROLLOFF_FACTOR is not set, so it has the default value of 1.0, this makes the equation of the currently used AL_EXPONENT_DISTANCE distance model identical to the equation of the simpler AL_INVERSE_DISTANCE distance model. Using AL_INVERSE_DISTANCE means an exponent is not processed, exponents are quite intensive to process. There is no change in sound attenuation behaviour. The commented-out AL_ROLLOFF_FACTOR value is removed as it would now have a different effect if used.master
parent
e2ad76f910
commit
a5ee7139a5
|
@ -317,7 +317,7 @@ public:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
alDistanceModel(AL_EXPONENT_DISTANCE);
|
alDistanceModel(AL_INVERSE_DISTANCE);
|
||||||
|
|
||||||
infostream<<"Audio: Initialized: OpenAL "<<alGetString(AL_VERSION)
|
infostream<<"Audio: Initialized: OpenAL "<<alGetString(AL_VERSION)
|
||||||
<<", using "<<alcGetString(m_device, ALC_DEVICE_SPECIFIER)
|
<<", using "<<alcGetString(m_device, ALC_DEVICE_SPECIFIER)
|
||||||
|
@ -409,7 +409,6 @@ public:
|
||||||
alSourcei(sound->source_id, AL_SOURCE_RELATIVE, false);
|
alSourcei(sound->source_id, AL_SOURCE_RELATIVE, false);
|
||||||
alSource3f(sound->source_id, AL_POSITION, pos.X, pos.Y, pos.Z);
|
alSource3f(sound->source_id, AL_POSITION, pos.X, pos.Y, pos.Z);
|
||||||
alSource3f(sound->source_id, AL_VELOCITY, 0, 0, 0);
|
alSource3f(sound->source_id, AL_VELOCITY, 0, 0, 0);
|
||||||
//alSourcef(sound->source_id, AL_ROLLOFF_FACTOR, 0.7);
|
|
||||||
alSourcef(sound->source_id, AL_REFERENCE_DISTANCE, 30.0);
|
alSourcef(sound->source_id, AL_REFERENCE_DISTANCE, 30.0);
|
||||||
alSourcei(sound->source_id, AL_LOOPING, loop ? AL_TRUE : AL_FALSE);
|
alSourcei(sound->source_id, AL_LOOPING, loop ? AL_TRUE : AL_FALSE);
|
||||||
volume = MYMAX(0.0, volume);
|
volume = MYMAX(0.0, volume);
|
||||||
|
|
Loading…
Reference in New Issue