| 1234567891011121314151617181920212223242526272829303132 |
- #version 330 core
- layout (location = 0) in vec3 in_position;
- layout (location = 1) in vec2 in_uv;
- layout (location = 2) in vec3 in_normals;
- layout (location = 3) in vec4 in_tangents;
- layout (location = 4) in vec4 in_color;
- layout (location = 5) in vec4 in_boneindex;
- layout (location = 6) in vec4 in_boneweights;
- out vec2 uv;
- uniform mat4 u_model;
- uniform mat4 u_bone_matrix[200];
- uniform bool u_has_skeleton;
- void main()
- {
- mat4 transform = u_model;
- if (u_has_skeleton == true) {
- mat4 skeleton = u_bone_matrix[int(in_boneindex.x*255)] * in_boneweights.x +
- u_bone_matrix[int(in_boneindex.y*255)] * in_boneweights.y +
- u_bone_matrix[int(in_boneindex.z*255)] * in_boneweights.z +
- u_bone_matrix[int(in_boneindex.w*255)] * in_boneweights.w;
- transform = u_model * skeleton;
- }
- uv = in_uv;
- gl_Position = transform * vec4(in_position, 1.0);
- }
|