Example usage for com.badlogic.gdx.graphics.g3d ModelInstance ModelInstance

List of usage examples for com.badlogic.gdx.graphics.g3d ModelInstance ModelInstance

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics.g3d ModelInstance ModelInstance.

Prototype

public ModelInstance(ModelInstance copyFrom) 

Source Link

Document

Constructs a new ModelInstance which is an copy of the specified ModelInstance.

Usage

From source file:com.badlogic.gdx.tests.dragome.examples.GearsDemo.java

@Override
public void create() {

    environment = new Environment();
    environment.set(new ColorAttribute(ColorAttribute.AmbientLight, .2f, .2f, .2f, 2f));
    //      environment.add(new DirectionalLight().set(0.8f, 0.8f, 0.8f, 0f, -0.5f, -0.5f));

    sl = new PointLight().setPosition(-5, 10, -6).setColor(1, 1, 1, 1).setIntensity(150);

    //      sl2 = new PointLight().setPosition(0, 7, 5).setColor(0.3f, 0.8f, 0.3f, 1)
    //         .setIntensity(20);
    ///*from  w w w  .  j  av  a  2s  .  c om*/
    //      sl3 = new PointLight().setPosition(0, 9, 6).setColor(0.3f, 0.3f, 0.8f, 1)
    //         .setIntensity(20);

    environment.add(sl);
    //      environment.add(sl2);
    //      environment.add(sl3);

    cam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    cam.position.set(-10, 3, 10f);
    cam.lookAt(-3, 0, 0);
    cam.near = 1f;
    cam.far = 100f;
    cam.update();

    cameraController = new CameraInputController(cam);
    cameraController.autoUpdate = false;
    cameraController.forwardTarget = false;
    cameraController.translateTarget = false;

    Gdx.input.setInputProcessor(new InputMultiplexer(cameraController));

    time = TimeUtils.millis();

    viewport = new ScreenViewport(cam);
    guiViewport = new ScreenViewport();

    DefaultShaderProvider defaultShaderProvider = new DefaultShaderProvider();
    modelBatch = new ModelBatch(defaultShaderProvider);

    ModelBuilder modelBuilder = new ModelBuilder();
    model1 = gear(modelBuilder, 1.0f, 4.0f, 1.0f, 20, 0.7f, Color.RED);
    gear1 = new ModelInstance(model1);

    model2 = gear(modelBuilder, 0.5f, 2.0f, 2.0f, 10, 0.7f, Color.GREEN);
    gear2 = new ModelInstance(model2);

    model3 = gear(modelBuilder, 1.3f, 2.0f, 1.5f, 10, 0.7f, Color.BLUE);
    gear3 = new ModelInstance(model3);

    font = new BitmapFont();

    batch = new SpriteBatch();

    lightModel = modelBuilder.createSphere(1, 1, 1, 10, 10,
            new Material(ColorAttribute.createDiffuse(1, 1, 1, 1)), Usage.Position);
    lightModel.nodes.get(0).parts.get(0).setRenderable(pLight = new Renderable());
}

From source file:com.badlogic.gdx.tests.ViewportTest3.java

License:Apache License

public void create() {
    modelBatch = new ModelBatch();
    modelBuilder = new ModelBuilder();

    environment = new Environment();
    environment.set(new ColorAttribute(ColorAttribute.AmbientLight, 0.3f, 0.3f, 0.3f, 1.f));
    shadowLight = new DirectionalLight();
    shadowLight.set(0.8f, 0.8f, 0.8f, -0.5f, -1f, 0.7f);
    environment.add(shadowLight);/*w w w .  j  av  a2  s .  c  o  m*/

    modelBatch = new ModelBatch();

    camera = new PerspectiveCamera();
    camera.fieldOfView = 67;
    camera.near = 0.1f;
    camera.far = 300f;
    camera.position.set(0, 0, 100);
    camera.lookAt(0, 0, 0);

    viewports = ViewportTest1.getViewports(camera);
    viewport = viewports.first();

    names = ViewportTest1.getViewportNames();
    name = names.first();

    ModelBuilder modelBuilder = new ModelBuilder();
    Model boxModel = modelBuilder.createBox(50f, 50f, 50f,
            new Material(ColorAttribute.createDiffuse(Color.GREEN)), Usage.Position | Usage.Normal);
    boxInstance = new ModelInstance(boxModel);
    boxInstance.transform.rotate(1, 0, 0, 30);
    boxInstance.transform.rotate(0, 1, 0, 30);

    Gdx.input.setInputProcessor(new InputAdapter() {
        public boolean keyDown(int keycode) {
            if (keycode == Input.Keys.SPACE) {
                int index = (viewports.indexOf(viewport, true) + 1) % viewports.size;
                name = names.get(index);
                viewport = viewports.get(index);
                resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
            }
            return false;
        }
    });
}

