/* vertex shader */
in vec3 aPosition;
in vec3 aNormal;
in vec3 aTangent;
in vec2 aTexCoord;

uniform mat4 uModel;
uniform mat4 uView;
uniform mat4 uProj;

out vec3 vObjectPos;
out vec4 vViewSpaceNormal;
out vec2 vTexCoord;

void main()
{
    vec4 aPos4 = vec4(aPosition, 1.0);
    vObjectPos = aPosition;
    vViewSpaceNormal = uModel * uView * vec4(aNormal, 0);
    vTexCoord = aTexCoord;
    gl_Position = uProj * uView * uModel * aPos4;
}


/* fragment shader */
in vec3 vObjectPos;
in vec4 vViewSpaceNormal;
in vec2 vTexCoord;

uniform sampler2D uAlbedoMap;

out vec4 fColor;

void main()
{
    fColor = texture(uAlbedoMap, vTexCoord);
}