Fix of the one parameter of shadows render. (#688)
* fixed applying the render back faces shadows option during creating a shadow filter.
This commit is contained in:
parent
b21cff5cfa
commit
10bc250db7
@ -32,11 +32,7 @@
|
|||||||
package com.jme3.shadow;
|
package com.jme3.shadow;
|
||||||
|
|
||||||
import com.jme3.asset.AssetManager;
|
import com.jme3.asset.AssetManager;
|
||||||
import com.jme3.export.InputCapsule;
|
import com.jme3.export.*;
|
||||||
import com.jme3.export.JmeExporter;
|
|
||||||
import com.jme3.export.JmeImporter;
|
|
||||||
import com.jme3.export.OutputCapsule;
|
|
||||||
import com.jme3.export.Savable;
|
|
||||||
import com.jme3.material.Material;
|
import com.jme3.material.Material;
|
||||||
import com.jme3.material.RenderState;
|
import com.jme3.material.RenderState;
|
||||||
import com.jme3.math.ColorRGBA;
|
import com.jme3.math.ColorRGBA;
|
||||||
@ -99,7 +95,7 @@ public abstract class AbstractShadowRenderer implements SceneProcessor, Savable,
|
|||||||
protected CompareMode shadowCompareMode = CompareMode.Hardware;
|
protected CompareMode shadowCompareMode = CompareMode.Hardware;
|
||||||
protected Picture[] dispPic;
|
protected Picture[] dispPic;
|
||||||
protected RenderState forcedRenderState = new RenderState();
|
protected RenderState forcedRenderState = new RenderState();
|
||||||
protected Boolean renderBackFacesShadows = true;
|
protected boolean renderBackFacesShadows = true;
|
||||||
protected AppProfiler prof;
|
protected AppProfiler prof;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -192,6 +188,7 @@ public abstract class AbstractShadowRenderer implements SceneProcessor, Savable,
|
|||||||
setEdgeFilteringMode(edgeFilteringMode);
|
setEdgeFilteringMode(edgeFilteringMode);
|
||||||
setShadowIntensity(shadowIntensity);
|
setShadowIntensity(shadowIntensity);
|
||||||
initForcedRenderState();
|
initForcedRenderState();
|
||||||
|
setRenderBackFacesShadows(isRenderBackFacesShadows());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void initForcedRenderState() {
|
protected void initForcedRenderState() {
|
||||||
@ -558,19 +555,20 @@ public abstract class AbstractShadowRenderer implements SceneProcessor, Savable,
|
|||||||
for (int j = 0; j < nbShadowMaps; j++) {
|
for (int j = 0; j < nbShadowMaps; j++) {
|
||||||
mat.setMatrix4(lightViewStringCache[j], lightViewProjectionsMatrices[j]);
|
mat.setMatrix4(lightViewStringCache[j], lightViewProjectionsMatrices[j]);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int j = 0; j < nbShadowMaps; j++) {
|
for (int j = 0; j < nbShadowMaps; j++) {
|
||||||
mat.setTexture(shadowMapStringCache[j], shadowMaps[j]);
|
mat.setTexture(shadowMapStringCache[j], shadowMaps[j]);
|
||||||
}
|
}
|
||||||
|
|
||||||
mat.setBoolean("HardwareShadows", shadowCompareMode == CompareMode.Hardware);
|
mat.setBoolean("HardwareShadows", shadowCompareMode == CompareMode.Hardware);
|
||||||
mat.setInt("FilterMode", edgeFilteringMode.getMaterialParamValue());
|
mat.setInt("FilterMode", edgeFilteringMode.getMaterialParamValue());
|
||||||
mat.setFloat("PCFEdge", edgesThickness);
|
mat.setFloat("PCFEdge", edgesThickness);
|
||||||
mat.setFloat("ShadowIntensity", shadowIntensity);
|
mat.setFloat("ShadowIntensity", shadowIntensity);
|
||||||
|
mat.setBoolean("BackfaceShadows", renderBackFacesShadows);
|
||||||
|
|
||||||
if (fadeInfo != null) {
|
if (fadeInfo != null) {
|
||||||
mat.setVector2("FadeInfo", fadeInfo);
|
mat.setVector2("FadeInfo", fadeInfo);
|
||||||
}
|
}
|
||||||
if(renderBackFacesShadows != null){
|
|
||||||
mat.setBoolean("BackfaceShadows", renderBackFacesShadows);
|
|
||||||
}
|
|
||||||
|
|
||||||
setMaterialParameters(mat);
|
setMaterialParameters(mat);
|
||||||
}
|
}
|
||||||
@ -610,10 +608,8 @@ public abstract class AbstractShadowRenderer implements SceneProcessor, Savable,
|
|||||||
if (fadeInfo != null) {
|
if (fadeInfo != null) {
|
||||||
postshadowMat.setVector2("FadeInfo", fadeInfo);
|
postshadowMat.setVector2("FadeInfo", fadeInfo);
|
||||||
}
|
}
|
||||||
if(renderBackFacesShadows != null){
|
|
||||||
postshadowMat.setBoolean("BackfaceShadows", renderBackFacesShadows);
|
postshadowMat.setBoolean("BackfaceShadows", renderBackFacesShadows);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* How far the shadows are rendered in the view
|
* How far the shadows are rendered in the view
|
||||||
@ -788,10 +784,11 @@ public abstract class AbstractShadowRenderer implements SceneProcessor, Savable,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* if this processor renders back faces shadows
|
* if this processor renders back faces shadows
|
||||||
|
*
|
||||||
* @return true if this processor renders back faces shadows
|
* @return true if this processor renders back faces shadows
|
||||||
*/
|
*/
|
||||||
public boolean isRenderBackFacesShadows() {
|
public boolean isRenderBackFacesShadows() {
|
||||||
return renderBackFacesShadows != null?renderBackFacesShadows:false;
|
return renderBackFacesShadows;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -33,11 +33,7 @@ package com.jme3.shadow;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import com.jme3.asset.AssetManager;
|
import com.jme3.asset.AssetManager;
|
||||||
import com.jme3.export.InputCapsule;
|
import com.jme3.export.*;
|
||||||
import com.jme3.export.JmeExporter;
|
|
||||||
import com.jme3.export.JmeImporter;
|
|
||||||
import com.jme3.export.OutputCapsule;
|
|
||||||
import com.jme3.export.Savable;
|
|
||||||
import com.jme3.material.Material;
|
import com.jme3.material.Material;
|
||||||
import com.jme3.material.RenderState;
|
import com.jme3.material.RenderState;
|
||||||
import com.jme3.math.ColorRGBA;
|
import com.jme3.math.ColorRGBA;
|
||||||
@ -57,8 +53,6 @@ import com.jme3.renderer.queue.RenderQueue.ShadowMode;
|
|||||||
import com.jme3.scene.Geometry;
|
import com.jme3.scene.Geometry;
|
||||||
import com.jme3.scene.Spatial;
|
import com.jme3.scene.Spatial;
|
||||||
import com.jme3.scene.debug.WireFrustum;
|
import com.jme3.scene.debug.WireFrustum;
|
||||||
import com.jme3.shadow.CompareMode;
|
|
||||||
import com.jme3.shadow.EdgeFilteringMode;
|
|
||||||
import com.jme3.texture.FrameBuffer;
|
import com.jme3.texture.FrameBuffer;
|
||||||
import com.jme3.texture.Image.Format;
|
import com.jme3.texture.Image.Format;
|
||||||
import com.jme3.texture.Texture.MagFilter;
|
import com.jme3.texture.Texture.MagFilter;
|
||||||
@ -99,7 +93,7 @@ public abstract class AbstractShadowRendererVR implements SceneProcessor, Savabl
|
|||||||
protected CompareMode shadowCompareMode = CompareMode.Hardware;
|
protected CompareMode shadowCompareMode = CompareMode.Hardware;
|
||||||
protected Picture[] dispPic;
|
protected Picture[] dispPic;
|
||||||
protected RenderState forcedRenderState = new RenderState();
|
protected RenderState forcedRenderState = new RenderState();
|
||||||
protected Boolean renderBackFacesShadows;
|
protected boolean renderBackFacesShadows;
|
||||||
|
|
||||||
protected AppProfiler profiler = null;
|
protected AppProfiler profiler = null;
|
||||||
|
|
||||||
@ -193,6 +187,7 @@ public abstract class AbstractShadowRendererVR implements SceneProcessor, Savabl
|
|||||||
setEdgeFilteringMode(edgeFilteringMode);
|
setEdgeFilteringMode(edgeFilteringMode);
|
||||||
setShadowIntensity(shadowIntensity);
|
setShadowIntensity(shadowIntensity);
|
||||||
initForcedRenderState();
|
initForcedRenderState();
|
||||||
|
setRenderBackFacesShadows(isRenderBackFacesShadows());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void initForcedRenderState() {
|
protected void initForcedRenderState() {
|
||||||
@ -572,12 +567,11 @@ public abstract class AbstractShadowRendererVR implements SceneProcessor, Savabl
|
|||||||
mat.setInt("FilterMode", edgeFilteringMode.getMaterialParamValue());
|
mat.setInt("FilterMode", edgeFilteringMode.getMaterialParamValue());
|
||||||
mat.setFloat("PCFEdge", edgesThickness);
|
mat.setFloat("PCFEdge", edgesThickness);
|
||||||
mat.setFloat("ShadowIntensity", shadowIntensity);
|
mat.setFloat("ShadowIntensity", shadowIntensity);
|
||||||
|
mat.setBoolean("BackfaceShadows", renderBackFacesShadows);
|
||||||
|
|
||||||
if (fadeInfo != null) {
|
if (fadeInfo != null) {
|
||||||
mat.setVector2("FadeInfo", fadeInfo);
|
mat.setVector2("FadeInfo", fadeInfo);
|
||||||
}
|
}
|
||||||
if(renderBackFacesShadows != null){
|
|
||||||
mat.setBoolean("BackfaceShadows", renderBackFacesShadows);
|
|
||||||
}
|
|
||||||
|
|
||||||
setMaterialParameters(mat);
|
setMaterialParameters(mat);
|
||||||
}
|
}
|
||||||
@ -617,10 +611,8 @@ public abstract class AbstractShadowRendererVR implements SceneProcessor, Savabl
|
|||||||
if (fadeInfo != null) {
|
if (fadeInfo != null) {
|
||||||
postshadowMat.setVector2("FadeInfo", fadeInfo);
|
postshadowMat.setVector2("FadeInfo", fadeInfo);
|
||||||
}
|
}
|
||||||
if(renderBackFacesShadows != null){
|
|
||||||
postshadowMat.setBoolean("BackfaceShadows", renderBackFacesShadows);
|
postshadowMat.setBoolean("BackfaceShadows", renderBackFacesShadows);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* How far the shadows are rendered in the view
|
* How far the shadows are rendered in the view
|
||||||
@ -800,10 +792,11 @@ public abstract class AbstractShadowRendererVR implements SceneProcessor, Savabl
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* if this processor renders back faces shadows
|
* if this processor renders back faces shadows
|
||||||
|
*
|
||||||
* @return true if this processor renders back faces shadows
|
* @return true if this processor renders back faces shadows
|
||||||
*/
|
*/
|
||||||
public boolean isRenderBackFacesShadows() {
|
public boolean isRenderBackFacesShadows() {
|
||||||
return renderBackFacesShadows != null?renderBackFacesShadows:false;
|
return renderBackFacesShadows;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user