Options
All
  • Public
  • Public/Protected
  • All
Menu

Class PBRBaseSimpleMaterial

The Physically based simple base material of BJS.

This enables better naming and convention enforcements on top of the pbrMaterial. It is used as the base class for both the specGloss and metalRough conventions.

Hierarchy

Implements

Index

Constructors

Properties

Accessors

Methods

Constructors

constructor

Properties

allowShaderHotSwappingSearch playground for allowShaderHotSwapping

allowShaderHotSwapping: boolean

Gets or sets a boolean indicating that the material is allowed (if supported) to do shader hot swapping. This means that the material can keep using a previous shader while a new one is being compiled. This is mostly used when shader parallel compilation is supported (true by default)

alphaCutOffSearch playground for alphaCutOff

alphaCutOff: number

Defines the alpha limits in alpha test mode.

animationsSearch playground for animations

animations: Nullable<Array<Animation>>

Stores the animations for the material

Readonly anisotropySearch playground for anisotropy

Defines the anisotropic parameters for the material.

Readonly brdfSearch playground for brdf

Defines the BRDF parameters for the material.

checkReadyOnEveryCallSearch playground for checkReadyOnEveryCall

checkReadyOnEveryCall: boolean

Specifies if the ready state should be checked on each call

checkReadyOnlyOnceSearch playground for checkReadyOnlyOnce

checkReadyOnlyOnce: boolean

Specifies if the ready state should be checked once

Readonly clearCoatSearch playground for clearCoat

Defines the clear coat layer parameters for the material.

customShaderNameResolveSearch playground for customShaderNameResolve

customShaderNameResolve: (shaderName: string, uniforms: string[], uniformBuffers: string[], samplers: string[], defines: MaterialDefines | string[], attributes?: string[], options?: ICustomShaderNameResolveOptions) => string

Custom callback helping to override the default shader used in the material.

Type declaration

depthFunctionSearch playground for depthFunction

depthFunction: number

Specifies the depth function that should be used. 0 means the default engine function

Readonly detailMapSearch playground for detailMap

Defines the detail map parameters for the material.

disableColorWriteSearch playground for disableColorWrite

disableColorWrite: boolean

Specifies if color writing should be disabled

disableDepthWriteSearch playground for disableDepthWrite

disableDepthWrite: boolean

Specifies if depth writing should be disabled

disableLightingSearch playground for disableLighting

disableLighting: boolean

If sets to true, disables all the lights affecting the material.

doNotSerializeSearch playground for doNotSerialize

doNotSerialize: boolean

Specifies if the material should be serialized

emissiveColorSearch playground for emissiveColor

emissiveColor: Color3

Emissivie color used to self-illuminate the model.

emissiveTextureSearch playground for emissiveTexture

emissiveTexture: Nullable<BaseTexture>

Emissivie texture used to self-illuminate the model.

environmentTextureSearch playground for environmentTexture

environmentTexture: Nullable<BaseTexture>

Environment Texture used in the material (this is use for both reflection and environment lighting).

forceDepthWriteSearch playground for forceDepthWrite

forceDepthWrite: boolean

Specifies if depth writing should be forced

getRenderTargetTexturesSearch playground for getRenderTargetTextures

getRenderTargetTextures: Nullable<() => SmartArray<RenderTargetTexture>>

Callback triggered to get the render target textures

idSearch playground for id

id: string

The ID of the material

inspectableCustomPropertiesSearch playground for inspectableCustomProperties

inspectableCustomProperties: IInspectable[]

List of inspectable custom properties (used by the Inspector)

see

https://doc.babylonjs.com/how_to/debug_layer#extensibility

invertNormalMapXSearch playground for invertNormalMapX

invertNormalMapX: boolean

If sets to true, x component of normal map value will invert (x = 1.0 - x).

invertNormalMapYSearch playground for invertNormalMapY

invertNormalMapY: boolean

If sets to true, y component of normal map value will invert (y = 1.0 - y).

Readonly iridescenceSearch playground for iridescence

Defines the iridescence layer parameters for the material.

lightmapTextureSearch playground for lightmapTexture

lightmapTexture: Nullable<BaseTexture>

