Search in sources :

Example 21 with Geometry

use of com.jme3.scene.Geometry in project jmonkeyengine by jMonkeyEngine.

the class TestLightScattering method simpleInitApp.

@Override
public void simpleInitApp() {
    // put the camera in a bad position
    cam.setLocation(new Vector3f(55.35316f, -0.27061665f, 27.092093f));
    cam.setRotation(new Quaternion(0.010414706f, 0.9874893f, 0.13880467f, -0.07409228f));
    //        cam.setDirection(new Vector3f(0,-0.5f,1.0f));
    //        cam.setLocation(new Vector3f(0, 300, -500));
    //cam.setFrustumFar(1000);
    flyCam.setMoveSpeed(10);
    Material mat = assetManager.loadMaterial("Textures/Terrain/Rocky/Rocky.j3m");
    Spatial scene = assetManager.loadModel("Models/Terrain/Terrain.mesh.xml");
    TangentBinormalGenerator.generate(((Geometry) ((Node) scene).getChild(0)).getMesh());
    scene.setMaterial(mat);
    scene.setShadowMode(ShadowMode.CastAndReceive);
    scene.setLocalScale(400);
    scene.setLocalTranslation(0, -10, -120);
    rootNode.attachChild(scene);
    // load sky
    rootNode.attachChild(SkyFactory.createSky(assetManager, "Textures/Sky/Bright/FullskiesBlueClear03.dds", false));
    DirectionalLight sun = new DirectionalLight();
    Vector3f lightDir = new Vector3f(-0.12f, -0.3729129f, 0.74847335f);
    sun.setDirection(lightDir);
    sun.setColor(ColorRGBA.White.clone().multLocal(2));
    scene.addLight(sun);
    FilterPostProcessor fpp = new FilterPostProcessor(assetManager);
    int numSamples = getContext().getSettings().getSamples();
    if (numSamples > 0) {
        fpp.setNumSamples(numSamples);
    }
    Vector3f lightPos = lightDir.multLocal(-3000);
    LightScatteringFilter filter = new LightScatteringFilter(lightPos);
    LightScatteringUI ui = new LightScatteringUI(inputManager, filter);
    fpp.addFilter(filter);
    viewPort.addProcessor(fpp);
}
Also used : LightScatteringFilter(com.jme3.post.filters.LightScatteringFilter) Quaternion(com.jme3.math.Quaternion) Spatial(com.jme3.scene.Spatial) Vector3f(com.jme3.math.Vector3f) Node(com.jme3.scene.Node) DirectionalLight(com.jme3.light.DirectionalLight) Material(com.jme3.material.Material) FilterPostProcessor(com.jme3.post.FilterPostProcessor)

Example 22 with Geometry

use of com.jme3.scene.Geometry in project jmonkeyengine by jMonkeyEngine.

the class TestMultiViewsFilters method simpleInitApp.

