summaryrefslogtreecommitdiff
path: root/src/assets/shaders/scene/vert.glsl
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2025-01-03 13:41:21 -0500
committerLLLL Colonq <llll@colonq>2025-01-03 13:41:21 -0500
commitf1b47ccb8a92280df51bb28b495829f8f7f8127e (patch)
treed5311a3d3135af498da0d808042b22c59fe5b2ae /src/assets/shaders/scene/vert.glsl
parent2f30c4d25f3e01fb4fc8089134a610195f1cdb13 (diff)
Add initial GLTF support
Diffstat (limited to 'src/assets/shaders/scene/vert.glsl')
-rw-r--r--src/assets/shaders/scene/vert.glsl18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/assets/shaders/scene/vert.glsl b/src/assets/shaders/scene/vert.glsl
new file mode 100644
index 0000000..64f400c
--- /dev/null
+++ b/src/assets/shaders/scene/vert.glsl
@@ -0,0 +1,18 @@
+in vec4 joint;
+in vec4 weight;
+
+uniform mat4 joint_matrices[128];
+
+void main()
+{
+ vertex_texcoord = texcoord;
+ vertex_normal = (normal_matrix * vec4(normal, 1.0)).xyz;
+ mat4 skin
+ = weight.x * joint_matrices[int(joint.x)]
+ + weight.y * joint_matrices[int(joint.y)]
+ + weight.z * joint_matrices[int(joint.z)]
+ + weight.w * joint_matrices[int(joint.w)];
+ vec3 pos = (position * skin * vec4(vertex, 1.0)).xyz;
+ vertex_view_vector = camera_pos - pos;
+ gl_Position = projection * view * vec4(pos, 1.0);
+}