Stores the pre-calculated light information of a mesh in a texture.

maxSimultaneousLightsSearch playground for maxSimultaneousLights

maxSimultaneousLights: number

Number of Simultaneous lights allowed on the material.

metadataSearch playground for metadata

metadata: any

Gets or sets user defined metadata

nameSearch playground for name

name: string

The name of the material

normalTextureSearch playground for normalTexture

normalTexture: Nullable<BaseTexture>

Normal map used in the model.

occlusionStrengthSearch playground for occlusionStrength

occlusionStrength: number

Occlusion Channel Strength.

occlusionTextureSearch playground for occlusionTexture

occlusionTexture: Nullable<BaseTexture>

Occlusion Texture of the material (adding extra occlusion effects).

onCompiledSearch playground for onCompiled

onCompiled: Nullable<(effect: Effect) => void>

Callback triggered when the material is compiled

onDisposeObservableSearch playground for onDisposeObservable

onDisposeObservable: Observable<Material>

An event triggered when the material is disposed

onErrorSearch playground for onError

onError: Nullable<(effect: Effect, errors: string) => void>

Callback triggered when an error occurs

pointSizeSearch playground for pointSize

pointSize: number

Stores the size of points

Readonly prePassConfigurationSearch playground for prePassConfiguration

prePassConfiguration: PrePassConfiguration

Defines additional PrePass parameters for the material.

reservedDataStoreSearch playground for reservedDataStore

reservedDataStore: any

For internal use only. Please do not use.

separateCullingPassSearch playground for separateCullingPass

separateCullingPass: boolean

Specifies if there should be a separate pass for culling

shadowDepthWrapperSearch playground for shadowDepthWrapper

shadowDepthWrapper: Nullable<ShadowDepthWrapper>

Custom shadow depth material to use for shadow rendering instead of the in-built one

Readonly sheenSearch playground for sheen

Defines the Sheen parameters for the material.

sideOrientationSearch playground for sideOrientation

sideOrientation: number

Stores the value for side orientation

stateSearch playground for state

state: string

The state of the material

Readonly stencilSearch playground for stencil

Gives access to the stencil properties of the material

Readonly subSurfaceSearch playground for subSurface

Defines the SubSurface parameters for the material.

uniqueIdSearch playground for uniqueId

uniqueId: number

Gets or sets the unique id of the material

useLightmapAsShadowmapSearch playground for useLightmapAsShadowmap

useLightmapAsShadowmap: boolean

If true, the light map contains occlusion information instead of lighting info.

zOffsetSearch playground for zOffset

zOffset: number

Stores the z offset Factor value

zOffsetUnitsSearch playground for zOffsetUnits

zOffsetUnits: number

Stores the z offset Units value

Static Readonly AllDirtyFlagSearch playground for AllDirtyFlag

AllDirtyFlag: 63 = 63

The all dirty flag value

Static Readonly AttributesDirtyFlagSearch playground for AttributesDirtyFlag

AttributesDirtyFlag: 8 = 8

The dirty attribute flag value

Static Readonly ClockWiseSideOrientationSearch playground for ClockWiseSideOrientation

ClockWiseSideOrientation: 0 = 0

Stores the clock-wise side orientation

Static Readonly CounterClockWiseSideOrientationSearch playground for CounterClockWiseSideOrientation

CounterClockWiseSideOrientation: 1 = 1

Stores the counter clock-wise side orientation

Static DEFAULT_AO_ON_ANALYTICAL_LIGHTSSearch playground for DEFAULT_AO_ON_ANALYTICAL_LIGHTS

DEFAULT_AO_ON_ANALYTICAL_LIGHTS: number

Defines the default value of how much AO map is occluding the analytical lights (point spot...).

Static Readonly FresnelDirtyFlagSearch playground for FresnelDirtyFlag

FresnelDirtyFlag: 4 = 4

The dirty fresnel flag value

Static Readonly LIGHTFALLOFF_GLTFSearch playground for LIGHTFALLOFF_GLTF

LIGHTFALLOFF_GLTF: 1 = 1

PBRMaterialLightFalloff gltf: light is falling off as described in the gltf moving to PBR document to enhance interoperability with other engines.

