bevy/crates
JMS55 fe58993577
METIS-based meshlet generation (#16947)
# Objective
Improve DAG building for virtual geometry

## Solution

- Use METIS to group triangles into meshlets which lets us minimize
locked vertices which improves simplification, instead of using meshopt
which prioritizes culling efficiency. Also some other minor tweaks.
- Currently most meshlets have 126 triangles, and not 128. Fixing this
might involve calling METIS recursively ourselves to manually bisect the
graph, not sure. Not going to attempt to fix this in this PR.

## Testing

- Did you test these changes? If so, how?
  - Tested on bunny.glb and cliff.glb
- Are there any parts that need more testing?
  - No
- How can other people (reviewers) test your changes? Is there anything
specific they need to know?
  - Download the new bunny asset, run the meshlet example.

---

## Showcase

New 

![image](https://github.com/user-attachments/assets/68f5d2f0-a4ca-41e1-90d5-35a2c6969c21)

Old

![image](https://github.com/user-attachments/assets/a3d97a09-773d-44b2-9990-25e1f6b51ec9)

---------

Co-authored-by: IceSentry <IceSentry@users.noreply.github.com>
2025-01-05 02:03:26 +00:00
..
bevy_a11y bevy_a11y: Apply #[deny(clippy::allow_attributes, clippy::allow_attributes_without_reason)] (#17093) 2025-01-02 18:45:19 +00:00
bevy_animation bevy_animation: Apply #[deny(clippy::allow_attributes, clippy::allow_attributes_without_reason)] (#17094) 2025-01-02 18:45:05 +00:00
bevy_app Remove Implicit std Prelude from no_std Crates (#17086) 2025-01-03 01:58:43 +00:00
bevy_asset Do not lowercase asset file extensions (#17065) 2025-01-01 00:42:56 +00:00
bevy_audio Prefer Display over Debug (#16112) 2024-12-27 00:40:06 +00:00
bevy_color bevy_color: Apply #![deny(clippy::allow_attributes, clippy::allow_attributes_without_reason)] (#17090) 2025-01-05 02:01:20 +00:00
bevy_core_pipeline Update typos (#17126) 2025-01-03 17:44:26 +00:00
bevy_derive Add benchmarks and compile_fail tests back to workspace (#16858) 2024-12-21 22:30:29 +00:00
bevy_dev_tools Draw the UI debug overlay using the UI renderer (#16693) 2024-12-11 00:49:47 +00:00
bevy_diagnostic Remove bevy_core (#16897) 2024-12-19 18:36:51 +00:00
bevy_dylib Generate links to definition in source code pages on docs.rs and dev-docs.bevyengine.org (#12965) 2024-07-29 23:10:16 +00:00
bevy_ecs Optimize Entities::entity_does_not_exist_error_details_message, remove UnsafeWorldCell from error (#17115) 2025-01-05 02:01:01 +00:00
bevy_encase_derive Rust 1.83, allow -> expect (missing_docs) (#16561) 2024-12-16 23:27:57 +00:00
bevy_gilrs Deny derive_more error feature and replace it with thiserror (#16684) 2024-12-06 17:03:55 +00:00
bevy_gizmos Fix 2D Gizmos not always drawn on top (#17085) 2025-01-05 02:02:30 +00:00
bevy_gltf Prefer Display over Debug (#16112) 2024-12-27 00:40:06 +00:00
bevy_hierarchy Remove Implicit std Prelude from no_std Crates (#17086) 2025-01-03 01:58:43 +00:00
bevy_image Rust 1.83, allow -> expect (missing_docs) (#16561) 2024-12-16 23:27:57 +00:00
bevy_input Scale input to account for deadzones (#17015) 2025-01-03 22:27:59 +00:00
bevy_input_focus Return Result from tab navigation API (#17071) 2025-01-01 04:05:48 +00:00
bevy_internal Rename track_change_detection flag to track_location (#17075) 2025-01-01 18:43:47 +00:00
bevy_log Basic filtering examples for users of the bevy_log. (#16455) 2024-12-29 22:56:40 +00:00
bevy_macro_utils Use one BevyManifest instance in proc macros (#16766) 2024-12-15 15:00:05 +00:00
bevy_math Update typos (#17126) 2025-01-03 17:44:26 +00:00
bevy_mesh Rust 1.83, allow -> expect (missing_docs) (#16561) 2024-12-16 23:27:57 +00:00
bevy_mikktspace Remove Implicit std Prelude from no_std Crates (#17086) 2025-01-03 01:58:43 +00:00
bevy_pbr METIS-based meshlet generation (#16947) 2025-01-05 02:03:26 +00:00
bevy_picking Update typos (#17126) 2025-01-03 17:44:26 +00:00
bevy_ptr Fix MSRVs for standalone crates (#16333) 2024-11-17 09:38:13 +00:00
bevy_reflect bevy_reflect: Apply #[deny(clippy::allow_attributes, clippy::allow_attributes_without_reason)] (#17092) 2025-01-03 22:22:34 +00:00
bevy_remote show these 'fully qualified paths' for bevy_remote's rpc (#16944) 2024-12-31 00:29:27 +00:00
bevy_render Refactor and simplify custom projections (#17063) 2025-01-01 20:44:24 +00:00
bevy_scene Replace map + unwrap_or(true) with is_none_or (#17070) 2024-12-31 20:17:03 +00:00
bevy_sprite Revert "Fix sprite performance regression since retained render world (#17078)" (#17123) 2025-01-04 00:22:18 +00:00
bevy_state Remove Implicit std Prelude from no_std Crates (#17086) 2025-01-03 01:58:43 +00:00
bevy_tasks Remove Implicit std Prelude from no_std Crates (#17086) 2025-01-03 01:58:43 +00:00
bevy_text Revert "Fix sprite performance regression since retained render world (#17078)" (#17123) 2025-01-04 00:22:18 +00:00
bevy_time Use en-us locale for typos (#16037) 2024-10-20 18:55:17 +00:00
bevy_transform Remove Implicit std Prelude from no_std Crates (#17086) 2025-01-03 01:58:43 +00:00
bevy_ui UI Debug Overlay show_hidden and show_clipped options (#17097) 2025-01-02 18:43:14 +00:00
bevy_utils Remove Implicit std Prelude from no_std Crates (#17086) 2025-01-03 01:58:43 +00:00
bevy_window Remove Implicit std Prelude from no_std Crates (#17086) 2025-01-03 01:58:43 +00:00
bevy_winit Simplify sort/max_by calls (#17048) 2024-12-30 22:59:36 +00:00