From 1871a1831d7c1514a7963e40cb1b938bc1fc36b4 Mon Sep 17 00:00:00 2001 From: "rem..om" Date: Sun, 3 Mar 2013 10:31:10 +0000 Subject: [PATCH] Better TestMultiPostWater git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10457 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- .../jme3test/water/TestMultiPostWater.java | 70 ++++++++----------- 1 file changed, 30 insertions(+), 40 deletions(-) diff --git a/engine/src/test/jme3test/water/TestMultiPostWater.java b/engine/src/test/jme3test/water/TestMultiPostWater.java index a1f56c631..2821b818c 100644 --- a/engine/src/test/jme3test/water/TestMultiPostWater.java +++ b/engine/src/test/jme3test/water/TestMultiPostWater.java @@ -1,30 +1,17 @@ package jme3test.water; import com.jme3.app.SimpleApplication; -import com.jme3.audio.AudioNode; -import com.jme3.audio.LowPassFilter; -import com.jme3.effect.ParticleEmitter; -import com.jme3.effect.ParticleMesh; -import com.jme3.input.controls.ActionListener; -import com.jme3.input.controls.KeyTrigger; import com.jme3.light.DirectionalLight; import com.jme3.material.Material; -import com.jme3.material.RenderState.BlendMode; import com.jme3.math.ColorRGBA; import com.jme3.math.FastMath; import com.jme3.math.Quaternion; import com.jme3.math.Vector3f; import com.jme3.post.FilterPostProcessor; -import com.jme3.post.filters.BloomFilter; -import com.jme3.post.filters.DepthOfFieldFilter; -import com.jme3.post.filters.LightScatteringFilter; import com.jme3.renderer.Camera; -import com.jme3.renderer.queue.RenderQueue.Bucket; import com.jme3.renderer.queue.RenderQueue.ShadowMode; -import com.jme3.scene.Geometry; import com.jme3.scene.Node; import com.jme3.scene.Spatial; -import com.jme3.scene.shape.Box; import com.jme3.system.AppSettings; import com.jme3.terrain.geomipmap.TerrainQuad; import com.jme3.terrain.heightmap.AbstractHeightMap; @@ -39,22 +26,27 @@ import java.util.List; /** * test + * * @author normenhansen */ public class TestMultiPostWater extends SimpleApplication { private Vector3f lightDir = new Vector3f(-4.9236743f, -1.27054665f, 5.896916f); private WaterFilter water; - TerrainQuad terrain; - Material matRock; - AudioNode waves; - LowPassFilter underWaterAudioFilter = new LowPassFilter(0.5f, 0.1f); - LowPassFilter underWaterReverbFilter = new LowPassFilter(0.5f, 0.1f); - LowPassFilter aboveWaterAudioFilter = new LowPassFilter(1, 1); + private TerrainQuad terrain; + private Material matRock; + private static float WATER_HEIGHT = 90; public static void main(String[] args) { TestMultiPostWater app = new TestMultiPostWater(); - app.setSettings(new AppSettings(true)); + AppSettings s = new AppSettings(true); + s.setRenderer(AppSettings.LWJGL_OPENGL2); + s.setAudioRenderer(AppSettings.LWJGL_OPENAL); +// +// s.setRenderer("JOGL"); +// s.setAudioRenderer("JOAL"); + app.setSettings(s); + app.start(); } @@ -76,36 +68,36 @@ public class TestMultiPostWater extends SimpleApplication { flyCam.setMoveSpeed(100); //cam.setLocation(new Vector3f(-700, 100, 300)); - //cam.setRotation(new Quaternion().fromAngleAxis(0.5f, Vector3f.UNIT_Z)); - cam.setLocation(new Vector3f(-327.21957f, 61.6459f, 126.884346f)); + //cam.setRotation(new Quaternion().fromAngleAxis(0.5f, Vector3f.UNIT_Z)); + cam.setLocation(new Vector3f(-327.21957f, 251.6459f, 126.884346f)); cam.setRotation(new Quaternion().fromAngles(new float[]{FastMath.PI * 0.06f, FastMath.PI * 0.65f, 0})); Spatial sky = SkyFactory.createSky(assetManager, "Scenes/Beach/FullskiesSunset0068.dds", false); sky.setLocalScale(350); - + mainScene.attachChild(sky); cam.setFrustumFar(4000); - - - FilterPostProcessor fpp = new FilterPostProcessor(assetManager); - + + + FilterPostProcessor fpp = new FilterPostProcessor(assetManager); + water = new WaterFilter(rootNode, lightDir); water.setCenter(new Vector3f(9.628218f, -15.830074f, 199.23595f)); water.setRadius(260); water.setWaveScale(0.003f); water.setMaxAmplitude(2f); water.setFoamExistence(new Vector3f(1f, 4, 0.5f)); - water.setFoamTexture((Texture2D) assetManager.loadTexture("Common/MatDefs/Water/Textures/foam2.jpg")); + water.setFoamTexture((Texture2D) assetManager.loadTexture("Common/MatDefs/Water/Textures/foam2.jpg")); water.setRefractionStrength(0.2f); - water.setWaterHeight(0.8f); + water.setWaterHeight(WATER_HEIGHT); fpp.addFilter(water); - + WaterFilter water2 = new WaterFilter(rootNode, lightDir); water2.setCenter(new Vector3f(-280.46027f, -24.971727f, -271.71976f)); water2.setRadius(260); - water2.setWaterHeight(0.8f); + water2.setWaterHeight(WATER_HEIGHT); water2.setUseFoam(false); water2.setUseRipples(false); water2.setDeepWaterColor(ColorRGBA.Brown); @@ -120,28 +112,27 @@ public class TestMultiPostWater extends SimpleApplication { water2.setSunScale(1.0f); water2.setColorExtinction(new Vector3f(10.0f, 20.0f, 30.0f)); fpp.addFilter(water2); - - + + WaterFilter water3 = new WaterFilter(rootNode, lightDir); water3.setCenter(new Vector3f(319.6663f, -18.367947f, -236.67674f)); water3.setRadius(260); - water3.setWaterHeight(0.8f); + water3.setWaterHeight(WATER_HEIGHT); water3.setWaveScale(0.003f); water3.setMaxAmplitude(2f); water3.setFoamExistence(new Vector3f(1f, 4, 0.5f)); - water3.setFoamTexture((Texture2D) assetManager.loadTexture("Common/MatDefs/Water/Textures/foam2.jpg")); + water3.setFoamTexture((Texture2D) assetManager.loadTexture("Common/MatDefs/Water/Textures/foam2.jpg")); water3.setRefractionStrength(0.2f); - water3.setWaterHeight(0.8f); water3.setDeepWaterColor(ColorRGBA.Red); water3.setWaterColor(ColorRGBA.Red.mult(2.0f)); water3.setLightColor(ColorRGBA.Red); fpp.addFilter(water3); - + viewPort.addProcessor(fpp); - + //fpp.setNumSamples(4); } - + private void createTerrain(Node rootNode) { matRock = new Material(assetManager, "Common/MatDefs/Terrain/TerrainLighting.j3md"); matRock.setBoolean("useTriPlanarMapping", false); @@ -192,6 +183,5 @@ public class TestMultiPostWater extends SimpleApplication { @Override public void simpleUpdate(float tpf) { - } }