Skip to content

Large crate rework using component hooks and task pools#29

Open
vertesians wants to merge 8 commits intoFraserLee:mainfrom
vertesians:rework
Open

Large crate rework using component hooks and task pools#29
vertesians wants to merge 8 commits intoFraserLee:mainfrom
vertesians:rework

Conversation

@vertesians
Copy link
Copy Markdown
Contributor

Uh, where do I begin...

  • There's now a new type of Asset called a Billboard. Billboards are created from a Handle<Imge> (and optionally a Handle<TextureAtlasLayout>) and handle creating the mesh and other tasks needed to prepare a 3D sprite. A Handle<Billboard> is associated with an entity by inserting the Sprite3dBillboard component.
  • Sprite3dBuilder, Sprite3dParams, and Sprite3dBundle have been removed.
  • The crate no longer handles caching, users should clone Handle<Billboard> instead.
  • It's no longer necessary for users to check and wait for images to load before spawning 3d sprites, the crate handles all the details internally.
  • Previously, Sprite3dBundle would include defaults for StandardMaterial that worked well with 3d sprites. Since the bundle was removed, the utility function bevy_sprite3d::utils::material was added to provide a convenient source for these defaults. Sprite3dBillboard inserts a preconfigured MeshMaterial3d if not overriden, so you usually don't need to use it.

I don't know if this PR will be accepted since it changes so much, but might as well put it out there.

@FraserLee
Copy link
Copy Markdown
Owner

FraserLee commented Dec 29, 2024

Thanks for the work on this. I'm pretty busy at the moment, but @beaumccartney should be able to take a look at this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants