sokol-luajit/engine/shaders/base_texture.glsl
2026-07-25 15:21:07 +09:30

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