Search in sources :

Example 41 with Quad

use of com.jme3.scene.shape.Quad in project jmonkeyengine by jMonkeyEngine.

the class TestRenderToTexture method simpleInitApp.

@Override
public void simpleInitApp() {
    cam.setLocation(new Vector3f(3, 3, 3));
    cam.lookAt(Vector3f.ZERO, Vector3f.UNIT_Y);
    //setup main scene
    Geometry quad = new Geometry("box", new Box(1, 1, 1));
    Texture offTex = setupOffscreenView();
    Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
    mat.setTexture("ColorMap", offTex);
    quad.setMaterial(mat);
    rootNode.attachChild(quad);
    inputManager.addMapping(TOGGLE_UPDATE, new KeyTrigger(KeyInput.KEY_SPACE));
    inputManager.addListener(this, TOGGLE_UPDATE);
}
Also used : Geometry(com.jme3.scene.Geometry) Vector3f(com.jme3.math.Vector3f) KeyTrigger(com.jme3.input.controls.KeyTrigger) Box(com.jme3.scene.shape.Box) Material(com.jme3.material.Material) Texture(com.jme3.texture.Texture)

Example 42 with Quad

use of com.jme3.scene.shape.Quad in project jmonkeyengine by jMonkeyEngine.

the class TestParallax method setupFloor.

public void setupFloor() {
    mat = assetManager.loadMaterial("Textures/Terrain/BrickWall/BrickWall.j3m");
    Node floorGeom = new Node("floorGeom");
    Quad q = new Quad(100, 100);
    q.scaleTextureCoordinates(new Vector2f(10, 10));
    Geometry g = new Geometry("geom", q);
    g.setLocalRotation(new Quaternion().fromAngleAxis(-FastMath.HALF_PI, Vector3f.UNIT_X));
    floorGeom.attachChild(g);
    TangentBinormalGenerator.generate(floorGeom);
    floorGeom.setLocalTranslation(-50, 22, 60);
    //floorGeom.setLocalScale(100);
    floorGeom.setMaterial(mat);
    rootNode.attachChild(floorGeom);
}
Also used : Geometry(com.jme3.scene.Geometry) Quad(com.jme3.scene.shape.Quad) Node(com.jme3.scene.Node)

Example 43 with Quad

use of com.jme3.scene.shape.Quad in project jmonkeyengine by jMonkeyEngine.

the class TestParallaxPBR method setupFloor.

public void setupFloor() {
    mat = assetManager.loadMaterial("Textures/Terrain/BrickWall/BrickWallPBR.j3m");
    //mat = assetManager.loadMaterial("Textures/Terrain/BrickWall/BrickWallPBR2.j3m");
    Node floorGeom = new Node("floorGeom");
    Quad q = new Quad(100, 100);
    q.scaleTextureCoordinates(new Vector2f(10, 10));
    Geometry g = new Geometry("geom", q);
    g.setLocalRotation(new Quaternion().fromAngleAxis(-FastMath.HALF_PI, Vector3f.UNIT_X));
    floorGeom.attachChild(g);
    TangentBinormalGenerator.generate(floorGeom);
    floorGeom.setLocalTranslation(-50, 22, 60);
    //floorGeom.setLocalScale(100);
    floorGeom.setMaterial(mat);
    rootNode.attachChild(floorGeom);
}
Also used : Geometry(com.jme3.scene.Geometry) Quad(com.jme3.scene.shape.Quad) Node(com.jme3.scene.Node)

Example 44 with Quad

use of com.jme3.scene.shape.Quad in project jmonkeyengine by jMonkeyEngine.

the class TestShaderNodesStress method simpleInitApp.

@Override
public void simpleInitApp() {
    Quad q = new Quad(1, 1);
    Geometry g = new Geometry("quad", q);
    g.setLocalTranslation(-500, -500, 0);
    g.setLocalScale(1000);
    rootNode.attachChild(g);
    cam.setLocation(new Vector3f(0.0f, 0.0f, 0.40647888f));
    cam.setRotation(new Quaternion(0.0f, 1.0f, 0.0f, 0.0f));
    Texture tex = assetManager.loadTexture("Interface/Logo/Monkey.jpg");
    Material mat = new Material(assetManager, "Common/MatDefs/Misc/UnshadedNodes.j3md");
    //Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
    mat.setColor("Color", ColorRGBA.Yellow);
    mat.setTexture("ColorMap", tex);
    g.setMaterial(mat);
    //place the geoms in the transparent bucket so that they are rendered back to front for maximum overdraw
    g.setQueueBucket(RenderQueue.Bucket.Transparent);
    for (int i = 0; i < 1000; i++) {
        Geometry cl = g.clone(false);
        cl.move(0, 0, -(i + 1));
        rootNode.attachChild(cl);
    }
    flyCam.setMoveSpeed(20);
    Logger.getLogger("com.jme3").setLevel(Level.WARNING);
    this.setAppProfiler(new Profiler());
}
Also used : Geometry(com.jme3.scene.Geometry) Quad(com.jme3.scene.shape.Quad) Quaternion(com.jme3.math.Quaternion) Vector3f(com.jme3.math.Vector3f) Material(com.jme3.material.Material) Texture(com.jme3.texture.Texture)

