diff --git a/engine/src/core-effects/Common/MatDefs/Water/Water.frag b/engine/src/core-effects/Common/MatDefs/Water/Water.frag index ab752606d..07a4c6429 100644 --- a/engine/src/core-effects/Common/MatDefs/Water/Water.frag +++ b/engine/src/core-effects/Common/MatDefs/Water/Water.frag @@ -12,7 +12,7 @@ uniform sampler2D m_FoamMap; uniform sampler2D m_CausticsMap; uniform sampler2D m_ReflectionMap; -uniform mat4 m_ViewProjectionMatrixInverse; +uniform mat4 g_ViewProjectionMatrixInverse; uniform mat4 m_TextureProjMatrix; uniform vec3 m_CameraPosition; @@ -107,7 +107,7 @@ vec3 saturate(in vec3 val){ vec3 getPosition(in float depth, in vec2 uv){ vec4 pos = vec4(uv, depth, 1.0) * 2.0 - 1.0; - pos = m_ViewProjectionMatrixInverse * pos; + pos = g_ViewProjectionMatrixInverse * pos; return pos.xyz / pos.w; } diff --git a/engine/src/core-effects/Common/MatDefs/Water/Water.j3md b/engine/src/core-effects/Common/MatDefs/Water/Water.j3md index 383d19662..b6a7525f5 100644 --- a/engine/src/core-effects/Common/MatDefs/Water/Water.j3md +++ b/engine/src/core-effects/Common/MatDefs/Water/Water.j3md @@ -13,8 +13,7 @@ MaterialDef Advanced Water { Vector3 CameraPosition Float Time Vector3 frustumCorner - Matrix4 TextureProjMatrix - Matrix4 ViewProjectionMatrixInverse + Matrix4 TextureProjMatrix Float WaterHeight Vector3 LightDir Float WaterTransparency @@ -56,6 +55,7 @@ MaterialDef Advanced Water { FragmentShader GLSL150 : Common/MatDefs/Water/Water15.frag WorldParameters { + ViewProjectionMatrixInverse } Defines { diff --git a/engine/src/core-effects/Common/MatDefs/Water/Water15.frag b/engine/src/core-effects/Common/MatDefs/Water/Water15.frag index 2a26d1558..e6601e25a 100644 --- a/engine/src/core-effects/Common/MatDefs/Water/Water15.frag +++ b/engine/src/core-effects/Common/MatDefs/Water/Water15.frag @@ -16,7 +16,7 @@ uniform sampler2D m_FoamMap; uniform sampler2D m_CausticsMap; uniform sampler2D m_ReflectionMap; -uniform mat4 m_ViewProjectionMatrixInverse; +uniform mat4 g_ViewProjectionMatrixInverse; uniform mat4 m_TextureProjMatrix; uniform vec3 m_CameraPosition; @@ -104,7 +104,7 @@ vec3 saturate(in vec3 val){ vec3 getPosition(in float depth, in vec2 uv){ vec4 pos = vec4(uv, depth, 1.0) * 2.0 - 1.0; - pos = m_ViewProjectionMatrixInverse * pos; + pos = g_ViewProjectionMatrixInverse * pos; return pos.xyz / pos.w; } diff --git a/engine/src/core-effects/com/jme3/water/WaterFilter.java b/engine/src/core-effects/com/jme3/water/WaterFilter.java index 10749cc99..197f4022b 100644 --- a/engine/src/core-effects/com/jme3/water/WaterFilter.java +++ b/engine/src/core-effects/com/jme3/water/WaterFilter.java @@ -151,8 +151,6 @@ public class WaterFilter extends Filter { biasMatrix.mult(sceneCam.getViewProjectionMatrix(), textureProjMatrix); material.setMatrix4("TextureProjMatrix", textureProjMatrix); material.setVector3("CameraPosition", sceneCam.getLocation()); - material.setMatrix4("ViewProjectionMatrixInverse", sceneCam.getViewProjectionMatrix().invert()); - material.setFloat("WaterHeight", waterHeight); //update reflection cam