Better TestMultiPostWater

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10457 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
rem..om 12 years ago
parent 08edd2715c
commit 1871a1831d
  1. 70
      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) {
}
}

Loading…
Cancel
Save