bevy/crates/bevy_pbr/src/meshlet
JMS55 4f20faaa43
Meshlet rendering (initial feature) (#10164)
# Objective
- Implements a more efficient, GPU-driven
(https://github.com/bevyengine/bevy/issues/1342) rendering pipeline
based on meshlets.
- Meshes are split into small clusters of triangles called meshlets,
each of which acts as a mini index buffer into the larger mesh data.
Meshlets can be compressed, streamed, culled, and batched much more
efficiently than monolithic meshes.


![image](https://github.com/bevyengine/bevy/assets/47158642/cb2aaad0-7a9a-4e14-93b0-15d4e895b26a)

![image](https://github.com/bevyengine/bevy/assets/47158642/7534035b-1eb7-4278-9b99-5322e4401715)

# Misc
* Future work: https://github.com/bevyengine/bevy/issues/11518
* Nanite reference:
https://advances.realtimerendering.com/s2021/Karis_Nanite_SIGGRAPH_Advances_2021_final.pdf
Two pass occlusion culling explained very well:
https://medium.com/@mil_kru/two-pass-occlusion-culling-4100edcad501

---------

Co-authored-by: Ricky Taylor <rickytaylor26@gmail.com>
Co-authored-by: vero <email@atlasdostal.com>
Co-authored-by: François <mockersf@gmail.com>
Co-authored-by: atlas dostal <rodol@rivalrebels.com>
2024-03-25 19:08:27 +00:00
..
asset.rs Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
copy_material_depth.wgsl Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
cull_meshlets.wgsl Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
downsample_depth.wgsl Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
dummy_visibility_buffer_resolve.wgsl Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
from_mesh.rs Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
gpu_scene.rs Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
material_draw_nodes.rs Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
material_draw_prepare.rs Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
meshlet_bindings.wgsl Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
meshlet_mesh_material.wgsl Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
meshlet_preview.png Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
mod.rs Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
persistent_buffer_impls.rs Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
persistent_buffer.rs Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
pipelines.rs Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
visibility_buffer_raster_node.rs Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
visibility_buffer_raster.wgsl Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
visibility_buffer_resolve.wgsl Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
write_index_buffer.wgsl Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00