Example usage for com.badlogic.gdx.graphics.g3d.attributes TextureAttribute Diffuse

List of usage examples for com.badlogic.gdx.graphics.g3d.attributes TextureAttribute Diffuse

Introduction

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

Prototype

long Diffuse

To view the source code for com.badlogic.gdx.graphics.g3d.attributes TextureAttribute Diffuse.

Click Source Link

Usage

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

License:Open Source License

@Override
public void render(Renderable renderable) {
    program.setUniformMatrix(u_worldTrans, renderable.worldTransform);

    final Color color = ((ColorAttribute) renderable.material.get(ColorAttribute.Diffuse)).color;
    program.setUniformf(u_color, color.r, color.g, color.b, color.a);

    final TextureDescriptor textureDescriptor = ((TextureAttribute) renderable.material
            .get(TextureAttribute.Diffuse)).textureDescription;
    program.setUniformi(u_texture, context.textureBinder.bind(textureDescriptor));

    if (!(renderable.mesh instanceof MapRegionMesh)) {
        program.setAttributef("a_color", 1, 1, 1, 1);
    }//from   w  ww .  j a v a  2  s  .  c om

    renderable.mesh.render(program, renderable.primitiveType, renderable.meshPartOffset,
            renderable.meshPartSize, true);
}

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

License:Open Source License

public void create(Vector2 size, Tile[] tiles, Array<Object> objects, TextureAtlas textureAtlas,
        GeometrySet geometrySet) {//from  w w w . j a v a2  s.c  o m
    this.size = size;
    this.textureAtlas = textureAtlas;
    this.geometrySet = geometrySet;
    this.objects = objects;

    if (tiles != null) {
        this.tiles = tiles;
    } else {
        final int tilesLength = (int) (size.x * size.y);

        tiles = new Tile[tilesLength];
        for (int i = 0; i < tilesLength; i++) {
            final Tile.Builder tileBuilder = new Tile.Builder();
            final int tileX = i % (int) size.x;
            final int tileY = (int) Math.floor(i / (tilesLength / size.y));

            tiles[i] = tileBuilder.setNo(i).setPosition(new Vector2(tileX, tileY)).setElevation(0)
                    .setTextureId(0).setGeometryId(0).setFacing(Direction.SOUTH).build();
        }
    }

    this.tiles = tiles;

    mesh = new MapRegionMesh(tiles, geometrySet, textureAtlas);

    renderable = new Renderable();
    renderable.mesh = mesh;
    renderable.material = new Material(new ColorAttribute(ColorAttribute.Diffuse, Color.WHITE),
            new TextureAttribute(TextureAttribute.Diffuse, textureAtlas.getTextures().first()));
    renderable.meshPartOffset = 0;
    renderable.meshPartSize = mesh.getNumVertices();
    renderable.primitiveType = GL20.GL_TRIANGLES;
    renderable.worldTransform.idt();
}

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);//from w  w w . j  a va 2  s. co m

    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.core.WaterShader.java

License:Open Source License

@Override
public void render(Renderable renderable) {
    program.setUniformMatrix(u_worldTrans, renderable.worldTransform);

    final Color color = ((ColorAttribute) renderable.material.get(ColorAttribute.Diffuse)).color;
    program.setUniformf(u_color, color.r, color.g, color.b, color.a);

    final TextureDescriptor textureDescriptor = ((TextureAttribute) renderable.material
            .get(TextureAttribute.Diffuse)).textureDescription;
    program.setUniformi(u_texture, context.textureBinder.bind(textureDescriptor));

    WaterData waterData = (WaterData) renderable.userData;

    final TextureDescriptor reflectionTextureDescriptor = new TextureDescriptor(waterData.reflectionTexture);
    program.setUniformi(u_reflectionTexture, context.textureBinder.bind(reflectionTextureDescriptor));

    program.setUniformf(u_waveData, waterData.waveAmplitude, waterData.waveAngle);

    //    final Vector3 trn = new Vector3();
    //    renderable.worldTransform.getTranslation(trn);
    ////from w  ww  .  j  a  v  a  2  s.  com
    //    final float diffX = trn.x - ((float[]) renderable.userData)[2];
    //    final float posCoeffX = (float) ((diffX / ((float[]) renderable.userData)[3]) * 2 * Math.PI);
    //
    //    final float diffZ = trn.z - ((float[]) renderable.userData)[4];
    //    final float posCoeffZ = (float) ((diffZ / ((float[]) renderable.userData)[5]) * 2 * Math.PI);
    //
    //    program.setUniformf(u_waveData, ((float[]) renderable.userData)[0], ((float[]) renderable.userData)[1],
    //        posCoeffX, posCoeffZ);

    renderable.mesh.render(program, renderable.primitiveType, renderable.meshPartOffset,
            renderable.meshPartSize, true);
}

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);/*from w ww  .  jav  a  2s. c o 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.mbrlabs.mundus.commons.assets.MaterialAsset.java

License:Apache License

/**
 * Applies this material asset to the libGDX material.
 *
 * @param material// w  ww.  j  a va 2 s  .  c  o  m
 * @return
 */
