|
@@ -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);
|
|
}
|
|
}
|