A BasicMaterial is for rendering unlit geometry, either using a constant color or a color map modulated with a color.

// Create a new Basic material
const material = new pc.BasicMaterial();

// Set the material to have a texture map that is multiplied by a red color
material.color.set(1, 0, 0);
material.colorMap = diffuseMap;

// Notify the material that it has been modified
material.update();

Hierarchy (view full)

Properties

alphaTest: number = 0

The alpha test reference value to control which fragments are written to the currently active render target based on alpha value. All fragments with an alpha value of less than the alphaTest reference value will be discarded. alphaTest defaults to 0 (all fragments pass).

alphaToCoverage: boolean = false

Enables or disables alpha to coverage (WebGL2 only). When enabled, and if hardware anti-aliasing is on, limited order-independent transparency can be achieved. Quality depends on the number of MSAA samples of the current render target. It can nicely soften edges of otherwise sharp alpha cutouts, but isn't recommended for large area semi-transparent surfaces. Note, that you don't need to enable blending to make alpha to coverage work. It will work without it, just like alphaTest.

color: Color = ...

The flat color of the material (RGBA, where each component is 0 to 1).

colorMap: Texture = null

The color map of the material (default is null). If specified, the color map is modulated by the color property.

cull: number = CULLFACE_BACK

Controls how triangles are culled based on their face direction with respect to the viewpoint. Can be:

  • CULLFACE_NONE: Do not cull triangles based on face direction.
  • CULLFACE_BACK: Cull the back faces of triangles (do not render triangles facing away from the view point).
  • CULLFACE_FRONT: Cull the front faces of triangles (do not render triangles facing towards the view point).

Defaults to CULLFACE_BACK.

name: string = 'Untitled'

The name of the material.

stencilBack: StencilParameters = null

Stencil parameters for back faces (default is null).

stencilFront: StencilParameters = null

Stencil parameters for front faces (default is null).

userId: string = ''

A unique id the user can assign to the material. The engine internally does not use this for anything, and the user can assign a value to this id for any purpose they like. Defaults to an empty string.

Accessors

  • get alphaWrite(): boolean
  • Returns boolean

  • set alphaWrite(value): void
  • If true, the alpha component of fragments generated by the shader of this material is written to the color buffer of the currently active render target. If false, the alpha component will not be written. Defaults to true.

    Parameters

    • value: boolean

    Returns void

  • get blueWrite(): boolean
  • Returns boolean

  • set blueWrite(value): void
  • If true, the blue component of fragments generated by the shader of this material is written to the color buffer of the currently active render target. If false, the blue component will not be written. Defaults to true.

    Parameters

    • value: boolean

    Returns void

  • get depthBias(): number
  • Returns number

  • set depthBias(value): void
  • Offsets the output depth buffer value. Useful for decals to prevent z-fighting. Typically a small negative value (-0.1) is used to render the mesh slightly closer to the camera.

    Parameters

    • value: number

    Returns void

  • get depthTest(): boolean
  • Returns boolean

  • set depthTest(value): void
  • If true, fragments generated by the shader of this material are only written to the current render target if they pass the depth test. If false, fragments generated by the shader of this material are written to the current render target regardless of what is in the depth buffer. Defaults to true.

    Parameters

    • value: boolean

    Returns void

  • get depthWrite(): boolean
  • Returns boolean

  • set depthWrite(value): void
  • If true, fragments generated by the shader of this material write a depth value to the depth buffer of the currently active render target. If false, no depth value is written. Defaults to true.

    Parameters

    • value: boolean

    Returns void

  • get greenWrite(): boolean
  • Returns boolean

  • set greenWrite(value): void
  • If true, the green component of fragments generated by the shader of this material is written to the color buffer of the currently active render target. If false, the green component will not be written. Defaults to true.

    Parameters

    • value: boolean

    Returns void

  • get redWrite(): boolean
  • Returns boolean

  • set redWrite(value): void
  • If true, the red component of fragments generated by the shader of this material is written to the color buffer of the currently active render target. If false, the red component will not be written. Defaults to true.

    Parameters

    • value: boolean

    Returns void

Methods