Skip to content
This repository was archived by the owner on Dec 12, 2024. It is now read-only.

Commit 466d57c

Browse files
committed
fix lightmap, blend clouds
1 parent 5f0f1de commit 466d57c

File tree

11 files changed

+30
-14
lines changed

11 files changed

+30
-14
lines changed

assets/minecraft/shaders/core/render/clouds.fsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@ void main() {
2424
color *= vertexColor * ColorModulator * vec4(1,1,1,0.6);
2525
color.rgb = mix(color.rgb, pow(FogColor.rgb, vec3(2)), 0.5 * (1.0 - yval));
2626
if (color.a < 0.1) discard;
27-
fragColor = linear_fog_translucent(color, fogDistance, FogStart, FogEnd, FogColor);
27+
fragColor = linear_fog_translucent(color, fogDistance, clamp(FogStart*0.8, 0, 256-64), clamp(FogEnd*1.5, 16, 512-64), FogColor);
2828
}

assets/minecraft/shaders/core/render/clouds.vsh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ in vec3 Normal;
99

1010
uniform mat4 ModelViewMat;
1111
uniform mat4 ProjMat;
12-
uniform mat3 IViewRotMat;
1312
uniform int FogShape;
1413

1514
out vec2 texCoord0;
@@ -23,10 +22,12 @@ float slide(float val , float start, float end) {
2322
}
2423

2524
void main() {
26-
gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0);
25+
vec3 pos = Position - 8;
26+
27+
gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.0);
2728

2829
texCoord0 = UV0;
29-
fogDistance = fog_distance(ModelViewMat, Position, FogShape);
30+
fogDistance = fog_distance(ModelViewMat, pos, FogShape);
3031

3132
// try the flatten the cloud shading as much as possible
3233
vec4 col = Color;

assets/minecraft/shaders/core/render/glint_item.vsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ void main() {
1919
gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0);
2020
glpos = gl_Position;
2121
fogDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape);
22-
texCoord0 = (TextureMat * vec4(UV0, 0.0, 1.0)).xy;
22+
texCoord0 = (TextureMat * vec4(UV0*0.3, 0.0, 1.0)).xy;
2323
}

assets/minecraft/shaders/core/render/text.fsh

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#define FSH
33

44
#moj_import <utils.glsl>
5+
#moj_import <light.glsl>
56
#moj_import <fog.glsl>
67

78
uniform sampler2D Sampler0;
@@ -26,7 +27,8 @@ case ((int(v.r*180./255.)<<16) + (int(v.g*180./255.)<<8) + int(v.b*180./255.)):
2627
case ((int(v.r*135./255.)<<16) + (int(v.g*135./255.)<<8) + int(v.b*135./255.)): color.rgb = t/255.*135./255.; break;
2728

2829
void main() {
29-
if (!is_gui(ProjMat)) discard_control_glpos(gl_FragCoord.xy, glpos);
30+
bool gui = is_gui(ProjMat);
31+
if (!gui) discard_control_glpos(gl_FragCoord.xy, glpos);
3032

3133
vec4 color = texture(Sampler0, texCoord0);
3234
ivec3 i = ivec3(color.rgb*255.5);
@@ -49,8 +51,8 @@ void main() {
4951
MAP(vec3(112.,2.,0.) , vec3(113.,47.,47.))
5052
MAP(vec3(255.,0.,0.) , vec3(215.,53.,2.))
5153
}
52-
53-
color = color * vertexColor * lightColor * ColorModulator;
54+
if (!gui) color = emissive(color, lightColor, 0);
55+
color = color * vertexColor * ColorModulator;
5456
if (color.a < 0.1) discard;
5557
fragColor = linear_fog(color, fogDistance, FogStart, FogEnd, FogColor);
5658
}

assets/minecraft/shaders/include/light.glsl

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,25 @@ vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color
1212
return vec4(color.rgb * lightAccum, color.a);
1313
}
1414

