bevy/crates
JMS55 730e85b7bc
Meshlet fix software rasterization (#16049)
# Objective
1. Prevent weird glitches with stray pixels scattered around the scene

![image](https://github.com/user-attachments/assets/f12adb38-5996-4dc7-bea6-bd326b7317e1)
2. Prevent weird glitchy full-screen triangles that pop-up and destroy
perf (SW rasterizing huge triangles is slow)

![image](https://github.com/user-attachments/assets/d3705427-13a5-47bc-a54b-756f0409da0b)

## Solution
1. Use floating point math in the SW rasterizer bounding box calculation
to handle negative verticss, and add backface culling
2. Force hardware raster for clusters that clip the near plane, and let
the hardware rasterizer handle the clipping

I also adjusted the SW rasterizer threshold to < 64 pixels (little bit
better perf in my test scene, but still need to do a more comprehensive
test), and enabled backface culling for the hardware raster pipeline.

## Testing

- Did you test these changes? If so, how?
  - Yes, on an example scene. Issues no longer occur.
- 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?
  - Run the meshlet example.
2024-10-23 01:57:03 +02:00
..
bevy_a11y Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_animation Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_app Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_asset Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_audio Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_color Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_core Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_core_pipeline Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_derive Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_dev_tools Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_diagnostic Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_dylib Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_ecs Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_encase_derive Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_gilrs Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_gizmos Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_gltf Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_hierarchy Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_image Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_input Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_internal Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_log Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_macro_utils Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_math Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_mesh Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_mikktspace Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_pbr Meshlet fix software rasterization (#16049) 2024-10-23 01:57:03 +02:00
bevy_picking Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_ptr Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_reflect Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_remote Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_render Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_scene Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_sprite Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_state Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_tasks Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_text Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_time Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_transform Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_ui Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_utils Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_window Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00
bevy_winit Release 0.15.0-rc.1 2024-10-22 22:44:41 +02:00