 				// vec3 e = view_pos;
 
         // e.z = -abs(e.z);
-        // if (e.z > 0.) {
-        //     e.z = 0.;
-        // }
+
+        // Force surfaces to be in front of camera (due to fake camera optics)
+        if (e.z > 0.01) {
+            e.z = 0.01;
+        }
 
 
         vec3 r = reflect( e, v_normal ); // original
         // vec3 r = reflect( e, normalize(v_normal) );
 				// 2. = scale modifier
-        // float m = 2. * sqrt( 
-            // pow( r.x, 2. ) + 
-            // pow( r.y, 2. ) + 
-            // pow( r.z + 1., 2. ) 
+        float m = 2. * sqrt(
+            pow( r.x, 2. ) +
+            pow( r.y, 2. ) +
+            pow( r.z + 1., 2. )
+        );
+        // float m = 2. * sqrt(
+        //     pow( r.x, 2. ) +
+        //     pow( r.y, 2. ) +
+        //     pow( r.z + 1., u_test2 )
         // );
-        float m = 2. * sqrt( 
-            pow( r.x, 2. ) + 
-            pow( r.y, 2. ) + 
-            pow( r.z + 1., u_test2 ) 
-        );
 
 				// m is, roughly, scale - the +.5 is an offset
 				// if m is 1, the texture stretches the whole width of the sceen

    #if defined(LIGHTING_ENVIRONMENT)

        // approximate location of eye (TODO: make this configurable)
        vec3 view_pos = vec3(0., 0., 1300. * u_meters_per_pixel); 
        // vec3 view_pos = vec3(- u_resolution.x / 2., - u_resolution.y / 2., 1300. * u_meters_per_pixel); 
        // e = normalized vector from eye to vertex

        // vec3 e = v_position.xyz - view_pos.xyz; // unnormalized - bright green yellow red black quadrants

				// color = normalize(v_position.xyz); // green/red/black circluar fade
				// color = view_pos.xyz; // solid blue
				// color = normalize(view_pos.xyz); // still solid blue
				// color = v_normal; //


        // color = r;

    #endif
