X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=shaderlib%2Funlit.glsl;h=f4920a7982db397babd59fcc61e66dc725a55dbf;hb=8d211effd0c6db66e57f9ffd8ee712eef6069a1c;hp=57be8b1ba1acc571b7d0dbbbdcd691a1d1a7dd96;hpb=5fc03c5a41df2934696921b2f7d5a65023a4506a;p=libs%2Fgl.git diff --git a/shaderlib/unlit.glsl b/shaderlib/unlit.glsl index 57be8b1b..f4920a79 100644 --- a/shaderlib/unlit.glsl +++ b/shaderlib/unlit.glsl @@ -1,19 +1,30 @@ import msp_interface; import common; -uniform sampler2D texture; -uniform vec4 tint; +struct UnlitMaterialParameters +{ + vec4 color; +}; + +uniform UnlitMaterial +{ + UnlitMaterialParameters unlit_material; + float alpha_cutoff; +}; + +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) -vec4 get_color() +virtual vec4 get_color() { - vec4 result = tint; + vec4 result = unlit_material.color; if(use_texture) - result *= texture(texture, texcoord.xy); + result *= texture(color_tex, texcoord.xy); if(use_vertex_color) result *= color; return result; @@ -22,6 +33,9 @@ vec4 get_color() void main() { vec4 color = get_color(); + if(use_alpha_cutoff && color.a