public void onAnalog(String name, float value, float tpf) { if (name.equals("blurScaleUp")) { dofFilter.setBlurScale(dofFilter.getBlurScale() + 0.01f); System.out.println("blurScale : " + dofFilter.getBlurScale()); } if (name.equals("blurScaleDown")) { dofFilter.setBlurScale(dofFilter.getBlurScale() - 0.01f); System.out.println("blurScale : " + dofFilter.getBlurScale()); } if (name.equals("focusRangeUp")) { dofFilter.setFocusRange(dofFilter.getFocusRange() + 1f); System.out.println("focusRange : " + dofFilter.getFocusRange()); } if (name.equals("focusRangeDown")) { dofFilter.setFocusRange(dofFilter.getFocusRange() - 1f); System.out.println("focusRange : " + dofFilter.getFocusRange()); } if (name.equals("focusDistanceUp")) { dofFilter.setFocusDistance(dofFilter.getFocusDistance() + 1f); System.out.println("focusDistance : " + dofFilter.getFocusDistance()); } if (name.equals("focusDistanceDown")) { dofFilter.setFocusDistance(dofFilter.getFocusDistance() - 1f); System.out.println("focusDistance : " + dofFilter.getFocusDistance()); } } }, "blurScaleUp", "blurScaleDown", "focusRangeUp", "focusRangeDown", "focusDistanceUp", "focusDistanceDown");
public void onAction(String name, boolean isPressed, float tpf) { if (isPressed) { if (name.equals("toggle")) { dofFilter.setEnabled(!dofFilter.isEnabled()); } } } }, "toggle");
dofFilter = new DepthOfFieldFilter(); dofFilter.setFocusDistance(0); dofFilter.setFocusRange(50); dofFilter.setBlurScale(1.4f); fpp.addFilter(dofFilter); viewPort.addProcessor(fpp);
DepthOfFieldFilter dof = new DepthOfFieldFilter(); dof.setFocusDistance(0); dof.setFocusRange(100);
@Override public void simpleUpdate(float tpf) { Vector3f origin = cam.getWorldCoordinates(new Vector2f(settings.getWidth() / 2, settings.getHeight() / 2), 0.0f); Vector3f direction = cam.getWorldCoordinates(new Vector2f(settings.getWidth() / 2, settings.getHeight() / 2), 0.3f); direction.subtractLocal(origin).normalizeLocal(); Ray ray = new Ray(origin, direction); CollisionResults results = new CollisionResults(); int numCollisions = terrain.collideWith(ray, results); if (numCollisions > 0) { CollisionResult hit = results.getClosestCollision(); fpsText.setText(""+hit.getDistance()); dofFilter.setFocusDistance(hit.getDistance()/10.0f); } } }