Update audio_sound_positioning.c

Calculate `right` Vector3 for correct audio stereo positioning.
This commit is contained in:
Daniel Abbott 2025-04-30 10:12:35 -06:00 committed by GitHub
parent 1ec281e86f
commit 696f225f29
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -108,7 +108,7 @@ static void SetSoundPosition(Camera listener, Sound sound, Vector3 position, flo
// Calculate normalized vectors for spatial positioning // Calculate normalized vectors for spatial positioning
Vector3 normalizedDirection = Vector3Normalize(direction); Vector3 normalizedDirection = Vector3Normalize(direction);
Vector3 forward = Vector3Normalize(Vector3Subtract(listener.target, listener.position)); Vector3 forward = Vector3Normalize(Vector3Subtract(listener.target, listener.position));
Vector3 right = Vector3Normalize(Vector3CrossProduct(forward, listener.up)); Vector3 right = Vector3Normalize(Vector3CrossProduct(listener.up, forward));
// Reduce volume for sounds behind the listener // Reduce volume for sounds behind the listener
float dotProduct = Vector3DotProduct(forward, normalizedDirection); float dotProduct = Vector3DotProduct(forward, normalizedDirection);
@ -120,4 +120,4 @@ static void SetSoundPosition(Camera listener, Sound sound, Vector3 position, flo
// Apply final sound properties // Apply final sound properties
SetSoundVolume(sound, attenuation); SetSoundVolume(sound, attenuation);
SetSoundPan(sound, pan); SetSoundPan(sound, pan);
} }