Преглед изворни кода

Fixed an issue where some occluders were wrongly culled out from the shadow map at very steep light angle, and when the view cam was almost align with light direction.

Nehon пре 8 година
родитељ
комит
69d8e5d13e

+ 1 - 1
jme3-core/src/main/java/com/jme3/shadow/DirectionalLightShadowRenderer.java

@@ -145,7 +145,7 @@ public class DirectionalLightShadowRenderer extends AbstractShadowRenderer {
         float frustumNear = Math.max(viewCam.getFrustumNear(), 0.001f);
         ShadowUtil.updateFrustumPoints(viewCam, frustumNear, zFar, 1.0f, points);
 
-        //shadowCam.setDirection(direction);
+        shadowCam.setFrustumFar(zFar);
         shadowCam.getRotation().lookAt(light.getDirection(), shadowCam.getUp());
         shadowCam.update();
         shadowCam.updateViewProjection();

+ 1 - 1
jme3-core/src/main/java/com/jme3/shadow/ShadowUtil.java

@@ -465,7 +465,7 @@ public class ShadowUtil {
         shadowCam.setProjectionMatrix(null);
 
         if (ortho) {
-            shadowCam.setFrustum(-1, 1, -1, 1, 1, -1);
+            shadowCam.setFrustum(-shadowCam.getFrustumFar(), shadowCam.getFrustumFar(), -1, 1, 1, -1);
         }
 
         // create transform to rotate points to viewspace