cpp-xnoecraft2/res/vertex_shader.dat
2022-08-06 09:47:08 +01:00

31 lines
780 B
Plaintext

#version 330 core
layout(location = 0) in vec3 vertex_position;
layout(location = 1) in vec3 vertex_normal;
layout(location = 2) in vec2 vertex_tex_coord;
uniform mat4 model_matrix;
uniform mat4 view_matrix;
uniform mat4 proj_matrix;
uniform vec3 camera_position;
out vec3 position_pass;
out vec3 camera_position_pass;
out vec3 normal_pass;
out vec2 uv_pass;
void main() {
mat4 mvp = proj_matrix * view_matrix * model_matrix;
vec3 world_position = (model_matrix * vec4(vertex_position, 1.0)).xyz;
gl_Position = mvp * vec4(vertex_position, 1.0);
normal_pass = normalize((model_matrix * vec4(vertex_normal, 0.0)).xyz);
position_pass = world_position;
camera_position_pass = (inverse(view_matrix) * vec4(0.0, 0.0, 0.0, 1.0)).xyz;
uv_pass = vertex_tex_coord;
}