public final class Material

  1. Object
  2. Material
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.

Nested types

enum Material.TypeThe built in lighting model used to shade a surface.

Constructors

public Material()Creates an unlit white material.
public Material(Material.Type type)Creates a material of the supplied type.

Methods

public Material.Type getType()Returns the lighting model.
public Material setType(Material.Type type)Sets the lighting model.
public int getColor()Returns the base color as a packed ARGB integer.
public Material setColor(int argb)Sets the base color as a packed ARGB integer (0xAARRGGBB).
public Texture getTexture()Returns the diffuse texture, or null when the material is untextured.
public Material setTexture(Texture texture)Sets the diffuse texture.
public float getShininess()Returns the Phong specular exponent.
public Material setShininess(float shininess)Sets the Phong specular exponent (used only by Type.PHONG).
public RenderState getRenderState()Returns the pipeline render state.
public Material setRenderState(RenderState renderState)Sets the pipeline render state.
public String getShaderKey()Returns a stable string identifying the shader variant required by this material.

Inherited methods

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 Material.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 Material.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 int
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 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 float
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 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