Home | History | Annotate | Download | only in classical
      1 attribute vec3 a_position;
      2 uniform mat4 u_projViewWorldTrans;
      3 
      4 #ifdef boneWeight0Flag
      5 #define boneWeightsFlag
      6 attribute vec2 a_boneWeight0;
      7 #endif //boneWeight0Flag
      8 
      9 #ifdef boneWeight1Flag
     10 #ifndef boneWeightsFlag
     11 #define boneWeightsFlag
     12 #endif
     13 attribute vec2 a_boneWeight1;
     14 #endif //boneWeight1Flag
     15 
     16 #ifdef boneWeight2Flag
     17 #ifndef boneWeightsFlag
     18 #define boneWeightsFlag
     19 #endif
     20 attribute vec2 a_boneWeight2;
     21 #endif //boneWeight2Flag
     22 
     23 #ifdef boneWeight3Flag
     24 #ifndef boneWeightsFlag
     25 #define boneWeightsFlag
     26 #endif
     27 attribute vec2 a_boneWeight3;
     28 #endif //boneWeight3Flag
     29 
     30 #ifdef boneWeight4Flag
     31 #ifndef boneWeightsFlag
     32 #define boneWeightsFlag
     33 #endif
     34 attribute vec2 a_boneWeight4;
     35 #endif //boneWeight4Flag
     36 
     37 #ifdef boneWeight5Flag
     38 #ifndef boneWeightsFlag
     39 #define boneWeightsFlag
     40 #endif
     41 attribute vec2 a_boneWeight5;
     42 #endif //boneWeight5Flag
     43 
     44 #ifdef boneWeight6Flag
     45 #ifndef boneWeightsFlag
     46 #define boneWeightsFlag
     47 #endif
     48 attribute vec2 a_boneWeight6;
     49 #endif //boneWeight6Flag
     50 
     51 #ifdef boneWeight7Flag
     52 #ifndef boneWeightsFlag
     53 #define boneWeightsFlag
     54 #endif
     55 attribute vec2 a_boneWeight7;
     56 #endif //boneWeight7Flag
     57 
     58 #if defined(numBones) && defined(boneWeightsFlag)
     59 #if (numBones > 0)
     60 #define skinningFlag
     61 #endif
     62 #endif
     63 
     64 #if defined(numBones)
     65 #if numBones > 0
     66 uniform mat4 u_bones[numBones];
     67 #endif //numBones
     68 #endif
     69 
     70 void main()
     71 {
     72 	#ifdef skinningFlag
     73 		mat4 skinning = mat4(0.0);
     74 		#ifdef boneWeight0Flag
     75 			skinning += (a_boneWeight0.y) * u_bones[int(a_boneWeight0.x)];
     76 		#endif //boneWeight0Flag
     77 		#ifdef boneWeight1Flag
     78 			skinning += (a_boneWeight1.y) * u_bones[int(a_boneWeight1.x)];
     79 		#endif //boneWeight1Flag
     80 		#ifdef boneWeight2Flag
     81 			skinning += (a_boneWeight2.y) * u_bones[int(a_boneWeight2.x)];
     82 		#endif //boneWeight2Flag
     83 		#ifdef boneWeight3Flag
     84 			skinning += (a_boneWeight3.y) * u_bones[int(a_boneWeight3.x)];
     85 		#endif //boneWeight3Flag
     86 		#ifdef boneWeight4Flag
     87 			skinning += (a_boneWeight4.y) * u_bones[int(a_boneWeight4.x)];
     88 		#endif //boneWeight4Flag
     89 		#ifdef boneWeight5Flag
     90 			skinning += (a_boneWeight5.y) * u_bones[int(a_boneWeight5.x)];
     91 		#endif //boneWeight5Flag
     92 		#ifdef boneWeight6Flag
     93 			skinning += (a_boneWeight6.y) * u_bones[int(a_boneWeight6.x)];
     94 		#endif //boneWeight6Flag
     95 		#ifdef boneWeight7Flag
     96 			skinning += (a_boneWeight7.y) * u_bones[int(a_boneWeight7.x)];
     97 		#endif //boneWeight7Flag
     98 	#endif //skinningFlag
     99 
    100 	#ifdef skinningFlag
    101 		vec4 pos = u_projViewWorldTrans * skinning * vec4(a_position, 1.0);
    102 	#else
    103 		vec4 pos = u_projViewWorldTrans * vec4(a_position, 1.0);
    104 	#endif
    105 
    106 	gl_Position = pos;
    107 }