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 53fa0efe..38abedd8 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 @@ -71,15 +71,18 @@ public abstract class AbstractSectionRenderer , J extends public void addDebug(List lines) {} protected static void addDirectionalFaceTint(Shader.Builder builder, ClientLevel cl) { + builder.define("NO_SHADE_FACE_TINT", cl.getShade(Direction.UP, false)); + builder.define("UP_FACE_TINT", cl.getShade(Direction.UP, true)); + builder.define("DOWN_FACE_TINT", cl.getShade(Direction.DOWN, true)); + builder.define("Z_AXIS_FACE_TINT", cl.getShade(Direction.NORTH, true));//assumed here that Direction.SOUTH returns the same value + builder.define("X_AXIS_FACE_TINT", cl.getShade(Direction.EAST, true));//assumed here that Direction.WEST returns the same value + /* //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) { diff --git a/src/main/resources/assets/voxy/shaders/lod/quad_util.glsl b/src/main/resources/assets/voxy/shaders/lod/quad_util.glsl index a77e98e0..dee1081a 100644 --- a/src/main/resources/assets/voxy/shaders/lod/quad_util.glsl +++ b/src/main/resources/assets/voxy/shaders/lod/quad_util.glsl @@ -179,36 +179,23 @@ vec2 getCornerUV(const in QuadData quad, uint cornerId) { #ifndef PATCHED_SHADER float computeDirectionalFaceTint(bool isShaded, uint face) { //Apply face tint - #ifdef DARKENED_TINTING if (isShaded) { //just index on a const array with the face as an index, will be much faster // or use a vector and select/sum // but per face might be easier? - //TODO: make branchless, infact apply ahead of time to the texture itself in ModelManager since that is - // per face + + if ((face>>1) == 1) {//NORTH, SOUTH - return 0.8f; + return Z_AXIS_FACE_TINT; } else if ((face>>1) == 2) {//EAST, WEST - return 0.6f; - } else {//UP DOWN - return 0.9f; + return X_AXIS_FACE_TINT; + } else if (face == 1) {//UP + return UP_FACE_TINT; } + //DOWN + return DOWN_FACE_TINT; } else { - return 0.9f; + return NO_SHADE_FACE_TINT; } - #else - if (isShaded) { - //TODO: make branchless, infact apply ahead of time to the texture itself in ModelManager since that is - // per face - if ((face>>1) == 1) {//NORTH, SOUTH - return 0.8f; - } else if ((face>>1) == 2) {//EAST, WEST - return 0.6f; - } else if (face == 0) {//DOWN - return 0.5f; - } - } - #endif - return 1.0f; } #endif \ No newline at end of file