From source file:com.barconr.games.marblegame.Maze3Drenderer.java

License:Apache License

private void addBox(Vector3 position, float width, float height, float depth, Color col) {
    Model model = modelBuilder.createBox(width, height, depth, new Material(ColorAttribute.createDiffuse(col)),
            Usage.Position | Usage.Normal);
    ModelInstance mis = new ModelInstance(model);
    mis.transform.setTranslation(position);
    instances.add(mis);//from w w w .  j a va 2  s  . c om
}

From source file:com.bladecoder.engine.model.Sprite3DRenderer.java

License:Apache License

private void retrieveSource(String source) {
    ModelCacheEntry entry = sourceCache.get(source);

    if (entry == null || entry.refCounter < 1) {
        loadSource(source);/*from   w  w  w.j a v  a 2  s.  c o  m*/
        EngineAssetManager.getInstance().finishLoading();
        entry = sourceCache.get(source);
    }

    if (entry.modelInstance == null) {
        Model model3d = EngineAssetManager.getInstance().getModel3D(source);
        entry.modelInstance = new ModelInstance(model3d);
        entry.controller = new AnimationController(entry.modelInstance);
        entry.camera3d = getCamera(entry.modelInstance);
    }
}

From source file:com.bladecoder.engine.util.Utils3D.java

License:Apache License

public static void createFloor() {

    ModelBuilder modelBuilder = new ModelBuilder();
    modelBuilder.begin();//  w  w  w . j a v a2 s. c om
    MeshPartBuilder mpb = modelBuilder.part("parts", GL20.GL_TRIANGLES,
            Usage.Position | Usage.Normal | Usage.ColorUnpacked,
            new Material(ColorAttribute.createDiffuse(Color.WHITE)));
    mpb.setColor(1f, 1f, 1f, 1f);
    //      mpb.box(0, -0.1f, 0, 10, .2f, 10);
    mpb.rect(-10, 0, -10, -10, 0, 10, 10, 0, 10, 10, 0, -10, 0, 1, 0);
    floorModel = modelBuilder.end();
    floorInstance = new ModelInstance(floorModel);

    // TODO Set only when FBO is active
    floorInstance.materials.get(0).set(new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA));
}

From source file:com.bladecoder.engine.util.Utils3D.java

License:Apache License

private static void createAxes() {
    ModelBuilder modelBuilder = new ModelBuilder();
    modelBuilder.begin();//  ww w. jav  a2s.c  o m
    MeshPartBuilder builder = modelBuilder.part("grid", GL20.GL_LINES, Usage.Position | Usage.ColorUnpacked,
            new Material());
    builder.setColor(Color.LIGHT_GRAY);
    for (float t = GRID_MIN; t <= GRID_MAX; t += GRID_STEP) {
        builder.line(t, 0, GRID_MIN, t, 0, GRID_MAX);
        builder.line(GRID_MIN, 0, t, GRID_MAX, 0, t);
    }
    builder = modelBuilder.part("axes", GL20.GL_LINES, Usage.Position | Usage.ColorUnpacked, new Material());
    builder.setColor(Color.RED);
    builder.line(0, 0, 0, 10, 0, 0);
    builder.setColor(Color.GREEN);
    builder.line(0, 0, 0, 0, 10, 0);
    builder.setColor(Color.BLUE);
    builder.line(0, 0, 0, 0, 0, 10);
    axesModel = modelBuilder.end();
    axesInstance = new ModelInstance(axesModel);
}

From source file:com.cyphercove.doublehelix.MainRenderer.java

License:Apache License

