Class DetailMapConfiguration
Hierarchy (View Summary)
- MaterialPluginBase
- DetailMapConfiguration
Index
Constructors
Properties
Accessors
Methods
Constructors
constructor
-
new DetailMapConfiguration(
material: StandardMaterial | PBRBaseMaterial,
addToPluginList?: boolean,
): DetailMapConfigurationParameters
- material: StandardMaterial | PBRBaseMaterial
- addToPluginList: boolean = true
Returns DetailMapConfiguration
Properties
bump Level
Defines how strong the bump effect from the detail map is Bigger values mean stronger effect
diffuse Blend Level
Defines how strongly the detail diffuse/albedo channel is blended with the regular diffuse/albedo texture Bigger values mean stronger blending
do Not Serialize
Specifies if the material plugin should be serialized, true to skip serialization
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.
roughness Blend Level
Defines how strongly the detail roughness channel is blended with the regular roughness value Bigger values mean stronger blending. Only used with PBR materials
Accessors
is Enabled
Enable or disable the detail map on this material
normal Blend Method
The method used to blend the bump and detail normals together
texture
The detail texture of the material.
Methods
add Fallbacks
-
Add fallbacks to the effect fallbacks list.
Parameters
- defines: MaterialDefines
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: MaterialDefines
bind For Sub Mesh
-
Binds the detail map 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 detail map 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 detail map textures.
Parameters
- activeTextures: BaseTexture[]
defines the list of active textures to update
Returns void
- activeTextures: BaseTexture[]
get Animatables
-
Adds the animatable detail map 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 detail map 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 the detail map uses a texture.
Parameters
- texture: BaseTexture
defines the texture to check
Returns boolean
true if the texture is used by the detail map
- 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
-
isReadyForSubMesh(
defines: MaterialDetailMapDefines,
scene: Scene,
engine: AbstractEngine,
): booleanChecks whether the detail map textures are ready for the sub mesh.
Parameters
- defines: MaterialDetailMapDefines
defines the material defines to inspect
- scene: Scene
defines the scene to use for readiness checks
- engine: AbstractEngine
defines the engine to use for readiness checks
Returns boolean
true if the detail map is ready
- defines: MaterialDetailMapDefines
parse
-
Parses a plugin 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
-
Updates the material defines for the detail map.
Parameters
- defines: MaterialDetailMapDefines
defines the material defines to update
- scene: Scene
defines the scene to use for texture checks
Returns void
- defines: MaterialDetailMapDefines
prepare Defines Before Attributes
-
prepareDefinesBeforeAttributes(
_defines: MaterialDefines,
_scene: Scene,
_mesh: AbstractMesh,
): voidSets the defines for the next rendering. Called before PrepareDefinesForAttributes is called.
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
serialize
-
Serializes this plugin configuration.
Returns any
- An object with the serialized config.
Plugin that implements the detail map component of a material
Inspired from: Unity: https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@9.0/manual/Mask-Map-and-Detail-Map.html and https://docs.unity3d.com/Manual/StandardShaderMaterialParameterDetail.html Unreal: https://docs.unrealengine.com/en-US/Engine/Rendering/Materials/HowTo/DetailTexturing/index.html Cryengine: https://docs.cryengine.com/display/SDKDOC2/Detail+Maps