diff options
author | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-08-13 20:29:27 +1000 |
---|---|---|
committer | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-08-13 20:29:27 +1000 |
commit | 567d384b698151e287e31140709c93f1b92e6db4 (patch) | |
tree | e00975124d3f002a8aaa22e85475d913c6950346 /assets/shaders/static_geometry.vert | |
parent | 13949ca02bcf9fcdfcc48ea7949f617553a260b6 (diff) |
loading joints and animations
Diffstat (limited to 'assets/shaders/static_geometry.vert')
-rw-r--r-- | assets/shaders/static_geometry.vert | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/assets/shaders/static_geometry.vert b/assets/shaders/static_geometry.vert new file mode 100644 index 0000000..2021691 --- /dev/null +++ b/assets/shaders/static_geometry.vert @@ -0,0 +1,33 @@ +#version 410 core + +// Vertex attributes +layout(location = 0) in vec3 inPosition; +layout(location = 1) in vec3 inNormal; +layout(location = 2) in vec2 inTexCoords; + +uniform Camera { + mat4 view; + mat4 proj; + vec4 viewPos; +} cam; + +uniform Model { + mat4 inner; +} model; + +// Outputs +layout(location = 0) out vec3 fragWorldPos; +layout(location = 1) out vec3 fragNormal; +layout(location = 2) out vec2 fragTexCoords; + +out vec4 viewPos; + +void main() { + fragWorldPos = vec3(model.inner * vec4(inPosition, 1.0)); + fragNormal = mat3(transpose(inverse(model.inner))) * inNormal; // world-space normal + fragTexCoords = inTexCoords; + + viewPos = cam.viewPos; + + gl_Position = cam.proj * cam.view * model.inner * vec4(inPosition, 1.0); +} |