Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #version 430
- //bones
- uniform mat4 ProjectionMatrix;
- uniform mat4 CameraMatrix;
- uniform mat4 ModelMatrix;
- uniform mat4 Bones[64];
- uniform bool skeletal_animation;
- layout(location = 0) in vec3 vertex;
- layout(location = 1) in vec2 uvs;
- //layout(location = 2) in vec3 normal;
- layout(location = 3) in ivec4 boneIndices;
- layout(location = 4) in vec4 vertexWeights;
- out vec2 fsUvs;
- const int NUM_INFLUENCE_BONES = 4;
- void main()
- {
- fsUvs = uvs;
- vec4 final = vec4(0);
- if(skeletal_animation && vertexWeights[0] + vertexWeights[1] + vertexWeights[2] + vertexWeights[3] > 0.5)
- for(int i = 0; i < NUM_INFLUENCE_BONES; i++)
- {
- vec4 v = Bones[boneIndices[i]] * vec4(vertex, 1.0) * vertexWeights[i];
- final += v;
- }
- else
- final = vec4(vertex,1.0);
- gl_Position = ProjectionMatrix * CameraMatrix * ModelMatrix * final;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement