Add diffuse map
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
#version 330 core
|
||||
|
||||
struct Material {
|
||||
vec3 ambient;
|
||||
vec3 diffuse;
|
||||
sampler2D diffuse;
|
||||
vec3 specular;
|
||||
float shininess;
|
||||
};
|
||||
@@ -16,6 +15,7 @@ struct Light {
|
||||
|
||||
in vec3 vert_normal;
|
||||
in vec3 frag_position;
|
||||
in vec2 uv_coords;
|
||||
|
||||
out vec4 color;
|
||||
|
||||
@@ -32,8 +32,9 @@ void main() {
|
||||
vec3 reflect_direction = reflect(-light_direction, normal);
|
||||
float diff = max(dot(normal, light_direction), 0.0);
|
||||
float spec = pow(max(dot(reflect_direction, view_direction), 0.0), material.shininess);
|
||||
vec3 ambient = light.ambient * material.ambient;
|
||||
vec3 diffuse = light.diffuse * (diff * material.diffuse);
|
||||
vec3 diff_tex = vec3(texture(material.diffuse, uv_coords));
|
||||
vec3 ambient = light.ambient * diff_tex;
|
||||
vec3 diffuse = light.diffuse * (diff * diff_tex);
|
||||
vec3 specular = light.specular * (spec * material.specular);
|
||||
|
||||
color = vec4(ambient + diffuse + specular, 1.0);
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
|
||||
layout(location=0) in vec3 position;
|
||||
layout(location=1) in vec3 normal;
|
||||
layout(location=2) in vec2 uv;
|
||||
|
||||
out vec3 vert_normal;
|
||||
out vec3 frag_position;
|
||||
out vec2 uv_coords;
|
||||
|
||||
uniform mat3 normal_mat;
|
||||
uniform mat4 model;
|
||||
@@ -14,5 +16,6 @@ uniform mat4 projection;
|
||||
void main() {
|
||||
vert_normal = normal_mat * normal;
|
||||
frag_position = vec3(model * vec4(position, 1.0));
|
||||
uv_coords = uv;
|
||||
gl_Position = projection * view * model * vec4(position, 1.0);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user