private void finishCreate() {
    needFinishCreate = false;//from w  ww .  ja v a2 s . c o  m

    modelBatch = new ModelBatch();
    disposables.add(modelBatch);

    environment = new Environment();

    assets = new AssetManager();
    disposables.add(assets);

    TextureLoader.TextureParameter trilinearRepeatTextureParams = new TextureLoader.TextureParameter();
    trilinearRepeatTextureParams.format = Pixmap.Format.RGBA8888;
    trilinearRepeatTextureParams.magFilter = Texture.TextureFilter.Linear;
    trilinearRepeatTextureParams.minFilter = Texture.TextureFilter.MipMapLinearLinear;
    trilinearRepeatTextureParams.wrapU = Texture.TextureWrap.Repeat;
    trilinearRepeatTextureParams.wrapV = Texture.TextureWrap.Repeat;
    trilinearRepeatTextureParams.genMipMaps = true;
    assets.load(HELIX_NORMAL_AO_TEXTURE, Texture.class, trilinearRepeatTextureParams);
    assets.load(PARTICLE_A_TEXTURE, Texture.class, trilinearRepeatTextureParams);

    TextureLoader.TextureParameter bilinearClampedTextureParams = new TextureLoader.TextureParameter();
    bilinearClampedTextureParams.format = Pixmap.Format.RGBA8888;
    bilinearClampedTextureParams.magFilter = Texture.TextureFilter.Linear;
    bilinearClampedTextureParams.minFilter = Texture.TextureFilter.MipMapLinearNearest;
    bilinearClampedTextureParams.wrapU = Texture.TextureWrap.ClampToEdge;
    bilinearClampedTextureParams.wrapV = Texture.TextureWrap.ClampToEdge;
    bilinearClampedTextureParams.genMipMaps = true;
    assets.load(BG_GLOW_TEXTURE, Texture.class, bilinearClampedTextureParams);
    assets.load(BG_BLOOM_TEXTURE, Texture.class, bilinearClampedTextureParams);
    assets.load(POINT_PARTICLE_TEXTURE, Texture.class, bilinearClampedTextureParams);

    TextureLoader.TextureParameter borderTexParams = new TextureLoader.TextureParameter();
    borderTexParams.format = Pixmap.Format.Alpha;
    borderTexParams.magFilter = Texture.TextureFilter.Linear;
    borderTexParams.minFilter = Texture.TextureFilter.Linear;
    assets.load(FILM_BORDER_TEXTURE, Texture.class, borderTexParams);

    TextureLoader.TextureParameter noiseTexParams = new TextureLoader.TextureParameter();
    noiseTexParams.format = Pixmap.Format.Alpha;
    noiseTexParams.magFilter = Texture.TextureFilter.Nearest;
    noiseTexParams.minFilter = Texture.TextureFilter.Nearest;
    noiseTexParams.wrapU = Texture.TextureWrap.Repeat;
    noiseTexParams.wrapV = Texture.TextureWrap.Repeat;
    assets.load(FILM_NOISE_TEXTURE, Texture.class, noiseTexParams);

    TextureLoader.TextureParameter scanlineTexParams = new TextureLoader.TextureParameter();
    scanlineTexParams.format = Pixmap.Format.Alpha;
    scanlineTexParams.magFilter = Texture.TextureFilter.Linear;
    scanlineTexParams.minFilter = Texture.TextureFilter.Linear;
    scanlineTexParams.wrapU = Texture.TextureWrap.Repeat;
    scanlineTexParams.wrapV = Texture.TextureWrap.Repeat;
    assets.load(SCANLINE_TEXTURE, Texture.class, scanlineTexParams);

    assets.load(HELIX_MODEL, Model.class);
    assets.load(BG_MODEL, Model.class);
    assets.load(BG_BLOOM_MODEL, Model.class);

    assets.finishLoading();

    helixNormalAOTexture = assets.get(HELIX_NORMAL_AO_TEXTURE, Texture.class);
    backgroundTexture = assets.get(BG_GLOW_TEXTURE, Texture.class);
    backgroundBloomTexture = assets.get(BG_BLOOM_TEXTURE, Texture.class);
    Texture filmNoiseTexture = assets.get(FILM_NOISE_TEXTURE, Texture.class);
    Texture filmBorderTexture = assets.get(FILM_BORDER_TEXTURE, Texture.class);
    Texture scanlineTexture = assets.get(SCANLINE_TEXTURE, Texture.class);

    Model helixModel = assets.get(HELIX_MODEL, Model.class);
    mainHelixModelInstance = new ModelInstance(helixModel);
    mainHelixModelInstance.userData = Settings.frontHelixColor;
    mainHelixTransformManager = new TransformManager(mainHelixModelInstance);
    rearHelixModelInstance = new ModelInstance(helixModel);
    rearHelixModelInstance.userData = Settings.rearHelixColor;
    rearHelixTransformManager = new TransformManager(rearHelixModelInstance);
    rearHelixTransformManager.eulers.set(12.477f, -96.843f, -7.902f);
    rearHelixTransformManager.position.set(7.95135f, -5.46558f, 9.82413f);

    Model bgModel = assets.get(BG_MODEL, Model.class);
    backgroundModelInstance = new ModelInstance(bgModel);

    Model bgBloomModel = assets.get(BG_BLOOM_MODEL, Model.class);
    backgroundBloomModelInstance = new ModelInstance(bgBloomModel);

    sssShader = new SubsurfaceScatteringShader(helixNormalAOTexture, (new Vector3(-0.6f, 1f, 1f)).nor());
    sssShader.init();
    disposables.add(sssShader);

    backgroundShader = new BackgroundShader(backgroundTexture);
    backgroundShader.init();
    disposables.add(backgroundShader);

    unlitShader = new UnlitShader(backgroundBloomTexture);
    unlitShader.init();
    disposables.add(unlitShader);

    blackShader = new BlackShader();
    blackShader.init();
    disposables.add(blackShader);

    bloomShaderProgram = loadShaderProgram("bloom");
    disposables.add(bloomShaderProgram);

    particleATexture = assets.get(PARTICLE_A_TEXTURE, Texture.class);
    particleATextureRegion = new TextureRegion(particleATexture);

    particlePointTexture = assets.get(POINT_PARTICLE_TEXTURE, Texture.class);

    particles = new Particles(particlePointTexture, particleATextureRegion, cam);
    InputMultiplexer inputMultiplexer = new InputMultiplexer(inputAdapter, particles.inputAdapter);
    Gdx.input.setInputProcessor(inputMultiplexer);

    particleGroupStrategy = new ParticleGroupStrategy(cam);
    disposables.add(particleGroupStrategy);

    decalBatch = new DecalBatch(Particles.MAX_PARTICLES, particleGroupStrategy);
    disposables.add(decalBatch);

    billboardDecalBatch = new BillboardDecalBatch(Particles.MAX_PARTICLES, particleGroupStrategy);
    disposables.add(billboardDecalBatch);

    filmGrain = new FilmGrain(filmNoiseTexture, filmBorderTexture, scanlineTexture, false);
    disposables.add(filmGrain);
    filmGrainForBloom = new FilmGrain(filmNoiseTexture, filmBorderTexture, scanlineTexture, true);
    disposables.add(filmGrainForBloom);
}

