#version 310 es layout(location = POSITION) in vec4 a_position; layout(location = TEXCOORD0) in vec2 a_texCoord; layout(location = NORMAL) in vec3 a_normal; layout(location = TEXCOORD0) out vec2 v_texCoord; layout(location = NORMAL) out vec3 v_normal; layout(std140, binding = 0) uniform vs_ub { mat4 u_MVPMatrix; mat3 u_NormalMatrix; }; void main(void) { gl_Position = u_MVPMatrix * a_position; v_texCoord = a_texCoord; v_texCoord.y = (1.0 - v_texCoord.y); v_normal = u_NormalMatrix *a_normal; }