1 layout(location = 0) in vec3 vertexPosition;
2 layout(location = 1) in vec3 vertexNormal;
3 layout(location = 2) in vec2 vertexTextureCoordinates;
4 layout(location = 3) in float vertexTextureIndex;
5 layout(location = 4) in vec3 vertexColor;
7 out vec3 fragmentPosition;
8 out vec3 fragmentNormal;
9 out vec2 fragmentTextureCoordinates;
10 out float fragmentTextureIndex;
11 out vec3 fragmentColor;
15 uniform float daylight;
16 uniform float ambientLight;
17 uniform vec3 lightDir;
21 vec4 worldSpace = model * vec4(vertexPosition, 1.0);
22 gl_Position = VP * worldSpace;
24 fragmentPosition = worldSpace.xyz;
25 fragmentNormal = vertexNormal;
26 fragmentTextureCoordinates = vertexTextureCoordinates;
27 fragmentTextureIndex = vertexTextureIndex;
28 fragmentColor = vertexColor;
30 float diffuseLight = 0.3 * daylight * clamp(dot(normalize(fragmentNormal), normalize(lightDir)), 0.0, 1.0);
31 float light = ambientLight + diffuseLight;
33 fragmentColor *= light;