Static Readonly LIGHTFALLOFF_PHYSICALSearch playground for LIGHTFALLOFF_PHYSICAL

LIGHTFALLOFF_PHYSICAL: 0 = 0

PBRMaterialLightFalloff Physical: light is falling off following the inverse squared distance law.

Static Readonly LIGHTFALLOFF_STANDARDSearch playground for LIGHTFALLOFF_STANDARD

LIGHTFALLOFF_STANDARD: 2 = 2

PBRMaterialLightFalloff Standard: light is falling off like in the standard material to enhance interoperability with other materials.

Static Readonly LightDirtyFlagSearch playground for LightDirtyFlag

LightDirtyFlag: 2 = 2

The dirty light flag value

Static Readonly LineListDrawModeSearch playground for LineListDrawMode

LineListDrawMode: 4 = 4

Returns the line list draw mode

Static Readonly LineLoopDrawModeSearch playground for LineLoopDrawMode

LineLoopDrawMode: 5 = 5

Returns the line loop draw mode

Static Readonly LineStripDrawModeSearch playground for LineStripDrawMode

LineStripDrawMode: 6 = 6

Returns the line strip draw mode

Static Readonly MATERIAL_ALPHABLENDSearch playground for MATERIAL_ALPHABLEND

MATERIAL_ALPHABLEND: 2 = 2

MaterialTransparencyMode: Pixels are blended (according to the alpha mode) with the already drawn pixels in the current frame buffer.

Static Readonly MATERIAL_ALPHATESTSearch playground for MATERIAL_ALPHATEST

MATERIAL_ALPHATEST: 1 = 1

MaterialTransparencyMode: Alpha Test mode, pixel are discarded below a certain threshold defined by the alpha cutoff value.

Static Readonly MATERIAL_ALPHATESTANDBLENDSearch playground for MATERIAL_ALPHATESTANDBLEND

MATERIAL_ALPHATESTANDBLEND: 3 = 3

MaterialTransparencyMode: Pixels are blended (according to the alpha mode) with the already drawn pixels in the current frame buffer. They are also discarded below the alpha cutoff threshold to improve performances.

Static Readonly MATERIAL_NORMALBLENDMETHOD_RNMSearch playground for MATERIAL_NORMALBLENDMETHOD_RNM

MATERIAL_NORMALBLENDMETHOD_RNM: 1 = 1

The Reoriented Normal Mapping method is used to blend normals. Details of the algorithm can be found here: https://blog.selfshadow.com/publications/blending-in-detail/

Static Readonly MATERIAL_NORMALBLENDMETHOD_WHITEOUTSearch playground for MATERIAL_NORMALBLENDMETHOD_WHITEOUT

MATERIAL_NORMALBLENDMETHOD_WHITEOUT: 0 = 0

The Whiteout method is used to blend normals. Details of the algorithm can be found here: https://blog.selfshadow.com/publications/blending-in-detail/

Static Readonly MATERIAL_OPAQUESearch playground for MATERIAL_OPAQUE

MATERIAL_OPAQUE: 0 = 0

MaterialTransparencyMode: No transparency mode, Alpha channel is not use.

Static Readonly MiscDirtyFlagSearch playground for MiscDirtyFlag

MiscDirtyFlag: 16 = 16

The dirty misc flag value

Static OnEventObservableSearch playground for OnEventObservable

OnEventObservable: Observable<Material>

Event observable which raises global events common to all materials (like MaterialPluginEvent.Created)

Static Readonly PBRMATERIAL_ALPHABLENDSearch playground for PBRMATERIAL_ALPHABLEND

PBRMATERIAL_ALPHABLEND: 2 = 2

PBRMaterialTransparencyMode: Pixels are blended (according to the alpha mode) with the already drawn pixels in the current frame buffer.

Static Readonly PBRMATERIAL_ALPHATESTSearch playground for PBRMATERIAL_ALPHATEST

PBRMATERIAL_ALPHATEST: 1 = 1

PBRMaterialTransparencyMode: Alpha Test mode, pixel are discarded below a certain threshold defined by the alpha cutoff value.

Static Readonly PBRMATERIAL_ALPHATESTANDBLENDSearch playground for PBRMATERIAL_ALPHATESTANDBLEND

