diff --git a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/LodQuadBuilder.java b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/LodQuadBuilder.java index 8cf307cd2..eb19150a6 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/LodQuadBuilder.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/LodQuadBuilder.java @@ -399,31 +399,33 @@ public class LodQuadBuilder } private void putVertex(ByteBuffer bb, short x, short y, short z, int color, byte normalIndex, byte irisBlockMaterialId, byte skylight, byte blocklight, int mx, int my, int mz) { - skylight %= 16; - blocklight %= 16; - bb.putShort(x); bb.putShort(y); bb.putShort(z); short meta = 0; - meta |= (skylight | (blocklight << 4)); - byte mirco = 0; - // mirco offset which is a xyz 2bit value - // 0b00 = no offset - // 0b01 = positive offset - // 0b11 = negative offset - // format is: 0b00zzyyxx - if (mx != 0) mirco |= mx > 0 ? 0b01 : 0b11; - if (my != 0) mirco |= my > 0 ? 0b0100 : 0b1100; - if (mz != 0) mirco |= mz > 0 ? 0b010000 : 0b110000; - meta |= mirco << 8; - + { + skylight %= 16; + blocklight %= 16; + meta |= (short) (skylight | (blocklight << 4)); + + byte mircoOffset = 0; + // mirco offset which is a xyz 2bit value + // 0b00 = no offset + // 0b01 = positive offset + // 0b11 = negative offset + // format is: 0b00zzyyxx + if (mx != 0) { mircoOffset |= (byte) (mx > 0 ? 0b01 : 0b11); } + if (my != 0) { mircoOffset |= (byte) (my > 0 ? 0b0100 : 0b1100); } + if (mz != 0) { mircoOffset |= (byte) (mz > 0 ? 0b010000 : 0b110000); } + meta |= (short) (mircoOffset << 8); + } bb.putShort(meta); + byte r = (byte) ColorUtil.getRed(color); byte g = (byte) ColorUtil.getGreen(color); byte b = (byte) ColorUtil.getBlue(color); - byte a = this.doTransparency ? (byte) ColorUtil.getAlpha(color) : (byte) 255; // TODO should this be called here or happen somewhere else? + byte a = this.doTransparency ? (byte) ColorUtil.getAlpha(color) : (byte) 255; bb.put(r); bb.put(g); bb.put(b); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/shader/ShaderProgram.java b/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/shader/ShaderProgram.java index 86db29420..16d3174c6 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/shader/ShaderProgram.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/shader/ShaderProgram.java @@ -95,7 +95,7 @@ public class ShaderProgram for (int i = 0; i < attributes.length; i++) { - GL32.glBindAttribLocation(id, i, attributes[i]); + GL32.glBindAttribLocation(this.id, i, attributes[i]); } GL32.glLinkProgram(this.id); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/vertexAttribute/VertexPointer.java b/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/vertexAttribute/VertexPointer.java index f02e3e394..061827aa3 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/vertexAttribute/VertexPointer.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/vertexAttribute/VertexPointer.java @@ -59,8 +59,10 @@ public final class VertexPointer /** Always aligned to 4 bytes */ public static VertexPointer addUnsignedBytePointer(boolean normalized, boolean useInteger) { return new VertexPointer(1, GL32.GL_UNSIGNED_BYTE, normalized, 4, useInteger); } /** aligned to 4 bytes */ - public static VertexPointer addUnsignedBytesPointer(int elementCount, boolean normalized, boolean useInteger) { return new VertexPointer(elementCount, GL32.GL_UNSIGNED_BYTE, normalized, _align(elementCount), useInteger); } - public static VertexPointer addUnsignedShortsPointer(int elementCount, boolean normalized, boolean useInteger) { return new VertexPointer(elementCount, GL32.GL_UNSIGNED_SHORT, normalized, _align(elementCount * 2), useInteger); } + public static VertexPointer addUnsignedBytesPointer(int elementCount, boolean normalized, boolean useInteger) + { return new VertexPointer(elementCount, GL32.GL_UNSIGNED_BYTE, normalized, _align(elementCount), useInteger); } + public static VertexPointer addUnsignedShortsPointer(int elementCount, boolean normalized, boolean useInteger) + { return new VertexPointer(elementCount, GL32.GL_UNSIGNED_SHORT, normalized, _align(elementCount * 2), useInteger); } public static VertexPointer addShortsPointer(int elementCount, boolean normalized, boolean useInteger) { return new VertexPointer(elementCount, GL32.GL_SHORT, normalized, _align(elementCount * 2), useInteger); } public static VertexPointer addIntPointer(boolean normalized, boolean useInteger) { return new VertexPointer(1, GL32.GL_INT, normalized, 4, useInteger); } public static VertexPointer addIVec2Pointer(boolean normalized, boolean useInteger) { return new VertexPointer(2, GL32.GL_INT, normalized, 8, useInteger); } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/DhTerrainShaderProgram.java b/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/DhTerrainShaderProgram.java index 2af45ee4c..198430ad0 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/DhTerrainShaderProgram.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/DhTerrainShaderProgram.java @@ -64,7 +64,7 @@ public class DhTerrainShaderProgram extends ShaderProgram implements IDhApiShade public int uNoiseDropoff = -1; // Debug Uniform - public int uWhiteWorld = -1; + public int uIsWhiteWorld = -1; @@ -102,7 +102,7 @@ public class DhTerrainShaderProgram extends ShaderProgram implements IDhApiShade this.uNoiseDropoff = this.getUniformLocation("uNoiseDropoff"); // Debug Uniform - this.uWhiteWorld = this.getUniformLocation("uWhiteWorld"); + this.uIsWhiteWorld = this.getUniformLocation("uIsWhiteWorld"); // TODO: Add better use of the LODFormat thing @@ -192,7 +192,7 @@ public class DhTerrainShaderProgram extends ShaderProgram implements IDhApiShade this.setUniform(this.uNoiseDropoff, Config.Client.Advanced.Graphics.NoiseTexture.noiseDropoff.get()); // Debug - this.setUniform(this.uWhiteWorld, Config.Client.Advanced.Debugging.enableWhiteWorld.get()); + this.setUniform(this.uIsWhiteWorld, Config.Client.Advanced.Debugging.enableWhiteWorld.get()); // Clip Uniform float dhNearClipDistance = RenderUtil.getNearClipPlaneInBlocksForFading(renderParameters.partialTicks); diff --git a/core/src/main/resources/shaders/standard.vert b/core/src/main/resources/shaders/standard.vert index bcff6d9c8..0c841cf3b 100644 --- a/core/src/main/resources/shaders/standard.vert +++ b/core/src/main/resources/shaders/standard.vert @@ -8,13 +8,12 @@ out vec4 vertexColor; out vec3 vertexWorldPos; out float vertexYPos; -uniform bool uWhiteWorld; +uniform bool uIsWhiteWorld; uniform mat4 uCombinedMatrix; uniform vec3 uModelOffset; uniform float uWorldYOffset; -uniform int uWorldSkyLight; uniform sampler2D uLightMap; uniform float uMircoOffset; @@ -57,7 +56,7 @@ void main() float light = (float(lights/16u)+0.5) / 16.0; vertexColor = vec4(texture(uLightMap, vec2(light, light2)).xyz, 1.0); - if (!uWhiteWorld) + if (!uIsWhiteWorld) { vertexColor *= color; }