UnlitMaterial class Materials

A material that draws geometry with a flat color or texture, ignoring scene lighting.

Useful for UI overlays, debug visualization, or stylized rendering. The final color is baseColorFactor * baseColorTexture, optionally blended with the per-vertex color via vertexColorWeight.

Wraps the UnlitFragment shader from the base shader library.

Inheritance

Constructors

UnlitMaterial({TextureSource? colorTexture})
Creates an UnlitMaterial, optionally textured.

Properties

alphaMode AlphaMode
How the material's alpha is interpreted. AlphaMode.opaque ignores alpha; AlphaMode.blend routes the material through the depth-sorted translucent pass with alpha blending (use for widget textures and other surfaces with transparency).
getter/setter pair
baseColorFactor ↔ Vector4
Linear RGBA tint multiplied with baseColorTexture.
getter/setter pair
baseColorTexture TextureSource?
The base color texture, sampled and multiplied by baseColorFactor.
getter/setter pair
baseColorTextureTexCoord int
Texture-coordinate channel used by baseColorTexture.
getter/setter pair
baseColorTextureTransform TextureTransform
UV transform applied to baseColorTexture.
getter/setter pair
depthBias double
World-space offset toward the camera used for coplanar surface details. Positive values keep an overlay in front of its supporting surface without modifying its node transform. Zero and negative values leave the draw position unchanged. A fixed world offset provides fewer depth-buffer units as camera distance grows, so distant coplanar surfaces may need a larger value.
getter/setter pairinherited
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 pairinherited
fragmentShader Shader
The fragment shader used when rendering geometry with this material.
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
name String
The name of this material, used for identification.
getter/setter pairinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
sceneInputs Set<RenderInput>
Per-frame engine inputs this material samples, produced only when a visible material asks for them: RenderInput.depth binds the linear scene depth of the opaque geometry (forcing the depth prepass), and RenderInput.opaqueSceneColor binds the accumulated scene color behind the current draw, and RenderInput.filteredSceneColor adds its roughness-filtered atlas. Together they enable refraction, depth-fade absorption, shoreline foam, and soft-particle style effects on translucent surfaces. The base material requests nothing; a .fmat material declares these with engine_inputs:.
no setterinherited
vertexColorWeight double
How strongly per-vertex colors influence the final color. 0 disables vertex color contribution; 1 (the default) fully applies it.
getter/setter pair

Methods

bind(RenderPass pass, TransientWriter transientsBuffer, Lighting lighting) → void
Binds this material's render-pass state, uniforms, and textures.
override
isOpaque() bool
Whether geometry rendered with this material is fully opaque.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
setFragmentShader(Shader shader) → void
Assigns the fragment shader used when this material is drawn.
inherited
setFragmentShaderName(String name, {String? cubeName}) → void
Assigns the fragment shader by name from baseShaderLibrary.
inherited
setRadianceCubeFragmentShader(Shader? shader) → void
Assigns the already-loaded variant built with FLUTTER_SCENE_RADIANCE_CUBE, the counterpart of setFragmentShader for a material that samples the environment.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited