• Public
  • Public/Protected
  • All

Plugin that implements the anisotropic component of the PBR material





direction: Vector2

Defines if the effect is along the tangents, bitangents or in between. By default, the effect is "stretching" the highlights along the tangents.

intensity: number

Defines the anisotropy strength (between 0 and 1) it defaults to 1.

isEnabled: boolean

Defines if the anisotropy is enabled in the material.

legacy: boolean

Defines if the anisotropy is in legacy mode for backwards compatibility before 6.4.0.

markAllDefinesAsDirty: (() => void)

Type declaration

    • (): void
    • Helper function to mark defines as being dirty.

      Returns void

name: string

Defines the name of the plugin

priority: number

Defines the priority of the plugin. Lower numbers run first.

registerForExtraEvents: boolean

Indicates that this plugin should be notified for the extra events (HasRenderTargetTextures / FillRenderTargetTextures / HardBindForSubMesh)

Stores the anisotropy values in a texture. rg is direction (like normal from -1 to 1) b is a intensity


  • get angle(): number
  • set angle(value: number): void
  • Gets the anisotropy angle value in radians.

    Returns number

    the anisotropy angle value in radians.

  • Sets the anisotropy direction as an angle.


    • value: number

    Returns void


  • addFallbacks(defines: MaterialAnisotropicDefines, fallbacks: EffectFallbacks, currentRank: number): number
  • Add fallbacks to the effect fallbacks list.


    • defines: MaterialAnisotropicDefines
    • fallbacks: EffectFallbacks
    • currentRank: number

    Returns number

    the new fallback rank.

  • collectDefines(defines: {}): void
  • Collects all defines.


    • defines: {}

      The object to append to.

      • [name: string]: { default: any; type: string }
        • default: any
        • type: string

    Returns void

  • Makes a duplicate of the current configuration into another one.


    Returns void

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


    • Optional forceDisposeTextures: boolean

    Returns void

  • Gets the attributes used by the plugin.


    • attributes: string[]

      list that the attribute names should be added to.

    • scene: Scene

      the scene that the material belongs to.

    • mesh: AbstractMesh

      the mesh being rendered.

    Returns void

  • getClassName(): string
  • Gets the current class name useful for serialization or dynamic coding.

    Returns string

    The class name.

  • getCustomCode(shaderType: string): Nullable<{}>
  • Returns a list of custom shader code fragments to customize the shader.


    • shaderType: string

      "vertex" or "fragment"

    Returns Nullable<{}>

    null if no code to be added, or a list of pointName => code. Note that pointName can also be a regular expression if it starts with a !. In that case, the string found by the regular expression (if any) will be replaced by the code provided.

  • getSamplers(samplers: string[]): void
  • Gets the samplers used by the plugin.


    • samplers: string[]

    Returns void

  • getUniformBuffersNames(ubos: string[]): void
  • Gets the uniform buffers names added by the plugin.


    • ubos: string[]

      list that the ubo names should be added to.

    Returns void

  • getUniforms(): { fragment?: string; ubo?: { name: string; size: number; type: string }[]; vertex?: string }
  • Gets the description of the uniforms to add to the ubo (if engine supports ubos) or to inject directly in the vertex/fragment shaders (if engine does not support ubos)

    Returns { fragment?: string; ubo?: { name: string; size: number; type: string }[]; vertex?: string }

    the description of the uniforms

    • Optional fragment?: string
    • Optional ubo?: { name: string; size: number; type: string }[]
    • Optional vertex?: string
  • Binds the material data (this function is called even if mustRebind() returns false)


    • uniformBuffer: UniformBuffer

      defines the Uniform buffer to fill in.

    • scene: Scene

      defines the scene the material belongs to.

    • engine: Engine

      defines the engine the material belongs to.

    • subMesh: SubMesh

      the submesh to bind data for

    Returns void

  • hasRenderTargetTextures(): boolean
  • Gets a boolean indicating that current material needs to register RTT

    Returns boolean

    true if this uses a render target otherwise false.

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


    Returns boolean

    • Boolean specifying if a texture is used in the material.
  • isReadyForSubMesh(defines: MaterialAnisotropicDefines, scene: Scene): boolean
  • Specifies that the submesh is ready to be used.


    • defines: MaterialAnisotropicDefines
    • scene: Scene

    Returns boolean

    • boolean indicating that the submesh is ready or not.
  • parse(source: any, scene: Scene, rootUrl: string): void
  • Parses a anisotropy Configuration from a serialized object.


    • source: any

      Serialized object.

    • scene: Scene

      Defines the scene we are parsing for

    • rootUrl: string

      Defines the rootUrl to load from

    Returns void

  • prepareDefinesBeforeAttributes(defines: MaterialAnisotropicDefines, scene: Scene, mesh: AbstractMesh): void
  • serialize(): any
  • Serializes this clear coat configuration.

    Returns any

    • An object with the serialized config.


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