From 0f9287adcbd241fb88a7709d083ecbe5e4b4aebd Mon Sep 17 00:00:00 2001 From: mcrcortex <18544518+MCRcortex@users.noreply.github.com> Date: Sun, 14 Dec 2025 18:00:22 +1000 Subject: [PATCH] wip face tinit --- .../backend/AbstractSectionRenderer.java | 34 +++++++++++++++++++ .../backend/mdic/MDICSectionRenderer.java | 33 +++--------------- .../voxy/client/iris/IrisShaderPatch.java | 1 - 3 files changed, 38 insertions(+), 30 deletions(-) diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/section/backend/AbstractSectionRenderer.java b/src/main/java/me/cortex/voxy/client/core/rendering/section/backend/AbstractSectionRenderer.java index 5c9fdf42..53fa0efe 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/section/backend/AbstractSectionRenderer.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/section/backend/AbstractSectionRenderer.java @@ -2,11 +2,16 @@ package me.cortex.voxy.client.core.rendering.section.backend; import me.cortex.voxy.client.core.AbstractRenderPipeline; +import me.cortex.voxy.client.core.gl.shader.Shader; +import me.cortex.voxy.client.core.gl.shader.ShaderType; import me.cortex.voxy.client.core.model.ModelStore; import me.cortex.voxy.client.core.rendering.Viewport; import me.cortex.voxy.client.core.rendering.section.geometry.BasicSectionGeometryData; import me.cortex.voxy.client.core.rendering.section.geometry.IGeometryData; import me.cortex.voxy.common.Logger; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.core.Direction; +import net.minecraft.world.level.dimension.DimensionType; import java.lang.reflect.InvocationTargetException; import java.util.List; @@ -64,4 +69,33 @@ public abstract class AbstractSectionRenderer , J extends } public void addDebug(List lines) {} + + protected static void addDirectionalFaceTint(Shader.Builder builder, ClientLevel cl) { + //TODO: generate the tinting table here and use the replacement feature + float[] tints = new float[7]; + tints[6] = cl.getShade(Direction.UP, false); + for (Direction direction : Direction.values()) { + tints[direction.get3DDataValue()] = cl.getShade(direction, true); + } + if (cl.dimensionType().cardinalLightType() == DimensionType.CardinalLightType.NETHER) { + builder.define("DARKENED_TINTING"); + } + } + + protected static Shader tryCompilePatchedOrNormal(Shader.Builder builder, String shader, String original) { + boolean patched = shader != original;//This is the correct comparison type (reference) + try { + return builder.clone() + .defineIf("PATCHED_SHADER", patched) + .addSource(ShaderType.FRAGMENT, shader) + .compile(); + } catch (RuntimeException e) { + if (patched) { + Logger.error("Failed to compile shader patch, using normal pipeline to prevent errors", e); + return tryCompilePatchedOrNormal(builder, original, original); + } else { + throw e; + } + } + } } diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/section/backend/mdic/MDICSectionRenderer.java b/src/main/java/me/cortex/voxy/client/core/rendering/section/backend/mdic/MDICSectionRenderer.java index 3cdf834c..9e5cbd1f 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/section/backend/mdic/MDICSectionRenderer.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/section/backend/mdic/MDICSectionRenderer.java @@ -114,11 +114,7 @@ public class MDICSectionRenderer extends AbstractSectionRenderer builder, String shader, String original) { - boolean patched = shader != original;//This is the correct comparison type (reference) - try { - return builder.clone() - .defineIf("PATCHED_SHADER", patched) - .addSource(ShaderType.FRAGMENT, shader) - .compile(); - } catch (RuntimeException e) { - if (patched) { - Logger.error("Failed to compile shader patch, using normal pipeline to prevent errors", e); - return tryCompilePatchedOrNormal(builder, original, original); - } else { - throw e; - } - } + this.translucentTerrainShader = tryCompilePatchedOrNormal(builder.define("TRANSLUCENT"), translucentFrag, frag); } private void uploadUniformBuffer(MDICViewport viewport) { @@ -379,11 +356,9 @@ public class MDICSectionRenderer extends AbstractSectionRenderer