fix shader near plane; remove dh near

This commit is contained in:
NULL511
2023-11-26 15:18:45 -05:00
parent 0dc267f038
commit ddc3291bf7
3 changed files with 11 additions and 10 deletions
@@ -30,6 +30,7 @@ import com.seibel.distanthorizons.core.render.glObject.vertexAttribute.VertexAtt
import com.seibel.distanthorizons.core.render.glObject.vertexAttribute.VertexPointer;
import com.seibel.distanthorizons.core.util.LodUtil;
import com.seibel.distanthorizons.core.render.fog.LodFogConfig;
import com.seibel.distanthorizons.core.util.RenderUtil;
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper;
import com.seibel.distanthorizons.coreapi.util.math.Mat4f;
import com.seibel.distanthorizons.coreapi.util.math.Vec3f;
@@ -41,7 +42,7 @@ public class LodRenderProgram extends ShaderProgram
public static final String VERTEX_CURVE_SHADER_PATH = "shaders/curve.vert";
public static final String FRAGMENT_SHADER_PATH = "shaders/flat_shaded.frag";
private static final IVersionConstants VERSION_CONSTANTS = SingletonInjector.INSTANCE.get(IVersionConstants.class);
private static final IMinecraftRenderWrapper MC_RENDER = SingletonInjector.INSTANCE.get(IMinecraftRenderWrapper.class);
//private static final IMinecraftRenderWrapper MC_RENDER = SingletonInjector.INSTANCE.get(IMinecraftRenderWrapper.class);
public final AbstractVertexAttribute vao;
@@ -123,10 +124,6 @@ public class LodRenderProgram extends ShaderProgram
if (earthRadiusUniform != -1) setUniform(earthRadiusUniform,
/*6371KM*/ 6371000.0f / fogConfig.earthCurveRatio);
// Fog/Clip Uniforms
float vanillaBlockRenderedDistance = ((float)MC_RENDER.getRenderDistance() - 0.5f) * LodUtil.CHUNK_WIDTH;
setUniform(clipDistanceUniform, vanillaBlockRenderedDistance);
// Noise Uniforms
setUniform(noiseEnabledUniform, fogConfig.noiseEnable);
setUniform(noiseStepsUniform, fogConfig.noiseSteps);
@@ -175,10 +172,10 @@ public class LodRenderProgram extends ShaderProgram
vao.unbindBuffersFromAllBindingPoint();
}
public void fillUniformData(Mat4f combinedMatrix, int lightmapBindPoint, int worldYOffset, int vanillaDrawDistance)
public void fillUniformData(Mat4f combinedMatrix, int lightmapBindPoint, int worldYOffset, float partialTicks)
{
super.bind();
vanillaDrawDistance += 32; // Give it a 2 chunk boundary for near fog.
//vanillaDrawDistance += 32; // Give it a 2 chunk boundary for near fog.
// uniforms
setUniform(combinedMatUniform, combinedMatrix);
setUniform(mircoOffsetUniform, 0.01f); // 0.01 block offset
@@ -191,6 +188,10 @@ public class LodRenderProgram extends ShaderProgram
// Debug
setUniform(whiteWorldUniform, Config.Client.Advanced.Debugging.enableWhiteWorld.get());
// Fog/Clip Uniforms
//float vanillaBlockRenderedDistance = ((float)MC_RENDER.getRenderDistance() - 0.5f) * LodUtil.CHUNK_WIDTH;
float dhNearClipDistance = RenderUtil.getNearClipPlaneDistanceInBlocks(partialTicks);
setUniform(clipDistanceUniform, dhNearClipDistance);
}
public void setModelPos(Vec3f modelPos)
@@ -365,7 +365,7 @@ public class LodRenderer
}
/*---------Get required data--------*/
int vanillaBlockRenderedDistance = MC_RENDER.getRenderDistance() * LodUtil.CHUNK_WIDTH;
//int vanillaBlockRenderedDistance = MC_RENDER.getRenderDistance() * LodUtil.CHUNK_WIDTH;
//Mat4f modelViewProjectionMatrix = RenderUtil.createCombinedModelViewProjectionMatrix(baseProjectionMatrix, baseModelViewMatrix, partialTicks);
Mat4f projectionMatrix = RenderUtil.createLodProjectionMatrix(baseProjectionMatrix, partialTicks);
@@ -375,7 +375,7 @@ public class LodRenderer
/*---------Fill uniform data--------*/
this.shaderProgram.fillUniformData(modelViewProjectionMatrix, /*Light map = GL_TEXTURE0*/ 0,
MC.getWrappedClientLevel().getMinHeight(), vanillaBlockRenderedDistance);
MC.getWrappedClientLevel().getMinHeight(), partialTicks);
lightmap.bind();
if (ENABLE_IBO)
@@ -152,7 +152,7 @@ public class RenderUtil
// Set new far and near clip plane values.
lodProj.setClipPlanes(
getNearClipPlaneDistanceInBlocks(partialTicks),
16f,
(float) ((farPlaneDistanceInBlocks + LodUtil.REGION_WIDTH) * Math.sqrt(2)));
return lodProj;