fix z-fighting for vanilla emissives and enchant glints

This commit is contained in:
Xonk
2025-05-13 19:05:49 -04:00
parent 6e824ddd3c
commit 2a794f532c
3 changed files with 6 additions and 20 deletions

View File

@ -385,8 +385,11 @@ void main() {
#endif
position = mat3(gbufferModelView) * worldpos + gbufferModelView[3].xyz;
gl_Position = toClipSpace3(position);
// ensure hand/entities have the same transformations as the spidereyes and enchant glint programs.
#if !defined ENTITIES && !defined HAND
gl_Position = toClipSpace3(position);
#endif
#endif
#if defined Seasons && defined WORLD && !defined ENTITIES && !defined BLOCKENTITIES && !defined HAND

View File

@ -7,8 +7,6 @@ uniform sampler2D texture;
uniform sampler2D normals;
uniform sampler2D noisetex;
flat varying float exposure;
varying vec4 tangent;
varying vec4 normalMat;
uniform float frameTimeCounter;
@ -69,8 +67,6 @@ void main() {
minimumBrightness = 10.0;
#endif
// float autoBrightnessAdjust = mix(minimumBrightness, 100.0, clamp(exp(-10.0*exposure),0.0,1.0));
#ifdef DISABLE_VANILLA_EMISSIVES
vec3 emissiveColor = vec3(0.0);
Albedo.a = 0.0;
@ -82,7 +78,6 @@ void main() {
#endif
#ifdef ENCHANT_GLINT
// float autoBrightnessAdjust = mix(0.1, 100.0, clamp(exp(-10.0*exposure),0.0,1.0));
Albedo.rgb = clamp(Albedo.rgb ,0.0,1.0); // for safety
@ -93,8 +88,6 @@ void main() {
vec3 GlintColor = Albedo.rgb * Emissive_Brightness;
#endif
gl_FragData[0] = vec4(GlintColor*0.1, dot(Albedo.rgb,vec3(0.333)) * Albedo.a );
#endif
}

View File

@ -34,22 +34,13 @@ vec4 toClipSpace3(vec3 viewSpacePosition) {
//////////////////////////////VOID MAIN//////////////////////////////
uniform sampler2D colortex4;
flat varying float exposure;
void main() {
color = gl_Color;
texcoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st;
#if defined ENCHANT_GLINT || defined SPIDER_EYES || defined BEACON_BEAM
exposure = texelFetch2D(colortex4,ivec2(10,37),0).r;
vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz;
gl_Position = toClipSpace3(position);
#else
gl_Position = ftransform();
#endif
gl_Position = ftransform();
#ifdef BEACON_BEAM
if(gl_Color.a < 1.0) gl_Position = vec4(10,10,10,0);
@ -57,7 +48,6 @@ void main() {
#ifdef ENCHANT_GLINT
tangent = vec4(normalize(gl_NormalMatrix * at_tangent.rgb), at_tangent.w);
normalMat = vec4(normalize(gl_NormalMatrix * gl_Normal), 1.0);
#endif