Browse Source

correctly handle out of shadowmap

ncannasse 11 năm trước cách đây
mục cha
commit
ba88fa0bb0
1 tập tin đã thay đổi với 3 bổ sung1 xóa
  1. 3 1
      h3d/shader/Shadow.hx

+ 3 - 1
h3d/shader/Shadow.hx

@@ -28,7 +28,9 @@ class Shadow extends hxsl.Shader {
 			bias = clamp(bias, 0, 0.01)
 			#end
 
-			var shade = exp( shadow.power * (depth - shadowPos.z + shadow.bias) ).clamp(0.,1.);
+			var zMax = shadowPos.z.saturate();
+			var delta = (depth + shadow.bias).min(zMax) - zMax;
+			var shade = exp( shadow.power * delta  ).clamp(0., 1.);
 			pixelColor.rgb *= (1. - shade) * shadow.color.rgb + shade;
 		}
 	};