 	if(brdf.z < 0.0 ) brdf.z = 0.0;
 	brdf.w = 1.0;
 	
-	brdf =  brdf*10000.0*gainF(_k1, _k2);
+	brdf =  brdf*10000.0*gainF(_k1, _k2)*shadowF;
 	brdf.xyz = getBRDF_RGB_T_D65(M_Adobe_XRNew, brdf.xyz);
 	
 	

		
		float uv_N_n_hat = (kk*dx*t2);
		float uv_N_n = floor(uv_N_n_hat);
		float uu_N_n = (kk*dx*t1);
			
		float uu_N_base = uu_N_n - neighborRadius;
		float uv_N_base = uv_N_n - neighborRadius;
		

	float comp_sigma = sigma_f_pix;
	sigma_f_pix *= sigma_f_pix;
	sigma_f_pix *= 2.0;
	t1 = u;
	t2 = v;
	
	for(float iter = 0; iter < iterMax; iter = iter + 1.0){
		
