From e02156b1a4cc9b0de08856fc3684bdaea5d7313c Mon Sep 17 00:00:00 2001 From: James Seibel Date: Sun, 28 Feb 2021 15:07:09 -0600 Subject: [PATCH] Add LOD lighting --- .../com/backsun/lod/renderer/LodRenderer.java | 17 +++++++---------- .../resources/META-INF/accesstransformer.cfg | 3 +++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/backsun/lod/renderer/LodRenderer.java b/src/main/java/com/backsun/lod/renderer/LodRenderer.java index 2f188d3b6..7efc878e5 100644 --- a/src/main/java/com/backsun/lod/renderer/LodRenderer.java +++ b/src/main/java/com/backsun/lod/renderer/LodRenderer.java @@ -270,7 +270,7 @@ public class LodRenderer Matrix4f modelViewMatrix = generateModelViewMatrix(); setupProjectionMatrix(partialTicks); -// setupLighting(partialTicks); + setupLighting(partialTicks); NearFarFogSetting fogSetting = determineFogSettings(); @@ -443,6 +443,8 @@ public class LodRenderer */ private void setupProjectionMatrix(float partialTicks) { + // TODO fix bobbing/portal swirling not moving the LODs + // issue #6 Matrix4f projectionMatrix = Matrix4f.perspective( getFov(partialTicks, true), @@ -459,19 +461,14 @@ public class LodRenderer /** * setup the lighting to be used for the LODs */ - @SuppressWarnings({ "unused", "deprecation" }) private void setupLighting(float partialTicks) { - GL11.glEnable(GL11.GL_COLOR_MATERIAL); // set the color to be used as the material (this allows lighting to be enabled) + float sunBrightness = lodDimension.dimension.hasSkyLight() ? mc.world.getSunBrightness(partialTicks) : 0.2f; + float gammaMultiplyer = (float)mc.gameSettings.gamma - 0.5f; + float lightStrength = sunBrightness - 0.7f + (gammaMultiplyer * 0.2f); - // FIXME - // this isn't perfect right now, but it looks pretty good at 50% brightness - float sunBrightness = mc.world.getSunBrightness(partialTicks); // * mc.world.provider.getSunBrightnessFactor(partialTicks); - float skyHasLight = 1.0f; //mc.world.provider.hasSkyLight()? 1.0f : 0.15f; - float gammaMultiplyer = (float) mc.gameSettings.gamma * 0.5f + 0.5f; - float lightStrength = sunBrightness * skyHasLight * gammaMultiplyer; float lightAmbient[] = {lightStrength, lightStrength, lightStrength, 1.0f}; - + ByteBuffer temp = ByteBuffer.allocateDirect(16); temp.order(ByteOrder.nativeOrder()); GL11.glLightfv(LOD_GL_LIGHT_NUMBER, GL11.GL_AMBIENT, (FloatBuffer) temp.asFloatBuffer().put(lightAmbient).flip()); diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index d2a35063c..e5f2f8397 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -19,6 +19,9 @@ public net.minecraft.client.renderer.GameRenderer field_228377_x_ # cameraPitch # make public the folder in the DimensionSavedDataManager public net.minecraft.world.storage.DimensionSavedDataManager field_215759_d # folder +# make public the ambiantLight field in DimensionType +public net.minecraft.world.DimensionType field_236017_x_ # ambientLight + #=====================# # Examples from Forge #