diff --git a/engine/src/core/com/jme3/material/Material.java b/engine/src/core/com/jme3/material/Material.java index b9830d9f4..73c928e96 100644 --- a/engine/src/core/com/jme3/material/Material.java +++ b/engine/src/core/com/jme3/material/Material.java @@ -794,7 +794,11 @@ public class Material implements CloneableSmartAsset, Cloneable, Savable { case Directional: DirectionalLight dl = (DirectionalLight) l; Vector3f dir = dl.getDirection(); - + //FIXME : there is an inconstencie here due to backward + //compatibility of the lighting shader. + //The directional light direction is passed in the + //LightPosition uniform. The lightinf shader needs to be + //reworked though in order to fix this. tmpLightPosition.set(dir.getX(), dir.getY(), dir.getZ(), -1); lightPos.setValue(VarType.Vector4, tmpLightPosition); tmpLightDirection.set(0, 0, 0, 0); diff --git a/engine/src/core/com/jme3/shader/UniformBinding.java b/engine/src/core/com/jme3/shader/UniformBinding.java index 28fd0c405..3ac5cc0e0 100644 --- a/engine/src/core/com/jme3/shader/UniformBinding.java +++ b/engine/src/core/com/jme3/shader/UniformBinding.java @@ -171,7 +171,31 @@ public enum UniformBinding { * Frames per second. * Type: float */ - FrameRate("float"); + FrameRate("float"), + + /** + * The light position when rendering in multi pass mode + * Type: vec4 + */ + LightDirection("vec4"), + + /** + * The light direction when rendering in multi pass mode + * Type: vec4 + */ + LightPosition("vec4"), + + /** + * Ambient light color + * Type: vec4 + */ + AmbientLightColor("vec4"), + + /** + * The light color when rendering in multi pass mode + * Type: vec4 + */ + LightColor("vec4"); String glslType;