|
|
@ -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; |
|
|
|
} |