33 lines
807 B
GLSL
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;
|
|
}
|
|
|