public Material applyToMaterial(Material material) {
    if (diffuseColor != null) {
        material.set(new ColorAttribute(ColorAttribute.Diffuse, diffuseColor));
    }
    if (diffuseTexture != null) {
        material.set(new TextureAttribute(TextureAttribute.Diffuse, diffuseTexture.getTexture()));
    } else {
        material.remove(TextureAttribute.Diffuse);
    }
    material.set(new FloatAttribute(FloatAttribute.Shininess, shininess));

    return material;
}

From source file:com.mbrlabs.mundus.commons.model.MModelInstance.java

License:Apache License

public void applyModelMaterial() {
    Model m = model.getModel();/*from  ww  w  .  ja  va2 s . com*/
    for (int i = 0; i < m.materials.size; i++) {
        Material modelMat = m.materials.get(i);
        Material instanceMat = modelInstance.materials.get(i);

        // diffuse texture
        Attribute diffuseTex = modelMat.get(TextureAttribute.Diffuse);
        if (diffuseTex != null) {
            instanceMat.set(diffuseTex);
        } else {
            instanceMat.remove(TextureAttribute.Diffuse);
        }
        // diffuse color
        Attribute diffuseColor = modelMat.get(ColorAttribute.Diffuse);
        if (diffuseColor != null) {
            instanceMat.set(diffuseColor);
        }

        // TODO other attributes
    }
}

From source file:com.mbrlabs.mundus.commons.shaders.EntityShader.java

License:Apache License

@Override
public void render(Renderable renderable) {
    final MundusEnvironment env = (MundusEnvironment) renderable.environment;

    setLights(env);//  w w  w.  j  a v a2s.  c o  m
    set(UNIFORM_TRANS_MATRIX, renderable.worldTransform);

    // texture uniform
    TextureAttribute diffuseTexture = ((TextureAttribute) (renderable.material.get(TextureAttribute.Diffuse)));
    ColorAttribute diffuseColor = ((ColorAttribute) (renderable.material.get(ColorAttribute.Diffuse)));

    if (diffuseTexture != null) {
        set(UNIFORM_MATERIAL_DIFFUSE_TEXTURE, diffuseTexture.textureDescription.texture);
        set(UNIFORM_MATERIAL_DIFFUSE_USE_TEXTURE, 1);
    } else {
        set(UNIFORM_MATERIAL_DIFFUSE_COLOR, diffuseColor.color);
        set(UNIFORM_MATERIAL_DIFFUSE_USE_TEXTURE, 0);
    }

    // Fog
    final Fog fog = env.getFog();
    if (fog == null) {
        set(UNIFORM_FOG_DENSITY, 0f);
        set(UNIFORM_FOG_GRADIENT, 0f);
    } else {
        set(UNIFORM_FOG_DENSITY, fog.density);
        set(UNIFORM_FOG_GRADIENT, fog.gradient);
        set(UNIFORM_FOG_COLOR, fog.color);
    }

    // bind attributes, bind mesh & render; then unbinds everything
    renderable.meshPart.render(program);
}

From source file:com.mbrlabs.mundus.commons.shaders.ModelShader.java

License:Apache License

@Override
public void render(Renderable renderable) {
    final MundusEnvironment env = (MundusEnvironment) renderable.environment;

    setLights(env);//  w  w  w .j  av  a2 s  .c om
    set(UNIFORM_TRANS_MATRIX, renderable.worldTransform);

    // texture uniform
    TextureAttribute diffuseTexture = ((TextureAttribute) (renderable.material.get(TextureAttribute.Diffuse)));
    ColorAttribute diffuseColor = ((ColorAttribute) (renderable.material.get(ColorAttribute.Diffuse)));

    if (diffuseTexture != null) {
        set(UNIFORM_MATERIAL_DIFFUSE_TEXTURE, diffuseTexture.textureDescription.texture);
        set(UNIFORM_MATERIAL_DIFFUSE_USE_TEXTURE, 1);
    } else {
        set(UNIFORM_MATERIAL_DIFFUSE_COLOR, diffuseColor.color);
        set(UNIFORM_MATERIAL_DIFFUSE_USE_TEXTURE, 0);
    }

    // shininess
    float shininess = ((FloatAttribute) renderable.material.get(FloatAttribute.Shininess)).value;
    set(UNIFORM_MATERIAL_SHININESS, shininess);

    // Fog
    final Fog fog = env.getFog();
    if (fog == null) {
        set(UNIFORM_FOG_DENSITY, 0f);
        set(UNIFORM_FOG_GRADIENT, 0f);
    } else {
        set(UNIFORM_FOG_DENSITY, fog.density);
        set(UNIFORM_FOG_GRADIENT, fog.gradient);
        set(UNIFORM_FOG_COLOR, fog.color);
    }

    // bind attributes, bind mesh & render; then unbinds everything
    renderable.meshPart.render(program);
}

