From 09d5df28561098312aa25fa57fde80a194f9f900 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Mon, 25 Oct 2021 11:14:17 +0200 Subject: [PATCH 1/3] Added the main wrapper classes (empty) --- src/main/java/com/seibel/lod/wrappers/BlockWrapper.java | 5 +++++ src/main/java/com/seibel/lod/wrappers/ChunkWrapper.java | 5 +++++ src/main/java/com/seibel/lod/wrappers/DimensionWrapper.java | 5 +++++ src/main/java/com/seibel/lod/wrappers/LigthMapWrapper.java | 5 +++++ .../java/com/seibel/lod/wrappers/MutableBlockPosWrapper.java | 5 +++++ src/main/java/com/seibel/lod/wrappers/TextureWrapper.java | 5 +++++ src/main/java/com/seibel/lod/wrappers/WorldWrapper.java | 5 +++++ 7 files changed, 35 insertions(+) create mode 100644 src/main/java/com/seibel/lod/wrappers/BlockWrapper.java create mode 100644 src/main/java/com/seibel/lod/wrappers/ChunkWrapper.java create mode 100644 src/main/java/com/seibel/lod/wrappers/DimensionWrapper.java create mode 100644 src/main/java/com/seibel/lod/wrappers/LigthMapWrapper.java create mode 100644 src/main/java/com/seibel/lod/wrappers/MutableBlockPosWrapper.java create mode 100644 src/main/java/com/seibel/lod/wrappers/TextureWrapper.java create mode 100644 src/main/java/com/seibel/lod/wrappers/WorldWrapper.java diff --git a/src/main/java/com/seibel/lod/wrappers/BlockWrapper.java b/src/main/java/com/seibel/lod/wrappers/BlockWrapper.java new file mode 100644 index 000000000..138db7bc9 --- /dev/null +++ b/src/main/java/com/seibel/lod/wrappers/BlockWrapper.java @@ -0,0 +1,5 @@ +package com.seibel.lod.wrappers; + +public class BlockWrapper +{ +} diff --git a/src/main/java/com/seibel/lod/wrappers/ChunkWrapper.java b/src/main/java/com/seibel/lod/wrappers/ChunkWrapper.java new file mode 100644 index 000000000..17c7e8258 --- /dev/null +++ b/src/main/java/com/seibel/lod/wrappers/ChunkWrapper.java @@ -0,0 +1,5 @@ +package com.seibel.lod.wrappers; + +public class ChunkWrapper +{ +} diff --git a/src/main/java/com/seibel/lod/wrappers/DimensionWrapper.java b/src/main/java/com/seibel/lod/wrappers/DimensionWrapper.java new file mode 100644 index 000000000..244fe1c53 --- /dev/null +++ b/src/main/java/com/seibel/lod/wrappers/DimensionWrapper.java @@ -0,0 +1,5 @@ +package com.seibel.lod.wrappers; + +public class DimensionWrapper +{ +} diff --git a/src/main/java/com/seibel/lod/wrappers/LigthMapWrapper.java b/src/main/java/com/seibel/lod/wrappers/LigthMapWrapper.java new file mode 100644 index 000000000..4b92b8cbf --- /dev/null +++ b/src/main/java/com/seibel/lod/wrappers/LigthMapWrapper.java @@ -0,0 +1,5 @@ +package com.seibel.lod.wrappers; + +public class LigthMapWrapper +{ +} diff --git a/src/main/java/com/seibel/lod/wrappers/MutableBlockPosWrapper.java b/src/main/java/com/seibel/lod/wrappers/MutableBlockPosWrapper.java new file mode 100644 index 000000000..7a140c32d --- /dev/null +++ b/src/main/java/com/seibel/lod/wrappers/MutableBlockPosWrapper.java @@ -0,0 +1,5 @@ +package com.seibel.lod.wrappers; + +public class MutableBlockPosWrapper +{ +} diff --git a/src/main/java/com/seibel/lod/wrappers/TextureWrapper.java b/src/main/java/com/seibel/lod/wrappers/TextureWrapper.java new file mode 100644 index 000000000..9ae9a8d9e --- /dev/null +++ b/src/main/java/com/seibel/lod/wrappers/TextureWrapper.java @@ -0,0 +1,5 @@ +package com.seibel.lod.wrappers; + +public class TextureWrapper +{ +} diff --git a/src/main/java/com/seibel/lod/wrappers/WorldWrapper.java b/src/main/java/com/seibel/lod/wrappers/WorldWrapper.java new file mode 100644 index 000000000..2e890310d --- /dev/null +++ b/src/main/java/com/seibel/lod/wrappers/WorldWrapper.java @@ -0,0 +1,5 @@ +package com.seibel.lod.wrappers; + +public class WorldWrapper +{ +} From 895895da04757f71167cef05e14bd1a579bcc591 Mon Sep 17 00:00:00 2001 From: cola98765 Date: Mon, 25 Oct 2021 12:43:59 +0200 Subject: [PATCH 2/3] update buffers only when lightmap changes. --- src/main/java/com/seibel/lod/render/LodRenderer.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/seibel/lod/render/LodRenderer.java b/src/main/java/com/seibel/lod/render/LodRenderer.java index 5c6741c75..5a4d91db9 100644 --- a/src/main/java/com/seibel/lod/render/LodRenderer.java +++ b/src/main/java/com/seibel/lod/render/LodRenderer.java @@ -105,6 +105,7 @@ public class LodRenderer private int[] previousPos = new int[] { 0, 0, 0 }; public NativeImage lightMap = null; + public NativeImage lastLightMap = null; // these variables are used to determine if the buffers should be rebuilt private float prevSkyBrightness = 0; @@ -881,11 +882,11 @@ public class LodRenderer // check if the vanilla rendered chunks changed if (newTime - prevVanillaChunkTime > LodConfig.CLIENT.advancedModOptions.buffers.rebuildTimes.get().renderedChunkTimeout) { - if (vanillaRenderedChunksChanged) + if (vanillaRenderedChunksChanged && lightMap != lastLightMap) { partialRegen = true; vanillaRenderedChunksChanged = false; - + lastLightMap = lightMap; } prevVanillaChunkTime = newTime; } From bd8ccb4a058f7f2e4b3683e66cab19fff32b0b7b Mon Sep 17 00:00:00 2001 From: cola98765 Date: Mon, 25 Oct 2021 13:20:13 +0200 Subject: [PATCH 3/3] reverted las change, fixed vanillaRenderedChunksChanged at hight altitudes --- .../java/com/seibel/lod/render/LodRenderer.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/seibel/lod/render/LodRenderer.java b/src/main/java/com/seibel/lod/render/LodRenderer.java index 5a4d91db9..c608e72ce 100644 --- a/src/main/java/com/seibel/lod/render/LodRenderer.java +++ b/src/main/java/com/seibel/lod/render/LodRenderer.java @@ -132,6 +132,7 @@ public class LodRenderer */ public boolean[][] vanillaRenderedChunks; public boolean vanillaRenderedChunksChanged; + public boolean vanillaRenderedChunksEmptySkip = false; public int vanillaBlockRenderedDistance; @@ -873,6 +874,11 @@ public class LodRenderer prevSkyBrightness = skyBrightness; } + /*if (lightMap != lastLightMap) + { + fullRegen = true; + lastLightMap = lightMap; + }*/ //================// // partial regens // @@ -882,11 +888,10 @@ public class LodRenderer // check if the vanilla rendered chunks changed if (newTime - prevVanillaChunkTime > LodConfig.CLIENT.advancedModOptions.buffers.rebuildTimes.get().renderedChunkTimeout) { - if (vanillaRenderedChunksChanged && lightMap != lastLightMap) + if (vanillaRenderedChunksChanged) { partialRegen = true; vanillaRenderedChunksChanged = false; - lastLightMap = lightMap; } prevVanillaChunkTime = newTime; } @@ -915,6 +920,8 @@ public class LodRenderer int zIndex; for (ChunkPos pos : chunkPosToSkip) { + vanillaRenderedChunksEmptySkip = false; + xIndex = (pos.x - mc.getPlayer().xChunk) + (chunkRenderDistance + 1); zIndex = (pos.z - mc.getPlayer().zChunk) + (chunkRenderDistance + 1); @@ -935,10 +942,11 @@ public class LodRenderer // if the player is high enough, draw all LODs - if (chunkPosToSkip.isEmpty() && mc.getPlayer().position().y > 256) + if (chunkPosToSkip.isEmpty() && mc.getPlayer().position().y > 256 && !vanillaRenderedChunksEmptySkip) { vanillaRenderedChunks = new boolean[vanillaRenderedChunksWidth][vanillaRenderedChunksWidth]; vanillaRenderedChunksChanged = true; + vanillaRenderedChunksEmptySkip = true; } }