opengl.texturing: Update shader 'frag.snippet' to allow models with multiple textures to selectively apply/unapply individual textures.

This commit is contained in:
Rod Kay
2024-09-23 17:08:36 +10:00
parent f59512d51e
commit d0e3870346

View File

@@ -1,26 +1,33 @@
uniform int texture_Count;
uniform sampler2D Textures [16];
uniform float Fade [16];
uniform sampler2D Textures [16];
uniform float Fade [16];
uniform bool texture_Applies [16];
vec4
apply_Texturing (vec2 Coords)
{
vec4 Color = vec4 (0);
for (int i = 0; i < texture_Count; ++i)
{
Color.rgb += texture (Textures [i], Coords).rgb
* texture (Textures [i], Coords).a
* (1.0 - Fade [i]);
if (texture_Applies [i])
{
Color.rgb += texture (Textures [i], Coords).rgb
* texture (Textures [i], Coords).a
* (1.0 - Fade [i]);
// Color.a += texture (Textures [i], Coords).a * (1.0 - Fade [1]);
// Color.a += texture (Textures [i], Coords).a * (1.0 - Fade [1]);
Color.a = max (Color.a,
texture (Textures [i],Coords).a * (1.0 - Fade [i]));
Color.a = max (Color.a,
texture (Textures [i],Coords).a * (1.0 - Fade [i]));
// Color.a = max (Color.a,
// texture (Textures [i],Coords).a);
// Color.a = max (Color.a,
// texture (Textures [i],Coords).a);
}
}
return Color;
}