public void onAction(String name, boolean value, float tpf) { if (name.equals("use_water") && value) { if (!useWater) { useWater = true; waterPlane.setMaterial(waterProcessor.getMaterial()); } else { useWater = false; waterPlane.setMaterial(mat); } } else if (name.equals("lightup") && value) { lightPos.y++; } else if (name.equals("lightdown") && value) { lightPos.y--; } else if (name.equals("lightleft") && value) { lightPos.x--; } else if (name.equals("lightright") && value) { lightPos.x++; } else if (name.equals("lightforward") && value) { lightPos.z--; } else if (name.equals("lightback") && value) { lightPos.z++; } } }
@Override public void simpleInitApp() { initInput(); initScene(); //create processor waterProcessor = new SimpleWaterProcessor(assetManager); waterProcessor.setReflectionScene(sceneNode); waterProcessor.setDebug(true); viewPort.addProcessor(waterProcessor); waterProcessor.setLightPosition(lightPos); //create water quad //waterPlane = waterProcessor.createWaterGeometry(100, 100); waterPlane=(Spatial) assetManager.loadModel("Models/WaterTest/WaterTest.mesh.xml"); waterPlane.setMaterial(waterProcessor.getMaterial()); waterPlane.setLocalScale(40); waterPlane.setLocalTranslation(-5, 0, 5); rootNode.attachChild(waterPlane); }
water.setShadowMode(ShadowMode.Receive); water.setLocalRotation(new Quaternion().fromAngleAxis(-FastMath.HALF_PI, Vector3f.UNIT_X)); water.setMaterial(waterProcessor.getMaterial()); water.setLocalTranslation(-200, -20, 250);