+
+#pragma MSP stage(fragment)
+vec3 project(vec3 position)
+{
+ vec4 pp = projection_matrix*vec4(position, 1.0);
+ return pp.xyz/pp.w;
+}
+
+vec3 unproject(vec3 position)
+{
+ vec4 upp = inverse_projection*vec4(position, 1.0);
+ return upp.xyz/upp.w;
+}