1. Passing Position and Normal to the Fragment Shader
out_color = vec4(vertex.position, 1);
out_color = vec4(vertex.normal, 1);
Shader Source Code:
Vertex Shader: "model.vertexshader.txt"
#version 450 core
in layout (location = 0) vec3 in_position;
in layout (location = 1) vec3 in_normal;
uniform mat4 Model = mat4(1);
uniform mat4 View = mat4(1);
uniform mat4 Projection = mat4(1);
out VS_FS_INTERFACE {
vec3 position;
vec3 normal;
} vertex;
void main ()
{
mat4 MVP = Projection * View * Model;
gl_Position = MVP * vec4(in_position, 1);
vertex.position = (Model * vec4(in_position, 1)).xyz;
vertex.normal = (Model * vec4(in_normal, 0)).xyz;
}
Fragment Shader: "model.fragmentshader.txt"
#version 450 core
in VS_FS_INTERFACE {
vec3 position;
vec3 normal;
} vertex;
out layout (location = 0) vec4 out_color;
void main ()
{
out_color = vec4(vertex.position, 1);
}