diff options
Diffstat (limited to 'assets/shaders/skinned_geometry.vert')
-rw-r--r-- | assets/shaders/skinned_geometry.vert | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/assets/shaders/skinned_geometry.vert b/assets/shaders/skinned_geometry.vert deleted file mode 100644 index a610442..0000000 --- a/assets/shaders/skinned_geometry.vert +++ /dev/null @@ -1,52 +0,0 @@ -#version 410 core - -// Vertex attributes -layout(location = 0) in vec3 inPosition; -layout(location = 1) in vec3 inNormal; -layout(location = 2) in vec2 inTexCoords; -layout(location = 3) in ivec4 inBoneIndices; -layout(location = 4) in vec4 inWeights; - -const int MAX_BONES = 100; -const int MAX_BONE_INFLUENCES = 4; - -uniform AnimData { - mat4 boneMatrices[MAX_BONES]; -} anim; - -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; -// out vec4 dbgcolor; - -void main() { - mat4 skinMatrix = - inWeights.x * anim.boneMatrices[int(inBoneIndices.x)] + - inWeights.y * anim.boneMatrices[int(inBoneIndices.y)] + - inWeights.z * anim.boneMatrices[int(inBoneIndices.z)] + - inWeights.w * anim.boneMatrices[int(inBoneIndices.w)]; - - vec4 totalPosition = skinMatrix * vec4(inPosition, 1.0); - - fragWorldPos = vec3(model.inner * totalPosition); - 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); - // gl_Position = cam.proj * cam.view * model.inner * totalPosition; -} |