35 lines
		
	
	
		
			755 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			755 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| uniform vec3 CamPos;
 | |
| uniform mat3 ModelRotateMatrix;
 | |
| uniform vec3 ModelTranslateVector;
 | |
| 
 | |
| attribute vec3 Tangent;
 | |
| attribute vec3 Binormal;
 | |
| 
 | |
| varying vec2 texCoord;
 | |
| varying vec3 camVec;
 | |
| varying vec3 lightVec;
 | |
| varying vec3 vertexPos;
 | |
| 
 | |
| void main()
 | |
| {
 | |
| 	vec4 realVertexPos = vec4(ModelRotateMatrix * gl_Vertex.xyz + ModelTranslateVector, 1.0);
 | |
| 	gl_Position = gl_ModelViewProjectionMatrix * realVertexPos;
 | |
| 	
 | |
| 	texCoord = gl_MultiTexCoord0.st;
 | |
| 	
 | |
| 	vec3 lVec = normalize(gl_LightSource[0].position.xyz);
 | |
| 	vec3 cVec = (CamPos - gl_Vertex.xyz);
 | |
| 	
 | |
| 	vertexPos = gl_Vertex.xyz;
 | |
| 	
 | |
| 	mat3 rot;
 | |
| 	rot[0] = normalize(Tangent);
 | |
| 	rot[1] = normalize(Binormal);
 | |
| 	rot[2] = normalize(gl_Normal.xyz);
 | |
| 	
 | |
| 	rot = ModelRotateMatrix * rot;
 | |
| 
 | |
| 	lightVec = lVec * rot;
 | |
| 	camVec =  cVec * rot;
 | |
| 	
 | |
| } |