From b20905f08dc4baca18269869f548af9b9c26d71d Mon Sep 17 00:00:00 2001 From: "rem..om" Date: Mon, 26 Aug 2013 16:34:07 +0000 Subject: [PATCH] WaterFilter now use the built in global uniform ViewProjectionMatrixInverse instead of a custome material parameter git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10751 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- engine/src/core-effects/Common/MatDefs/Water/Water.frag | 4 ++-- engine/src/core-effects/Common/MatDefs/Water/Water.j3md | 4 ++-- engine/src/core-effects/Common/MatDefs/Water/Water15.frag | 4 ++-- engine/src/core-effects/com/jme3/water/WaterFilter.java | 2 -- 4 files changed, 6 insertions(+), 8 deletions(-) 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