uniform mat4 u_mat4_mdv; uniform mat4 u_mat4_prj; uniform mat4 u_mat4_ads; attribute vec3 a_v3_nor; attribute vec3 a_v3_vtx; varying vec3 vEyeNormal; varying vec3 vPosition3; void main() { vEyeNormal = vec3(u_mat4_mdv * vec4(a_v3_nor, 0.0)); vec4 vPosition4 = u_mat4_mdv * vec4(a_v3_vtx.x, a_v3_vtx.y, a_v3_vtx.z, 1.0); vPosition3 = vPosition4.xyz / vPosition4.w; gl_Position = u_mat4_prj * vPosition4; }