[[vertex]] uniform mat4 mvp; in vec4 pos; in vec3 nor; in vec2 uvs; out vec3 n; out vec3 p; void main() { n = nor; p = vec3(mvp * pos); gl_Position = vec4(uvs * 2.0 - 1.0, 0.0, 1.0); } [[fragment]] uniform int mode; in highp vec3 n; in highp vec3 p; out highp vec3 frag; void main() { switch(mode) { case 0: frag = normalize(n); break; case 1: frag = p; break; } }