 				billboardTexColor_2,
 				reflectedColor)) 
 		{
-			intersectDistance = length(P);
-			// reflected color is always the color of the closes reflection if multiple apply
-			color = reflectedColor;
+			intersectDistance = length(P.xyz);
 		}		
 	}
 	
 	if(intersectDistance == INFINITY) // if there was no intersection with ANY billboard
 		color = fs_in.color;
+	else
+	{
+		mixFactor = intersectDistance / MAXINTERSECTDISTANCE;
+		mixFactor = clamp(mixFactor, 0.0, 1.0);
+		mixFactor = 1.0 - mixFactor; // the farther the less influence it has
+		// reflected color is always the color of the closest reflection modulated by the
+		// maximum distance allowed
+		color = mix(fs_in.color, reflectedColor, mixFactor);
+	}
 	
     // some useful for debug only tets
 	//vec4 test = vec4(billboardVerts_1[0], 1.0) + vec4(-137.644196, 76.3608627, 82.6696091, -1.0); checksout

		P = S + (t * V);
		
		if(	(t > 0) && 
			(length(P) < intersectDistance) && 
			calcImpostorReflectColor(
				P.xyz, 
				billboardVerts_2, 

		P = S + (t * V);
		
		if(	(t > 0) && 
			(length(P.xyz) < intersectDistance) && 
			calcImpostorReflectColor(
				P.xyz, 
				billboardVerts_1, 
