#version 120 attribute vec3 a_position; attribute vec3 a_normal; attribute vec2 a_texcoord; varying vec3 v_position; varying vec3 v_normal; varying vec2 v_texcoord; varying vec3 v_finalColor; uniform mat4 u_modelMatrix; uniform mat4 u_viewMatrix; uniform mat4 u_projectionMatrix; uniform mat4 u_modelViewProjection; void main() { v_position = vec3( u_modelMatrix * vec4(a_position, 1.0) ); v_normal = vec3( mat3(u_modelMatrix) * a_normal ); v_texcoord = a_texcoord; gl_Position = u_modelViewProjection * vec4(a_position, 1); }