Преглед изворни кода

fixed spatialization (openal uses right handed coordinates)

ncannasse пре 8 година
родитељ
комит
b2a63085b3
2 измењених фајлова са 6 додато и 6 уклоњено
  1. 3 3
      hxd/snd/Driver.hx
  2. 3 3
      hxd/snd/effect/Spatialization.hx

+ 3 - 3
hxd/snd/Driver.hx

@@ -305,16 +305,16 @@ class Driver {
 
 		// update listener parameters
 		AL.listenerf(AL.GAIN, masterVolume);
-		AL.listener3f(AL.POSITION, listener.position.x, listener.position.y, listener.position.z);
+		AL.listener3f(AL.POSITION, -listener.position.x, listener.position.y, listener.position.z);
 
 		listener.direction.normalize();
 		var tmpBytes = getTmp(24);
-		tmpBytes.setFloat(0,  listener.direction.x);
+		tmpBytes.setFloat(0,  -listener.direction.x);
 		tmpBytes.setFloat(4,  listener.direction.y);
 		tmpBytes.setFloat(8,  listener.direction.z);
 
 		listener.up.normalize();
-		tmpBytes.setFloat(12, listener.up.x);
+		tmpBytes.setFloat(12, -listener.up.x);
 		tmpBytes.setFloat(16, listener.up.y);
 		tmpBytes.setFloat(20, listener.up.z);
 

+ 3 - 3
hxd/snd/effect/Spatialization.hx

@@ -40,9 +40,9 @@ class Spatialization extends Effect {
 	override function apply(channel : Channel, s : Driver.Source) {
 		AL.sourcei(s.inst,  AL.SOURCE_RELATIVE, AL.FALSE);
 
-		AL.source3f(s.inst, AL.POSITION,  position.x,  position.y,  position.z);
-		AL.source3f(s.inst, AL.VELOCITY,  velocity.x,  velocity.y,  velocity.z);
-		AL.source3f(s.inst, AL.DIRECTION, direction.x, direction.y, direction.z);
+		AL.source3f(s.inst, AL.POSITION,  -position.x,  position.y,  position.z);
+		AL.source3f(s.inst, AL.VELOCITY,  -velocity.x,  velocity.y,  velocity.z);
+		AL.source3f(s.inst, AL.DIRECTION, -direction.x, direction.y, direction.z);
 
 		AL.sourcef(s.inst, AL.REFERENCE_DISTANCE, referenceDistance);
 		AL.sourcef(s.inst, AL.ROLLOFF_FACTOR, rollOffFactor);