mirror of
https://github.com/X0nk/Bliss-Shader.git
synced 2025-06-26 18:22:33 +08:00
fix z-fighting for vanilla emissives and enchant glints
This commit is contained in:
@ -386,7 +386,10 @@ void main() {
|
|||||||
|
|
||||||
position = mat3(gbufferModelView) * worldpos + gbufferModelView[3].xyz;
|
position = mat3(gbufferModelView) * worldpos + gbufferModelView[3].xyz;
|
||||||
|
|
||||||
|
// ensure hand/entities have the same transformations as the spidereyes and enchant glint programs.
|
||||||
|
#if !defined ENTITIES && !defined HAND
|
||||||
gl_Position = toClipSpace3(position);
|
gl_Position = toClipSpace3(position);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined Seasons && defined WORLD && !defined ENTITIES && !defined BLOCKENTITIES && !defined HAND
|
#if defined Seasons && defined WORLD && !defined ENTITIES && !defined BLOCKENTITIES && !defined HAND
|
||||||
|
@ -7,8 +7,6 @@ uniform sampler2D texture;
|
|||||||
uniform sampler2D normals;
|
uniform sampler2D normals;
|
||||||
uniform sampler2D noisetex;
|
uniform sampler2D noisetex;
|
||||||
|
|
||||||
flat varying float exposure;
|
|
||||||
|
|
||||||
varying vec4 tangent;
|
varying vec4 tangent;
|
||||||
varying vec4 normalMat;
|
varying vec4 normalMat;
|
||||||
uniform float frameTimeCounter;
|
uniform float frameTimeCounter;
|
||||||
@ -69,8 +67,6 @@ void main() {
|
|||||||
minimumBrightness = 10.0;
|
minimumBrightness = 10.0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// float autoBrightnessAdjust = mix(minimumBrightness, 100.0, clamp(exp(-10.0*exposure),0.0,1.0));
|
|
||||||
|
|
||||||
#ifdef DISABLE_VANILLA_EMISSIVES
|
#ifdef DISABLE_VANILLA_EMISSIVES
|
||||||
vec3 emissiveColor = vec3(0.0);
|
vec3 emissiveColor = vec3(0.0);
|
||||||
Albedo.a = 0.0;
|
Albedo.a = 0.0;
|
||||||
@ -82,7 +78,6 @@ void main() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ENCHANT_GLINT
|
#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
|
Albedo.rgb = clamp(Albedo.rgb ,0.0,1.0); // for safety
|
||||||
|
|
||||||
@ -93,8 +88,6 @@ void main() {
|
|||||||
vec3 GlintColor = Albedo.rgb * Emissive_Brightness;
|
vec3 GlintColor = Albedo.rgb * Emissive_Brightness;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
gl_FragData[0] = vec4(GlintColor*0.1, dot(Albedo.rgb,vec3(0.333)) * Albedo.a );
|
gl_FragData[0] = vec4(GlintColor*0.1, dot(Albedo.rgb,vec3(0.333)) * Albedo.a );
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
@ -34,22 +34,13 @@ vec4 toClipSpace3(vec3 viewSpacePosition) {
|
|||||||
//////////////////////////////VOID MAIN//////////////////////////////
|
//////////////////////////////VOID MAIN//////////////////////////////
|
||||||
|
|
||||||
uniform sampler2D colortex4;
|
uniform sampler2D colortex4;
|
||||||
flat varying float exposure;
|
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
color = gl_Color;
|
color = gl_Color;
|
||||||
|
|
||||||
texcoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st;
|
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();
|
gl_Position = ftransform();
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef BEACON_BEAM
|
#ifdef BEACON_BEAM
|
||||||
if(gl_Color.a < 1.0) gl_Position = vec4(10,10,10,0);
|
if(gl_Color.a < 1.0) gl_Position = vec4(10,10,10,0);
|
||||||
@ -57,7 +48,6 @@ void main() {
|
|||||||
|
|
||||||
#ifdef ENCHANT_GLINT
|
#ifdef ENCHANT_GLINT
|
||||||
tangent = vec4(normalize(gl_NormalMatrix * at_tangent.rgb), at_tangent.w);
|
tangent = vec4(normalize(gl_NormalMatrix * at_tangent.rgb), at_tangent.w);
|
||||||
|
|
||||||
normalMat = vec4(normalize(gl_NormalMatrix * gl_Normal), 1.0);
|
normalMat = vec4(normalize(gl_NormalMatrix * gl_Normal), 1.0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user