Skip to content

Commit 511ddfe

Browse files
authored
Update RenderChunkPrepass.fragment.sc
1 parent 65acfac commit 511ddfe

1 file changed

Lines changed: 27 additions & 12 deletions

File tree

RenderChunkPrepass.fragment.sc

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
Buffer<uint4> pbrInfoArray : register(t3, space0);
1+
$input v_color0, v_fog, v_normal, v_tangent, v_bitangent, v_texcoord0, v_lightmapUV, v_worldPos, v_pbrTextureId
2+
3+
#include <bgfx_shader.sh>
24

5+
Buffer<uint4> pbrInfoArray : register(t3, space0);
36
SAMPLER2D(s_MatTexture, 0);
47
SAMPLER2D(s_LightMapTexture, 1);
58
SAMPLER2D(s_SeasonsTexture, 2);
@@ -14,6 +17,15 @@ void main() {
1417
}
1518
#endif
1619

20+
#ifdef SEASONS
21+
albedo.rgb *=
22+
mix(vec3(1.0, 1.0, 1.0),
23+
texture2D(s_SeasonsTexture, v_color0.xy).rgb * 2.0, v_color0.b);
24+
albedo.rgb *= v_color0.aaa;
25+
#else
26+
albedo *= v_color0;
27+
#endif
28+
1729
vec4 vanillaLight = Texture2D(s_LightMapTexture,
1830
min(BlockSkyAmbientContribution.xy * v_lightmapUV.xy, vec2(1.0, 1.0)));
1931
float emissive;
@@ -22,19 +34,19 @@ void main() {
2234
if ((pbrInfoArray.Load((pbrTextureId * 16u) + 8u).x & 1u) ==
2335
0u) // don't have mer tex
2436
{
25-
metallic = float(pbrInfoArray.Load((pbrTextureId * 16u) + 11u).x);
26-
emissive = float(pbrInfoArray.Load((pbrTextureId * 16u) + 10u).x);
27-
roughness = float(pbrInfoArray.Load((pbrTextureId * 16u) + 9u).x);
37+
metallic = float(pbrInfoArray.Load((pbrTextureId * 16u) + 11u).x);
38+
emissive = float(pbrInfoArray.Load((pbrTextureId * 16u) + 10u).x);
39+
roughness = float(pbrInfoArray.Load((pbrTextureId * 16u) + 9u).x);
2840
} else {
2941
vec4 merTex = texture2D(s_MatTexture,
3042
float2(mad(v_texcoord0.x,
31-
float(pbrInfoArray.Load(pbrTextureId * 16u).x),
32-
float(pbrInfoArray.Load((pbrTextureId * 16u) + 2u).x)),
43+
float(pbrInfoArray.Load( pbrTextureId * 16u ).x),
44+
float(pbrInfoArray.Load((pbrTextureId * 16u) + 2u).x)),
3345
mad(v_texcoord0.y,
34-
float(pbrInfoArray.Load((pbrTextureId * 16u) + 1u).x),
35-
float(pbrInfoArray.Load((pbrTextureId * 16u) + 3u).x))));
36-
metallic = merTex.x;
37-
emissive = merTex.y;
46+
float(pbrInfoArray.Load((pbrTextureId * 16u) + 1u).x),
47+
float(pbrInfoArray.Load((pbrTextureId * 16u) + 3u).x))));
48+
metallic = merTex.x;
49+
emissive = merTex.y;
3850
roughness = merTex.z;
3951
}
4052
vec3 normal = normalize(v_normal.xyz);
@@ -46,7 +58,7 @@ void main() {
4658
float camDis = length(modelCamPos);
4759
vec3 viewDir = normalize(-modelCamPos);
4860

49-
gl_FragData[0].xyz = sqrt(albedo.xyz * v_color0.xyz); // Fuck YOU NVIDIA gamma 2.0
61+
gl_FragData[0].xyz = sqrt(albedo.xyz); // Fuck YOU NVIDIA gamma 2.0
5062
gl_FragData[0].w = metallic;
5163

5264
gl_FragData[1].x =
@@ -76,6 +88,9 @@ void main() {
7688
gl_FragData[5].w = camDis;
7789

7890
gl_FragData[6].xyz = viewDir;
79-
gl_FragData[6].w = float(((albedo.a * v_color0.a) < 0.8) ||
91+
gl_FragData[6].w = float(
92+
#ifndef SEASONS
93+
(albedo.a < 0.8) ||
94+
#endif
8095
((metallic == 1.0f) && (roughness < 0.01))); //is specular
8196
}

0 commit comments

Comments
 (0)