diff --git a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/LodBufferContainer.java b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/LodBufferContainer.java index 1d71b7812..95338fe68 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/LodBufferContainer.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/LodBufferContainer.java @@ -66,7 +66,7 @@ public class LodBufferContainer implements AutoCloseable public IVertexBufferWrapper[] vbos; public IVertexBufferWrapper[] vbosTransparent; - public ILodContainerUniformBufferWrapper uniforms = WRAPPER_FACTORY.createLodContainerUniformWrapper(); + public ILodContainerUniformBufferWrapper uniformContainer = WRAPPER_FACTORY.createLodContainerUniformWrapper(); private final AtomicReference> uploadFutureRef = new AtomicReference<>(null); @@ -82,6 +82,8 @@ public class LodBufferContainer implements AutoCloseable this.minCornerBlockPos = minCornerBlockPos; this.vbos = new IVertexBufferWrapper[0]; this.vbosTransparent = new IVertexBufferWrapper[0]; + + this.uniformContainer.createUniformData(this); } @@ -311,7 +313,7 @@ public class LodBufferContainer implements AutoCloseable } } - this.uniforms.close(); + this.uniformContainer.close(); }); } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/render/ILodContainerUniformBufferWrapper.java b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/render/ILodContainerUniformBufferWrapper.java index 6eedda0e2..93c9183f5 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/render/ILodContainerUniformBufferWrapper.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/render/ILodContainerUniformBufferWrapper.java @@ -20,9 +20,12 @@ package com.seibel.distanthorizons.core.wrapperInterfaces.render; import com.seibel.distanthorizons.core.dataObjects.render.bufferBuilding.LodBufferContainer; -import com.seibel.distanthorizons.core.render.renderer.RenderParams; public interface ILodContainerUniformBufferWrapper extends IUniformBufferWrapper { - void createBufferData(RenderParams renderEventParam, LodBufferContainer bufferContainer); + + void createUniformData(LodBufferContainer bufferContainer); + + void tryUpload(); + } diff --git a/core/src/main/resources/assets/distanthorizons/shaders/lod/blaze/vert.vsh b/core/src/main/resources/assets/distanthorizons/shaders/lod/blaze/vert.vsh index 3b5fdf531..e2eed781e 100644 --- a/core/src/main/resources/assets/distanthorizons/shaders/lod/blaze/vert.vsh +++ b/core/src/main/resources/assets/distanthorizons/shaders/lod/blaze/vert.vsh @@ -24,6 +24,7 @@ layout (std140) uniform vertSharedUniformBlock float uMircoOffset; float uEarthRadius; + vec3 uCameraPos; mat4 uCombinedMatrix; }; @@ -36,7 +37,7 @@ void main() { vPos = vPosition; // This is so it can be passed to the fragment shader - vertexWorldPos = vPosition.xyz + uModelOffset; + vertexWorldPos = vPosition.xyz + (uModelOffset - uCameraPos); vertexYPos = vPosition.y + uWorldYOffset;