|  |  | @ -1,36 +1,26 @@ | 
		
	
		
			
			|  |  |  | #version 100 | 
		
	
		
			
			|  |  |  | #version 300 es | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | precision mediump float; | 
		
	
		
			
			|  |  |  | precision highp float; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Input vertex attributes (from vertex shader) | 
		
	
		
			
			|  |  |  | varying vec3 fragPosition; | 
		
	
		
			
			|  |  |  | varying vec2 fragTexCoord; | 
		
	
		
			
			|  |  |  | varying vec3 fragNormal; | 
		
	
		
			
			|  |  |  | varying vec4 fragColor; | 
		
	
		
			
			|  |  |  | layout (location = 0) out vec4 gPosition; | 
		
	
		
			
			|  |  |  | layout (location = 1) out vec4 gNormal; | 
		
	
		
			
			|  |  |  | layout (location = 2) out vec4 gAlbedoSpec; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // TODO: Is there some alternative for GLSL100 | 
		
	
		
			
			|  |  |  | //layout (location = 0) out vec3 gPosition; | 
		
	
		
			
			|  |  |  | //layout (location = 1) out vec3 gNormal; | 
		
	
		
			
			|  |  |  | //layout (location = 2) out vec4 gAlbedoSpec; | 
		
	
		
			
			|  |  |  | //uniform vec3 gPosition; | 
		
	
		
			
			|  |  |  | //uniform vec3 gNormal; | 
		
	
		
			
			|  |  |  | //uniform vec4 gAlbedoSpec; | 
		
	
		
			
			|  |  |  | in vec3 fragPosition; | 
		
	
		
			
			|  |  |  | in vec2 fragTexCoord; | 
		
	
		
			
			|  |  |  | in vec3 fragNormal; | 
		
	
		
			
			|  |  |  | in vec4 fragColor; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Input uniform values | 
		
	
		
			
			|  |  |  | uniform sampler2D texture0;  // Diffuse texture | 
		
	
		
			
			|  |  |  | uniform sampler2D diffuseTexture; | 
		
	
		
			
			|  |  |  | uniform sampler2D specularTexture; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | void main() | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | // Store the fragment position vector in the first gbuffer texture | 
		
	
		
			
			|  |  |  | //gPosition = fragPosition; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Store the per-fragment normals into the gbuffer | 
		
	
		
			
			|  |  |  | //gNormal = normalize(fragNormal); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Store the diffuse per-fragment color | 
		
	
		
			
			|  |  |  | gl_FragColor.rgb = texture2D(texture0, fragTexCoord).rgb; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Store specular intensity in gAlbedoSpec's alpha component | 
		
	
		
			
			|  |  |  | gl_FragColor.a = texture2D(specularTexture, fragTexCoord).r; | 
		
	
		
			
			|  |  |  | void main() { | 
		
	
		
			
			|  |  |  | // store the fragment position vector in the first gbuffer texture | 
		
	
		
			
			|  |  |  | gPosition = vec4(fragPosition,1.0); | 
		
	
		
			
			|  |  |  | // also store the per-fragment normals into the gbuffer | 
		
	
		
			
			|  |  |  | gNormal = vec4(normalize(fragNormal),1.0); | 
		
	
		
			
			|  |  |  | // and the diffuse per-fragment color | 
		
	
		
			
			|  |  |  | gAlbedoSpec.rgb = texture(diffuseTexture, fragTexCoord).rgb; | 
		
	
		
			
			|  |  |  | // store specular intensity in gAlbedoSpec's alpha component | 
		
	
		
			
			|  |  |  | gAlbedoSpec.a = texture(specularTexture, fragTexCoord).r; | 
		
	
		
			
			|  |  |  | } |