fix shader near plane; remove dh near
This commit is contained in:
+8
-7
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user