#ifdef GL_ES // Set default precision to medium precision mediump int; precision mediump float; #endif uniform mat4 vp_matrix; uniform mat4 norm_matrix; uniform mat4 m_matrix; attribute vec4 a_position; attribute vec2 a_texcoord; attribute vec3 a_normal; varying vec2 v_surfaceUV; varying vec3 v_surfacePosition; varying vec3 v_surfaceNormal; void main() { // Calculate vertex position in screen space gl_Position = vp_matrix * norm_matrix * m_matrix * a_position; // Pass data to fragment shader // Value will be automatically interpolated to fragments inside polygon faces v_surfaceUV = a_texcoord; v_surfacePosition = vec3(norm_matrix * m_matrix * a_position); v_surfaceNormal = a_normal; }