diff --git a/src/main/java/com/backsun/lod/renderer/LodRenderer.java b/src/main/java/com/backsun/lod/renderer/LodRenderer.java index e31424b4e..0a8bc3260 100644 --- a/src/main/java/com/backsun/lod/renderer/LodRenderer.java +++ b/src/main/java/com/backsun/lod/renderer/LodRenderer.java @@ -250,6 +250,11 @@ public class LodRenderer GL11.glDisable(GL11.GL_LIGHT0); GL11.glDisable(GL11.GL_LIGHT1); + // get the default projection matrix so we can + // reset it after drawing the LODs + float[] defaultProjMatrix = new float[16]; + GL11.glGetFloatv(GL11.GL_PROJECTION_MATRIX, defaultProjMatrix); + Matrix4f modelViewMatrix = generateModelViewMatrix(partialTicks); setupProjectionMatrix(partialTicks); @@ -281,6 +286,8 @@ public class LodRenderer + + //=========// // cleanup // //=========// @@ -306,6 +313,16 @@ public class LodRenderer RenderSystem.fogEnd(defaultFogEndDist); RenderSystem.fogMode(defaultFogMode); + // reset the projection matrix so anything drawn after + // the LODs will use the correct projection matrix + Matrix4f mvm = new Matrix4f(defaultProjMatrix); + mvm.transpose(); + gameRender.resetProjectionMatrix(mvm); + + // clear the depth buffer so anything drawn is drawn + // over the LODs + GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT); + // end of profiler tracking