Example usage for com.badlogic.gdx.graphics.g3d.attributes FloatAttribute Shininess

List of usage examples for com.badlogic.gdx.graphics.g3d.attributes FloatAttribute Shininess

Introduction

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

Prototype

long Shininess

To view the source code for com.badlogic.gdx.graphics.g3d.attributes FloatAttribute Shininess.

Click Source Link

Usage

From source file:com.mbrlabs.mundus.commons.assets.MaterialAsset.java

License:Apache License

/**
 * Applies this material asset to the libGDX material.
 *
 * @param material/*from   w  w  w .  j av  a  2  s  .  c  om*/
 * @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.shaders.ModelShader.java

License:Apache License

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

    setLights(env);//from www  .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);
    }

    // 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:ve.ucv.ciens.ccg.nxtar.graphics.shaders.DirectionalLightPerPixelShader.java

License:Apache License

@Override
public void render(Renderable renderable) {
    ShaderProgram program;//  www.j a  v a  2s  .  c  o m
    int index;
    boolean bonesEnabled;
    Vector3 lightPosition;
    Color diffuseLightColor;
    Color diffuseColor;
    Color specularColor;
    Color ambientColor;
    float shininess;

    // Get material colors.
    if (renderable.environment != null && renderable.environment.directionalLights != null
            && renderable.environment.directionalLights.size >= 1) {
        lightPosition = renderable.environment.directionalLights.get(0).direction;
        diffuseLightColor = renderable.environment.directionalLights.get(0).color;
    } else {
        lightPosition = DEFAULT_LIGHT;
        diffuseLightColor = Color.WHITE;
    }

    if (renderable.material.has(ColorAttribute.Diffuse))
        diffuseColor = ((ColorAttribute) renderable.material.get(ColorAttribute.Diffuse)).color;
    else
        diffuseColor = Color.WHITE;

    if (renderable.material.has(ColorAttribute.Specular))
        specularColor = ((ColorAttribute) renderable.material.get(ColorAttribute.Specular)).color;
    else
        specularColor = Color.BLACK;

    if (renderable.environment != null && renderable.environment.has(ColorAttribute.AmbientLight))
        ambientColor = ((ColorAttribute) renderable.environment.get(ColorAttribute.AmbientLight)).color;
    else
        ambientColor = Color.BLACK;

    if (renderable.material.has(FloatAttribute.Shininess))
        shininess = ((FloatAttribute) renderable.material.get(FloatAttribute.Shininess)).value;
    else
        shininess = DEFAULT_SHININESS;

    if (renderable.mesh.getVertexAttribute(VertexAttributes.Usage.BoneWeight) != null) {
        program = skinningProgram;
        index = 0;
        bonesEnabled = true;
    } else {
        program = baseProgram;
        index = 1;
        bonesEnabled = false;
    }

    program.begin();

    // Set camera dependant uniforms.
    program.setUniformMatrix(u_projTrans[index], this.camera.combined);
    program.setUniformf(u_cameraPos[index], this.camera.position);

    // Set model dependant uniforms.
    program.setUniformMatrix(u_geomTrans[index], renderable.worldTransform);
    program.setUniformMatrix(u_normalMatrix[index],
            normalMatrix.set(renderable.worldTransform).toNormalMatrix());
    program.setUniformf(u_lightPos[index], lightPosition);
    program.setUniformf(u_lightDiffuse[index], diffuseLightColor);
    program.setUniformf(u_materialDiffuse[index], diffuseColor);
    program.setUniformf(u_specular[index], specularColor);
    program.setUniformf(u_ambient[index], ambientColor);
    program.setUniformf(u_shiny[index], shininess);

    // Set the bones uniforms.
    if (bonesEnabled) {
        for (int i = 0; i < MAX_NUM_BONES; i++) {
            if (renderable.bones != null && i < renderable.bones.length && renderable.bones[i] != null)
                skinningProgram.setUniformMatrix(u_bones[i], renderable.bones[i]);
            else
                skinningProgram.setUniformMatrix(u_bones[i], IDENTITY);
        }
    }

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

    program.end();
}