PBRMATERIAL_ALPHATESTANDBLEND: 3 = 3

PBRMaterialTransparencyMode: Pixels are blended (according to the alpha mode) with the already drawn pixels in the current frame buffer. They are also discarded below the alpha cutoff threshold to improve performances.

Static Readonly PBRMATERIAL_OPAQUESearch playground for PBRMATERIAL_OPAQUE

PBRMATERIAL_OPAQUE: 0 = 0

PBRMaterialTransparencyMode: No transparency mode, Alpha channel is not use.

Static Readonly PointFillModeSearch playground for PointFillMode

PointFillMode: 2 = 2

Returns the point fill mode

Static Readonly PointListDrawModeSearch playground for PointListDrawMode

PointListDrawMode: 3 = 3

Returns the point list draw mode

Static Readonly PrePassDirtyFlagSearch playground for PrePassDirtyFlag

PrePassDirtyFlag: 32 = 32

The dirty prepass flag value

Static Readonly TextureDirtyFlagSearch playground for TextureDirtyFlag

TextureDirtyFlag: 1 = 1

The dirty texture flag value

Static Readonly TriangleFanDrawModeSearch playground for TriangleFanDrawMode

TriangleFanDrawMode: 8 = 8

Returns the triangle fan draw mode

Static Readonly TriangleFillModeSearch playground for TriangleFillMode

TriangleFillMode: 0 = 0

Returns the triangle fill mode

Static Readonly TriangleStripDrawModeSearch playground for TriangleStripDrawMode

TriangleStripDrawMode: 7 = 7

Returns the triangle strip draw mode

Static Readonly WireFrameFillModeSearch playground for WireFrameFillMode

WireFrameFillMode: 1 = 1

Returns the wireframe mode

Accessors

alpha

  • get alpha(): number
  • set alpha(value: number): any
  • Gets the alpha value of the material

    Returns number

  • Sets the alpha value of the material

    Parameters

    • value: number

    Returns any

alphaMode

  • get alphaMode(): number
  • set alphaMode(value: number): any
  • Gets the value of the alpha mode

    ValueTypeDescription
    0ALPHA_DISABLE
    1ALPHA_ADD
    2ALPHA_COMBINE
    3ALPHA_SUBTRACT
    4ALPHA_MULTIPLY
    5ALPHA_MAXIMIZED
    6ALPHA_ONEONE
    7ALPHA_PREMULTIPLIED
    8ALPHA_PREMULTIPLIED_PORTERDUFF
    9ALPHA_INTERPOLATE
    10ALPHA_SCREENMODE

    Returns number

  • Sets the value of the alpha mode.

    ValueTypeDescription
    0ALPHA_DISABLE
    1ALPHA_ADD
    2ALPHA_COMBINE
    3ALPHA_SUBTRACT
    4ALPHA_MULTIPLY
    5ALPHA_MAXIMIZED
    6ALPHA_ONEONE
    7ALPHA_PREMULTIPLIED
    8ALPHA_PREMULTIPLIED_PORTERDUFF
    9ALPHA_INTERPOLATE
    10ALPHA_SCREENMODE

    Parameters

    • value: number

    Returns any

backFaceCulling

  • get backFaceCulling(): boolean
  • set backFaceCulling(value: boolean): any
  • Gets the culling state

    Returns boolean

  • Sets the culling state (true to enable culling, false to disable)

    Parameters

    • value: boolean

    Returns any

canRenderToMRT

  • get canRenderToMRT(): boolean

cullBackFaces

  • get cullBackFaces(): boolean
  • set cullBackFaces(value: boolean): any
  • Gets the type of faces that should be culled

    Returns boolean

  • Sets the type of faces that should be culled (true for back faces, false for front faces)

    Parameters

    • value: boolean

    Returns any

doubleSided

  • get doubleSided(): boolean
  • set doubleSided(value: boolean): any
  • Gets the current double sided mode.

    Returns boolean

  • If sets to true and backfaceCulling is false, normals will be flipped on the backside.

    Parameters

    • value: boolean

    Returns any

