public static DirectionalLightShadowFilter cloneDirectionalLightShadowFilter(AssetManager assetManager, DirectionalLightShadowFilter filter){ DirectionalLightShadowFilter clone = new DirectionalLightShadowFilter(assetManager, 512, 3); clone.setLight(filter.getLight()); clone.setLambda(filter.getLambda()); clone.setShadowIntensity(filter.getShadowIntensity()); clone.setEdgeFilteringMode(filter.getEdgeFilteringMode()); // clone.setEnabled(filter.isEnabled()); return clone; }
viewPort.addProcessor(dlsr); dlsf = new DirectionalLightShadowFilter(assetManager, SHADOWMAP_SIZE, 3); dlsf.setLight(l); dlsf.setLambda(0.55f); dlsf.setShadowIntensity(0.8f); dlsf.setEdgeFilteringMode(EdgeFilteringMode.Nearest); dlsf.setEnabled(false);
shadowRenderer = new DirectionalLightShadowFilter(assetManager, 1024, 2); DirectionalLight dl = new DirectionalLight(); dl.setDirection(new Vector3f(-1, -1, -1).normalizeLocal()); shadowRenderer.setLight(dl); shadowRenderer.setLambda(0.55f); shadowRenderer.setShadowIntensity(0.6f); shadowRenderer.setShadowCompareMode(CompareMode.Hardware); shadowRenderer.setEdgeFilteringMode(EdgeFilteringMode.PCF4); FilterPostProcessor fpp = new FilterPostProcessor(assetManager); fpp.addFilter(shadowRenderer);
dlsf.setLambda(dlsr.getLambda() + 0.01f); System.out.println("Lambda : " + dlsr.getLambda()); } else if (name.equals("lambdaDown") && keyPressed) { dlsr.setLambda(dlsr.getLambda() - 0.01f); dlsf.setLambda(dlsr.getLambda() - 0.01f); System.out.println("Lambda : " + dlsr.getLambda()); dlsf.setRenderBackFacesShadows(!dlsf.isRenderBackFacesShadows()); dlsf.setEnabledStabilization(!dlsf.isEnabledStabilization()); shadowStabilizationText.setText("(b:on/off) Shadow stabilization : " + dlsr.isEnabledStabilization()); dlsr.setShadowZExtend(0); dlsr.setShadowZFadeLength(0); dlsf.setShadowZExtend(0); dlsf.setShadowZFadeLength(0); dlsf.setShadowZExtend(500); dlsf.setShadowZFadeLength(50);
dlsr.setEdgeFilteringMode(EdgeFilteringMode.PCF4); dlsf = new DirectionalLightShadowFilter(assetManager, SHADOWMAP_SIZE*2, 4); dlsf.setEdgeFilteringMode(EdgeFilteringMode.PCF4); dlsf.setLight(directionalLight); dlsf.setEnabled(useFilter);
DirectionalLightShadowFilter sf = new DirectionalLightShadowFilter(assetManager, 1024, 2); sf.setLight(dl); fpp.addFilter(sf); fpp.addFilter(new SSAOFilter());
DirectionalLightShadowFilter filter = new DirectionalLightShadowFilter(assetManager, 2048, 1); filter.setLight(sun); processor.addFilter(filter); viewPort.addProcessor(processor);