/** * sets the shadow compare mode see {@link CompareMode} for more info * @param compareMode */ final public void setCompareMode(CompareMode compareMode) { pssmRenderer.setCompareMode(compareMode); }
/** * Sets the filtering mode for shadow edges see {@link FilterMode} for more info * @param filterMode */ final public void setFilterMode(FilterMode filterMode) { pssmRenderer.setFilterMode(filterMode); }
/** * Set the shadowIntensity, the value should be between 0 and 1, * a 0 value gives a bright and invisible shadow, * a 1 value gives a pitch black shadow, * default is 0.7 * @param shadowIntensity the darkness of the shadow */ final public void setShadowIntensity(float shadowIntensity) { pssmRenderer.setShadowIntensity(shadowIntensity); }
setCompareMode(CompareMode.Hardware); setFilterMode(FilterMode.Bilinear); setShadowIntensity(0.7f);
public void postFrame(FrameBuffer out) { if (debug) { displayShadowMap(renderManager.getRenderer()); } if (!noOccluders) { //setting params to receiving geometry list setMatParams(); Camera cam = viewPort.getCamera(); //some materials in the scene does not have a post shadow technique so we're using the fall back material if (needsfallBackMaterial) { renderManager.setForcedMaterial(postshadowMat); } //forcing the post shadow technique and render state renderManager.setForcedTechnique(postTechniqueName); //rendering the post shadow pass viewPort.getQueue().renderShadowQueue(lightReceivers, renderManager, cam, true); //resetting renderManager settings renderManager.setForcedTechnique(null); renderManager.setForcedMaterial(null); renderManager.setCamera(cam, false); } }
public void postFrame(FrameBuffer out) { Camera cam = viewPort.getCamera(); if (!noOccluders) { postshadowMat.setColor("Splits", splits); for (int i = 0; i < nbSplits; i++) { postshadowMat.setMatrix4("LightViewProjectionMatrix" + i, lightViewProjectionsMatrices[i]); } renderManager.setForcedMaterial(postshadowMat); viewPort.getQueue().renderShadowQueue(ShadowMode.Receive, renderManager, cam, flushQueues); renderManager.setForcedMaterial(null); renderManager.setCamera(cam, false); } if (debug) { displayShadowMap(renderManager.getRenderer()); } }
/** * returns the lambda parameter * @see #setLambda(float lambda) * @return lambda */ public float getLambda() { return pssmRenderer.getLambda(); }
/** * returns the edges thickness <br> * @see #setEdgesThickness(int edgesThickness) * @return edgesThickness */ public int getEdgesThickness() { return pssmRenderer.getEdgesThickness(); }
/** * returns the light direction used by the processor * @return */ public Vector3f getDirection() { return pssmRenderer.getDirection(); }
/** * returns the shadow intensity * @see #setShadowIntensity(float shadowIntensity) * @return shadowIntensity */ public float getShadowIntensity() { return pssmRenderer.getShadowIntensity(); }
/** * Creates a PSSM Shadow Filter * More info on the technique at <a href="http://http.developer.nvidia.com/GPUGems3/gpugems3_ch10.html">http://http.developer.nvidia.com/GPUGems3/gpugems3_ch10.html</a> * @param manager the application asset manager * @param size the size of the rendered shadowmaps (512,1024,2048, etc...) * @param nbSplits the number of shadow maps rendered (the more shadow maps the more quality, the less fps). */ public PssmShadowFilter(AssetManager manager, int size, int nbSplits) { super("Post Shadow"); material = new Material(manager, "Common/MatDefs/Shadow/PostShadowFilter.j3md"); pssmRenderer = new PssmShadowRenderer(manager, size, nbSplits, material); pssmRenderer.needsfallBackMaterial = true; }
((Node) viewPort.getScenes().get(0)).attachChild(createFrustum(points, i)); ShadowUtil.updateFrustumPoints2(shadowCam, points); ((Node) viewPort.getScenes().get(0)).attachChild(createFrustum(points, i));
setCompareMode(CompareMode.Hardware); setFilterMode(FilterMode.Bilinear); setShadowIntensity(0.7f);
public void postFrame(FrameBuffer out) { if (debug) { displayShadowMap(renderManager.getRenderer()); } if (!noOccluders) { //setting params to receiving geometry list setMatParams(); Camera cam = viewPort.getCamera(); //some materials in the scene does not have a post shadow technique so we're using the fall back material if (needsfallBackMaterial) { renderManager.setForcedMaterial(postshadowMat); } //forcing the post shadow technique and render state renderManager.setForcedTechnique(postTechniqueName); //rendering the post shadow pass viewPort.getQueue().renderShadowQueue(lightReceivers, renderManager, cam, true); //resetting renderManager settings renderManager.setForcedTechnique(null); renderManager.setForcedMaterial(null); renderManager.setCamera(cam, false); } }
/** * returns the lambda parameter * @see #setLambda(float lambda) * @return lambda */ public float getLambda() { return pssmRenderer.getLambda(); }
/** * returns the edges thickness <br> * @see #setEdgesThickness(int edgesThickness) * @return edgesThickness */ public int getEdgesThickness() { return pssmRenderer.getEdgesThickness(); }
/** * returns the light direction used by the processor * @return */ public Vector3f getDirection() { return pssmRenderer.getDirection(); }
/** * returns the shadow intensity * @see #setShadowIntensity(float shadowIntensity) * @return shadowIntensity */ public float getShadowIntensity() { return pssmRenderer.getShadowIntensity(); }
/** * Creates a PSSM Shadow Filter * More info on the technique at <a href="http://http.developer.nvidia.com/GPUGems3/gpugems3_ch10.html">http://http.developer.nvidia.com/GPUGems3/gpugems3_ch10.html</a> * @param manager the application asset manager * @param size the size of the rendered shadowmaps (512,1024,2048, etc...) * @param nbSplits the number of shadow maps rendered (the more shadow maps the more quality, the less fps). */ public PssmShadowFilter(AssetManager manager, int size, int nbSplits) { super("Post Shadow"); material = new Material(manager, "Common/MatDefs/Shadow/PostShadowFilter.j3md"); pssmRenderer = new PssmShadowRenderer(manager, size, nbSplits, material); pssmRenderer.needsfallBackMaterial = true; }
((Node) viewPort.getScenes().get(0)).attachChild(createFrustum(points, i)); ShadowUtil.updateFrustumPoints2(shadowCam, points); ((Node) viewPort.getScenes().get(0)).attachChild(createFrustum(points, i));