31 lines
648 B
GLSL
31 lines
648 B
GLSL
#version 100
|
|
|
|
#ifdef GL_FRAGMENT_PRECISION_HIGH
|
|
precision highp float;
|
|
#else
|
|
precision mediump float;
|
|
#endif
|
|
|
|
uniform mat4 view_matrix;
|
|
uniform mat4 world_matrix;
|
|
uniform vec4 mult_color;
|
|
uniform vec4 add_color;
|
|
uniform mat3 u_matrix;
|
|
|
|
uniform sampler2D u_texture;
|
|
|
|
varying vec2 frag_uv;
|
|
|
|
void main() {
|
|
vec4 color = texture2D(u_texture, frag_uv);
|
|
|
|
// Unmultiply alpha before apply color transform.
|
|
if( color.a > 0.0 ) {
|
|
color.rgb /= color.a;
|
|
color = mult_color * color + add_color;
|
|
float alpha = clamp(color.a, 0.0, 1.0);
|
|
color = vec4(color.rgb * alpha, alpha);
|
|
}
|
|
|
|
gl_FragColor = color;
|
|
} |