From source file:com.mbrlabs.mundus.ui.modules.inspector.ModelComponentWidget.java

License:Apache License

private void setupUI() {
    // create Model select dropdown
    collapsibleContent.add(new VisLabel("Model")).left().row();
    collapsibleContent.addSeparator().padBottom(5).row();
    collapsibleContent.add(selectBox).expandX().fillX().row();

    // create materials for all model nodes
    MModelInstance mi = component.getModelInstance();
    collapsibleContent.add(new VisLabel("Materials")).expandX().fillX().left().padBottom(3).padTop(3).row();
    collapsibleContent.addSeparator().row();

    final ModelAsset asset = mi.getModel();
    final Model model = asset.getModel();

    // iterate over materials
    for (Material mat : model.materials) {
        collapsibleContent.add(new VisLabel(mat.id)).expandX().fillX().left().row();

        // diffuse texture
        collapsibleContent.add(new VisLabel("Diffuse Texture (click to change)")).expandX().fillX().left()
                .row();/*from   ww w.java 2 s.  co  m*/
        final VisTextField diffuseTextureField = new VisTextField();
        final AssetSelectionDialog.AssetSelectionListener listener = new AssetSelectionDialog.AssetSelectionListener() {
            @Override
            public void onSelected(Array<Asset> assets) {
                if (assets.size > 0) {
                    // set texture id & save
                    Asset selectedTexture = assets.first();
                    asset.setDiffuseTexture((TextureAsset) selectedTexture);
                    asset.applyDependencies();
                    try {
                        asset.getMeta().save();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                    updateModelInstaneceMaterials();
                    diffuseTextureField.setText(selectedTexture.toString());
                }
            }
        };
        final AssetSelectionDialog.AssetFilter filter = new AssetSelectionDialog.AssetFilter() {
            @Override
            public boolean ignore(Asset asset) {
                return !(asset instanceof TextureAsset);
            }
        };
        diffuseTextureField.addListener(new ClickListener() {
            @Override
            public void clicked(InputEvent event, float x, float y) {
                Ui.getInstance().getAssetSelectionDialog().show(filter, listener);
            }
        });
        TextureAsset texAsset = component.getModelInstance().getModel().getDiffuseTexture();
        if (texAsset != null) {
            diffuseTextureField.setText(texAsset.toString());
        }
        diffuseTextureField.setDisabled(true);
        collapsibleContent.add(diffuseTextureField).expandX().fillX().left().padBottom(5).row();

        // delete texture btn
        VisTextButton deletBtn = new VisTextButton("Remove texture");
        deletBtn.addListener(new ClickListener() {
            @Override
            public void clicked(InputEvent event, float x, float y) {
                MetaFile meta = component.getModelInstance().getModel().getMeta();
                meta.setDiffuseTexture(null);
                try {
                    meta.save();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                for (Material mat : component.getModelInstance().getModel().getModel().materials) {
                    mat.remove(TextureAttribute.Diffuse);
                }
                updateModelInstaneceMaterials();
                diffuseTextureField.setText("");
            }
        });
        collapsibleContent.add(deletBtn).expandX().fillX().left().padBottom(5).row();

        // diffuse color
        final ColorAttribute diffuse = (ColorAttribute) mat.get(ColorAttribute.Diffuse);
        ColorPickerField diffusePicker = new ColorPickerField("Diffuse: ");
        diffusePicker.setColor(diffuse.color);
        diffusePicker.setCallback(new ColorPickerField.ColorSelected() {
            @Override
            public void selected(Color color) {
                diffuse.color.set(color);
                MetaFile meta = component.getModelInstance().getModel().getMeta();
                meta.setDiffuseColor(color);
                try {
                    meta.save();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                updateModelInstaneceMaterials();
            }
        });
        collapsibleContent.add(diffusePicker).expandX().fillX().left().padBottom(5).row();
    }

}