aboutsummaryrefslogtreecommitdiffstats
path: root/src/ru/olamedia/asset/shader/block.fp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ru/olamedia/asset/shader/block.fp')
-rw-r--r--src/ru/olamedia/asset/shader/block.fp24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/ru/olamedia/asset/shader/block.fp b/src/ru/olamedia/asset/shader/block.fp
index d082e16..3134183 100644
--- a/src/ru/olamedia/asset/shader/block.fp
+++ b/src/ru/olamedia/asset/shader/block.fp
@@ -1,28 +1,24 @@
varying vec2 texCoord;
-//vec4 frontColor;
+varying vec4 frontColor;
uniform sampler2D mesh_ActiveTexture;
-vec4 frontColor = vec4(1.0);
const vec4 texEnvColor = vec4(0.0);
const vec4 zerov4 = vec4(0.0);
const vec4 onev4 = vec4(1.0);
-vec4 calcTexColor(in vec4 color, in vec4 texColor) {
- color.rgb = mix(color.rgb, texEnvColor.rgb, texColor.rgb);
- color.a *= texColor.a;
- color = clamp(color, zerov4, onev4);
- return color;
-}
-
void main (void)
{
- vec4 texColor;
- texColor = texture2D(mesh_ActiveTexture, texCoord.st);
- if (texColor.a < 0.1f) discard;
- vec4 color = calcTexColor(frontColor, texColor);
- gl_FragColor = vec4(gl_FragColor.a) * gl_FragColor + vec4(1.0 - gl_FragColor.a) * texColor;
+ vec4 texColor = texture2D(mesh_ActiveTexture, texCoord.st);
+ if (texColor.a < 0.1) discard;
+
+ vec4 color;
+ // mix(x, y, a) == x * ( 1 - a ) + y * a
+ // color.rgb = mix(frontColor.rgb, texEnvColor.rgb, texColor.rgb);
+ color.rgb = mix(texEnvColor.rgb, frontColor.rgb, texColor.rgb);
+ color.a = frontColor.a * texColor.a;
+ gl_FragColor = clamp(color, zerov4, onev4);
} \ No newline at end of file