12345678910111213141516171819202122 |
- precision highp float;
- attribute vec3 a_position;
- attribute vec3 a_normal;
- varying vec3 v_normal;
- attribute vec4 a_joint;
- attribute vec4 a_weight;
- uniform mat4 u_jointMat[32];
- uniform mat3 u_normalMatrix;
- uniform mat4 u_modelViewMatrix;
- uniform mat4 u_projectionMatrix;
- attribute vec2 a_texcoord0;
- varying vec2 v_texcoord0;
- void main(void) {
- mat4 skinMat = a_weight.x * u_jointMat[int(a_joint.x)];
- skinMat += a_weight.y * u_jointMat[int(a_joint.y)];
- skinMat += a_weight.z * u_jointMat[int(a_joint.z)];
- skinMat += a_weight.w * u_jointMat[int(a_joint.w)];
- vec4 pos = u_modelViewMatrix * skinMat * vec4(a_position,1.0);
- v_normal = u_normalMatrix * mat3(skinMat)* a_normal;
- v_texcoord0 = a_texcoord0;
- gl_Position = u_projectionMatrix * pos;
- }
|