OptionalflagsOptional shader flags to compile variants (e.g. USE_TEXTURE_ARRAY)
The properties (uniforms) for the material. Key: Property name as defined in ShaderDefinition layout.
The ID of the shader to use.
OptionalstateOptional GPU state overrides for this specific draw call.
Optionalblending?: BlendingModeOptionalculling?: CullModeOptionaldepthTest?: booleanOptionaldepthWrite?: booleanOptionalisSprite?: booleanWhether this object should be treated as a camera-facing sprite (billboarding).
OptionalskipDepthPrePass?: booleanOpt-out of the GPU depth pre-pass (see DepthPrePassGPU). Materials whose custom shading the
shared depth pipeline cannot faithfully reproduce (custom shaders with world-space vertex
deformation) or geometries that must never occlude (wireframes, sprites) set this to true
so the pre-pass skips them WITHOUT having to maintain a growing list of shaderIds/prefixes
in the pass itself. Note this is independent of depthWrite/transparent -- a material may
still legitimately want to write depth in its OWN pass while staying out of the pre-pass.
Optionaltopology?: TopologyThe primitive topology (e.g., TRIANGLE_LIST or LINE_LIST). Defaults to TRIANGLE_LIST.
Optionaltransparent?: booleanOptionalwireframeMode?: "structural" | "triangles"The wireframe mode. Defaults to "structural".
The textures for the material. Key: Texture name as defined in ShaderDefinition layout.
The RenderManifest is the "order sheet" that a material passes to the renderer to describe its requirements.