#ifdef GL_VERTEX_PRECISION_HIGH precision highp float; precision highp int; #else precision mediump float; precision mediump int; #endif uniform mat4 u_projMatrix; uniform mat4 u_modelViewMatrix; uniform mat4 u_normalMatrix; uniform vec3 lightDir; attribute vec3 aNormal; attribute vec3 aPosition; attribute vec2 aTextureCoord; varying float v_Dot; varying vec2 v_texCoord; void main () { gl_Position = u_projMatrix * u_modelViewMatrix * vec4(aPosition, 1); vec4 transNormal = u_normalMatrix * vec4(normalize(aNormal), 0); v_Dot = max(dot(transNormal.xyz, lightDir), 0.0); v_texCoord = aTextureCoord; }