| 
																	
																	
																	
																 | 
																@ -1,16 +1,19 @@ | 
															
														
														
													
														
															
																 | 
																 | 
																#version 330 | 
																 | 
																 | 
																#version 330 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#define MAX_BONE_NUM 128 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																// Input vertex attributes | 
															
														
														
													
														
															
																 | 
																 | 
																in vec3 vertexPosition; | 
																 | 
																 | 
																in vec3 vertexPosition; | 
															
														
														
													
														
															
																 | 
																 | 
																in vec2 vertexTexCoord; | 
																 | 
																 | 
																in vec2 vertexTexCoord; | 
															
														
														
													
														
															
																 | 
																 | 
																in vec4 vertexColor; | 
																 | 
																 | 
																in vec4 vertexColor; | 
															
														
														
													
														
															
																 | 
																 | 
																in vec4 vertexBoneIds; | 
																 | 
																 | 
																in vec4 vertexBoneIds; | 
															
														
														
													
														
															
																 | 
																 | 
																in vec4 vertexBoneWeights; | 
																 | 
																 | 
																in vec4 vertexBoneWeights; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																#define MAX_BONE_NUM 128 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																uniform mat4 boneMatrices[MAX_BONE_NUM]; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																// Input uniform values | 
															
														
														
													
														
															
																 | 
																 | 
																uniform mat4 mvp; | 
																 | 
																 | 
																uniform mat4 mvp; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																uniform mat4 boneMatrices[MAX_BONE_NUM]; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																// Output vertex attributes (to fragment shader) | 
															
														
														
													
														
															
																 | 
																 | 
																out vec2 fragTexCoord; | 
																 | 
																 | 
																out vec2 fragTexCoord; | 
															
														
														
													
														
															
																 | 
																 | 
																out vec4 fragColor; | 
																 | 
																 | 
																out vec4 fragColor; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -22,13 +25,13 @@ void main() | 
															
														
														
													
														
															
																 | 
																 | 
																    int boneIndex3 = int(vertexBoneIds.w); | 
																 | 
																 | 
																    int boneIndex3 = int(vertexBoneIds.w); | 
															
														
														
													
														
															
																 | 
																 | 
																     | 
																 | 
																 | 
																     | 
															
														
														
													
														
															
																 | 
																 | 
																    vec4 skinnedPosition = | 
																 | 
																 | 
																    vec4 skinnedPosition = | 
															
														
														
													
														
															
																 | 
																 | 
																        vertexBoneWeights.x * (boneMatrices[boneIndex0] * vec4(vertexPosition, 1.0f)) + | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        vertexBoneWeights.y * (boneMatrices[boneIndex1] * vec4(vertexPosition, 1.0f)) +  | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        vertexBoneWeights.z * (boneMatrices[boneIndex2] * vec4(vertexPosition, 1.0f)) +  | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        vertexBoneWeights.w * (boneMatrices[boneIndex3] * vec4(vertexPosition, 1.0f)); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        vertexBoneWeights.x*(boneMatrices[boneIndex0]*vec4(vertexPosition, 1.0)) + | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        vertexBoneWeights.y*(boneMatrices[boneIndex1]*vec4(vertexPosition, 1.0)) +  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        vertexBoneWeights.z*(boneMatrices[boneIndex2]*vec4(vertexPosition, 1.0)) +  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        vertexBoneWeights.w*(boneMatrices[boneIndex3]*vec4(vertexPosition, 1.0)); | 
															
														
														
													
														
															
																 | 
																 | 
																     | 
																 | 
																 | 
																     | 
															
														
														
													
														
															
																 | 
																 | 
																    fragTexCoord = vertexTexCoord; | 
																 | 
																 | 
																    fragTexCoord = vertexTexCoord; | 
															
														
														
													
														
															
																 | 
																 | 
																    fragColor = vertexColor; | 
																 | 
																 | 
																    fragColor = vertexColor; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    gl_Position = mvp * skinnedPosition; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    gl_Position = mvp*skinnedPosition; | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} |