1 |
c137512e
|
Oto Šťáva
|
// 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 |
|
|
}
|