public void simpleInitApp() {
    // create the geometry and attach it
    Geometry teaGeom = (Geometry) assetManager.loadModel("Models/Teapot/Teapot.obj");
    teaGeom.scale(3);
    teaGeom.getMaterial().setColor("GlowColor", ColorRGBA.Green);
    DirectionalLight dl = new DirectionalLight();
    dl.setColor(ColorRGBA.White);
    dl.setDirection(Vector3f.UNIT_XYZ.negate());
    rootNode.addLight(dl);
    rootNode.attachChild(teaGeom);
    // Setup first view      
    cam.setViewPort(.5f, 1f, 0f, 0.5f);
    cam.setLocation(new Vector3f(3.3212643f, 4.484704f, 4.2812433f));
    cam.setRotation(new Quaternion(-0.07680723f, 0.92299235f, -0.2564353f, -0.27645364f));
    // Setup second view
    Camera cam2 = cam.clone();
    cam2.setViewPort(0f, 0.5f, 0f, 0.5f);
    cam2.setLocation(new Vector3f(-0.10947256f, 1.5760219f, 4.81758f));
    cam2.setRotation(new Quaternion(0.0010108891f, 0.99857414f, -0.04928594f, 0.020481428f));
    final ViewPort view2 = renderManager.createMainView("Bottom Left", cam2);
    view2.setClearFlags(true, true, true);
    view2.attachScene(rootNode);
    // Setup third view
    Camera cam3 = cam.clone();
    cam3.setName("cam3");
    cam3.setViewPort(0f, .5f, .5f, 1f);
    cam3.setLocation(new Vector3f(0.2846221f, 6.4271426f, 0.23380789f));
    cam3.setRotation(new Quaternion(0.004381671f, 0.72363687f, -0.69015175f, 0.0045953835f));
    final ViewPort view3 = renderManager.createMainView("Top Left", cam3);
    view3.setClearFlags(true, true, true);
    view3.attachScene(rootNode);
    // Setup fourth view
    Camera cam4 = cam.clone();
    cam4.setName("cam4");
    cam4.setViewPort(.5f, 1f, .5f, 1f);
    cam4.setLocation(new Vector3f(4.775564f, 1.4548365f, 0.11491505f));
    cam4.setRotation(new Quaternion(0.02356979f, -0.74957186f, 0.026729556f, 0.66096294f));
    final ViewPort view4 = renderManager.createMainView("Top Right", cam4);
    view4.setClearFlags(true, true, true);
    view4.attachScene(rootNode);
    //        Camera cam5 = new Camera(200, 200);
    //        cam5.setFrustumPerspective(45f, (float)cam.getWidth() / cam.getHeight(), 1f, 1000f);
    //        cam5.setName("cam5");
    //        cam5.setViewPort(5.23f, 6.33f, 0.56f, 1.66f);
    //          this.setViewPortAreas(5.23f, 6.33f, 0.56f, 1.66f);
    //          this.setViewPortCamSize(200, 200);
    //          1046,1266,112,332
    Camera cam5 = cam.clone();
    cam5.setName("cam5");
    cam5.setViewPort(1046f / settings.getWidth(), 1266f / settings.getWidth(), 112f / settings.getHeight(), 332f / settings.getHeight());
    cam5.setLocation(new Vector3f(0.2846221f, 6.4271426f, 0.23380789f));
    cam5.setRotation(new Quaternion(0.004381671f, 0.72363687f, -0.69015175f, 0.0045953835f));
    final ViewPort view5 = renderManager.createMainView("center", cam5);
    view5.setClearFlags(true, true, true);
    view5.attachScene(rootNode);
    rootNode.attachChild(SkyFactory.createSky(assetManager, "Textures/Sky/Bright/BrightSky.dds", false));
    final FilterPostProcessor fpp = new FilterPostProcessor(assetManager);
    final FilterPostProcessor fpp2 = new FilterPostProcessor(assetManager);
    final FilterPostProcessor fpp3 = new FilterPostProcessor(assetManager);
    final FilterPostProcessor fpp4 = new FilterPostProcessor(assetManager);
    final FilterPostProcessor fpp5 = new FilterPostProcessor(assetManager);
    //  fpp.addFilter(new WaterFilter(rootNode, Vector3f.UNIT_Y.mult(-1)));
    fpp3.addFilter(new CartoonEdgeFilter());
    fpp2.addFilter(new CrossHatchFilter());
    final FogFilter ff = new FogFilter(ColorRGBA.Yellow, 0.7f, 2);
    fpp.addFilter(ff);
    final RadialBlurFilter rbf = new RadialBlurFilter(1, 10);
    //    rbf.setEnabled(false);
    fpp.addFilter(rbf);
    SSAOFilter f = new SSAOFilter(1.8899765f, 20.490374f, 0.4699998f, 0.1f);
    ;
    fpp4.addFilter(f);
    SSAOUI ui = new SSAOUI(inputManager, f);
    fpp5.addFilter(new BloomFilter(BloomFilter.GlowMode.Objects));
    viewPort.addProcessor(fpp);
    view2.addProcessor(fpp2);
    view3.addProcessor(fpp3);
    view4.addProcessor(fpp4);
    view5.addProcessor(fpp5);
    inputManager.addListener(new ActionListener() {

        public void onAction(String name, boolean isPressed, float tpf) {
            if (name.equals("press") && isPressed) {
                if (filterEnabled) {
                    viewPort.removeProcessor(fpp);
                    view2.removeProcessor(fpp2);
                    view3.removeProcessor(fpp3);
                    view4.removeProcessor(fpp4);
                    view5.removeProcessor(fpp5);
                } else {
                    viewPort.addProcessor(fpp);
                    view2.addProcessor(fpp2);
                    view3.addProcessor(fpp3);
                    view4.addProcessor(fpp4);
                    view5.addProcessor(fpp5);
                }
                filterEnabled = !filterEnabled;
            }
            if (name.equals("filter") && isPressed) {
                ff.setEnabled(!ff.isEnabled());
                rbf.setEnabled(!rbf.isEnabled());
            }
        }
    }, "press", "filter");
    inputManager.addMapping("press", new KeyTrigger(KeyInput.KEY_SPACE));
    inputManager.addMapping("filter", new KeyTrigger(KeyInput.KEY_F));
}
Also used : SSAOFilter(com.jme3.post.ssao.SSAOFilter) Quaternion(com.jme3.math.Quaternion) KeyTrigger(com.jme3.input.controls.KeyTrigger) FilterPostProcessor(com.jme3.post.FilterPostProcessor) Geometry(com.jme3.scene.Geometry) ActionListener(com.jme3.input.controls.ActionListener) DirectionalLight(com.jme3.light.DirectionalLight) Vector3f(com.jme3.math.Vector3f) ViewPort(com.jme3.renderer.ViewPort) Camera(com.jme3.renderer.Camera)

