diff --git a/assets/minecraft/shaders/core/render/armor.vsh b/assets/minecraft/shaders/core/render/armor.vsh index e880a86..7fa55a0 100644 --- a/assets/minecraft/shaders/core/render/armor.vsh +++ b/assets/minecraft/shaders/core/render/armor.vsh @@ -29,7 +29,7 @@ out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); - vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); + vertexDistance = fog_distance(IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightColor = minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; diff --git a/assets/minecraft/shaders/core/render/clouds.vsh b/assets/minecraft/shaders/core/render/clouds.vsh index f44cc27..468ca39 100644 --- a/assets/minecraft/shaders/core/render/clouds.vsh +++ b/assets/minecraft/shaders/core/render/clouds.vsh @@ -20,7 +20,7 @@ void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); texCoord0 = UV0; - vertexDistance = fog_distance(ModelViewMat, Position, FogShape); + vertexDistance = fog_distance(Position, FogShape); vertexColor = Color; normal = ProjMat * ModelViewMat * vec4(Normal, 0.0); } diff --git a/assets/minecraft/shaders/core/render/end_crystal_beam.vsh b/assets/minecraft/shaders/core/render/end_crystal_beam.vsh index 1c7f73e..2de8ca2 100644 --- a/assets/minecraft/shaders/core/render/end_crystal_beam.vsh +++ b/assets/minecraft/shaders/core/render/end_crystal_beam.vsh @@ -30,7 +30,7 @@ out vec4 overlayColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); - vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); + vertexDistance = fog_distance(IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightColor = minecraft_sample_lightmap(Sampler2, UV2); overlayColor = texelFetch(Sampler1, UV1, 0); diff --git a/assets/minecraft/shaders/core/render/energy_swirl.vsh b/assets/minecraft/shaders/core/render/energy_swirl.vsh index de1f973..23ddffd 100644 --- a/assets/minecraft/shaders/core/render/energy_swirl.vsh +++ b/assets/minecraft/shaders/core/render/energy_swirl.vsh @@ -18,7 +18,7 @@ out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); - vertexDistance = fog_distance(ModelViewMat, Position, FogShape); + vertexDistance = fog_distance(Position, FogShape); vertexColor = Color; texCoord0 = (TextureMat * vec4(UV0, 0.0, 1.0)).xy; } diff --git a/assets/minecraft/shaders/core/render/eyes.vsh b/assets/minecraft/shaders/core/render/eyes.vsh index e57cceb..f8e9fc3 100644 --- a/assets/minecraft/shaders/core/render/eyes.vsh +++ b/assets/minecraft/shaders/core/render/eyes.vsh @@ -18,7 +18,7 @@ out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); - vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); + vertexDistance = fog_distance(IViewRotMat * Position, FogShape); vertexColor = Color; texCoord0 = UV0; } \ No newline at end of file diff --git a/assets/minecraft/shaders/core/render/glint_armor.vsh b/assets/minecraft/shaders/core/render/glint_armor.vsh index 0745d34..e3a3000 100644 --- a/assets/minecraft/shaders/core/render/glint_armor.vsh +++ b/assets/minecraft/shaders/core/render/glint_armor.vsh @@ -16,6 +16,6 @@ out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); - vertexDistance = fog_distance(ModelViewMat, Position, FogShape); + vertexDistance = fog_distance(Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.0, 1.0)).xy; } \ No newline at end of file diff --git a/assets/minecraft/shaders/core/render/glint_item.vsh b/assets/minecraft/shaders/core/render/glint_item.vsh index 760e818..cce6eed 100644 --- a/assets/minecraft/shaders/core/render/glint_item.vsh +++ b/assets/minecraft/shaders/core/render/glint_item.vsh @@ -17,6 +17,6 @@ out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); - vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); + vertexDistance = fog_distance(IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.0, 1.0)).xy; } \ No newline at end of file diff --git a/assets/minecraft/shaders/core/render/leash.vsh b/assets/minecraft/shaders/core/render/leash.vsh index d7eb12e..ca4c711 100644 --- a/assets/minecraft/shaders/core/render/leash.vsh +++ b/assets/minecraft/shaders/core/render/leash.vsh @@ -22,6 +22,6 @@ out vec4 lightColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); - vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); + vertexDistance = fog_distance(IViewRotMat * Position, FogShape); vertexColor = Color * ColorModulator * minecraft_sample_lightmap(Sampler2, UV2); } \ No newline at end of file diff --git a/assets/minecraft/shaders/core/render/lightning.vsh b/assets/minecraft/shaders/core/render/lightning.vsh index deab882..8fe9f72 100644 --- a/assets/minecraft/shaders/core/render/lightning.vsh +++ b/assets/minecraft/shaders/core/render/lightning.vsh @@ -16,6 +16,6 @@ out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); - vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); + vertexDistance = fog_distance(IViewRotMat * Position, FogShape); vertexColor = Color; } diff --git a/assets/minecraft/shaders/core/render/lines.vsh b/assets/minecraft/shaders/core/render/lines.vsh index 3292acf..99a6003 100644 --- a/assets/minecraft/shaders/core/render/lines.vsh +++ b/assets/minecraft/shaders/core/render/lines.vsh @@ -43,6 +43,6 @@ void main() { gl_Position = vec4((ndc1 - vec3(lineOffset, 0.0)) * linePosStart.w, linePosStart.w); } - vertexDistance = fog_distance(ModelViewMat, Position, FogShape); + vertexDistance = fog_distance(Position, FogShape); vertexColor = Color; } \ No newline at end of file diff --git a/assets/minecraft/shaders/core/render/particle.vsh b/assets/minecraft/shaders/core/render/particle.vsh index 9f3bc9d..7db2b48 100644 --- a/assets/minecraft/shaders/core/render/particle.vsh +++ b/assets/minecraft/shaders/core/render/particle.vsh @@ -21,7 +21,7 @@ out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); - vertexDistance = fog_distance(ModelViewMat, Position, FogShape); + vertexDistance = fog_distance(Position, FogShape); texCoord0 = UV0; vertexColor = Color; lightColor = minecraft_sample_lightmap(Sampler2, UV2); diff --git a/assets/minecraft/shaders/core/render/shadow.vsh b/assets/minecraft/shaders/core/render/shadow.vsh index 4e39296..ecd4c0c 100644 --- a/assets/minecraft/shaders/core/render/shadow.vsh +++ b/assets/minecraft/shaders/core/render/shadow.vsh @@ -17,7 +17,7 @@ out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); - vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); + vertexDistance = fog_distance(IViewRotMat * Position, FogShape); vertexColor = Color; texCoord0 = UV0; } diff --git a/assets/minecraft/shaders/core/render/text.vsh b/assets/minecraft/shaders/core/render/text.vsh index a7d8858..749ad25 100644 --- a/assets/minecraft/shaders/core/render/text.vsh +++ b/assets/minecraft/shaders/core/render/text.vsh @@ -22,7 +22,7 @@ out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); - vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); + vertexDistance = fog_distance(IViewRotMat * Position, FogShape); vertexColor = Color; lightColor = minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; diff --git a/assets/minecraft/shaders/include/fog.glsl b/assets/minecraft/shaders/include/fog.glsl index bdddd0a..41a0b3d 100644 --- a/assets/minecraft/shaders/include/fog.glsl +++ b/assets/minecraft/shaders/include/fog.glsl @@ -17,12 +17,12 @@ float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { return smoothstep(fogEnd, fogStart, vertexDistance); } -float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { +float fog_distance(vec3 pos, int shape) { if (shape == 0) { - return length((modelViewMat * vec4(pos, 1.0)).xyz); + return length(pos); } else { - float distXZ = length((modelViewMat * vec4(pos.x, 0.0, pos.z, 1.0)).xyz); - float distY = length((modelViewMat * vec4(0.0, pos.y, 0.0, 1.0)).xyz); + float distXZ = length(pos.xz); + float distY = abs(pos.y); return max(distXZ, distY); } } \ No newline at end of file diff --git a/assets/minecraft/shaders/include/render/block.vsh b/assets/minecraft/shaders/include/render/block.vsh index 8511571..00063fe 100644 --- a/assets/minecraft/shaders/include/render/block.vsh +++ b/assets/minecraft/shaders/include/render/block.vsh @@ -26,7 +26,7 @@ void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.0); - vertexDistance = fog_distance(ModelViewMat, pos, FogShape); + vertexDistance = fog_distance(pos, FogShape); vertexColor = Color; lightColor = minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; diff --git a/assets/minecraft/shaders/include/render/entity.vsh b/assets/minecraft/shaders/include/render/entity.vsh index 0cc7414..2cee0e6 100644 --- a/assets/minecraft/shaders/include/render/entity.vsh +++ b/assets/minecraft/shaders/include/render/entity.vsh @@ -33,7 +33,7 @@ out vec4 overlayColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); - vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); + vertexDistance = fog_distance(IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightColor = minecraft_sample_lightmap(Sampler2, UV2); #ifdef OVERLAY