Start work on lighting

This commit is contained in:
Dane Johnson
2021-01-21 15:26:39 -06:00
parent 43996eb2e6
commit 8fb29d389a
24 changed files with 203 additions and 14 deletions

View File

@@ -1,6 +1,7 @@
#version 330 core
in vec3 UV;
in vec3 NORMAL;
out vec4 FragColor;
@@ -10,9 +11,19 @@ struct Material {
sampler2D tex;
bool usesTex;
float alphaScissor;
bool unshaded;
};
struct DirectionalLight {
vec3 direction;
vec3 color;
float ambient;
float diffuse;
float specular;
};
uniform Material material;
uniform DirectionalLight directionalLight;
void main() {
FragColor = vec4(0.0);
@@ -25,4 +36,10 @@ void main() {
if (FragColor.w < material.alphaScissor) {
discard;
}
if (!material.unshaded) {
vec3 ambient = directionalLight.ambient * directionalLight.color;
vec3 diffuse = directionalLight.diffuse * reflect(directionalLight.direction, NORMAL) * directionalLight.color;
FragColor *= vec4(ambient, 1.0);
}
}

View File

@@ -1,16 +1,19 @@
#version 330 core
layout (location = 0) in vec3 pos;
layout (location = 1) in vec2 uv;
layout (location = 1) in vec3 normal;
layout (location = 2) in vec2 uv;
uniform mat4 MODEL;
uniform mat4 VIEW;
uniform mat4 PROJECTION;
out vec3 UV;
out vec3 NORMAL;
void main() {
vec4 vertex = PROJECTION * VIEW * MODEL * vec4(pos, 1.0);
gl_Position = vertex;
UV = vec3(uv * vertex.z, vertex.z);
NORMAL = normal;
}

View File

@@ -1,7 +1,8 @@
#version 330 core
layout (location = 0) in vec3 pos;
layout (location = 1) in vec2 uv;
layout (location = 1) in vec3 normal;
layout (location = 2) in vec2 uv;
out vec2 UV;