Diffuse lighting and sending the normals to shaders

This commit is contained in:
Ben
2019-02-18 14:27:35 +00:00
parent d2775830d5
commit 078d4e52bf
12 changed files with 800 additions and 129 deletions

View File

@@ -0,0 +1,25 @@
#version 330
in vec3 Normal;
in vec3 FragPos;
uniform vec3 lightPos;
out vec4 outColour;
vec3 objectColour = vec3(0.58, 0.61, 0.627);
vec3 lightColour = vec3(0.0, 1.0, 1.0);
void main() {
float ambientStrength = 0.5;
vec3 ambient = ambientStrength * lightColour;
vec3 norm = normalize(Normal);
vec3 lightDir = normalize(lightPos - FragPos);
float diff = max(dot(norm, lightDir), 0.0);
vec3 diffuse = diff * lightColour;
vec3 result = (ambient + diffuse) * objectColour;
outColour = vec4(result, 1.0);
}

View File

@@ -0,0 +1,17 @@
#version 330
in vec3 position;
in vec3 normal;
out vec3 Normal;
out vec3 FragPos;
uniform mat4 model;
uniform mat4 view;
uniform mat4 proj;
void main() {
gl_Position = proj * view * model * vec4(position, 1.0);
FragPos = vec3(model * vec4(position, 1.0));
Normal = normal;
}