logo
pub trait Material2d: Asset + RenderAsset {
    fn bind_group(material: &Self::PreparedAsset) -> &BindGroup;
fn bind_group_layout(render_device: &RenderDevice) -> BindGroupLayout; fn vertex_shader(asset_server: &AssetServer) -> Option<Handle<Shader>> { ... }
fn fragment_shader(asset_server: &AssetServer) -> Option<Handle<Shader>> { ... }
fn dynamic_uniform_indices(material: &Self::PreparedAsset) -> &[u32] { ... } }
Expand description

Materials are used alongside Material2dPlugin and MaterialMesh2dBundle to spawn entities that are rendered with a specific Material2d type. They serve as an easy to use high level way to render Mesh2dHandle entities with custom shader logic. For materials that can specialize their RenderPipelineDescriptor based on specific material values, see SpecializedMaterial2d. Material2d automatically implements SpecializedMaterial2d and can be used anywhere that type is used (such as Material2dPlugin).

Required methods

Returns this material’s BindGroup. This should match the layout returned by Material2d::bind_group_layout.

Returns this material’s BindGroupLayout. This should match the BindGroup returned by Material2d::bind_group.

Provided methods

Returns this material’s vertex shader. If None is returned, the default mesh vertex shader will be used. Defaults to None.

Returns this material’s fragment shader. If None is returned, the default mesh fragment shader will be used. Defaults to None.

The dynamic uniform indices to set for the given material’s BindGroup. Defaults to an empty array / no dynamic uniform indices.

Implementors