Forráskód Böngészése

ObjectFollower : Fix depthMask with reverseDepth

TothBenoit 2 hónapja
szülő
commit
a70b52a64e
1 módosított fájl, 6 hozzáadás és 3 törlés
  1. 6 3
      h2d/ObjectFollower.hx

+ 6 - 3
h2d/ObjectFollower.hx

@@ -191,16 +191,19 @@ class ObjectFollower extends Object {
 		}
 		}
 
 
 		@:privateAccess {
 		@:privateAccess {
+			var scene = follow.getScene();
+			var camera = scene.getRenderCamera();
+			var wantedMode : h3d.mat.Data.Compare = camera.reverseDepth ? GreaterEqual : LessEqual;
 			var prev = ctx.baseShader.zValue;
 			var prev = ctx.baseShader.zValue;
 			var prevMode = ctx.pass.depthTest, prevWrite = ctx.pass.depthWrite;
 			var prevMode = ctx.pass.depthTest, prevWrite = ctx.pass.depthWrite;
-			if( prevMode != LessEqual ) {
-				ctx.pass.depth(true, LessEqual);
+			if( prevMode != wantedMode ) {
+				ctx.pass.depth(true, wantedMode);
 				ctx.engine.selectMaterial(ctx.pass);
 				ctx.engine.selectMaterial(ctx.pass);
 			}
 			}
 			ctx.baseShader.zValue = zValue;
 			ctx.baseShader.zValue = zValue;
 			super.drawRec(ctx);
 			super.drawRec(ctx);
 			ctx.baseShader.zValue = prev;
 			ctx.baseShader.zValue = prev;
-			if( prevMode != LessEqual ) {
+			if( prevMode != wantedMode ) {
 				ctx.pass.depth(prevWrite, prevMode);
 				ctx.pass.depth(prevWrite, prevMode);
 				ctx.engine.selectMaterial(ctx.pass);
 				ctx.engine.selectMaterial(ctx.pass);
 			}
 			}