From a82ef3dcde1b085f0a030429ef3c0d39c06d76b7 Mon Sep 17 00:00:00 2001 From: Morippi Date: Sat, 11 Dec 2021 00:42:08 +0100 Subject: [PATCH] Fixed position bug in the rendering --- .../seibel/lod/core/builders/lodBuilding/LodBuilder.java | 2 +- src/main/java/com/seibel/lod/core/render/LodRenderer.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/seibel/lod/core/builders/lodBuilding/LodBuilder.java b/src/main/java/com/seibel/lod/core/builders/lodBuilding/LodBuilder.java index 1a8fe3e50..b11ec475c 100644 --- a/src/main/java/com/seibel/lod/core/builders/lodBuilding/LodBuilder.java +++ b/src/main/java/com/seibel/lod/core/builders/lodBuilding/LodBuilder.java @@ -248,7 +248,7 @@ import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; zAbs = chunk.getMinZ() + zRel; //Calculate the height of the lod - yAbs = DataPointUtil.WORLD_HEIGHT - DataPointUtil.VERTICAL_OFFSET + 1; + yAbs = chunk.getMaxY(xRel,zRel); int count = 0; boolean topBlock = true; while (yAbs > 0) diff --git a/src/main/java/com/seibel/lod/core/render/LodRenderer.java b/src/main/java/com/seibel/lod/core/render/LodRenderer.java index 09c484252..2c57b5b62 100644 --- a/src/main/java/com/seibel/lod/core/render/LodRenderer.java +++ b/src/main/java/com/seibel/lod/core/render/LodRenderer.java @@ -573,8 +573,8 @@ public class LodRenderer // translate the camera relative to the regions' center // (AxisAlignedBoundingBoxes (LODs) use doubles and thus have a higher // accuracy vs the model view matrix, which only uses floats) - int bufferPosX = LevelPosUtil.convert(LodUtil.REGION_DETAIL_LEVEL, vbosCenterX, LodUtil.CHUNK_DETAIL_LEVEL); - int bufferPosZ = LevelPosUtil.convert(LodUtil.REGION_DETAIL_LEVEL, vbosCenterZ, LodUtil.CHUNK_DETAIL_LEVEL); + int bufferPosX = LevelPosUtil.convert(LodUtil.CHUNK_DETAIL_LEVEL, vbosCenterX, LodUtil.BLOCK_DETAIL_LEVEL); + int bufferPosZ = LevelPosUtil.convert(LodUtil.CHUNK_DETAIL_LEVEL, vbosCenterZ, LodUtil.BLOCK_DETAIL_LEVEL); double xDiff = projectedView.x - bufferPosX; double zDiff = projectedView.z - bufferPosZ; mcModelViewMatrix.multiplyTranslationMatrix(-xDiff, -projectedView.y, -zDiff); @@ -588,8 +588,8 @@ public class LodRenderer */ private Vec3f getTranslatedCameraPos() { - int worldCenterX = LevelPosUtil.convert(LodUtil.REGION_DETAIL_LEVEL, vbosCenterX, LodUtil.CHUNK_DETAIL_LEVEL); - int worldCenterZ = LevelPosUtil.convert(LodUtil.REGION_DETAIL_LEVEL, vbosCenterZ, LodUtil.CHUNK_DETAIL_LEVEL); + int worldCenterX = LevelPosUtil.convert(LodUtil.CHUNK_DETAIL_LEVEL, vbosCenterX, LodUtil.BLOCK_DETAIL_LEVEL); + int worldCenterZ = LevelPosUtil.convert(LodUtil.CHUNK_DETAIL_LEVEL, vbosCenterZ, LodUtil.BLOCK_DETAIL_LEVEL); Vec3d cameraPos = MC_RENDER.getCameraExactPosition(); return new Vec3f((float)cameraPos.x - worldCenterX, (float)cameraPos.y, (float)cameraPos.z - worldCenterZ); }