Search across packages, versions, files, declarations, and comments. Use multiple terms to narrow results (AND), and add @vertex, @fragment, or @compute to filter by shader stage.
1#define_import_path bevy_pbr::pbr_bindings
3#import bevy_pbr::pbr_types::StandardMaterial
5#ifdef BINDLESS
6struct StandardMaterialBindings {
7 material: u32, // 0
8 base_color_texture: u32, // 1
9 base_color_sampler: u32, // 2
10 emissive_texture: u32, // 3
11 emissive_sampler: u32, // 4
12 metallic_roughness_texture: u32, // 5
13 metallic_roughness_sampler: u32, // 6
14 occlusion_texture: u32, // 7
15 occlusion_sampler: u32, // 8
16 normal_map_texture: u32, // 9
17 normal_map_sampler: u32, // 10
18 depth_map_texture: u32, // 11
19 depth_map_sampler: u32, // 12
20 anisotropy_texture: u32, // 13
21 anisotropy_sampler: u32, // 14
22 specular_transmission_texture: u32, // 15
23 specular_transmission_sampler: u32, // 16
24 thickness_texture: u32, // 17
25 thickness_sampler: u32, // 18
26 diffuse_transmission_texture: u32, // 19
27 diffuse_transmission_sampler: u32, // 20
28 clearcoat_texture: u32, // 21
29 clearcoat_sampler: u32, // 22
30 clearcoat_roughness_texture: u32, // 23
31 clearcoat_roughness_sampler: u32, // 24
32 clearcoat_normal_texture: u32, // 25
33 clearcoat_normal_sampler: u32, // 26
34 specular_texture: u32, // 27
35 specular_sampler: u32, // 28
36 specular_tint_texture: u32, // 29
37 specular_tint_sampler: u32, // 30
40@group(#{MATERIAL_BIND_GROUP}) @binding(0) var<storage> material_indices: array<StandardMaterialBindings>;
41@group(#{MATERIAL_BIND_GROUP}) @binding(10) var<storage> material_array: array<StandardMaterial>;
43#else // BINDLESS
45@group(#{MATERIAL_BIND_GROUP}) @binding(0) var<uniform> material: StandardMaterial;
46@group(#{MATERIAL_BIND_GROUP}) @binding(1) var base_color_texture: texture_2d<f32>;
47@group(#{MATERIAL_BIND_GROUP}) @binding(2) var base_color_sampler: sampler;
48@group(#{MATERIAL_BIND_GROUP}) @binding(3) var emissive_texture: texture_2d<f32>;
49@group(#{MATERIAL_BIND_GROUP}) @binding(4) var emissive_sampler: sampler;
50@group(#{MATERIAL_BIND_GROUP}) @binding(5) var metallic_roughness_texture: texture_2d<f32>;
51@group(#{MATERIAL_BIND_GROUP}) @binding(6) var metallic_roughness_sampler: sampler;
52@group(#{MATERIAL_BIND_GROUP}) @binding(7) var occlusion_texture: texture_2d<f32>;
53@group(#{MATERIAL_BIND_GROUP}) @binding(8) var occlusion_sampler: sampler;
54@group(#{MATERIAL_BIND_GROUP}) @binding(9) var normal_map_texture: texture_2d<f32>;
55@group(#{MATERIAL_BIND_GROUP}) @binding(10) var normal_map_sampler: sampler;
56@group(#{MATERIAL_BIND_GROUP}) @binding(11) var depth_map_texture: texture_2d<f32>;
57@group(#{MATERIAL_BIND_GROUP}) @binding(12) var depth_map_sampler: sampler;
59#ifdef PBR_ANISOTROPY_TEXTURE_SUPPORTED
60@group(#{MATERIAL_BIND_GROUP}) @binding(13) var anisotropy_texture: texture_2d<f32>;
61@group(#{MATERIAL_BIND_GROUP}) @binding(14) var anisotropy_sampler: sampler;
62#endif // PBR_ANISOTROPY_TEXTURE_SUPPORTED
64#ifdef PBR_TRANSMISSION_TEXTURES_SUPPORTED
65@group(#{MATERIAL_BIND_GROUP}) @binding(15) var specular_transmission_texture: texture_2d<f32>;
66@group(#{MATERIAL_BIND_GROUP}) @binding(16) var specular_transmission_sampler: sampler;
67@group(#{MATERIAL_BIND_GROUP}) @binding(17) var thickness_texture: texture_2d<f32>;
68@group(#{MATERIAL_BIND_GROUP}) @binding(18) var thickness_sampler: sampler;
69@group(#{MATERIAL_BIND_GROUP}) @binding(19) var diffuse_transmission_texture: texture_2d<f32>;
70@group(#{MATERIAL_BIND_GROUP}) @binding(20) var diffuse_transmission_sampler: sampler;
71#endif // PBR_TRANSMISSION_TEXTURES_SUPPORTED
73#ifdef PBR_MULTI_LAYER_MATERIAL_TEXTURES_SUPPORTED
74@group(#{MATERIAL_BIND_GROUP}) @binding(21) var clearcoat_texture: texture_2d<f32>;
75@group(#{MATERIAL_BIND_GROUP}) @binding(22) var clearcoat_sampler: sampler;
76@group(#{MATERIAL_BIND_GROUP}) @binding(23) var clearcoat_roughness_texture: texture_2d<f32>;
77@group(#{MATERIAL_BIND_GROUP}) @binding(24) var clearcoat_roughness_sampler: sampler;
78@group(#{MATERIAL_BIND_GROUP}) @binding(25) var clearcoat_normal_texture: texture_2d<f32>;
79@group(#{MATERIAL_BIND_GROUP}) @binding(26) var clearcoat_normal_sampler: sampler;
80#endif // PBR_MULTI_LAYER_MATERIAL_TEXTURES_SUPPORTED
82#ifdef PBR_SPECULAR_TEXTURES_SUPPORTED
83@group(#{MATERIAL_BIND_GROUP}) @binding(27) var specular_texture: texture_2d<f32>;
84@group(#{MATERIAL_BIND_GROUP}) @binding(28) var specular_sampler: sampler;
85@group(#{MATERIAL_BIND_GROUP}) @binding(29) var specular_tint_texture: texture_2d<f32>;
86@group(#{MATERIAL_BIND_GROUP}) @binding(30) var specular_tint_sampler: sampler;
87#endif // PBR_SPECULAR_TEXTURES_SUPPORTED
89#endif // BINDLESS
Contents