From daf280048d82eed42d44423ce50ae9e809ba91a9 Mon Sep 17 00:00:00 2001 From: HampusM Date: Sat, 23 Nov 2024 21:32:03 +0100 Subject: refactor(engine): make shaders a renderer detail --- engine/src/renderer/opengl/glsl/vertex.glsl | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 engine/src/renderer/opengl/glsl/vertex.glsl (limited to 'engine/src/renderer/opengl/glsl/vertex.glsl') diff --git a/engine/src/renderer/opengl/glsl/vertex.glsl b/engine/src/renderer/opengl/glsl/vertex.glsl new file mode 100644 index 0000000..b57caa6 --- /dev/null +++ b/engine/src/renderer/opengl/glsl/vertex.glsl @@ -0,0 +1,24 @@ +#version 330 core + +#preinclude "vertex_data.glsl" + +layout (location = 0) in vec3 pos; +layout (location = 1) in vec2 texture_coords; +layout (location = 2) in vec3 normal; + +out VertexData vertex_data; + +uniform mat4 model; +uniform mat4 view; +uniform mat4 projection; + +void main() +{ + gl_Position = projection * view * model * vec4(pos, 1.0); + + vertex_data.world_space_pos = vec3(model * vec4(pos, 1.0)); + vertex_data.texture_coords = texture_coords; + + // TODO: Do this using CPU for performance increase + vertex_data.world_space_normal = mat3(transpose(inverse(model))) * normal; +} -- cgit v1.2.3-18-g5258