diff --git a/jme3-core/src/main/java/com/jme3/shadow/AbstractShadowFilter.java b/jme3-core/src/main/java/com/jme3/shadow/AbstractShadowFilter.java index b8e8d4a22b..cef214e185 100644 --- a/jme3-core/src/main/java/com/jme3/shadow/AbstractShadowFilter.java +++ b/jme3-core/src/main/java/com/jme3/shadow/AbstractShadowFilter.java @@ -32,10 +32,6 @@ package com.jme3.shadow; import com.jme3.asset.AssetManager; -import com.jme3.export.InputCapsule; -import com.jme3.export.JmeExporter; -import com.jme3.export.JmeImporter; -import com.jme3.export.OutputCapsule; import com.jme3.material.Material; import com.jme3.material.RenderState; import com.jme3.math.Matrix4f; @@ -48,19 +44,20 @@ import com.jme3.util.clone.Cloner; import com.jme3.util.clone.JmeCloneable; -import java.io.IOException; - /** * Generic abstract filter that holds common implementations for the different * shadow filters * - * @author Rémy Bouquet aka Nehon + * @author Nehon */ -public abstract class AbstractShadowFilter extends Filter implements Cloneable, JmeCloneable { +public abstract class AbstractShadowFilter extends Filter implements JmeCloneable { protected T shadowRenderer; protected ViewPort viewPort; + private final Vector4f tempVec4 = new Vector4f(); + private final Matrix4f tempMat4 = new Matrix4f(); + /** * For serialization only. Do not use. */ @@ -68,15 +65,13 @@ protected AbstractShadowFilter() { } /** - * Abstract class constructor + * Creates an AbstractShadowFilter. Subclasses invoke this constructor. * - * @param manager the application asset manager - * @param shadowMapSize the size of the rendered shadowmaps (512,1024,2048, - * etc...) - * @param shadowRenderer the shadowRenderer to use for this Filter + * @param assetManager The application's asset manager. + * @param shadowMapSize The size of the rendered shadow maps (e.g., 512, 1024, 2048). + * @param shadowRenderer The shadowRenderer to use for this Filter */ - @SuppressWarnings("all") - protected AbstractShadowFilter(AssetManager manager, int shadowMapSize, T shadowRenderer) { + protected AbstractShadowFilter(AssetManager assetManager, int shadowMapSize, T shadowRenderer) { super("Post Shadow"); this.shadowRenderer = shadowRenderer; // this is legacy setting for shadows with backface shadows @@ -93,18 +88,12 @@ protected boolean isRequiresDepthTexture() { return true; } - public Material getShadowMaterial() { - return material; - } - - Vector4f tmpv = new Vector4f(); - @Override protected void preFrame(float tpf) { shadowRenderer.preFrame(tpf); - material.setMatrix4("ViewProjectionMatrixInverse", viewPort.getCamera().getViewProjectionMatrix().invert()); Matrix4f m = viewPort.getCamera().getViewProjectionMatrix(); - material.setVector4("ViewProjectionMatrixRow2", tmpv.set(m.m20, m.m21, m.m22, m.m23)); + material.setMatrix4("ViewProjectionMatrixInverse", tempMat4.set(m).invertLocal()); + material.setVector4("ViewProjectionMatrixRow2", tempVec4.set(m.m20, m.m21, m.m22, m.m23)); } @Override @@ -337,15 +326,4 @@ public void cloneFields(final Cloner cloner, final Object original) { shadowRenderer.setPostShadowMaterial(material); } - @Override - public void write(JmeExporter ex) throws IOException { - super.write(ex); - OutputCapsule oc = ex.getCapsule(this); - } - - @Override - public void read(JmeImporter im) throws IOException { - super.read(im); - InputCapsule ic = im.getCapsule(this); - } }