Cleaned up SimpleWater uniform and varyings to not systematically use vec4 for no reason.
git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10536 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
761fe60388
commit
e34d483973
@ -10,9 +10,9 @@ MaterialDef Simple Water {
|
|||||||
Vector3 lightPos
|
Vector3 lightPos
|
||||||
Float time
|
Float time
|
||||||
Float waterDepth
|
Float waterDepth
|
||||||
Vector4 distortionScale
|
Float distortionScale
|
||||||
Vector4 distortionMix
|
Float distortionMix
|
||||||
Vector4 texScale
|
Float texScale
|
||||||
Vector2 FrustumNearFar
|
Vector2 FrustumNearFar
|
||||||
Float waterTransparency
|
Float waterTransparency
|
||||||
}
|
}
|
||||||
|
@ -12,17 +12,22 @@ uniform sampler2D m_water_dudvmap;
|
|||||||
uniform sampler2D m_water_depthmap;
|
uniform sampler2D m_water_depthmap;
|
||||||
uniform vec4 m_waterColor;
|
uniform vec4 m_waterColor;
|
||||||
uniform float m_waterDepth;
|
uniform float m_waterDepth;
|
||||||
uniform vec4 m_distortionScale;
|
uniform float m_distortionScale;
|
||||||
uniform vec4 m_distortionMix;
|
uniform float m_distortionMix;
|
||||||
uniform vec4 m_texScale;
|
uniform float m_texScale;
|
||||||
|
/*uniform float m_distortionScale;
|
||||||
|
uniform float m_distortionMix;
|
||||||
|
uniform float m_texScale;
|
||||||
|
*/
|
||||||
uniform vec2 m_FrustumNearFar;
|
uniform vec2 m_FrustumNearFar;
|
||||||
uniform float m_waterTransparency;
|
uniform float m_waterTransparency;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
varying vec4 lightDir; //lightpos
|
varying vec4 lightDir; //lightpos
|
||||||
varying vec4 waterTex1; //moving texcoords
|
varying vec2 waterTex1; //moving texcoords
|
||||||
varying vec4 waterTex2; //moving texcoords
|
varying vec2 waterTex2; //moving texcoords
|
||||||
|
|
||||||
varying vec4 position; //for projection
|
varying vec4 position; //for projection
|
||||||
varying vec4 viewDir; //viewts
|
varying vec4 viewDir; //viewts
|
||||||
varying vec4 viewLightDir;
|
varying vec4 viewLightDir;
|
||||||
@ -62,13 +67,12 @@ void main(void)
|
|||||||
|
|
||||||
vec4 lightTS = normalize(lightDir);
|
vec4 lightTS = normalize(lightDir);
|
||||||
vec4 viewt = normalize(viewDir);
|
vec4 viewt = normalize(viewDir);
|
||||||
vec4 disdis = texture2D(m_water_dudvmap, vec2(waterTex2 * m_texScale));
|
vec4 disdis = texture2D(m_water_dudvmap, waterTex2 * vec2(m_texScale));
|
||||||
vec4 fdist = texture2D(m_water_dudvmap, vec2(waterTex1 + disdis*m_distortionMix));
|
vec4 fdist = texture2D(m_water_dudvmap, waterTex1 + vec2(disdis) * vec2(m_distortionMix));
|
||||||
fdist =normalize( fdist * 2.0 - 1.0)* m_distortionScale;
|
fdist =normalize( fdist * 2.0 - 1.0)* vec4(m_distortionScale);
|
||||||
|
|
||||||
|
|
||||||
//load normalmap
|
//load normalmap
|
||||||
vec4 nmap = texture2D(m_water_normalmap, vec2(waterTex1 + disdis*m_distortionMix));
|
vec4 nmap = texture2D(m_water_normalmap, waterTex1 + vec2(disdis) * vec2(m_distortionMix));
|
||||||
nmap = (nmap-ofive) * two;
|
nmap = (nmap-ofive) * two;
|
||||||
// nmap = nmap*2.0-1.0;
|
// nmap = nmap*2.0-1.0;
|
||||||
vec4 vNorm = normalize(nmap);
|
vec4 vNorm = normalize(nmap);
|
||||||
|
@ -19,8 +19,8 @@ attribute vec3 inTangent;
|
|||||||
attribute vec3 inNormal;
|
attribute vec3 inNormal;
|
||||||
|
|
||||||
varying vec4 lightDir;
|
varying vec4 lightDir;
|
||||||
varying vec4 waterTex1;
|
varying vec2 waterTex1;
|
||||||
varying vec4 waterTex2;
|
varying vec2 waterTex2;
|
||||||
varying vec4 position;
|
varying vec4 position;
|
||||||
varying vec4 viewDir;
|
varying vec4 viewDir;
|
||||||
varying vec4 viewpos;
|
varying vec4 viewpos;
|
||||||
@ -76,11 +76,11 @@ void main(void)
|
|||||||
viewCamDir.w = 0.0;
|
viewCamDir.w = 0.0;
|
||||||
|
|
||||||
|
|
||||||
vec4 t1 = vec4(0.0, -m_time, 0.0,0.0);
|
vec2 t1 = vec2(0.0, -m_time);
|
||||||
vec4 t2 = vec4(0.0, m_time, 0.0,0.0);
|
vec2 t2 = vec2(0.0, m_time);
|
||||||
|
|
||||||
waterTex1 =vec4(inTexCoord,0.0,0.0) + t1;
|
waterTex1 = inTexCoord + t1;
|
||||||
waterTex2 =vec4(inTexCoord ,0.0,0.0)+ t2;
|
waterTex2 = inTexCoord + t2;
|
||||||
|
|
||||||
position = g_WorldViewProjectionMatrix * inPosition;
|
position = g_WorldViewProjectionMatrix * inPosition;
|
||||||
gl_Position = position;
|
gl_Position = position;
|
||||||
|
@ -140,9 +140,9 @@ public class SimpleWaterProcessor implements SceneProcessor {
|
|||||||
material.setColor("waterColor", ColorRGBA.White);
|
material.setColor("waterColor", ColorRGBA.White);
|
||||||
material.setVector3("lightPos", new Vector3f(1, -1, 1));
|
material.setVector3("lightPos", new Vector3f(1, -1, 1));
|
||||||
|
|
||||||
material.setColor("distortionScale", new ColorRGBA(0.2f, 0.2f, 0.2f, 0.2f));
|
material.setFloat("distortionScale", distortionScale);
|
||||||
material.setColor("distortionMix", new ColorRGBA(0.5f, 0.5f, 0.5f, 0.5f));
|
material.setFloat("distortionMix", distortionMix);
|
||||||
material.setColor("texScale", new ColorRGBA(1.0f, 1.0f, 1.0f, 1.0f));
|
material.setFloat("texScale", texScale);
|
||||||
updateClipPlanes();
|
updateClipPlanes();
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -487,7 +487,7 @@ public class SimpleWaterProcessor implements SceneProcessor {
|
|||||||
*/
|
*/
|
||||||
public void setDistortionScale(float value) {
|
public void setDistortionScale(float value) {
|
||||||
distortionScale = value;
|
distortionScale = value;
|
||||||
material.setColor("distortionScale", new ColorRGBA(value, value, value, value));
|
material.setFloat("distortionScale", distortionScale);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -495,7 +495,7 @@ public class SimpleWaterProcessor implements SceneProcessor {
|
|||||||
*/
|
*/
|
||||||
public void setDistortionMix(float value) {
|
public void setDistortionMix(float value) {
|
||||||
distortionMix = value;
|
distortionMix = value;
|
||||||
material.setColor("distortionMix", new ColorRGBA(value, value, value, value));
|
material.setFloat("distortionMix", distortionMix);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -505,7 +505,7 @@ public class SimpleWaterProcessor implements SceneProcessor {
|
|||||||
*/
|
*/
|
||||||
public void setTexScale(float value) {
|
public void setTexScale(float value) {
|
||||||
texScale = value;
|
texScale = value;
|
||||||
material.setColor("texScale", new ColorRGBA(value, value, value, value));
|
material.setFloat("texScale", texScale);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user