bevy_material (#22426)

# Objective

- extract material infrastructure to be usable for scene description
without a renderer
- rework of #21543 on top of #22408, you can view a clean diff here:
https://github.com/tychedelia/bevy/compare/type-erase-more-materials...atlv24:ad/material2?expand=1
- this is the culmination of numerous crate splits and refactors leading
up to this point, and the another step towards shared 2d and 3d
rendering infrastructure deduplication.

## Solution

- new crate bevy_material with MaterialProperties struct that lets one
define when a material draws, how it behaves, what shaders it uses,
specialization functions, and bind group layouts expected.

## Testing

---------

Co-authored-by: charlotte 🌸 <charlotte.c.mcelwain@gmail.com>
Co-authored-by: Daniel Skates <zeophlite@gmail.com>
This commit is contained in:
atlv
2026-01-13 13:41:06 -08:00
committed by GitHub
parent eb1aaba895
commit ff376dea7c
58 changed files with 1229 additions and 611 deletions
+1
View File
@@ -84,6 +84,7 @@ This is the complete `bevy` cargo feature list, without "profiles" or "collectio
|bevy_input_focus|Enable input focus subsystem|
|bevy_light|Provides light types such as point lights, directional lights, spotlights.|
|bevy_log|Enable integration with `tracing` and `log`|
|bevy_material|Provides materials.|
|bevy_mesh|Provides a mesh format and some primitive meshing routines.|
|bevy_mikktspace|Provides vertex tangent generation for use with bevy_mesh.|
|bevy_pbr|Adds PBR rendering|