		vec3 viewDirNrm = normalize(eyeVec);
		vec2 scale = viewDirNrm.xy * HEIGHT_SCALE / max(viewDirNrm.z * NUM_STEPSf, 0.01);

		pt_eye.xy = texCoord - scale * vec2(texture2D(u_HeightMap, texCoord).r * Scale);
#if NUM_STEPS > 1
		pt_eye.xy -= scale * vec2(texture2D(u_HeightMap, pt_eye.xy).r * Scale);
#endif
#if NUM_STEPS > 2
		pt_eye.xy -= scale * vec2(texture2D(u_HeightMap, pt_eye.xy).r * Scale);
#endif
#if NUM_STEPS > 3
		pt_eye.xy -= scale * vec2(texture2D(u_HeightMap, pt_eye.xy).r * Scale);
#endif
#if NUM_STEPS > 4
		pt_eye.xy -= scale * vec2(texture2D(u_HeightMap, pt_eye.xy).r * Scale);
#endif
#if NUM_STEPS > 5
		pt_eye.xy -= scale * vec2(texture2D(u_HeightMap, pt_eye.xy).r * Scale);
#endif
#if NUM_STEPS > 6
		pt_eye.xy -= scale * vec2(texture2D(u_HeightMap, pt_eye.xy).r * Scale);
#endif
#if NUM_STEPS > 7
		pt_eye.xy -= scale * vec2(texture2D(u_HeightMap, pt_eye.xy).r * Scale);
#endif
#if NUM_STEPS > 8
		pt_eye.xy -= scale * vec2(texture2D(u_HeightMap, pt_eye.xy).r * Scale);
#endif
#if NUM_STEPS > 9
		pt_eye.xy -= scale * vec2(texture2D(u_HeightMap, pt_eye.xy).r * Scale);
#endif
#if NUM_STEPS > 10
		pt_eye.xy -= scale * vec2(texture2D(u_HeightMap, pt_eye.xy).r * Scale);
#endif
#if NUM_STEPS > 11
		pt_eye.xy -= scale * vec2(texture2D(u_HeightMap, pt_eye.xy).r * Scale);
#endif
#if NUM_STEPS > 12
		pt_eye.xy -= scale * vec2(texture2D(u_HeightMap, pt_eye.xy).r * Scale);
#endif
#if NUM_STEPS > 13
		pt_eye.xy -= scale * vec2(texture2D(u_HeightMap, pt_eye.xy).r * Scale);
#endif
#if NUM_STEPS > 14
		pt_eye.xy -= scale * vec2(texture2D(u_HeightMap, pt_eye.xy).r * Scale);
#endif
#if NUM_STEPS > 15
		pt_eye.xy -= scale * vec2(texture2D(u_HeightMap, pt_eye.xy).r * Scale);
#endif
