 		col *= diffuse.rgb;
 	
 		vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz));
-
+//spec.rgba = max(spec.rgba, vec4(1.0, 1.0, 1.0, 0.95));
 		if (spec.a > 0.0) // specular reflection
 		{
 		  			// the old infinite-sky shiny reflection

			  //float rdpow2 = (guessnumfp)/(26.0);
			  float rd = guessnumfp / itsf;
			  float rdpow2 = rd * rd;
			  float refdist = 0.5*(screen_res.y * (rd));// / (-depth) ;
			  //float refdist = 0.25*(screen_res.y * (rdpow2)) ;
			  //float refdist = (0.13* (screen_res.y) * ((1-abs(norm.z)) + ((1-depth)))) * (1.0*(guessnum+1)/161.0);
			  //vec2 ref2d = mix(orig_ref2d, orig_ref2dpersp, 0*fract(orig_ref2d.y*12345.678)) * refdist;
			  vec2 ref2d = (orig_ref2d + (1.0 - min(length(spec.rgb), 1.0))*0.13*vec2(rnd*2.0-1.0)) * refdist;
			
			  //ref2d.x += checkerboard;


			  }
			  else  // sky
			  {
			    //refapprop *= 1.0 / itsf;
			    //refapprop *= 1.0 - rdpow2;
			    refapprop = min(refapprop, (1.0 - rdpow2));
			    //refapprop = 0.0;

			    // avoid forward-pointing reflections picking up sky
			    //refapprop = max(min(refapprop, -dot(refnorm, vec3(0,0,1))), 0.0);
			    refapprop = min(refapprop, max(-refnorm.z, 0.0));//dot(refnorm, vec3(0.0, 0.0, -1.0));
 
			    //			    refapprop *= 0.5;
			    total_refapprop += refapprop;
