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