mirror of https://github.com/bjornbytes/lovr.git
simple spatializer uses physically correct attenuation;
This matches phonon.
This commit is contained in:
parent
39a4d2c1d5
commit
a94a1c22bf
|
@ -29,7 +29,7 @@ uint32_t simple_spatializer_source_apply(Source* source, const float* input, flo
|
||||||
mat4_transform(state.listener, rightEar);
|
mat4_transform(state.listener, rightEar);
|
||||||
float ldistance = vec3_distance(sourcePos, leftEar);
|
float ldistance = vec3_distance(sourcePos, leftEar);
|
||||||
float rdistance = vec3_distance(sourcePos, rightEar);
|
float rdistance = vec3_distance(sourcePos, rightEar);
|
||||||
float distanceAttenuation = MAX(1.f - distance / 10.f, 0.f);
|
float distanceAttenuation = 1.f / MAX(distance, 1.f);
|
||||||
float leftAttenuation = .5f + (rdistance - ldistance) * 2.5f;
|
float leftAttenuation = .5f + (rdistance - ldistance) * 2.5f;
|
||||||
float rightAttenuation = .5f + (ldistance - rdistance) * 2.5f;
|
float rightAttenuation = .5f + (ldistance - rdistance) * 2.5f;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue