babylon.quarks - v0.19.0
    Preparing search index...

    Class ParticleMeshPhysicsMaterial

    Hierarchy

    • PBRMaterial
      • ParticleMeshPhysicsMaterial
    Index

    Constructors

    Properties

    _activeEffect? _alpha _backFaceCulling _cacheHasRenderTargetTextures _cullBackFaces _drawWrapper _eventInfo _forceGLSL _imageProcessingConfiguration _imageProcessingObserver _isVertexOutputInvariant _needToBindSceneUbo _normalMatrix _onEffectCreatedObservable _shaderLanguage _transparencyMode _useLogarithmicDepth _useVertexPulling albedoColor albedoTexture allowShaderHotSwapping alphaCutOff ambientColor ambientTexture ambientTextureImpactOnAnalyticalLights ambientTextureStrength animations anisotropy applyDecalMapAfterDetailMap baseDiffuseRoughness baseDiffuseRoughnessTexture baseWeight baseWeightTexture brdf bumpTexture checkReadyOnEveryCall checkReadyOnlyOnce clearCoat clipPlane clipPlane2 clipPlane3 clipPlane4 clipPlane5 clipPlane6 customShaderNameResolve decalMap depthFunction detailMap directIntensity disableBumpMap disableColorWrite disableDepthWrite disableLighting doNotSerialize emissiveColor emissiveIntensity emissiveTexture enableSpecularAntiAliasing environmentBRDFTexture environmentIntensity forceAlphaTest forceDepthWrite forceIrradianceInFragment forceNormalForward getRenderTargetTextures id inspectableCustomProperties invertNormalMapX invertNormalMapY iridescence isParticleMeshPhysicsMaterial lightmapTexture maxSimultaneousLights metadata metallic metallicF0Factor metallicReflectanceColor metallicReflectanceTexture metallicTexture microSurface microSurfaceTexture name onCompiled onDisposeObservable onError opacityTexture parallaxScaleBias pluginManager? pointSize prePassConfiguration reflectanceTexture reflectionColor reflectionTexture reflectivityColor reflectivityTexture reservedDataStore roughness separateCullingPass shadowDepthWrapper sheen sideOrientation specularIntensity state stencil subSurface twoSidedLighting uniqueId unlit useAlphaFresnel useAlphaFromAlbedoTexture useAmbientInGrayScale useAmbientOcclusionFromMetallicTextureRed useAutoMicroSurfaceFromReflectivityMap useHorizonOcclusion useLightmapAsShadowmap useLinearAlphaFresnel useMetallnessFromMetallicTextureBlue useMicroSurfaceFromReflectivityMapAlpha useObjectSpaceNormalMap useOnlyMetallicFromMetallicReflectanceTexture useParallax useParallaxOcclusion useRadianceOcclusion useRadianceOverAlpha useRoughnessFromMetallicTextureAlpha useRoughnessFromMetallicTextureGreen useSpecularOverAlpha zOffset zOffsetUnits AllDirtyFlag AttributesDirtyFlag ClockWiseSideOrientation CounterClockWiseSideOrientation DEFAULT_AO_ON_ANALYTICAL_LIGHTS ForceGLSL ForceVertexOutputInvariant FresnelDirtyFlag ImageProcessingDirtyFlag LightDirtyFlag LIGHTFALLOFF_GLTF LIGHTFALLOFF_PHYSICAL LIGHTFALLOFF_STANDARD LineListDrawMode LineLoopDrawMode LineStripDrawMode MATERIAL_ALPHABLEND MATERIAL_ALPHATEST MATERIAL_ALPHATESTANDBLEND MATERIAL_NORMALBLENDMETHOD_RNM MATERIAL_NORMALBLENDMETHOD_WHITEOUT MATERIAL_OPAQUE MiscDirtyFlag OnEventObservable PBRMATERIAL_ALPHABLEND PBRMATERIAL_ALPHATEST PBRMATERIAL_ALPHATESTANDBLEND PBRMATERIAL_OPAQUE PointFillMode PointListDrawMode PrePassDirtyFlag TextureDirtyFlag TriangleFanDrawMode TriangleFillMode TriangleStripDrawMode WireFrameFillMode

    Accessors

    Methods

    Constructors

    Properties

    _activeEffect?: Effect
    _alpha: number

    The alpha value of the material

    _backFaceCulling: boolean

    Specifies if back face culling is enabled

    _cacheHasRenderTargetTextures: boolean
    _cullBackFaces: boolean

    Specifies if back or front faces should be culled (when culling is enabled)

    _drawWrapper: DrawWrapper
    _eventInfo: object & MaterialPluginDisposed & MaterialPluginHasTexture & MaterialPluginIsReadyForSubMesh & MaterialPluginGetDefineNames & MaterialPluginPrepareEffect & MaterialPluginPrepareDefines & MaterialPluginPrepareUniformBuffer & MaterialPluginBindForSubMesh & MaterialPluginGetAnimatables & MaterialPluginGetActiveTextures & MaterialPluginFillRenderTargetTextures & MaterialPluginHasRenderTargetTextures & MaterialPluginHardBindForSubMesh
    _forceGLSL: boolean
    _imageProcessingConfiguration: ImageProcessingConfiguration
    _imageProcessingObserver: Observer<ImageProcessingConfiguration>
    _isVertexOutputInvariant: boolean
    _needToBindSceneUbo: boolean
    _normalMatrix: Matrix
    _onEffectCreatedObservable: Observable<{ effect: Effect; subMesh: SubMesh }>
    _shaderLanguage: ShaderLanguage

    Shader language used by the material

    _transparencyMode: number

    The transparency mode of the material.

    _useLogarithmicDepth: boolean
    _useVertexPulling: boolean
    albedoColor: Color3

    AKA Diffuse Color in other nomenclature.

    albedoTexture: BaseTexture

    AKA Diffuse Texture in standard nomenclature.

    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)

    alphaCutOff: number

    Defines the alpha limits in alpha test mode.

    ambientColor: Color3

    The color of a material in ambient lighting.

    ambientTexture: BaseTexture

    AKA Occlusion Texture in other nomenclature.

    ambientTextureImpactOnAnalyticalLights: number

    Defines how much the AO map is occluding the analytical lights (point spot...). 1 means it completely occludes it 0 mean it has no impact

    ambientTextureStrength: number

    AKA Occlusion Texture Intensity in other nomenclature.

    animations: Animation[]

    Stores the animations for the material

    anisotropy: PBRAnisotropicConfiguration

    Defines the anisotropic parameters for the material.

    applyDecalMapAfterDetailMap: boolean

    If sets to true, the decal map will be applied after the detail map. Else, it is applied before (default: false)

    baseDiffuseRoughness: number

    OpenPBR Base Diffuse Roughness (roughness of the diffuse lobe).

    baseDiffuseRoughnessTexture: BaseTexture

    OpenPBR Base Diffuse Roughness texture (roughness of the diffuse lobe).

    baseWeight: number

    OpenPBR Base Weight (multiplier to the diffuse and metal lobes).

    baseWeightTexture: BaseTexture

    OpenPBR Base Weight texture (multiplier to the diffuse and metal lobes).

    brdf: PBRBRDFConfiguration

    Defines the BRDF parameters for the material.

    bumpTexture: BaseTexture

    Stores surface normal data used to displace a mesh in a texture.

    checkReadyOnEveryCall: boolean

    Specifies if the ready state should be checked on each call

    checkReadyOnlyOnce: boolean

    Specifies if the ready state should be checked once

    clearCoat: PBRClearCoatConfiguration

    Defines the clear coat layer parameters for the material.

    clipPlane: Plane

    Gets or sets the active clipplane 1

    clipPlane2: Plane

    Gets or sets the active clipplane 2

    clipPlane3: Plane

    Gets or sets the active clipplane 3

    clipPlane4: Plane

    Gets or sets the active clipplane 4

    clipPlane5: Plane

    Gets or sets the active clipplane 5

    clipPlane6: Plane

    Gets or sets the active clipplane 6

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

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

    decalMap: DecalMapConfiguration

    Defines the decal map parameters for the material.

    depthFunction: number

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

    detailMap: DetailMapConfiguration

    Defines the detail map parameters for the material.

    directIntensity: number

    Intensity of the direct lights e.g. the four lights available in your scene. This impacts both the direct diffuse and specular highlights.

    disableBumpMap: boolean

    Debug Control allowing disabling the bump map on this material.

    disableColorWrite: boolean

    Specifies if color writing should be disabled

    disableDepthWrite: boolean

    Specifies if depth writing should be disabled

    disableLighting: boolean

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

    doNotSerialize: boolean

    Specifies if the material should be serialized

    emissiveColor: Color3

    The color emitted from the material.

    emissiveIntensity: number

    Intensity of the emissive part of the material. This helps controlling the emissive effect without modifying the emissive color.

    emissiveTexture: BaseTexture

    Stores the emissive values in a texture.

    enableSpecularAntiAliasing: boolean

    Enables specular anti aliasing in the PBR shader. It will both interacts on the Geometry for analytical and IBL lighting. It also prefilter the roughness map based on the bump values.

    environmentBRDFTexture: BaseTexture

    Let user defines the brdf lookup texture used for IBL. A default 8bit version is embedded but you could point at :

    environmentIntensity: number

    Intensity of the environment e.g. how much the environment will light the object either through harmonics for rough material or through the reflection for shiny ones.

    forceAlphaTest: boolean

    Enforces alpha test in opaque or blend mode in order to improve the performances of some situations.

    forceDepthWrite: boolean

    Specifies if depth writing should be forced

    forceIrradianceInFragment: boolean

    Force the shader to compute irradiance in the fragment shader in order to take bump in account.

    forceNormalForward: boolean

    Force normal to face away from face.

    getRenderTargetTextures: () => SmartArray<RenderTargetTexture>

    Callback triggered to get the render target textures

    id: string

    The ID of the material

    inspectableCustomProperties: IInspectable[]

    List of inspectable custom properties (used by the Inspector)

    invertNormalMapX: boolean

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

    invertNormalMapY: boolean

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

    iridescence: PBRIridescenceConfiguration

    Defines the iridescence layer parameters for the material.

    isParticleMeshPhysicsMaterial: true
    lightmapTexture: BaseTexture

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

    maxSimultaneousLights: number

    Number of Simultaneous lights allowed on the material.

    metadata: any

    Gets or sets user defined metadata

    metallic: number

    Specifies the metallic scalar of the metallic/roughness workflow. Can also be used to scale the metalness values of the metallic texture.

    metallicF0Factor: number

    In metallic workflow, specifies an F0 factor to help configuring the material F0. By default the indexOfrefraction is used to compute F0;

    This is used as a factor against the default reflectance at normal incidence to tweak it.

    F0 = defaultF0 * metallicF0Factor * metallicReflectanceColor; F90 = metallicReflectanceColor;

    metallicReflectanceColor: Color3

    In metallic workflow, specifies an F0 color. By default the F90 is always 1;

    Please note that this factor is also used as a factor against the default reflectance at normal incidence.

    F0 = defaultF0_from_IOR * metallicF0Factor * metallicReflectanceColor F90 = metallicF0Factor;

    metallicReflectanceTexture: BaseTexture

    Defines to store metallicReflectanceColor in RGB and metallicF0Factor in A This is multiplied against the scalar values defined in the material. If useOnlyMetallicFromMetallicReflectanceTexture is true, don't use the RGB channels, only A

    metallicTexture: BaseTexture

    Used to switch from specular/glossiness to metallic/roughness workflow.

    microSurface: number

    AKA Glossiness in other nomenclature.

    microSurfaceTexture: BaseTexture

    Used to enable roughness/glossiness fetch from a separate channel depending on the current mode. Gray Scale represents roughness in metallic mode and glossiness in specular mode.

    name: string

    The name of the material

    onCompiled: (effect: Effect) => void

    Callback triggered when the material is compiled

    onDisposeObservable: Observable<Material>

    An event triggered when the material is disposed

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

    Callback triggered when an error occurs

    opacityTexture: BaseTexture

    Stores the alpha values in a texture. Use luminance if texture.getAlphaFromRGB is true.

    parallaxScaleBias: number

    Controls the scale bias of the parallax mode.

    pluginManager?: MaterialPluginManager

    Plugin manager for this material

    pointSize: number

    Stores the size of points

    prePassConfiguration: PrePassConfiguration

    Defines additional PrePass parameters for the material.

    reflectanceTexture: BaseTexture

    Defines to store reflectanceColor in RGB This is multiplied against the scalar values defined in the material. If both reflectanceTexture and metallicReflectanceTexture textures are provided and useOnlyMetallicFromMetallicReflectanceTexture is false, metallicReflectanceTexture takes priority and reflectanceTexture is not used

    reflectionColor: Color3

    The color reflected from the material.

    reflectionTexture: BaseTexture

    Stores the reflection values in a texture.

    reflectivityColor: Color3

    AKA Specular Color in other nomenclature.

    reflectivityTexture: BaseTexture

    AKA Specular texture in other nomenclature.

    reservedDataStore: any

    For internal use only. Please do not use.

    roughness: number

    Specifies the roughness scalar of the metallic/roughness workflow. Can also be used to scale the roughness values of the metallic texture.

    separateCullingPass: boolean

    Specifies if there should be a separate pass for culling

    shadowDepthWrapper: ShadowDepthWrapper

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

    sheen: PBRSheenConfiguration

    Defines the Sheen parameters for the material.

    sideOrientation: number

    Stores the value for side orientation

    specularIntensity: number

    This is a special control allowing the reduction of the specular highlights coming from the four lights of the scene. Those highlights may not be needed in full environment lighting.

    state: string

    The state of the material

    stencil: MaterialStencilState

    Gives access to the stencil properties of the material

    subSurface: PBRSubSurfaceConfiguration

    Defines the SubSurface parameters for the material.

    twoSidedLighting: boolean

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

    uniqueId: number

    Gets or sets the unique id of the material

    unlit: boolean

    If set to true, no lighting calculations will be applied.

    useAlphaFresnel: boolean

    A fresnel is applied to the alpha of the model to ensure grazing angles edges are not alpha tested. And/Or occlude the blended part. (alpha is converted to gamma to compute the fresnel)

    useAlphaFromAlbedoTexture: boolean

    Specifies that the alpha is coming form the albedo channel alpha channel for alpha blending.

    useAmbientInGrayScale: boolean

    Specifies if the ambient texture contains the ambient occlusion information in its red channel only.

    useAmbientOcclusionFromMetallicTextureRed: boolean

    Specifies if the metallic texture contains the ambient occlusion information in its red channel.

    useAutoMicroSurfaceFromReflectivityMap: boolean

    In case the reflectivity map does not contain the microsurface information in its alpha channel, The material will try to infer what glossiness each pixel should be.

    useHorizonOcclusion: boolean

    This parameters will enable/disable Horizon occlusion to prevent normal maps to look shiny when the normal makes the reflect vector face the model (under horizon).

    useLightmapAsShadowmap: boolean

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

    useLinearAlphaFresnel: boolean

    A fresnel is applied to the alpha of the model to ensure grazing angles edges are not alpha tested. And/Or occlude the blended part. (alpha stays linear to compute the fresnel)

    useMetallnessFromMetallicTextureBlue: boolean

    Specifies if the metallic texture contains the metallness information in its blue channel.

    useMicroSurfaceFromReflectivityMapAlpha: boolean

    Specifies if the reflectivity texture contains the glossiness information in its alpha channel.

    useObjectSpaceNormalMap: boolean

    Allows using an object space normal map (instead of tangent space).

    useOnlyMetallicFromMetallicReflectanceTexture: boolean

    Specifies that only the A channel from metallicReflectanceTexture should be used. If false, both RGB and A channels will be used

    useParallax: boolean

    Allows using the bump map in parallax mode.

    useParallaxOcclusion: boolean

    Allows using the bump map in parallax occlusion mode.

    useRadianceOcclusion: boolean

    This parameters will enable/disable radiance occlusion by preventing the radiance to lit too much the area relying on ambient texture to define their ambient occlusion.

    useRadianceOverAlpha: boolean

    Specifies that the material will keeps the reflection highlights over a transparent surface (only the most luminous ones). A car glass is a good example of that. When the street lights reflects on it you can not see what is behind.

    useRoughnessFromMetallicTextureAlpha: boolean

    Specifies if the metallic texture contains the roughness information in its alpha channel.

    useRoughnessFromMetallicTextureGreen: boolean

    Specifies if the metallic texture contains the roughness information in its green channel. Needs useRoughnessFromMetallicTextureAlpha to be false.

    useSpecularOverAlpha: boolean

    Specifies that the material will keep the specular highlights over a transparent surface (only the most luminous ones). A car glass is a good example of that. When sun reflects on it you can not see what is behind.

    zOffset: number

    Stores the z offset Factor value

    zOffsetUnits: number

    Stores the z offset Units value

    AllDirtyFlag: 127

    The all dirty flag value

    AttributesDirtyFlag: 8

    The dirty attribute flag value

    ClockWiseSideOrientation: 0

    Stores the clock-wise side orientation

    CounterClockWiseSideOrientation: 1

    Stores the counter clock-wise side orientation

    DEFAULT_AO_ON_ANALYTICAL_LIGHTS: number

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

    ForceGLSL: boolean

    Force all the PBR materials to compile to glsl even on WebGPU engines. False by default. This is mostly meant for backward compatibility.

    ForceVertexOutputInvariant: boolean

    If true, all materials will have their vertex output set to invariant (see the vertexOutputInvariant property).

    FresnelDirtyFlag: 4

    The dirty fresnel flag value

    ImageProcessingDirtyFlag: 64

    The dirty image processing flag value

    LightDirtyFlag: 2

    The dirty light flag value

    LIGHTFALLOFF_GLTF: 1

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

    LIGHTFALLOFF_PHYSICAL: 0

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

    LIGHTFALLOFF_STANDARD: 2

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

    LineListDrawMode: 4

    Returns the line list draw mode

    LineLoopDrawMode: 5

    Returns the line loop draw mode

    LineStripDrawMode: 6

    Returns the line strip draw mode

    MATERIAL_ALPHABLEND: 2

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

    MATERIAL_ALPHATEST: 1

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

    MATERIAL_ALPHATESTANDBLEND: 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.

    MATERIAL_NORMALBLENDMETHOD_RNM: 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/

    MATERIAL_NORMALBLENDMETHOD_WHITEOUT: 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/

    MATERIAL_OPAQUE: 0

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

    MiscDirtyFlag: 16

    The dirty misc flag value

    OnEventObservable: Observable<Material>

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

    PBRMATERIAL_ALPHABLEND: 2

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

    PBRMATERIAL_ALPHATEST: 1

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

    PBRMATERIAL_ALPHATESTANDBLEND: 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.

    PBRMATERIAL_OPAQUE: 0

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

    PointFillMode: 2

    Returns the point fill mode

    PointListDrawMode: 3

    Returns the point list draw mode

    PrePassDirtyFlag: 32

    The dirty prepass flag value

    TextureDirtyFlag: 1

    The dirty texture flag value

    TriangleFanDrawMode: 8

    Returns the triangle fan draw mode

    TriangleFillMode: 0

    Returns the triangle fill mode

    TriangleStripDrawMode: 7

    Returns the triangle strip draw mode

    WireFrameFillMode: 1

    Returns the wireframe mode

    Accessors

    • get _disableAlphaBlending(): boolean

      Returns true if alpha blending should be disabled.

      Returns boolean

    • get _hasTransparencyMode(): boolean

      Returns boolean

    • get _transparencyModeIsBlend(): boolean

      Returns boolean

    • get _transparencyModeIsTest(): boolean

      Returns boolean

    • get alpha(): number

      Gets the alpha value of the material

      Returns number

    • set alpha(value: number): void

      Sets the alpha value of the material

      Parameters

      • value: number

      Returns void

    • get alphaMode(): number

      Gets the value of the alpha mode

      Returns number

    • set alphaMode(value: number): void

      Sets the value of the alpha mode.

      Value Type Description
      0 ALPHA_DISABLE
      1 ALPHA_ADD Defines that alpha blending is COLOR=SRC_ALPHA * SRC + DEST, ALPHA=DEST_ALPHA
      2 ALPHA_COMBINE Defines that alpha blending is COLOR=SRC_ALPHA * SRC + (1 - SRC_ALPHA) * DEST, ALPHA=SRC_ALPHA + DEST_ALPHA
      3 ALPHA_SUBTRACT Defines that alpha blending is COLOR=(1 - SRC) * DEST, ALPHA=SRC_ALPHA + DEST_ALPHA
      4 ALPHA_MULTIPLY Defines that alpha blending is COLOR=DEST * SRC, ALPHA=SRC_ALPHA + DEST_ALPHA
      5 ALPHA_MAXIMIZED Defines that alpha blending is COLOR=SRC_ALPHA * SRC + (1 - SRC) * DEST, ALPHA=SRC_ALPHA + DEST_ALPHA
      6 ALPHA_ONEONE Defines that alpha blending is COLOR=SRC + DEST, ALPHA=DEST_ALPHA
      7 ALPHA_PREMULTIPLIED Defines that alpha blending is COLOR=SRC + (1 - SRC_ALPHA) * DEST, ALPHA=SRC_ALPHA + DEST_ALPHA
      8 ALPHA_PREMULTIPLIED_PORTERDUFF Defines that alpha blending is COLOR=SRC + (1 - SRC_ALPHA) * DEST, ALPHA=SRC_ALPHA + (1 - SRC_ALPHA) * DEST_ALPHA
      9 ALPHA_INTERPOLATE Defines that alpha blending is COLOR=CST * SRC + (1 - CST) * DEST, ALPHA=CST_ALPHA * SRC + (1 - CST_ALPHA) * DEST_ALPHA
      10 ALPHA_SCREENMODE Defines that alpha blending is COLOR=SRC + (1 - SRC) * DEST, ALPHA=SRC_ALPHA + (1 - SRC_ALPHA) * DEST_ALPHA
      11 ALPHA_ONEONE_ONEONE Defines that alpha blending is COLOR=SRC + DST, ALPHA=SRC_ALPHA + DEST_ALPHA
      12 ALPHA_ALPHATOCOLOR Defines that alpha blending is COLOR=DEST_ALPHA * SRC + DST, ALPHA=0
      13 ALPHA_REVERSEONEMINUS Defines that alpha blending is COLOR=(1 - DEST) * SRC + (1 - SRC) * DEST, ALPHA=(1 - DEST_ALPHA) * SRC_ALPHA + (1 - SRC_ALPHA) * DEST_ALPHA
      14 ALPHA_SRC_DSTONEMINUSSRCALPHA Defines that alpha blending is ALPHA=SRC + (1 - SRC ALPHA) * DEST, ALPHA=SRC_ALPHA + (1 - SRC ALPHA) * DEST_ALPHA
      15 ALPHA_ONEONE_ONEZERO Defines that alpha blending is COLOR=SRC + DST, ALPHA=SRC_ALPHA
      16 ALPHA_EXCLUSION Defines that alpha blending is COLOR=(1 - DEST) * SRC + (1 - SRC) * DEST, ALPHA=DEST_ALPHA
      17 ALPHA_LAYER_ACCUMULATE Defines that alpha blending is COLOR=SRC_ALPHA * SRC + (1 - SRC ALPHA) * DEST, ALPHA=SRC_ALPHA + (1 - SRC_ALPHA) * DEST_ALPHA
      18 ALPHA_MIN Defines that alpha blending is COLOR=MIN(SRC, DEST), ALPHA=MIN(SRC_ALPHA, DEST_ALPHA)
      19 ALPHA_MAX Defines that alpha blending is COLOR=MAX(SRC, DEST), ALPHA=MAX(SRC_ALPHA, DEST_ALPHA)
      20 ALPHA_DUAL_SRC0_ADD_SRC1xDST Defines that alpha blending uses dual source blending and is COLOR=SRC + SRC1 * DEST, ALPHA=DST_ALPHA

      Parameters

      • value: number

      Returns void

    • get alphaModes(): readonly number[]

      Gets the list of alpha modes (length greater than 1 for multi-targets)

      Returns readonly number[]

    • get backFaceCulling(): boolean

      Gets the culling state

      Returns boolean

    • set backFaceCulling(value: boolean): void

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

      Parameters

      • value: boolean

      Returns void

    • get blockDirtyMechanism(): boolean

      Block the dirty-mechanism for this specific material When set to false after being true the material will be marked as dirty.

      Returns boolean

    • set blockDirtyMechanism(value: boolean): void

      Parameters

      • value: boolean

      Returns void

    • get cameraColorCurves(): ColorCurves

      Returns ColorCurves

    • set cameraColorCurves(value: ColorCurves): void

      Parameters

      • value: ColorCurves

      Returns void

    • get cameraColorCurvesEnabled(): boolean

      Returns boolean

    • set cameraColorCurvesEnabled(value: boolean): void

      Parameters

      • value: boolean

      Returns void

    • get cameraColorGradingEnabled(): boolean

      Returns boolean

    • set cameraColorGradingEnabled(value: boolean): void

      Parameters

      • value: boolean

      Returns void

    • get cameraColorGradingTexture(): BaseTexture

      Returns BaseTexture

    • set cameraColorGradingTexture(value: BaseTexture): void

      Parameters

      • value: BaseTexture

      Returns void

    • get cameraContrast(): number

      Returns number

    • set cameraContrast(value: number): void

      Parameters

      • value: number

      Returns void

    • get cameraExposure(): number

      Returns number

    • set cameraExposure(value: number): void

      Parameters

      • value: number

      Returns void

    • get cameraToneMappingEnabled(): boolean

      Returns boolean

    • set cameraToneMappingEnabled(value: boolean): void

      Parameters

      • value: boolean

      Returns void

    • get canRenderToMRT(): boolean

      Can this material render to several textures at once

      Returns boolean

    • get cullBackFaces(): boolean

      Gets the type of faces that should be culled

      Returns boolean

    • set cullBackFaces(value: boolean): void

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

      Parameters

      • value: boolean

      Returns void

    • get fillMode(): number

      Gets the material fill mode

      Returns number

    • set fillMode(value: number): void

      Sets the material fill mode

      Parameters

      • value: number

      Returns void

    • get fogEnabled(): boolean

      Gets the value of the fog enabled state

      Returns boolean

    • set fogEnabled(value: boolean): void

      Sets the state for enabling fog

      Parameters

      • value: boolean

      Returns void

    • get hasRenderTargetTextures(): boolean

      Gets a boolean indicating that current material needs to register RTT

      Returns boolean

    • get imageProcessingConfiguration(): ImageProcessingConfiguration

      Returns ImageProcessingConfiguration

    • set imageProcessingConfiguration(value: ImageProcessingConfiguration): void

      Parameters

      • value: ImageProcessingConfiguration

      Returns void

    • get indexOfRefraction(): number

      Index of refraction of the material base layer. https://en.wikipedia.org/wiki/List_of_refractive_indices

      This does not only impact refraction but also the Base F0 of Dielectric Materials.

      From dielectric fresnel rules: F0 = square((iorT - iorI) / (iorT + iorI))

      Returns number

    • set indexOfRefraction(value: number): void

      Parameters

      • value: number

      Returns void

    • get invertRefractionY(): boolean

      Controls if refraction needs to be inverted on Y. This could be useful for procedural texture.

      Returns boolean

    • set invertRefractionY(value: boolean): void

      Parameters

      • value: boolean

      Returns void

    • get isFrozen(): boolean

      Specifies if updates for the material been locked

      Returns boolean

    • get isPrePassCapable(): boolean

      Can this material render to prepass

      Returns boolean

    • get isVertexOutputInvariant(): boolean

      Gets or sets the vertex output invariant state Setting this property to true will force the shader compiler to disable some optimization to make sure the vertex output is always calculated the same way across different compilation units. You may need to enable this option if you are seeing some depth artifacts when using a depth pre-pass, for e.g. Note that this may have an impact on performance, so leave this option disabled if not needed.

      Returns boolean

    • set isVertexOutputInvariant(value: boolean): void

      Parameters

      • value: boolean

      Returns void

    • get linkRefractionWithTransparency(): boolean

      This parameters will make the material used its opacity to control how much it is refracting against not. Materials half opaque for instance using refraction could benefit from this control.

      Returns boolean

    • set linkRefractionWithTransparency(value: boolean): void

      Parameters

      • value: boolean

      Returns void

    • get needDepthPrePass(): boolean

      Gets the depth pre-pass value

      Returns boolean

    • set needDepthPrePass(value: boolean): void

      Sets the need depth pre-pass value

      Parameters

      • value: boolean

      Returns void

    • set onBind(callback: (Mesh: AbstractMesh) => void): void

      Called during a bind event

      Parameters

      • callback: (Mesh: AbstractMesh) => void

      Returns void

    • get onBindObservable(): Observable<AbstractMesh>

      An event triggered when the material is bound

      Returns Observable<AbstractMesh>

    • set onDispose(callback: () => void): void

      Called during a dispose event

      Parameters

      • callback: () => void

      Returns void

    • get onEffectCreatedObservable(): Observable<
          { effect: Effect; subMesh: SubMesh },
      >

      An event triggered when the effect is (re)created

      Returns Observable<{ effect: Effect; subMesh: SubMesh }>

    • get onUnBindObservable(): Observable<Material>

      An event triggered when the material is unbound

      Returns Observable<Material>

    • get pointsCloud(): boolean

      Gets the value specifying if point clouds are enabled

      Returns boolean

    • set pointsCloud(value: boolean): void

      Sets the state of point cloud mode

      Parameters

      • value: boolean

      Returns void

    • get realTimeFiltering(): boolean

      Enables realtime filtering on the texture.

      Returns boolean

    • set realTimeFiltering(b: boolean): void

      Parameters

      • b: boolean

      Returns void

    • get realTimeFilteringQuality(): number

      Quality switch for realtime filtering

      Returns number

    • set realTimeFilteringQuality(n: number): void

      Parameters

      • n: number

      Returns void

    • get refractionTexture(): BaseTexture

      Stores the refracted light information in a texture.

      Returns BaseTexture

    • set refractionTexture(value: BaseTexture): void

      Parameters

      • value: BaseTexture

      Returns void

    • get shaderLanguage(): ShaderLanguage

      Gets the shader language used in this material.

      Returns ShaderLanguage

    • get transparencyMode(): number

      Gets the current transparency mode.

      Returns number

    • set transparencyMode(value: number): void

      Sets the transparency mode of the material.

      Value Type Description
      0 OPAQUE
      1 ALPHATEST
      2 ALPHABLEND
      3 ALPHATESTANDBLEND

      Parameters

      • value: number

      Returns void

    • get useGLTFLightFalloff(): boolean

      In order to support the falloff compatibility with gltf, a special mode has been added to reproduce the gltf light falloff.

      Returns boolean

    • set useGLTFLightFalloff(value: boolean): void

      In order to support the falloff compatibility with gltf, a special mode has been added to reproduce the gltf light falloff.

      Parameters

      • value: boolean

      Returns void

    • get useLogarithmicDepth(): boolean

      In case the depth buffer does not allow enough depth precision for your scene (might be the case in large scenes) You can try switching to logarithmic depth.

      Returns boolean

    • set useLogarithmicDepth(value: boolean): void

      Parameters

      • value: boolean

      Returns void

    • get usePhysicalLightFalloff(): boolean

      BJS is using an hardcoded light falloff based on a manually sets up range. In PBR, one way to represents the falloff is to use the inverse squared root algorithm. This parameter can help you switch back to the BJS mode in order to create scenes using both materials.

      Returns boolean

    • set usePhysicalLightFalloff(value: boolean): void

      BJS is using an hardcoded light falloff based on a manually sets up range. In PBR, one way to represents the falloff is to use the inverse squared root algorithm. This parameter can help you switch back to the BJS mode in order to create scenes using both materials.

      Parameters

      • value: boolean

      Returns void

    • get useVertexPulling(): boolean

      Tells the engine to draw geometry using vertex pulling instead of index drawing. This will automatically set the vertex buffers as storage buffers and make them accessible to the vertex shader (WebGPU only).

      Returns boolean

    • set useVertexPulling(value: boolean): void

      Parameters

      • value: boolean

      Returns void

    • get wireframe(): boolean

      Returns boolean

    • set wireframe(value: boolean): void

      Sets the state of wireframe mode

      Parameters

      • value: boolean

      Returns void

    Methods

    • Processes to execute after binding the material to a mesh

      Parameters

      • Optionalmesh: AbstractMesh

        defines the rendered mesh

      • Optionaleffect: Effect

        defines the effect used to bind the material

      • OptionalsubMesh: SubMesh

      Returns void

    • Parameters

      • configuration: ImageProcessingConfiguration

      Returns void

    • Returns void

    • Parameters

      • targetMaterial: Material
      • rootUrl: string

      Returns void

    • Returns boolean

      whether or not there is a usable alpha channel for transparency.

    • Parameters

      • subMesh: SubMesh

      Returns boolean

    • Indicates that we need to re-calculated for all submeshes

      Returns void

    • Indicates that attributes need to be re-calculated for all submeshes

      Returns void

    • Marks all submeshes of a material to indicate that their material defines need to be re-calculated

      Parameters

      • func: (defines: MaterialDefines) => void

        defines a function which checks material defines against the submeshes

      Returns void

    • Indicates that fresnel and misc need to be re-calculated for all submeshes

      Returns void

    • Indicates that fresnel needs to be re-calculated for all submeshes

      Returns void

    • Indicates that image processing needs to be re-calculated for all submeshes

      Returns void

    • Indicates that lights need to be re-calculated for all submeshes

      Returns void

    • Indicates that misc needs to be re-calculated for all submeshes

      Returns void

    • Indicates that prepass needs to be re-calculated for all submeshes

      Returns void

    • Indicates that textures and misc need to be re-calculated for all submeshes

      Returns void

    • Indicates that textures need to be re-calculated for all submeshes

      Returns void

    • Indicates that the scene should check if the rendering now needs a prepass

      Returns void

    • Parameters

      • scene: Scene
      • effect: Effect
      • subMesh: SubMesh
      • Optionalvisibility: number

      Returns boolean

    • Parameters

      • serializationObject: any

      Returns void

    • Returns boolean

      whether or not the alpha value of the albedo texture should be used for alpha blending.

    • This allows you to modify the material without marking it as dirty after every change. This function should be used if you need to make more than one dirty-enabling change to the material - adding a texture, setting a new fill mode and so on. The callback will pass the material as an argument, so you can make your changes to it.

      Parameters

      • callback: (material: this) => void

        the callback to be executed that will update the material

      Returns void

    • Binds the material to the mesh

      Parameters

      • world: Matrix

        defines the world transformation matrix

      • Optionalmesh: Mesh

        defines the mesh to bind the material to

      Returns void

    • Binds the view matrix to the effect

      Parameters

      • effect: Effect

        defines the effect to bind the view matrix to

      • OptionalvariableName: string

        name of the shader variable that will hold the eye position

      Returns void

    • Binds the submesh data.

      Parameters

      • world: Matrix

        The world matrix.

      • mesh: Mesh

        The BJS mesh.

      • subMesh: SubMesh

        A submesh of the BJS mesh.

      Returns void

    • Binds the given normal matrix to the active effect

      Parameters

      • normalMatrix: Matrix

        the matrix to bind

      Returns void

    • Binds the given world matrix to the active effect

      Parameters

      • world: Matrix

        the matrix to bind

      Returns void

    • Binds the view matrix to the effect

      Parameters

      • effect: Effect

        defines the effect to bind the view matrix to

      Returns 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

    • Initializes the uniform buffer layout for the shader.

      Returns void

    • Makes a duplicate of the current material.

      Parameters

      • name: string

        name to use for the new material.

      • OptionalcloneTexturesOnlyOnce: boolean

        if a texture is used in more than one channel (e.g diffuse and opacity), only clone it once and reuse it on the other channels. Default false.

      • OptionalrootUrl: string

        defines the root URL to use to load textures

      Returns PBRMaterial

      cloned material instance

    • Disposes the resources of the material.

      Parameters

      • OptionalforceDisposeEffect: boolean

        Forces the disposal of effects.

      • OptionalforceDisposeTextures: boolean

        Forces the disposal of all textures.

      Returns void

    • Force shader compilation

      Parameters

      • mesh: AbstractMesh

        Define the mesh we want to force the compilation for

      • OptionalonCompiled: (material: Material) => void

        Define a callback triggered when the compilation completes

      • Optionaloptions: Partial<IMaterialCompilationOptions>

        Define the options used to create the compilation

      Returns void

    • Force shader compilation

      Parameters

      • mesh: AbstractMesh

        defines the mesh that will use this material

      • Optionaloptions: Partial<IMaterialCompilationOptions>

        defines additional options for compiling the shaders

      Returns Promise<void>

      a promise that resolves when the compilation completes

    • Locks updates for the material.

      Note: while a material is frozen, the scene can still rebind it at least once per camera render (and again whenever another material was bound in between). What can be skipped while the frozen material stays cached are per-mesh updates performed during a rebind.

      This includes per-mesh morph target influences. If the same frozen material is shared across several meshes that each have different per-mesh morph influences, only the mesh that triggers the rebind updates those values. Other meshes rendered afterward with the same cached frozen material may reuse stale influences and render with the wrong values.

      For that scenario either keep the material unfrozen, clone the material per mesh and freeze each clone, or unfreeze() before changing influences and freeze() again afterwards.

      Returns void

    • Returns an array of the actively used textures.

      Returns BaseTexture[]

      • Array of BaseTextures
    • Returns BaseTexture

      the texture used for the alpha test.

    • Returns the animatable textures. If material have animatable metallic texture, then reflectivity texture will not be returned, even if it has animations.

      Returns IAnimatable[]

      • Array of animatable textures.
    • Gets the meshes bound to the material

      Returns AbstractMesh[]

      an array of meshes bound to the material

    • Returns string

      the name of this material class.

    • Returns the material effect

      Returns Effect

      the effect associated with the material

    • Returns the current scene

      Returns Scene

      a Scene

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

      Parameters

      • texture: BaseTexture

        Base texture to use.

      Returns boolean

      • Boolean specifying if a texture is used in the material.
    • Specifies if the material uses metallic roughness workflow.

      Returns boolean

      boolean specifying if the material uses metallic roughness workflow.

    • Specifies if the material is ready to be used

      Parameters

      • Optionalmesh: AbstractMesh

        defines the mesh to check

      • OptionaluseInstances: boolean

        specifies if instances should be used

      Returns boolean

      a boolean indicating if the material is ready to be used

    • 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.

      • OptionaluseInstances: boolean

        Specifies that instances should be used.

      Returns boolean

      • boolean indicating that the submesh is ready or not.
    • 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

    • Marks the material to indicate that it needs to be re-calculated

      Parameters

      • OptionalforceMaterialDirty: boolean

        Forces the material to be marked as dirty for all components (same as this.markAsDirty(Material.AllDirtyFlag)). You should use this flag if the material is frozen and you want to force a recompilation.

      Returns void

    • Returns boolean

      whether or not this material should be rendered in alpha blend mode.

    • Specifies if the mesh will require alpha blending

      Parameters

      • mesh: AbstractMesh

        defines the mesh to check

      Returns boolean

      a boolean specifying if alpha blending is needed for the mesh

    • Returns boolean

      whether or not this material should be rendered in alpha test mode.

    • Specifies if material alpha testing should be turned on for the mesh

      Parameters

      • mesh: AbstractMesh

        defines the mesh to check

      Returns boolean

      a boolean specifying if alpha testing should be turned on for the mesh

    • Resets the draw wrappers cache for all submeshes that are using this material

      Returns void

    • Serializes this PBR Material.

      Returns any

      • An object with the serialized material.
    • Sets the value of the alpha mode for a specific target index.

      Parameters

      • value: number

        The alpha mode value to set.

      • OptionaltargetIndex: number

        The index of the target to set the alpha mode for. Defaults to 0.

      Returns void

    • Sets the required values to the prepass renderer. It can't be sets when subsurface scattering of this material is disabled. When scene have ability to enable subsurface prepass effect, it will enable.

      Returns boolean

      • If prepass is enabled or not.
    • Returns a string representation of the current material

      Parameters

      • OptionalfullDetails: boolean

        defines a boolean indicating which levels of logging is desired

      Returns string

      a string with material information

    • Unbinds the material from the mesh

      Returns void

    • Unlocks updates for the material

      Returns void

    • Parameters

      • serializationObject: any
      • material: Material
      • scene: Scene
      • rootUrl: string

      Returns void

    • Parses a PBR Material from a serialized object.

      Parameters

      • source: any

        Serialized object.

      • scene: Scene

        BJS scene instance.

      • rootUrl: string

        url for the scene object

      Returns PBRMaterial

      • PBRMaterial
    • Parses the alpha mode from the material data to parse

      Parameters

      • parsedMaterial: any

        defines the material data to parse

      • material: Material

        defines the material to update

      Returns void