From source file:com.github.fauu.helix.core.Object.java

License:Open Source License

public Object(Vector2 position, String modelName, Model model, int elevation, Direction facing) {
    this.position = position;
    this.elevation = elevation;
    this.modelInstance = new ModelInstance(model);
    this.modelName = modelName;
    this.facing = facing;

    modelInstance.transform.setToTranslation(position.x, elevation, position.y + 1).rotate(new Vector3(0, 1, 0),
            -90);/* w  w w  .  java 2s .c om*/

    final TextureAttribute textureAttribute = (TextureAttribute) modelInstance.materials.first()
            .get(TextureAttribute.Diffuse);
    textureAttribute.textureDescription.magFilter = Texture.TextureFilter.Nearest;
    textureAttribute.textureDescription.minFilter = Texture.TextureFilter.Nearest;
    modelInstance.materials.first().set(textureAttribute);

    modelInstance.materials.first().set(new ColorAttribute(ColorAttribute.createDiffuse(Color.WHITE)));
    modelInstance.materials.first().set(new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA));
    //modelInstance.materials.first().set(new FloatAttribute(FloatAttribute.AlphaTest, 0.14f));
}

From source file:com.github.fauu.helix.displayable.AreaDisplayable.java

License:Open Source License

public AreaDisplayable(Model model) {
    instance = new ModelInstance(model);

    animationController = new AnimationController(instance);

    instance.transform.rotate(new Vector3(1, 0, 0), 90);

    for (Material material : instance.materials) {
        TextureAttribute ta = (TextureAttribute) material.get(TextureAttribute.Diffuse);

        ta.textureDescription.magFilter = Texture.TextureFilter.Nearest;
        ta.textureDescription.minFilter = Texture.TextureFilter.Nearest;

        material.set(ta);/*w ww .  j  a v a2s .  co  m*/
        material.set(ColorAttribute.createDiffuse(Color.WHITE));

        BlendingAttribute ba = new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

        material.set(ba);
    }
}

From source file:com.github.fauu.helix.editor.displayable.TileHighlightDisplayable.java

License:Open Source License

public TileHighlightDisplayable() {
    ModelBuilder modelBuilder = new ModelBuilder();

    Model model = modelBuilder.createRect(0, 0, Z_OFFSET, 1, 0, Z_OFFSET, 1, 1, Z_OFFSET, 0, 1, Z_OFFSET, 0, 0,
            1, GL20.GL_TRIANGLES,//  ww w  .jav a2s  .c  o  m
            new Material(new ColorAttribute(ColorAttribute.createDiffuse(color)),
                    new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA)),
            VertexAttributes.Usage.Position | VertexAttributes.Usage.TextureCoordinates);

    instance = new ModelInstance(model);
}