Class PBRAnisotropicConfiguration
Hierarchy (View Summary)
- MaterialPluginBase
- PBRAnisotropicConfiguration
Index
Constructors
Properties
Accessors
Methods
Constructors
constructor
-
new PBRAnisotropicConfiguration(
material: PBRBaseMaterial,
addToPluginList?: boolean,
): PBRAnisotropicConfigurationParameters
- material: PBRBaseMaterial
- addToPluginList: boolean = true
Returns PBRAnisotropicConfiguration
Properties
direction
Defines if the effect is along the tangents, bitangents or in between. By default, the effect is "stretching" the highlights along the tangents.
do Not Serialize
Specifies if the material plugin should be serialized, true to skip serialization
intensity
Defines the anisotropy strength (between 0 and 1) it defaults to 1.
Readonlymark All Defines As Dirty
Helper function to mark defines as being dirty.
name
Defines the name of the plugin
priority
Defines the priority of the plugin. Lower numbers run first.
register For Extra Events
Indicates that this plugin should be notified for the extra events (HasRenderTargetTextures / FillRenderTargetTextures / HardBindForSubMesh)
resolve Includes
Indicates that any #include directive in the plugin code must be replaced by the corresponding code.
Accessors
angle
-
get angle(): number
Gets the anisotropy angle value in radians.
Returns number
the anisotropy angle value in radians.
-
set angle(value: number): void
Sets the anisotropy direction as an angle.
Parameters
- value: number
Returns void
is Enabled
Defines if the anisotropy is enabled in the material.
legacy
Defines if the anisotropy is in legacy mode for backwards compatibility before 6.4.0.
texture
Stores the anisotropy values in a texture. rg is direction (like normal from -1 to 1) b is a intensity
Methods
add Fallbacks
-
addFallbacks(
defines: MaterialAnisotropicDefines,
fallbacks: EffectFallbacks,
currentRank: number,
): numberAdd fallbacks to the effect fallbacks list.
Parameters
- defines: MaterialAnisotropicDefines
defines the Base texture to use.
- fallbacks: EffectFallbacks
defines the current fallback list.
- currentRank: number
defines the current fallback rank.
Returns number
the new fallback rank.
- defines: MaterialAnisotropicDefines
bind For Sub Mesh
-
Binds anisotropy data for a sub mesh.
Parameters
- uniformBuffer: UniformBuffer
defines the uniform buffer to update
- scene: Scene
defines the scene to use for texture binding
Returns void
- uniformBuffer: UniformBuffer
collect Defines
-
Collects all defines.
Parameters
- defines: { [name: string]: { default: any; type: string } }
The object to append to.
Returns void
- defines: { [name: string]: { default: any; type: string } }
copy To
-
Makes a duplicate of the current configuration into another one.
Parameters
- plugin: MaterialPluginBase
define the config where to copy the info
Returns void
- plugin: MaterialPluginBase
dispose
-
Disposes the anisotropy textures.
Parameters
OptionalforceDisposeTextures: booleandefines whether to dispose the textures
Returns void
fill Render Target Textures
-
Fills the list of render target textures.
Parameters
- _renderTargets: SmartArray<RenderTargetTexture>
the list of render targets to update
Returns void
- _renderTargets: SmartArray<RenderTargetTexture>
get Active Textures
-
Adds the active anisotropy textures.
Parameters
- activeTextures: BaseTexture[]
defines the list of active textures to update
Returns void
- activeTextures: BaseTexture[]
get Animatables
-
Adds the animatable anisotropy textures.
Parameters
- animatables: IAnimatable[]
defines the list of animatables to update
Returns void
- animatables: IAnimatable[]
get Attributes
-
Gets the attributes used by the plugin.
Parameters
- _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
- _attributes: string[]
get Class Name
-
Gets the current class name useful for serialization or dynamic coding.
Returns string
The class name.
get Custom Code
-
getCustomCode(
_shaderType: string,
_shaderLanguage?: ShaderLanguage,
): Nullable<{ [pointName: string]: string }>Returns a list of custom shader code fragments to customize the shader.
Parameters
- _shaderType: string
"vertex" or "fragment"
- _shaderLanguage: ShaderLanguage = ShaderLanguage.GLSL
The shader language to use.
Returns Nullable<{ [pointName: string]: string }>
null if no code to be added, or a list of pointName => code. Note that
pointNamecan 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. - _shaderType: string
get Samplers
-
Adds the anisotropy sampler names.
Parameters
- samplers: string[]
defines the list of sampler names to update
Returns void
- samplers: string[]
get Uniform Buffers Names
-
Gets the uniform buffers names added by the plugin.
Parameters
- _ubos: string[]
list that the ubo names should be added to.
Returns void
- _ubos: string[]
get Uniforms
-
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
hard Bind For Sub Mesh
-
hardBindForSubMesh(
_uniformBuffer: UniformBuffer,
_scene: Scene,
_engine: AbstractEngine,
_subMesh: SubMesh,
): voidBinds the material data (this function is called even if mustRebind() returns false)
Parameters
- _uniformBuffer: UniformBuffer
defines the Uniform buffer to fill in.
- _scene: Scene
defines the scene the material belongs to.
- _engine: AbstractEngine
defines the engine the material belongs to.
- _subMesh: SubMesh
the submesh to bind data for
Returns void
- _uniformBuffer: UniformBuffer
has Render Target Textures
-
Gets a boolean indicating that current material needs to register RTT
Returns boolean
true if this uses a render target otherwise false.
has Texture
-
Checks whether anisotropy uses a texture.
Parameters
- texture: BaseTexture
defines the texture to check
Returns boolean
true if the texture is used by anisotropy
- texture: BaseTexture
is Compatible
-
Gets a boolean indicating that the plugin is compatible with a given shader language.
Returns boolean
true if the plugin is compatible with the shader language
is Ready For Sub Mesh
-
Checks whether the anisotropy textures are ready for the sub mesh.
Parameters
- defines: MaterialAnisotropicDefines
defines the material defines to inspect
- scene: Scene
defines the scene to use for readiness checks
Returns boolean
true if anisotropy is ready
- defines: MaterialAnisotropicDefines
parse
-
Parses a anisotropy Configuration from a serialized object.
Parameters
- source: any
Serialized object.
- scene: Scene
Defines the scene we are parsing for
- rootUrl: string
Defines the rootUrl to load from
Returns void
- source: any
prepare Defines
-
Sets the defines for the next rendering
Parameters
- _defines: MaterialDefines
the list of "defines" to update.
- _scene: Scene
defines the scene to the material belongs to.
- _mesh: AbstractMesh
the mesh being rendered
Returns void
- _defines: MaterialDefines
prepare Defines Before Attributes
-
prepareDefinesBeforeAttributes(
defines: MaterialAnisotropicDefines,
scene: Scene,
mesh: AbstractMesh,
): voidUpdates shader defines for anisotropy before attributes are processed.
Parameters
- defines: MaterialAnisotropicDefines
defines the material defines to update
- scene: Scene
defines the scene to use for texture checks
- mesh: AbstractMesh
defines the mesh to inspect for tangent data
Returns void
- defines: MaterialAnisotropicDefines
serialize
-
Serializes this plugin configuration.
Returns any
- An object with the serialized config.
Plugin that implements the anisotropic component of the PBR material