X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=shaderlib%2Funlit.glsl;h=a7d75c3248a59150e9cd70fa749ce05df975eb16;hb=HEAD;hp=57be8b1ba1acc571b7d0dbbbdcd691a1d1a7dd96;hpb=5fc03c5a41df2934696921b2f7d5a65023a4506a;p=libs%2Fgl.git diff --git a/shaderlib/unlit.glsl b/shaderlib/unlit.glsl index 57be8b1b..a7d75c32 100644 --- a/shaderlib/unlit.glsl +++ b/shaderlib/unlit.glsl @@ -1,19 +1,29 @@ import msp_interface; import common; -uniform sampler2D texture; -uniform vec4 tint; +struct UnlitMaterialParameters +{ + vec4 color; +}; + +layout(set=1) uniform UnlitMaterial +{ + UnlitMaterialParameters unlit_material; + AlphaCutoffParams alpha_cutoff; +}; + +layout(set=1) 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; #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 +32,8 @@ vec4 get_color() void main() { vec4 color = get_color(); + color.a = apply_alpha_cutoff(color.a, alpha_cutoff); + if(use_fog) color.rgb = apply_fog(color.rgb); frag_color = color;