fillMode

  • get fillMode(): number
  • set fillMode(value: number): any
  • Gets the material fill mode

    Returns number

  • Sets the material fill mode

    Parameters

    • value: number

    Returns any

fogEnabled

  • get fogEnabled(): boolean
  • set fogEnabled(value: boolean): any
  • Gets the value of the fog enabled state

    Returns boolean

  • Sets the state for enabling fog

    Parameters

    • value: boolean

    Returns any

hasRenderTargetTextures

  • get hasRenderTargetTextures(): boolean

isFrozen

  • get isFrozen(): boolean
  • Specifies if updates for the material been locked

    Returns boolean

isPrePassCapable

  • get isPrePassCapable(): boolean

needDepthPrePass

  • get needDepthPrePass(): boolean
  • set needDepthPrePass(value: boolean): any

onBind

onBindObservable

onDispose

  • set onDispose(callback: () => void): any
  • Called during a dispose event

    Parameters

    • callback: () => void
        • (): void
        • Returns void

    Returns any

onEffectCreatedObservable

onUnBindObservable

pointsCloud

  • get pointsCloud(): boolean
  • set pointsCloud(value: boolean): any
  • Gets the value specifying if point clouds are enabled

    Returns boolean

  • Sets the state of point cloud mode

    Parameters

    • value: boolean

    Returns any

realTimeFiltering

  • get realTimeFiltering(): boolean
  • set realTimeFiltering(b: boolean): any
  • Enables realtime filtering on the texture.

    Returns boolean

  • Enables realtime filtering on the texture.

    Parameters

    • b: boolean

    Returns any

realTimeFilteringQuality

  • get realTimeFilteringQuality(): number
  • set realTimeFilteringQuality(n: number): any

transparencyMode

  • get transparencyMode(): Nullable<number>
  • set transparencyMode(value: Nullable<number>): any
  • Gets the current transparency mode.

    ValueTypeDescription
    0OPAQUE
    1ALPHATEST
    2ALPHABLEND
    3ALPHATESTANDBLEND

    Returns Nullable<number>

  • Sets the transparency mode of the material.

    ValueTypeDescription
    0OPAQUE
    1ALPHATEST
    2ALPHABLEND
    3ALPHATESTANDBLEND

    Parameters

    Returns any

useLogarithmicDepth

  • get useLogarithmicDepth(): boolean
  • set useLogarithmicDepth(value: boolean): any
  • Enabled the use of logarithmic depth buffers, which is good for wide depth buffers.

    Returns boolean

  • Enabled the use of logarithmic depth buffers, which is good for wide depth buffers.

    Parameters

    • value: boolean

    Returns any

wireframe

  • get wireframe(): boolean
  • set wireframe(value: boolean): any
  • Sets the state of wireframe mode

    Returns boolean

  • Sets the state of wireframe mode

    Parameters

    • value: boolean

    Returns any

Methods

bindSearch playground for bind

bindEyePositionSearch playground for bindEyePosition

  • bindEyePosition(effect: Effect, variableName?: string): void
  • Binds the view matrix to the effect

    Parameters

    • effect: Effect

      defines the effect to bind the view matrix to

    • Optional variableName: string

      name of the shader variable that will hold the eye position

    Returns void

bindForSubMeshSearch playground for bindForSubMesh

bindOnlyNormalMatrixSearch playground for bindOnlyNormalMatrix

  • bindOnlyNormalMatrix(normalMatrix: Matrix): void

bindOnlyWorldMatrixSearch playground for bindOnlyWorldMatrix

  • bindOnlyWorldMatrix(world: Matrix): void

bindViewSearch playground for bindView

  • bindView(effect: Effect): void
  • Binds the view matrix to the effect

    Parameters

    • effect: Effect

      defines the effect to bind the view matrix to

    Returns void

bindViewProjectionSearch playground for bindViewProjection

  • bindViewProjection(effect: Effect): void
  • Binds the view projection and projection matrices to the effect

    Parameters

    • effect: Effect

      defines the effect to bind the view projection and projection matrices to

    Returns void

buildUniformLayoutSearch playground for buildUniformLayout

  • buildUniformLayout(): void

