custommods

This commit is contained in:
samsonsin
2025-05-29 23:31:29 +02:00
parent 90b3575aea
commit 9d577eb52d
800 changed files with 19540 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
void GetMaterials(out float smoothness, out float metalness, out float f0, out float metalData,
inout float emissive, out float materialAO, out vec4 normalMap,
vec2 newCoord, vec2 dcdx, vec2 dcdy) {
#ifdef MC_SPECULAR_MAP
#ifdef WRONG_MIPMAP_FIX
vec4 specularMap = texture2DLod(specular, newCoord, 0);
#else
vec4 specularMap = texture2D(specular, newCoord);
#endif
#else
vec4 specularMap = vec4(0.0, 0.0, 0.0, 1.0);
#endif
#ifdef NORMAL_MAPPING
normalMap = textureGrad(normals, newCoord, dcdx, dcdy).rgba;
normalMap.xyz += vec3(0.5, 0.5, 0.0);
normalMap.xyz = pow(normalMap.xyz, vec3(NORMAL_MULTIPLIER));
normalMap.xyz -= vec3(0.5, 0.5, 0.0);
#endif
#if RP_SUPPORT == 4
smoothness = specularMap.r;
metalness = specularMap.g;
f0 = 0.78 * metalness + 0.02;
metalData = metalness;
materialAO = 1.0;
float materialEmissive = specularMap.b;
#ifdef NORMAL_MAPPING
normalMap.xyz = normalMap.xyz * 2.0 - 1.0;
#endif
#else
smoothness = specularMap.r;
f0 = specularMap.g;
metalness = f0 >= 0.9 ? 1.0 : 0.0;
metalData = f0;
#ifdef NORMAL_MAPPING
materialAO = normalMap.z;
#else
materialAO = texture2D(normals, newCoord).z;
#endif
materialAO *= materialAO;
float materialEmissive = specularMap.a < 1.0 ? specularMap.a : 0.0;
#ifdef NORMAL_MAPPING
normalMap.xyz = normalMap.xyz * 2.0 - 1.0;
float normalCheck = normalMap.x + normalMap.y;
if (normalCheck > -1.999) {
if (length(normalMap.xy) > 1.0) normalMap.xy = normalize(normalMap.xy);
normalMap.z = sqrt(1.0 - dot(normalMap.xy, normalMap.xy));
normalMap.xyz = normalize(clamp(normalMap.xyz, vec3(-1.0), vec3(1.0)));
} else {
normalMap.xyz = vec3(0.0, 0.0, 1.0);
materialAO = 1.0;
}
#endif
#endif
materialEmissive = pow(materialEmissive, 2.5 + 2.0 * materialEmissive);
emissive = mix(materialEmissive, 1.0, emissive);
materialAO = clamp(materialAO, 0.01, 1.0);
}