bevy/crates/bevy_pbr/src/meshlet
JMS55 9cc7e7c080
Meshlet screenspace-derived tangents (#15084)
* Save 16 bytes per vertex by calculating tangents in the shader at
runtime, rather than storing them in the vertex data.
* Based on https://jcgt.org/published/0009/03/04,
https://www.jeremyong.com/graphics/2023/12/16/surface-gradient-bump-mapping.
* Fixed visbuffer resolve to use the updated algorithm that flips ddy
correctly
* Added some more docs about meshlet material limitations, and some
TODOs about transforming UV coordinates for the future.


![image](https://github.com/user-attachments/assets/222d8192-8c82-4d77-945d-53670a503761)

For testing add a normal map to the bunnies with StandardMaterial like
below, and then test that on both main and this PR (make sure to
download the correct bunny for each). Results should be mostly
identical.

```rust
normal_map_texture: Some(asset_server.load_with_settings(
    "textures/BlueNoise-Normal.png",
    |settings: &mut ImageLoaderSettings| settings.is_srgb = false,
)),
```
2024-09-29 18:39:25 +00:00
..
asset.rs Meshlet screenspace-derived tangents (#15084) 2024-09-29 18:39:25 +00:00
cull_clusters.wgsl Meshlet software raster + start of cleanup (#14623) 2024-08-26 17:54:34 +00:00
downsample_depth.wgsl Meshlet software raster + start of cleanup (#14623) 2024-08-26 17:54:34 +00:00
dummy_visibility_buffer_resolve.wgsl Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
fill_cluster_buffers.wgsl Meshlet software raster + start of cleanup (#14623) 2024-08-26 17:54:34 +00:00
from_mesh.rs Meshlet screenspace-derived tangents (#15084) 2024-09-29 18:39:25 +00:00
instance_manager.rs Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
material_pipeline_prepare.rs Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
material_shade_nodes.rs Meshlet software raster + start of cleanup (#14623) 2024-08-26 17:54:34 +00:00
meshlet_bindings.wgsl Meshlet screenspace-derived tangents (#15084) 2024-09-29 18:39:25 +00:00
meshlet_mesh_manager.rs Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
meshlet_mesh_material.wgsl Meshlet misc (#13761) 2024-06-10 13:06:08 +00:00
meshlet_preview.png Meshlet rendering (initial feature) (#10164) 2024-03-25 19:08:27 +00:00
mod.rs Meshlet software raster + start of cleanup (#14623) 2024-08-26 17:54:34 +00:00
persistent_buffer_impls.rs Meshlet screenspace-derived tangents (#15084) 2024-09-29 18:39:25 +00:00
persistent_buffer.rs Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
pipelines.rs Meshlet software raster + start of cleanup (#14623) 2024-08-26 17:54:34 +00:00
remap_1d_to_2d_dispatch.wgsl Meshlet software raster + start of cleanup (#14623) 2024-08-26 17:54:34 +00:00
resolve_render_targets.wgsl More triangles/vertices per meshlet (#15023) 2024-09-08 17:55:57 +00:00
resource_manager.rs Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
visibility_buffer_hardware_raster.wgsl More triangles/vertices per meshlet (#15023) 2024-09-08 17:55:57 +00:00
visibility_buffer_raster_node.rs Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
visibility_buffer_resolve.wgsl Meshlet screenspace-derived tangents (#15084) 2024-09-29 18:39:25 +00:00
visibility_buffer_software_raster.wgsl More triangles/vertices per meshlet (#15023) 2024-09-08 17:55:57 +00:00