nenuzhno-engine_iter1/assets/skinning/shaders/skinning.vs

33 lines
807 B
GLSL

#version 100
precision highp float;
attribute vec4 a_position;
attribute vec3 a_normal;
attribute vec2 a_uv;
attribute vec3 a_weight;
attribute vec3 a_bones;
varying vec3 v_normal;
varying vec2 v_uv;
//varying vec3 v_viewDir;
varying vec3 v_bones;
uniform mat4 u_mvpMtx;
uniform mat4 u_modelMtx;
uniform mat4 u_bonesMtx[77];
//uniform vec3 u_camPos;
void main(){
/*int bi = int(a_bones.x);
if(bi>76)bi=0;
mat4 boneMtx = u_bonesMtx[bi];//*a_weight.x;*/
mat4 boneMtx = u_bonesMtx[int(a_bones.x)]*a_weight.x+u_bonesMtx[int(a_bones.y)]*a_weight.y+u_bonesMtx[int(a_bones.z)]*a_weight.z;
gl_Position = u_mvpMtx * boneMtx * a_position;
gl_PointSize = 4.0;
v_normal = normalize(mat3(u_modelMtx * boneMtx)*a_normal);
v_uv = a_uv;
//v_viewDir = u_camPos-(u_modelMtx*a_position).xyz;
v_bones=a_bones;
}