File: normal_map_fragment.glsl

package info (click to toggle)
openclonk 8.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 169,500 kB
  • sloc: cpp: 180,478; ansic: 108,988; xml: 31,371; python: 1,223; php: 767; makefile: 139; sh: 101; javascript: 34
file content (37 lines) | stat: -rw-r--r-- 850 bytes parent folder | download | duplicates (5)
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
29
30
31
32
33
34
35
36
37
uniform sampler2D basemap;
uniform sampler2D normalTex;
uniform mat3 normalMatrix;

#ifndef OPENCLONK
in vec2 texcoord;
out vec4 fragColor;
#define slice(x)
void main()
{
	fragColor = vec4(1.0, 1.0, 1.0, 1.0);
#endif

slice(texture+1)
{
	fragColor = fragColor * texture(basemap, texcoord);

#ifndef OPENCLONK
	// TODO: Could apply some default lighting here, for viewing the mesh in
	// a mesh viewer
#endif
}

slice(normal+1)
{
	// TODO: This overrides what is set in slice(normal)
	// from ObjectShader.glsl. It's probably optimized out,
	// but a more elegant solution would be nice. Also maybe
	// a function in UtilShader.glsl to reduce code duplication.
	vec4 normalPx = texture(normalTex, texcoord);
	vec3 normalPxDir = 2.0 * (normalPx.xyz - vec3(0.5, 0.5, 0.5));
	normal = normalize(normalMatrix * normalPxDir);
}

#ifndef OPENCLONK
}
#endif