bevy/assets/shaders
charlotte 181445c56b
Add support for experimental WESL shader source (#17953)
# Objective

WESL's pre-MVP `0.1.0` has been
[released](https://docs.rs/wesl/latest/wesl/)!

Add support for WESL shader source so that we can begin playing and
testing WESL, as well as aiding in their development.

## Solution

Adds a `ShaderSource::WESL` that can be used to load `.wesl` shaders.

Right now, we don't support mixing `naga-oil`. Additionally, WESL
shaders currently need to pass through the naga frontend, which the WESL
team is aware isn't great for performance (they're working on compiling
into naga modules). Also, since our shaders are managed using the asset
system, we don't currently support using file based imports like `super`
or package scoped imports. Further work will be needed to asses how we
want to support this.

---

## Showcase

See the `shader_material_wesl` example. Be sure to press space to
activate party mode (trigger conditional compilation)!


https://github.com/user-attachments/assets/ec6ad19f-b6e4-4e9d-a00f-6f09336b08a4
2025-03-09 19:26:55 +00:00
..
animate_shader.wgsl update shader imports (#10180) 2023-10-21 11:51:58 +00:00
array_texture.wgsl Remove unused mip_bias parameter from apply_normal_mapping (#13752) 2024-06-10 13:00:34 +00:00
automatic_instancing.wgsl Add user supplied mesh tag (#17648) 2025-02-10 22:38:13 +00:00
bindless_material.wgsl Use global binding arrays for bindless resources. (#17898) 2025-02-21 05:55:36 +00:00
cubemap_unlit.wgsl Swap material and mesh bind groups (#10485) 2023-11-28 22:26:22 +00:00
custom_clustered_decal.wgsl Implement basic clustered decal projectors. (#17315) 2025-01-26 20:13:39 +00:00
custom_gltf_2d.wgsl Normalise matrix naming (#13489) 2024-06-03 16:56:53 +00:00
custom_material_2d.wgsl Fix binding group in custom_material_2d.wgsl (#10841) 2023-12-02 22:21:53 +00:00
custom_material_import.wgsl fix custom shader imports (#10030) 2023-10-06 01:34:57 +00:00
custom_material_screenspace_texture.wgsl Swap material and mesh bind groups (#10485) 2023-11-28 22:26:22 +00:00
custom_material.frag Swap material and mesh bind groups (#10485) 2023-11-28 22:26:22 +00:00
custom_material.vert examples(shaders/glsl): Update GLSL Shader Example Camera View uniform (#15865) 2024-10-19 01:08:55 +00:00
custom_material.wesl Add support for experimental WESL shader source (#17953) 2025-03-09 19:26:55 +00:00
custom_material.wgsl Swap material and mesh bind groups (#10485) 2023-11-28 22:26:22 +00:00
custom_phase_item.wgsl Allow phase items not associated with meshes to be binned. (#14029) 2024-06-27 16:13:03 +00:00
custom_stencil.wgsl Add a custom render phase example (#16916) 2025-02-10 21:17:37 +00:00
custom_ui_material.wgsl ui_material example webgl2 fix (#17852) 2025-02-13 20:52:26 +00:00
custom_vertex_attribute.wgsl Normalise matrix naming (#13489) 2024-06-03 16:56:53 +00:00
extended_material.wgsl Swap material and mesh bind groups (#10485) 2023-11-28 22:26:22 +00:00
fallback_image_test.wgsl Swap material and mesh bind groups (#10485) 2023-11-28 22:26:22 +00:00
game_of_life.wgsl Fix example game of life (#12897) 2024-04-08 17:19:07 +00:00
gpu_readback.wgsl Gpu readback (#15419) 2024-09-30 17:28:55 +00:00
instancing.wgsl Normalise matrix naming (#13489) 2024-06-03 16:56:53 +00:00
irradiance_volume_voxel_visualization.wgsl Cluster light probes using conservative spherical bounds. (#13746) 2024-12-05 13:07:10 +00:00
line_material.wgsl Swap material and mesh bind groups (#10485) 2023-11-28 22:26:22 +00:00
post_processing.wgsl update shader imports (#10180) 2023-10-21 11:51:58 +00:00
shader_defs.wgsl Swap material and mesh bind groups (#10485) 2023-11-28 22:26:22 +00:00
show_prepass.wgsl Swap material and mesh bind groups (#10485) 2023-11-28 22:26:22 +00:00
specialized_mesh_pipeline.wgsl Update typos (#17126) 2025-01-03 17:44:26 +00:00
storage_buffer.wgsl Add user supplied mesh tag (#17648) 2025-02-10 22:38:13 +00:00
texture_binding_array.wgsl Swap material and mesh bind groups (#10485) 2023-11-28 22:26:22 +00:00
tonemapping_test_patterns.wgsl move wgsl color operations from bevy_pbr to bevy_render (#13209) 2024-05-04 10:30:23 +00:00
util.wesl Add support for experimental WESL shader source (#17953) 2025-03-09 19:26:55 +00:00
water_material.wgsl Implement opt-in sharp screen-space reflections for the deferred renderer, with improved raymarching code. (#13418) 2024-05-27 13:43:40 +00:00