]> git.lizzy.rs Git - dragonblocks_alpha.git/blob - shaders/3d/entity/vertex.glsl
ca8684a22e34671ebd93e5c1e22f20b38cd30fef
[dragonblocks_alpha.git] / shaders / 3d / entity / vertex.glsl
1 layout(location = 0) in vec3 vertexPosition;
2 layout(location = 1) in vec3 vertexNormal;
3
4 out vec3 fragmentPosition;
5 out vec3 fragmentNormal;
6 out vec3 fragmentTextureCoordinates;
7 out float fragmentLight;
8
9 uniform mat4 model;
10 uniform mat4 VP;
11 uniform float daylight;
12 uniform float ambientLight;
13 uniform vec3 lightDir;
14
15 void main()
16 {
17         vec4 worldSpace = model * vec4(vertexPosition, 1.0);
18         gl_Position = VP * worldSpace;
19
20         fragmentPosition = worldSpace.xyz;
21         fragmentNormal = vertexNormal;
22         fragmentTextureCoordinates = vertexPosition;
23
24         float diffuseLight = 0.3 * daylight * clamp(dot(normalize(fragmentNormal), normalize(lightDir)), 0.0, 1.0);
25         fragmentLight = ambientLight + diffuseLight;
26 }