Start work on lighting
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user