| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -6,16 +6,19 @@ | 
															
														
														
													
														
															
																 | 
																 | 
																in vec3 vertexPosition; | 
																 | 
																 | 
																in vec3 vertexPosition; | 
															
														
														
													
														
															
																 | 
																 | 
																in vec2 vertexTexCoord; | 
																 | 
																 | 
																in vec2 vertexTexCoord; | 
															
														
														
													
														
															
																 | 
																 | 
																in vec4 vertexColor; | 
																 | 
																 | 
																in vec4 vertexColor; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																in vec3 vertexNormal; | 
															
														
														
													
														
															
																 | 
																 | 
																in vec4 vertexBoneIds; | 
																 | 
																 | 
																in vec4 vertexBoneIds; | 
															
														
														
													
														
															
																 | 
																 | 
																in vec4 vertexBoneWeights; | 
																 | 
																 | 
																in vec4 vertexBoneWeights; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																// Input uniform values | 
																 | 
																 | 
																// Input uniform values | 
															
														
														
													
														
															
																 | 
																 | 
																uniform mat4 mvp; | 
																 | 
																 | 
																uniform mat4 mvp; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																uniform mat4 matNormal; | 
															
														
														
													
														
															
																 | 
																 | 
																uniform mat4 boneMatrices[MAX_BONE_NUM]; | 
																 | 
																 | 
																uniform mat4 boneMatrices[MAX_BONE_NUM]; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																// Output vertex attributes (to fragment shader) | 
																 | 
																 | 
																// Output vertex attributes (to fragment shader) | 
															
														
														
													
														
															
																 | 
																 | 
																out vec2 fragTexCoord; | 
																 | 
																 | 
																out vec2 fragTexCoord; | 
															
														
														
													
														
															
																 | 
																 | 
																out vec4 fragColor; | 
																 | 
																 | 
																out vec4 fragColor; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																out vec3 fragNormal; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																void main() | 
																 | 
																 | 
																void main() | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -29,9 +32,18 @@ void main() | 
															
														
														
													
														
															
																 | 
																 | 
																        vertexBoneWeights.y*(boneMatrices[boneIndex1]*vec4(vertexPosition, 1.0)) +  | 
																 | 
																 | 
																        vertexBoneWeights.y*(boneMatrices[boneIndex1]*vec4(vertexPosition, 1.0)) +  | 
															
														
														
													
														
															
																 | 
																 | 
																        vertexBoneWeights.z*(boneMatrices[boneIndex2]*vec4(vertexPosition, 1.0)) +  | 
																 | 
																 | 
																        vertexBoneWeights.z*(boneMatrices[boneIndex2]*vec4(vertexPosition, 1.0)) +  | 
															
														
														
													
														
															
																 | 
																 | 
																        vertexBoneWeights.w*(boneMatrices[boneIndex3]*vec4(vertexPosition, 1.0)); | 
																 | 
																 | 
																        vertexBoneWeights.w*(boneMatrices[boneIndex3]*vec4(vertexPosition, 1.0)); | 
															
														
														
													
														
															
																 | 
																 | 
																     | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    vec4 skinnedNormal = | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        vertexBoneWeights.x*(boneMatrices[boneIndex0]*vec4(vertexNormal, 0.0)) + | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        vertexBoneWeights.y*(boneMatrices[boneIndex1]*vec4(vertexNormal, 0.0)) +  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        vertexBoneWeights.z*(boneMatrices[boneIndex2]*vec4(vertexNormal, 0.0)) +  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        vertexBoneWeights.w*(boneMatrices[boneIndex3]*vec4(vertexNormal, 0.0)); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    skinnedNormal.w = 0.0; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    fragTexCoord = vertexTexCoord; | 
																 | 
																 | 
																    fragTexCoord = vertexTexCoord; | 
															
														
														
													
														
															
																 | 
																 | 
																    fragColor = vertexColor; | 
																 | 
																 | 
																    fragColor = vertexColor; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    fragNormal = normalize(vec3(matNormal*skinnedNormal)); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    gl_Position = mvp*skinnedPosition; | 
																 | 
																 | 
																    gl_Position = mvp*skinnedPosition; | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} |