Example 45 with Quad

use of com.jme3.scene.shape.Quad in project jmonkeyengine by jMonkeyEngine.

the class TerrainGridAlphaMapTest method simpleInitApp.

@Override
public void simpleInitApp() {
    DirectionalLight sun = new DirectionalLight();
    sun.setColor(ColorRGBA.White);
    sun.setDirection(new Vector3f(-1, -1, -1).normalizeLocal());
    rootNode.addLight(sun);
    AmbientLight al = new AmbientLight();
    al.setColor(ColorRGBA.White.mult(1.3f));
    rootNode.addLight(al);
    File file = new File("TerrainGridTestData.zip");
    if (!file.exists()) {
        assetManager.registerLocator("https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/jmonkeyengine/TerrainGridTestData.zip", HttpZipLocator.class);
    } else {
        assetManager.registerLocator("TerrainGridTestData.zip", ZipLocator.class);
    }
    this.flyCam.setMoveSpeed(100f);
    ScreenshotAppState state = new ScreenshotAppState();
    this.stateManager.attach(state);
    // TERRAIN TEXTURE material
    material = new Material(assetManager, "Common/MatDefs/Terrain/TerrainLighting.j3md");
    material.setBoolean("useTriPlanarMapping", false);
    //material.setBoolean("isTerrainGrid", true);
    material.setFloat("Shininess", 0.0f);
    // GRASS texture
    Texture grass = assetManager.loadTexture("Textures/Terrain/splat/grass.jpg");
    grass.setWrap(WrapMode.Repeat);
    material.setTexture("DiffuseMap", grass);
    material.setFloat("DiffuseMap_0_scale", grassScale);
    // DIRT texture
    Texture dirt = assetManager.loadTexture("Textures/Terrain/splat/dirt.jpg");
    dirt.setWrap(WrapMode.Repeat);
    material.setTexture("DiffuseMap_1", dirt);
    material.setFloat("DiffuseMap_1_scale", dirtScale);
    // ROCK texture
    Texture rock = assetManager.loadTexture("Textures/Terrain/splat/road.jpg");
    rock.setWrap(WrapMode.Repeat);
    material.setTexture("DiffuseMap_2", rock);
    material.setFloat("DiffuseMap_2_scale", rockScale);
    // WIREFRAME material
    matWire = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
    matWire.getAdditionalRenderState().setWireframe(true);
    matWire.setColor("Color", ColorRGBA.Green);
    this.base = new FractalSum();
    this.base.setRoughness(0.7f);
    this.base.setFrequency(1.0f);
    this.base.setAmplitude(1.0f);
    this.base.setLacunarity(2.12f);
    this.base.setOctaves(8);
    this.base.setScale(0.02125f);
    this.base.addModulator(new NoiseModulator() {

        @Override
        public float value(float... in) {
            return ShaderUtils.clamp(in[0] * 0.5f + 0.5f, 0, 1);
        }
    });
    FilteredBasis ground = new FilteredBasis(this.base);
    this.perturb = new PerturbFilter();
    this.perturb.setMagnitude(0.119f);
    this.therm = new OptimizedErode();
    this.therm.setRadius(5);
    this.therm.setTalus(0.011f);
    this.smooth = new SmoothFilter();
    this.smooth.setRadius(1);
    this.smooth.setEffect(0.7f);
    this.iterate = new IterativeFilter();
    this.iterate.addPreFilter(this.perturb);
    this.iterate.addPostFilter(this.smooth);
    this.iterate.setFilter(this.therm);
    this.iterate.setIterations(1);
    ground.addPreFilter(this.iterate);
    this.terrain = new TerrainGrid("terrain", 33, 257, new FractalTileLoader(ground, 256));
    this.terrain.setMaterial(this.material);
    this.terrain.setLocalTranslation(0, 0, 0);
    this.terrain.setLocalScale(2f, 1f, 2f);
    this.rootNode.attachChild(this.terrain);
    TerrainLodControl control = new TerrainGridLodControl(this.terrain, this.getCamera());
    // patch size, and a multiplier
    control.setLodCalculator(new DistanceLodCalculator(33, 2.7f));
    this.terrain.addControl(control);
    final BulletAppState bulletAppState = new BulletAppState();
    stateManager.attach(bulletAppState);
    this.getCamera().setLocation(new Vector3f(0, 256, 0));
    this.viewPort.setBackgroundColor(new ColorRGBA(0.7f, 0.8f, 1f, 1f));
    if (usePhysics) {
        CapsuleCollisionShape capsuleShape = new CapsuleCollisionShape(0.5f, 1.8f, 1);
        player3 = new CharacterControl(capsuleShape, 0.5f);
        player3.setJumpSpeed(20);
        player3.setFallSpeed(10);
        player3.setGravity(10);
        player3.setPhysicsLocation(new Vector3f(cam.getLocation().x, 256, cam.getLocation().z));
        bulletAppState.getPhysicsSpace().add(player3);
    }
    terrain.addListener(new TerrainGridListener() {

        public void gridMoved(Vector3f newCenter) {
        }

        public void tileAttached(Vector3f cell, TerrainQuad quad) {
            Texture alpha = null;
            try {
                alpha = assetManager.loadTexture("TerrainAlphaTest/alpha_" + (int) cell.x + "_" + (int) cell.z + ".png");
            } catch (Exception e) {
                alpha = assetManager.loadTexture("TerrainAlphaTest/alpha_default.png");
            }
            quad.getMaterial().setTexture("AlphaMap", alpha);
            if (usePhysics) {
                quad.addControl(new RigidBodyControl(new HeightfieldCollisionShape(quad.getHeightMap(), terrain.getLocalScale()), 0));
                bulletAppState.getPhysicsSpace().add(quad);
            }
            updateMarkerElevations();
        }

        public void tileDetached(Vector3f cell, TerrainQuad quad) {
            if (usePhysics) {
                if (quad.getControl(RigidBodyControl.class) != null) {
                    bulletAppState.getPhysicsSpace().remove(quad);
                    quad.removeControl(RigidBodyControl.class);
                }
            }
            updateMarkerElevations();
        }
    });
    this.initKeys();
    markers = new Node();
    rootNode.attachChild(markers);
    createMarkerPoints(1);
}
Also used : PerturbFilter(com.jme3.terrain.noise.filter.PerturbFilter) FilteredBasis(com.jme3.terrain.noise.basis.FilteredBasis) Node(com.jme3.scene.Node) IterativeFilter(com.jme3.terrain.noise.filter.IterativeFilter) TerrainGridListener(com.jme3.terrain.geomipmap.TerrainGridListener) CapsuleCollisionShape(com.jme3.bullet.collision.shapes.CapsuleCollisionShape) Texture(com.jme3.texture.Texture) DistanceLodCalculator(com.jme3.terrain.geomipmap.lodcalc.DistanceLodCalculator) DirectionalLight(com.jme3.light.DirectionalLight) HeightfieldCollisionShape(com.jme3.bullet.collision.shapes.HeightfieldCollisionShape) SmoothFilter(com.jme3.terrain.noise.filter.SmoothFilter) TerrainQuad(com.jme3.terrain.geomipmap.TerrainQuad) FractalSum(com.jme3.terrain.noise.fractal.FractalSum) FractalTileLoader(com.jme3.terrain.geomipmap.grid.FractalTileLoader) CharacterControl(com.jme3.bullet.control.CharacterControl) TerrainGrid(com.jme3.terrain.geomipmap.TerrainGrid) Material(com.jme3.material.Material) RigidBodyControl(com.jme3.bullet.control.RigidBodyControl) OptimizedErode(com.jme3.terrain.noise.filter.OptimizedErode) TerrainGridLodControl(com.jme3.terrain.geomipmap.TerrainGridLodControl) ColorRGBA(com.jme3.math.ColorRGBA) NoiseModulator(com.jme3.terrain.noise.modulator.NoiseModulator) Vector3f(com.jme3.math.Vector3f) BulletAppState(com.jme3.bullet.BulletAppState) TerrainLodControl(com.jme3.terrain.geomipmap.TerrainLodControl) ScreenshotAppState(com.jme3.app.state.ScreenshotAppState) File(java.io.File) AmbientLight(com.jme3.light.AmbientLight)

Aggregations

Geometry (com.jme3.scene.Geometry)36 Quad (com.jme3.scene.shape.Quad)35 Material (com.jme3.material.Material)30 Vector3f (com.jme3.math.Vector3f)23 Node (com.jme3.scene.Node)11 Spatial (com.jme3.scene.Spatial)10 DirectionalLight (com.jme3.light.DirectionalLight)9 Quaternion (com.jme3.math.Quaternion)9 Texture (com.jme3.texture.Texture)9 TerrainQuad (com.jme3.terrain.geomipmap.TerrainQuad)7 ColorRGBA (com.jme3.math.ColorRGBA)6 Vector2f (com.jme3.math.Vector2f)6 AmbientLight (com.jme3.light.AmbientLight)5 Mesh (com.jme3.scene.Mesh)5 Texture2D (com.jme3.texture.Texture2D)5 Picture (com.jme3.ui.Picture)5 File (java.io.File)5 ScreenshotAppState (com.jme3.app.state.ScreenshotAppState)4 BulletAppState (com.jme3.bullet.BulletAppState)4 CapsuleCollisionShape (com.jme3.bullet.collision.shapes.CapsuleCollisionShape)4