15+
#define NCOLOR normalize(vec3(0.0, 0.0, 1.0))
16+
#define DCOLOR normalize(vec3(1.0))
17+
18+
float getSun(sampler2D lightmap) {
19+
vec3 sunlight = normalize(texture(lightmap, vec2(0.5 / 16.0, 15.5 / 16.0)).rgb);
20+
return clamp(pow(length(sunlight - NCOLOR) / length(DCOLOR - NCOLOR), 4.0), 0.0, 1.0);
21+
}
22+
1523
vec4 getlight(sampler2D lightmap, ivec2 uv) {
16-
float sun = uv.y / 256.;
24+
float sun = uv.y / 256. * getSun(lightmap);
1725
float torch = uv.x / 256.;
1826
vec4 light = texture(lightmap, clamp(uv / 256.0, vec2(0.5 / 16.0), vec2(15.5 / 16.0)));
1927

2028
vec3 map = texelFetch(lightmap, ivec2(0), 0).rgb;
2129
//warmer blocklight (torch AND (NOT sun))
22-
light *= mix(vec4(1.0), vec4(1.7, 1.0, 0.4, 1.0), torch * (1.0-sun));
30+
light *= mix(vec4(1.0), vec4(1.7, 1.0, 0.5, 1.0), torch * (1.0-sun));
2331
//shadows colors (NOT (torch OR sun))
2432
if (map.r == map.g && map.g == map.b) { //bluer shadows in overworld
25-
light *= mix(vec4(1.0), vec4(0.2, 0.2, 0.9, 1.0), max(1.0 - (torch + sun), 0.0));
33+
light *= mix(vec4(1.0), vec4(0.2, 0.2, 0.8, 1.0), max(1.0 - (torch + sun), 0.0));
2634
} else if (map.r > map.g) { //redder shadows in nether
2735
light *= mix(vec4(1.0), vec4(0.9, 0.6, 0.5, 1.0), max(1.0 - (torch + sun), 0.0));
2836
} else { //purple shadows in end
@@ -40,6 +48,7 @@ vec4 emissive(vec4 color, vec4 light, float dist) {
4048
if (color.a - EMISSIVE_ALPHA < 0.001) {
4149
return mix(color, cl, lum);
4250
}
51+
//small light around camera
4352
dist = 1. - clamp(dist-1, 0.0, 5.0)/5.0;
4453
color.rgb *= (light.rgb + (1-lum) * dist / 20);
4554
return color;

assets/minecraft/shaders/include/render/block.vsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ void main() {
113113
offset = newPos - relativePos;
114114
}
115115
break;
116-
case 251: //portal
116+
case 150: //portal
117117
animation = GameTime * 4000.0;
118118
float m0 = distance(Position.xz, vec2(8.0, 8.0)) * 10.0;
119119
vec3 absNormal = abs(Normal);

assets/minecraft/shaders/include/render/entity.fsh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ else {
6262
color = (time < duration.y)? color2 : color;
6363
}
6464
}
65+
if (!gui) color *= lightColor;
6566
#endif
6667

6768
if (color.a < 0.01) discard;
@@ -71,7 +72,10 @@ else {
7172
color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a);
7273
#endif
7374

74-
color = emissive(color, lightColor, Distance);
75+
#ifndef PLAYER
76+
if (!gui) color = emissive(color, lightColor, Distance);
77+
#endif
78+
7579
fragColor = linear_fog(color, fogDistance, FogStart, FogEnd, FogColor);
7680
}
7781
}

assets/minecraft/shaders/post/transparency.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@
151151
],
152152
"uniforms": [
153153
{"name":"BloomAmount","values": [0.15]},
154-
{"name":"AutoExposure","values": [0.5]},
154+
{"name":"AutoExposure","values": [0.0]},
155155
{"name":"ExposurePoint","values": [1.1]},
156156
{"name":"Vibrance","values": [1.0]},
157157
{"name":"Curve","values": [1.0]}
-64 Bytes
Loading
-66 Bytes
Loading

0 commit comments

Comments
 (0)