Added diffuse lighting
This commit is contained in:
parent
16dd10f252
commit
a91fc3d57d
2 changed files with 22 additions and 2 deletions
|
|
@ -2,6 +2,8 @@
|
||||||
out vec4 FragColor;
|
out vec4 FragColor;
|
||||||
|
|
||||||
in vec2 ourTexCoord;
|
in vec2 ourTexCoord;
|
||||||
|
in vec3 ourNormCoord;
|
||||||
|
in vec3 FragPos;
|
||||||
|
|
||||||
// Handle multiple textures from the Mesh Object (Might not even be used)
|
// Handle multiple textures from the Mesh Object (Might not even be used)
|
||||||
uniform sampler2D texture_diffuse1;
|
uniform sampler2D texture_diffuse1;
|
||||||
|
|
@ -14,7 +16,19 @@ uniform sampler2D ourTexture;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
FragColor = texture(texture_diffuse1, ourTexCoord);
|
// Establish ambient lighting
|
||||||
|
float ambientStrength = 0.1;
|
||||||
|
|
||||||
|
// Establish a temporary hard coded light position
|
||||||
|
vec3 lightPosition = vec3(1.0, 1.0, 1.0);
|
||||||
|
|
||||||
|
// Normal light maths
|
||||||
|
vec3 norm = normalize(ourNormCoord);
|
||||||
|
vec3 lightDir = normalize(lightPosition - FragPos);
|
||||||
|
// Calculate diffuse
|
||||||
|
float diff = max(dot(norm, lightDir), 0.0);
|
||||||
|
|
||||||
|
FragColor = texture(texture_diffuse1, ourTexCoord) * (ambientStrength + diff);
|
||||||
//FragColor = texture(ourTexture, ourTexCoord);
|
//FragColor = texture(ourTexture, ourTexCoord);
|
||||||
//FragColor = vec4(ourTexCoord.y,ourTexCoord.x,0,0);
|
//FragColor = vec4(ourTexCoord.y,ourTexCoord.x,0,0);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,21 @@
|
||||||
#version 330 core
|
#version 330 core
|
||||||
layout (location = 0) in vec3 aPos;
|
layout (location = 0) in vec3 aPos;
|
||||||
layout (location = 1) in vec3 aNormal; // Currently Unused
|
layout (location = 1) in vec3 aNormal;
|
||||||
layout (location = 2) in vec2 aTexCoord;
|
layout (location = 2) in vec2 aTexCoord;
|
||||||
|
|
||||||
uniform mat4 MVP;
|
uniform mat4 MVP;
|
||||||
uniform mat4 Model;
|
uniform mat4 Model;
|
||||||
|
|
||||||
out vec2 ourTexCoord;
|
out vec2 ourTexCoord;
|
||||||
|
out vec3 ourNormCoord;
|
||||||
|
out vec3 FragPos;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
gl_Position = MVP * Model * vec4(aPos, 1.0);
|
gl_Position = MVP * Model * vec4(aPos, 1.0);
|
||||||
|
ourNormCoord = aNormal;
|
||||||
ourTexCoord = aTexCoord;
|
ourTexCoord = aTexCoord;
|
||||||
|
|
||||||
|
// Calculate position of fragment
|
||||||
|
FragPos = vec3(Model * vec4(aPos, 1.0));
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue