List of usage examples for com.badlogic.gdx.graphics.g3d.attributes TextureAttribute Diffuse
long Diffuse
To view the source code for com.badlogic.gdx.graphics.g3d.attributes TextureAttribute Diffuse.
Click Source Link
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(); } }