Material class abstract
Base class for shading a MeshPrimitive.
A material owns the fragment shader plus any per-material parameters (colors, factors, textures) bound when the primitive is drawn. The built-in subclasses are UnlitMaterial (constant color / texture) and PhysicallyBasedMaterial (PBR metallic-roughness with image-based lighting). Custom subclasses can be implemented by overriding bind and supplying their own fragment shader.
The default bind enables back-face culling with counter-clockwise winding, matching the glTF coordinate convention.
- Implementers
Constructors
- Material()
Properties
- doubleSided ↔ bool
-
Whether to render both faces of triangles drawn with this material
(glTF's
material.doubleSided). When true, bind disables back-face culling so the geometry is visible from both sides; otherwise back faces are culled. Defaults to false. The runtime importer sets it from the glTF material.getter/setter pair - fragmentShader → Shader
-
The fragment shader used when rendering geometry with this material.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
bind(
RenderPass pass, HostBuffer transientsBuffer, Lighting lighting) → void - Binds this material's render-pass state, uniforms, and textures.
-
isOpaque(
) → bool - Whether geometry rendered with this material is fully opaque.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
setFragmentShader(
Shader shader) → void -
Assigns the fragment
shaderused when this material is drawn. -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
fromFlatbuffer(
Material fbMaterial, List< Texture> textures) → Material -
Constructs the appropriate concrete Material subclass for the
supplied flatbuffer material description, resolving texture
indices against
textures. -
getBlackPlaceholderTexture(
) → Texture - Returns a 1×1 opaque-black texture, lazily created on first use.
-
getBrdfLutTexture(
) → Texture - Returns the precomputed BRDF lookup texture used by the PBR fragment shader for environment-map specular sampling.
-
getDefaultEnvironmentMap(
) → EnvironmentMap - Returns the package's built-in procedural "studio" image-based lighting environment (see EnvironmentMap.studio), built once and memoized.
-
getNormalPlaceholderTexture(
) → Texture -
Returns a 1×1 "flat" tangent-space normal texture (
(0.5, 0.5, 1)), lazily created on first use. -
getWhitePlaceholderTexture(
) → Texture - Returns a 1×1 opaque-white texture, lazily created on first use.
-
initializeStaticResources(
) → Future< void> - Loads the bundled BRDF lookup texture used by the PBR fragment shader's split-sum specular IBL.
-
normalPlaceholder(
Texture? texture) → Texture -
Returns
textureif non-null, otherwise getNormalPlaceholderTexture. -
whitePlaceholder(
Texture? texture) → Texture -
Returns
textureif non-null, otherwise getWhitePlaceholderTexture.