]> git.tdb.fi Git - libs/gl.git/blobdiff - shaderlib/unlit.glsl
Implement alpha cutoff for materials
[libs/gl.git] / shaderlib / unlit.glsl
index 85275558b399346b8b1a89758b80ac52ea9d3458..f4920a7982db397babd59fcc61e66dc725a55dbf 100644 (file)
@@ -9,6 +9,7 @@ struct UnlitMaterialParameters
 uniform UnlitMaterial
 {
        UnlitMaterialParameters unlit_material;
+       float alpha_cutoff;
 };
 
 uniform sampler2D color_tex;
@@ -16,6 +17,7 @@ uniform sampler2D color_tex;
 layout(constant_id=auto) const bool use_texture = false;
 layout(constant_id=auto) const bool use_vertex_color = false;
 layout(constant_id=auto) const bool use_fog = false;
+layout(constant_id=auto) const bool use_alpha_cutoff = false;
 
 #pragma MSP stage(fragment)
 virtual vec4 get_color()
@@ -31,6 +33,9 @@ virtual vec4 get_color()
 void main()
 {
        vec4 color = get_color();
+       if(use_alpha_cutoff && color.a<alpha_cutoff)
+               discard;
+
        if(use_fog)
                color.rgb = apply_fog(color.rgb);
        frag_color = color;