#version 120 uniform mat4 P; uniform mat4 MV; attribute vec4 aPos; // in object space attribute vec3 aNor; // in object space varying vec3 p; // passed to fragment shader varying vec3 n; // passed to fragment shader void main() { ugl_Position = P * MV * aPos; p = MV * aPos; n = MV * aNor; }