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;
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;