 const int DEPTH_QUEUE_SIZE				= 8;
 
 //Adapted from http://www.geeks3d.com/20091216/geexlab-how-to-visualize-the-depth-buffer-in-glsl/
-float linearizeDepth(float z){
-float zNear = 6554;
-float zFar = 1114112;
-z = (2*zNear) / ((zFar + zNear) - z * (zFar - zNear));
-return z;
+float warpFog(float z){
+return pow(z,50);
 }
 
 uint UByte(uint _input, uint index)

  
  // D E P T H   A S S E M B L Y
  for(uint i=0u; i<relevantSize; i++){
   vec4 dqColor	= intrinsicCodeTexel(0,floatBitsToUint(depthQueue[i][2u]),vec3(0,0,0),depthQueue[i].rg);
   color 		= mix(color.rgb,dqColor.rgb,dqColor.a);
  }//end for(relevantSize)
  

void main(){
float 	depth 		= texture(depthTexture,screenLoc)[0];
gl_FragDepth 		= depth;
float 	warpedFog = warpFog(depth);

uint 	textureID 	= floatBitsToUint(texture(textureIDTexture,screenLoc)[0u]);
		fragColor 	= texture(primaryRendering,screenLoc);//GET UV
vec3 	norm 		= texture(normTexture,screenLoc).xyz*2-vec3(1,1,1);//UNPACK NORM
vec2	uv			= fragColor.xy;
vec3	color;
vec3	illuminatedFog
					= fogColor*sunColor;

// S O L I D   B A C K D R O P
color = vec3(intrinsicCodeTexel(warpedFog,textureID,norm,uv,illuminatedFog));
uint relevantSize=0u;
vec4 depthQueue[DEPTH_QUEUE_SIZE];