Example 23 with Geometry

use of com.jme3.scene.Geometry in project jmonkeyengine by jMonkeyEngine.

the class TestSkeletonControlRefresh method setupFloor.

public void setupFloor() {
    Quad q = new Quad(20, 20);
    q.scaleTextureCoordinates(Vector2f.UNIT_XY.mult(10));
    Geometry geom = new Geometry("floor", q);
    Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
    mat.setColor("Color", ColorRGBA.White);
    geom.setMaterial(mat);
    geom.rotate(-FastMath.HALF_PI, 0, 0);
    geom.center();
    geom.move(0, -0.3f, 0);
    geom.setShadowMode(RenderQueue.ShadowMode.Receive);
    rootNode.attachChild(geom);
}
Also used : Geometry(com.jme3.scene.Geometry) Quad(com.jme3.scene.shape.Quad) Material(com.jme3.material.Material)

Example 24 with Geometry

use of com.jme3.scene.Geometry in project jmonkeyengine by jMonkeyEngine.

the class TestBillboard method simpleInitApp.

public void simpleInitApp() {
    flyCam.setMoveSpeed(10);
    Quad q = new Quad(2, 2);
    Geometry g = new Geometry("Quad", q);
    Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
    mat.setColor("Color", ColorRGBA.Blue);
    g.setMaterial(mat);
    Quad q2 = new Quad(1, 1);
    Geometry g3 = new Geometry("Quad2", q2);
    Material mat2 = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
    mat2.setColor("Color", ColorRGBA.Yellow);
    g3.setMaterial(mat2);
    g3.setLocalTranslation(.5f, .5f, .01f);
    Box b = new Box(.25f, .5f, .25f);
    Geometry g2 = new Geometry("Box", b);
    g2.setLocalTranslation(0, 0, 3);
    g2.setMaterial(mat);
    Node bb = new Node("billboard");
    BillboardControl control = new BillboardControl();
    bb.addControl(control);
    bb.attachChild(g);
    bb.attachChild(g3);
    n = new Node("parent");
    n.attachChild(g2);
    n.attachChild(bb);
    rootNode.attachChild(n);
    n2 = new Node("parentParent");
    n2.setLocalTranslation(Vector3f.UNIT_X.mult(5));
    n2.attachChild(n);
    rootNode.attachChild(n2);
//        rootNode.attachChild(bb);
//        rootNode.attachChild(g2);
}
Also used : Geometry(com.jme3.scene.Geometry) Quad(com.jme3.scene.shape.Quad) BillboardControl(com.jme3.scene.control.BillboardControl) Node(com.jme3.scene.Node) Material(com.jme3.material.Material) Box(com.jme3.scene.shape.Box)

Example 25 with Geometry

use of com.jme3.scene.Geometry in project jmonkeyengine by jMonkeyEngine.

the class TestBox method simpleInitApp.

@Override
public void simpleInitApp() {
    Box b = new Box(1, 1, 1);
    Geometry geom = new Geometry("Box", b);
    Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
    mat.setTexture("ColorMap", assetManager.loadTexture("Interface/Logo/Monkey.jpg"));
    geom.setMaterial(mat);
    rootNode.attachChild(geom);
}
Also used : Geometry(com.jme3.scene.Geometry) Box(com.jme3.scene.shape.Box) Material(com.jme3.material.Material)

Aggregations

Geometry (com.jme3.scene.Geometry)246 Material (com.jme3.material.Material)175 Vector3f (com.jme3.math.Vector3f)116 Box (com.jme3.scene.shape.Box)92 DirectionalLight (com.jme3.light.DirectionalLight)56 Node (com.jme3.scene.Node)54 Sphere (com.jme3.scene.shape.Sphere)49 Spatial (com.jme3.scene.Spatial)41 Quaternion (com.jme3.math.Quaternion)39 Quad (com.jme3.scene.shape.Quad)33 Texture (com.jme3.texture.Texture)30 RigidBodyControl (com.jme3.bullet.control.RigidBodyControl)26 Mesh (com.jme3.scene.Mesh)25 KeyTrigger (com.jme3.input.controls.KeyTrigger)24 AmbientLight (com.jme3.light.AmbientLight)24 ColorRGBA (com.jme3.math.ColorRGBA)21 FilterPostProcessor (com.jme3.post.FilterPostProcessor)21 PointLight (com.jme3.light.PointLight)20 Vector2f (com.jme3.math.Vector2f)17 FloatBuffer (java.nio.FloatBuffer)17