Convert shaders in dali-demo to use shader compilation tool
[platform/core/uifw/dali-demo.git] / examples / metaball-refrac / shaders / metaball.frag
1 // Fragment shader for metaballs
2
3 precision mediump float;
4 varying vec2 vTexCoord;
5 uniform vec2 uPositionMetaball;
6 uniform vec2 uPositionVar;
7 uniform vec2 uGravityVector;
8 uniform float uRadius;
9 uniform float uRadiusVar;
10 uniform float uAspect;
11
12 void main()
13 {
14   vec2 adjustedCoords = vTexCoord * 2.0 - 1.0;
15   vec2 finalMetaballPosition = uPositionMetaball + uGravityVector + uPositionVar;
16
17   float distance = (adjustedCoords.x - finalMetaballPosition.x) * (adjustedCoords.x - finalMetaballPosition.x) +
18                    (adjustedCoords.y - finalMetaballPosition.y) * (adjustedCoords.y - finalMetaballPosition.y);
19   float finalRadius = uRadius + uRadiusVar;
20   float color = finalRadius / sqrt( distance );
21   vec2 bordercolor = vec2(0.0,0.0);
22   if (vTexCoord.x < 0.1)
23   {
24     bordercolor.x = (0.1 - vTexCoord.x) * 0.8;
25   }
26   if (vTexCoord.x > 0.9)
27   {
28     bordercolor.x = (vTexCoord.x - 0.9) * 0.8;
29   }
30   if (vTexCoord.y < 0.1)
31   {
32     bordercolor.y = (0.1 - vTexCoord.y) * 0.8;
33   }
34   if (vTexCoord.y > (0.9 * uAspect))
35   {
36     bordercolor.y = (vTexCoord.y - (0.9 * uAspect)) * 0.8;
37   }
38   float border = (bordercolor.x + bordercolor.y) * 0.5;
39   gl_FragColor = vec4(color + border,color + border,color + border,1.0);
40 }