31 lines
780 B
Plaintext
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;
|
|
} |