From c1375f7a10eb2b17e1c46cfef18ad9db92bfbe59 Mon Sep 17 00:00:00 2001 From: Morippi Date: Sat, 11 Dec 2021 01:26:03 +0100 Subject: [PATCH] small fixes, + changed variables name --- .../LodBufferBuilderFactory.java | 27 +++++++++---------- .../seibel/lod/core/render/LodRenderer.java | 17 +++++++----- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/seibel/lod/core/builders/bufferBuilding/LodBufferBuilderFactory.java b/src/main/java/com/seibel/lod/core/builders/bufferBuilding/LodBufferBuilderFactory.java index abf017fc1..f2a8a746d 100644 --- a/src/main/java/com/seibel/lod/core/builders/bufferBuilding/LodBufferBuilderFactory.java +++ b/src/main/java/com/seibel/lod/core/builders/bufferBuilding/LodBufferBuilderFactory.java @@ -30,7 +30,6 @@ import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.locks.ReentrantLock; -import net.minecraft.util.math.BlockPos; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL15; import org.lwjgl.opengl.GL30; @@ -59,8 +58,6 @@ import com.seibel.lod.core.util.LodUtil; import com.seibel.lod.core.util.SingletonHandler; import com.seibel.lod.core.util.ThreadMapUtil; import com.seibel.lod.core.wrapperInterfaces.IWrapperFactory; -import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; @@ -154,8 +151,8 @@ public class LodBufferBuilderFactory */ private volatile int drawableCenterChunkPosX = 0; private volatile int drawableCenterChunkPosZ = 0; - private volatile int buildableCenterChunkPosX = 0; - private volatile int buildableCenterChunkPosZ = 0; + private volatile int buildableCenterBlockPosX = 0; + private volatile int buildableCenterBlockPosZ = 0; @@ -236,8 +233,10 @@ public class LodBufferBuilderFactory vertexOptimizerCache = new VertexOptimizer[lodDim.getWidth()][lodDim.getWidth()]; // this will be the center of the VBOs once they have been built - buildableCenterChunkPosX = playerChunkX; - buildableCenterChunkPosZ = playerChunkZ; + //buildableCenterChunkPosX = playerChunkX; + //buildableCenterChunkPosZ = playerChunkZ; + buildableCenterBlockPosX = playerX; + buildableCenterBlockPosZ = playerZ; //================================// @@ -1018,8 +1017,8 @@ public class LodBufferBuilderFactory drawableStorageBufferIds = buildableStorageBufferIds; buildableStorageBufferIds = tmpStorage; - drawableCenterChunkPosX = buildableCenterChunkPosX; - drawableCenterChunkPosZ = buildableCenterChunkPosZ; + drawableCenterChunkPosX = buildableCenterBlockPosX; + drawableCenterChunkPosZ = buildableCenterBlockPosZ; // the vbos have been swapped switchVbos = false; @@ -1043,15 +1042,15 @@ public class LodBufferBuilderFactory { public final LodVertexBuffer[][][] vbos; public final int[][][] storageBufferIds; - public int drawableCenterChunkPosX; - public int drawableCenterChunkPosZ; + public int drawableCenterBlockPosX; + public int drawableCenterBlockPosZ; - public VertexBuffersAndOffset(LodVertexBuffer[][][] newVbos, int[][][] newStorageBufferIds, int newDrawableCenterChunkPosX, int newDrawableCenterChunkPosZ) + public VertexBuffersAndOffset(LodVertexBuffer[][][] newVbos, int[][][] newStorageBufferIds, int newDrawableCenterBlockPosX, int newDrawableCenterBlockPosZ) { vbos = newVbos; storageBufferIds = newStorageBufferIds; - drawableCenterChunkPosX = newDrawableCenterChunkPosX; - drawableCenterChunkPosZ = newDrawableCenterChunkPosZ; + drawableCenterBlockPosX = newDrawableCenterBlockPosX; + drawableCenterBlockPosZ = newDrawableCenterBlockPosZ; } } 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 2c57b5b62..13a3de9fc 100644 --- a/src/main/java/com/seibel/lod/core/render/LodRenderer.java +++ b/src/main/java/com/seibel/lod/core/render/LodRenderer.java @@ -38,7 +38,6 @@ import com.seibel.lod.core.enums.rendering.FogDistance; import com.seibel.lod.core.enums.rendering.FogDrawMode; import com.seibel.lod.core.handlers.IReflectionHandler; import com.seibel.lod.core.objects.lod.LodDimension; -import com.seibel.lod.core.objects.lod.RegionPos; import com.seibel.lod.core.objects.math.Mat4f; import com.seibel.lod.core.objects.math.Vec3d; import com.seibel.lod.core.objects.math.Vec3f; @@ -573,8 +572,10 @@ 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.CHUNK_DETAIL_LEVEL, vbosCenterX, LodUtil.BLOCK_DETAIL_LEVEL); - int bufferPosZ = LevelPosUtil.convert(LodUtil.CHUNK_DETAIL_LEVEL, vbosCenterZ, LodUtil.BLOCK_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); + int bufferPosX = vbosCenterX; + int bufferPosZ = vbosCenterZ; double xDiff = projectedView.x - bufferPosX; double zDiff = projectedView.z - bufferPosZ; mcModelViewMatrix.multiplyTranslationMatrix(-xDiff, -projectedView.y, -zDiff); @@ -588,8 +589,10 @@ public class LodRenderer */ private Vec3f getTranslatedCameraPos() { - 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); + //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); + int worldCenterX = vbosCenterX; + int worldCenterZ = vbosCenterZ; Vec3d cameraPos = MC_RENDER.getCameraExactPosition(); return new Vec3f((float)cameraPos.x - worldCenterX, (float)cameraPos.y, (float)cameraPos.z - worldCenterZ); } @@ -667,8 +670,8 @@ public class LodRenderer VertexBuffersAndOffset result = lodBufferBuilderFactory.getVertexBuffers(); vbos = result.vbos; storageBufferIds = result.storageBufferIds; - vbosCenterX = result.drawableCenterChunkPosX; - vbosCenterZ = result.drawableCenterChunkPosZ; + vbosCenterX = result.drawableCenterBlockPosX; + vbosCenterZ = result.drawableCenterBlockPosZ; } /** Calls the BufferBuilder's destroyBuffers method. */