46 lines
924 B
GLSL
46 lines
924 B
GLSL
@ctype mat4 hmm_mat4
|
|
|
|
@vs vs
|
|
layout(binding=0, std140) uniform vs_params {
|
|
mat4 mvp;
|
|
vec4 base_color_factor;
|
|
};
|
|
|
|
layout(location=0) in vec3 position;
|
|
layout(location=1) in vec2 texcoord;
|
|
|
|
out vec2 uv;
|
|
out vec4 base_color_out;
|
|
|
|
void main() {
|
|
uv = texcoord;
|
|
base_color_out = base_color_factor;
|
|
gl_Position = mvp * vec4(position, 1.0);
|
|
}
|
|
@end
|
|
|
|
@fs fs
|
|
layout(binding=1) uniform fs_params {
|
|
float alpha_cutoff;
|
|
int alpha_mode; // 0=opaque, 1=mask, 2=blend
|
|
};
|
|
|
|
layout(location=0) in vec2 uv;
|
|
layout(location=1) in vec4 base_color_out;
|
|
|
|
layout(binding=0) uniform texture2D base_color_tex;
|
|
layout(binding=0) uniform sampler base_color_smp;
|
|
|
|
out vec4 frag_color;
|
|
|
|
void main() {
|
|
vec4 color = texture(sampler2D(base_color_tex, base_color_smp), uv) * base_color_out;
|
|
|
|
if (alpha_mode == 1 && color.a < alpha_cutoff)
|
|
discard;
|
|
|
|
frag_color = color;
|
|
}
|
|
@end
|
|
|
|
@program base_texture vs fs |