cloneSearch playground for clone

  • Makes a duplicate of the material, and gives it a new name

    Parameters

    • name: string

      defines the new name for the duplicated material

    Returns Nullable<Material>

    the cloned material

disposeSearch playground for dispose

  • dispose(forceDisposeEffect?: boolean, forceDisposeTextures?: boolean): void
  • Disposes the resources of the material.

    Parameters

    • Optional forceDisposeEffect: boolean

      Forces the disposal of effects.

    • Optional forceDisposeTextures: boolean

      Forces the disposal of all textures.

    Returns void

forceCompilationSearch playground for forceCompilation

forceCompilationAsyncSearch playground for forceCompilationAsync

freezeSearch playground for freeze

  • freeze(): void
  • Locks updates for the material

    Returns void

getActiveTexturesSearch playground for getActiveTextures

getAlphaTestTextureSearch playground for getAlphaTestTexture

getAnimatablesSearch playground for getAnimatables

getBindedMeshesSearch playground for getBindedMeshes

getClassNameSearch playground for getClassName

  • getClassName(): string

getEffectSearch playground for getEffect

getSceneSearch playground for getScene

hasTextureSearch playground for hasTexture

  • Checks to see if a texture is used in the material.

    Parameters

    Returns boolean

    • Boolean specifying if a texture is used in the material.

isMetallicWorkflowSearch playground for isMetallicWorkflow

  • isMetallicWorkflow(): boolean
  • Specifies if the material uses metallic roughness workflow.

    Returns boolean

    boolean specifying if the material uses metallic roughness workflow.

isReadySearch playground for isReady

  • isReady(mesh?: AbstractMesh, useInstances?: boolean): boolean

isReadyForSubMeshSearch playground for isReadyForSubMesh

  • Specifies that the submesh is ready to be used.

    Parameters

    • mesh: AbstractMesh

      BJS mesh.

    • subMesh: SubMesh

      A submesh of the BJS mesh. Used to check if it is ready.

    • Optional useInstances: boolean

      Specifies that instances should be used.

    Returns boolean

    • boolean indicating that the submesh is ready or not.

markAsDirtySearch playground for markAsDirty

  • markAsDirty(flag: number): void
  • Marks a define in the material to indicate that it needs to be re-computed

    Parameters

    • flag: number

      defines a flag used to determine which parts of the material have to be marked as dirty

    Returns void

markDirtySearch playground for markDirty

  • markDirty(): void
  • Marks the material to indicate that it needs to be re-calculated

    Returns void

needAlphaBlendingSearch playground for needAlphaBlending

  • needAlphaBlending(): boolean

needAlphaBlendingForMeshSearch playground for needAlphaBlendingForMesh

  • Specifies if the mesh will require alpha blending

    Parameters

    Returns boolean

    a boolean specifying if alpha blending is needed for the mesh

needAlphaTestingSearch playground for needAlphaTesting

  • needAlphaTesting(): boolean

resetDrawCacheSearch playground for resetDrawCache

  • resetDrawCache(): void
  • Resets the draw wrappers cache for all submeshes that are using this material

    Returns void

serializeSearch playground for serialize

  • serialize(): any
  • Serializes this material

    Returns any

    the serialized material object

setPrePassRendererSearch playground for setPrePassRenderer

  • setPrePassRenderer(): boolean

toStringSearch playground for toString

  • toString(fullDetails?: boolean): string
  • Returns a string representation of the current material

    Parameters

    • Optional fullDetails: boolean

      defines a boolean indicating which levels of logging is desired

    Returns string

    a string with material information

unbindSearch playground for unbind

  • unbind(): void
  • Unbinds the material from the mesh

    Returns void

unfreezeSearch playground for unfreeze

  • unfreeze(): void
  • Unlocks updates for the material

    Returns void

Static ParseSearch playground for Parse

  • Creates a material from parsed material data

    Parameters

    • parsedMaterial: any

      defines parsed material data

    • scene: Scene

      defines the hosting scene

    • rootUrl: string

      defines the root URL to use to load textures

    Returns Nullable<Material>

    a new material

Legend

  • Constructor
  • Property
  • Method
  • Accessor
  • Inherited property
  • Inherited method
  • Inherited accessor
  • Property
  • Method
  • Static property
  • Static method