Class Material

java.lang.Object
com.codename1.gpu.Material

public final class Material extends Object
A declarative description of how a surface should be shaded. The 3D engine is responsible for translating a material into a platform shader (GLSL on OpenGL ES and WebGL, Metal Shading Language on iOS); applications never write shader source. A material combines a lighting model (Type), a base color, an optional texture and pipeline RenderState.
  • Constructor Details

    • Material

      public Material()
      Creates an unlit white material.
    • Material

      public Material(Material.Type type)

      Creates a material of the supplied type.

      Parameters
      • type: the lighting model
  • Method Details

    • getType

      public Material.Type getType()
      Returns the lighting model.
    • setType

      public Material setType(Material.Type type)

      Sets the lighting model.

      Parameters
      • type: the lighting model
      Returns

      this material for chaining

    • getColor

      public int getColor()
      Returns the base color as a packed ARGB integer.
    • setColor

      public Material setColor(int argb)

      Sets the base color as a packed ARGB integer (0xAARRGGBB).

      Parameters
      • argb: the packed ARGB color
      Returns

      this material for chaining

    • getTexture

      public Texture getTexture()
      Returns the diffuse texture, or null when the material is untextured.
    • setTexture

      public Material setTexture(Texture texture)

      Sets the diffuse texture. Pass null for an untextured material.

      Parameters
      • texture: the diffuse texture or null
      Returns

      this material for chaining

    • getShininess

      public float getShininess()
      Returns the Phong specular exponent.
    • setShininess

      public Material setShininess(float shininess)

      Sets the Phong specular exponent (used only by Type.PHONG).

      Parameters
      • shininess: the specular exponent
      Returns

      this material for chaining

    • getRenderState

      public RenderState getRenderState()
      Returns the pipeline render state.
    • setRenderState

      public Material setRenderState(RenderState renderState)

      Sets the pipeline render state.

      Parameters
      • renderState: the render state
      Returns

      this material for chaining

    • getShaderKey

      public String getShaderKey()

      Returns a stable string identifying the shader variant required by this material. Backends use it together with the mesh VertexFormat to cache generated and compiled shader programs. The key intentionally depends only on properties that change the generated source, not on values such as the color which are passed as uniforms.

      Returns

      a shader variant cache key