blob: 1ee45d3764d7278813c7d667b1d8e29aa2d08c50 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#version 120
uniform float u_Intensity;
uniform vec3 u_CameraPosition;
uniform sampler2D u_Texture;
uniform vec3 u_Color;
varying vec2 v_TexCoord;
varying vec2 v_localPosition;
varying float v_Transparency;
float luminanceTransform(vec3 color){
return 0.2126*color.r+0.7152*color.g+0.0722*color.b;
//return (color.r+color.g+color.b)/3.0;
}
void main() {
float v_effect = dot(normalize(u_CameraPosition.xy),normalize(v_localPosition));
float transparency = (v_effect-.5)*2;
transparency = pow(transparency,u_Intensity);
vec4 texColor = texture2D(u_Texture,v_TexCoord);
float luminance = 1-luminanceTransform(texColor.xyz);
luminance = mix(luminance,1,1-pow(transparency,6));
gl_FragColor = vec4(u_Color,transparency*v_Transparency*luminance);
}
|