1
|
// Textura.
|
2
|
uniform sampler2D texture;
|
3
|
|
4
|
// Typ grafickeho prvku, ktery je sdilen s VERTEX casti shader programu.
|
5
|
varying float v_Group;
|
6
|
// Intezita svetla pro dany vrchol.
|
7
|
varying float v_Light;
|
8
|
// Barva daneho vrcholu.
|
9
|
varying vec4 v_Color;
|
10
|
// Jaka UV souradnice odpovida danemu vrcholu (pouze u group >= 4, coz jsou zdi).
|
11
|
varying vec2 v_Coord;
|
12
|
|
13
|
// Pri kazdem prekresleni se zavola pro kazdy pixel.
|
14
|
void main()
|
15
|
{
|
16
|
// Hodnota v_Group se pohybuje kolem nastavene konstanty.
|
17
|
vec4 color;
|
18
|
if (abs(v_Group - 5.0) < 0.00001)
|
19
|
{
|
20
|
// Zjistit barvu daneho rohu textury.
|
21
|
color = texture2D(texture, v_Coord);
|
22
|
}
|
23
|
else
|
24
|
{
|
25
|
color = v_Color;
|
26
|
}
|
27
|
|
28
|
// Zduraznit osvetleni a urcit finalni barvu pixelu.
|
29
|
gl_FragColor = vec4(clamp(color.xyz * 0.4 + color.xyz * 0.6 * v_Light, 0.0, 1.0), color.w);
|
30
|
}
|