RiggedSimple0.vert 752 B

123456789101112131415161718192021
  1. precision highp float;
  2. uniform mat4 u_modelViewMatrix;
  3. uniform mat4 u_projectionMatrix;
  4. uniform mat3 u_normalMatrix;
  5. uniform mat4 u_jointMatrix[2];
  6. attribute vec3 a_position;
  7. varying vec3 v_position;
  8. attribute vec3 a_normal;
  9. varying vec3 v_normal;
  10. attribute vec4 a_joint;
  11. attribute vec4 a_weight;
  12. void main(void) {
  13. mat4 skinMat = a_weight.x * u_jointMatrix[int(a_joint.x)];
  14. skinMat += a_weight.y * u_jointMatrix[int(a_joint.y)];
  15. skinMat += a_weight.z * u_jointMatrix[int(a_joint.z)];
  16. skinMat += a_weight.w * u_jointMatrix[int(a_joint.w)];
  17. vec4 pos = u_modelViewMatrix * skinMat * vec4(a_position,1.0);
  18. v_position = pos.xyz;
  19. gl_Position = u_projectionMatrix * pos;
  20. v_normal = u_normalMatrix * mat3(skinMat) * a_normal;
  21. }