|
2 | 2 |
|
3 | 3 | #import bevy_pbr::pbr_types::StandardMaterial |
4 | 4 |
|
| 5 | +#ifdef BINDLESS |
| 6 | +@group(2) @binding(0) var<storage> material: binding_array<StandardMaterial, 16>; |
| 7 | +@group(2) @binding(1) var base_color_texture: binding_array<texture_2d<f32>, 16>; |
| 8 | +@group(2) @binding(2) var base_color_sampler: binding_array<sampler, 16>; |
| 9 | +@group(2) @binding(3) var emissive_texture: binding_array<texture_2d<f32>, 16>; |
| 10 | +@group(2) @binding(4) var emissive_sampler: binding_array<sampler, 16>; |
| 11 | +@group(2) @binding(5) var metallic_roughness_texture: binding_array<texture_2d<f32>, 16>; |
| 12 | +@group(2) @binding(6) var metallic_roughness_sampler: binding_array<sampler, 16>; |
| 13 | +@group(2) @binding(7) var occlusion_texture: binding_array<texture_2d<f32>, 16>; |
| 14 | +@group(2) @binding(8) var occlusion_sampler: binding_array<sampler, 16>; |
| 15 | +@group(2) @binding(9) var normal_map_texture: binding_array<texture_2d<f32>, 16>; |
| 16 | +@group(2) @binding(10) var normal_map_sampler: binding_array<sampler, 16>; |
| 17 | +@group(2) @binding(11) var depth_map_texture: binding_array<texture_2d<f32>, 16>; |
| 18 | +@group(2) @binding(12) var depth_map_sampler: binding_array<sampler, 16>; |
| 19 | +#else // BINDLESS |
5 | 20 | @group(2) @binding(0) var<uniform> material: StandardMaterial; |
6 | 21 | @group(2) @binding(1) var base_color_texture: texture_2d<f32>; |
7 | 22 | @group(2) @binding(2) var base_color_sampler: sampler; |
|
15 | 30 | @group(2) @binding(10) var normal_map_sampler: sampler; |
16 | 31 | @group(2) @binding(11) var depth_map_texture: texture_2d<f32>; |
17 | 32 | @group(2) @binding(12) var depth_map_sampler: sampler; |
| 33 | +#endif // BINDLESS |
| 34 | + |
18 | 35 | #ifdef PBR_ANISOTROPY_TEXTURE_SUPPORTED |
| 36 | +#ifdef BINDLESS |
| 37 | +@group(2) @binding(13) var anisotropy_texture: binding_array<texture_2d<f32>, 16>; |
| 38 | +@group(2) @binding(14) var anisotropy_sampler: binding_array<sampler, 16>; |
| 39 | +#else // BINDLESS |
19 | 40 | @group(2) @binding(13) var anisotropy_texture: texture_2d<f32>; |
20 | 41 | @group(2) @binding(14) var anisotropy_sampler: sampler; |
21 | | -#endif |
| 42 | +#endif // BINDLESS |
| 43 | +#endif // PBR_ANISOTROPY_TEXTURE_SUPPORTED |
| 44 | + |
22 | 45 | #ifdef PBR_TRANSMISSION_TEXTURES_SUPPORTED |
| 46 | +#ifdef BINDLESS |
| 47 | +@group(2) @binding(15) var specular_transmission_texture: binding_array<texture_2d<f32>, 16>; |
| 48 | +@group(2) @binding(16) var specular_transmission_sampler: binding_array<sampler, 16>; |
| 49 | +@group(2) @binding(17) var thickness_texture: binding_array<texture_2d<f32>, 16>; |
| 50 | +@group(2) @binding(18) var thickness_sampler: binding_array<sampler, 16>; |
| 51 | +@group(2) @binding(19) var diffuse_transmission_texture: binding_array<texture_2d<f32>, 16>; |
| 52 | +@group(2) @binding(20) var diffuse_transmission_sampler: binding_array<sampler, 16>; |
| 53 | +#else // BINDLESS |
23 | 54 | @group(2) @binding(15) var specular_transmission_texture: texture_2d<f32>; |
24 | 55 | @group(2) @binding(16) var specular_transmission_sampler: sampler; |
25 | 56 | @group(2) @binding(17) var thickness_texture: texture_2d<f32>; |
26 | 57 | @group(2) @binding(18) var thickness_sampler: sampler; |
27 | 58 | @group(2) @binding(19) var diffuse_transmission_texture: texture_2d<f32>; |
28 | 59 | @group(2) @binding(20) var diffuse_transmission_sampler: sampler; |
29 | | -#endif |
| 60 | +#endif // BINDLESS |
| 61 | +#endif // PBR_TRANSMISSION_TEXTURES_SUPPORTED |
| 62 | + |
30 | 63 | #ifdef PBR_MULTI_LAYER_MATERIAL_TEXTURES_SUPPORTED |
| 64 | +#ifdef BINDLESS |
| 65 | +@group(2) @binding(21) var clearcoat_texture: binding_array<texture_2d<f32>, 16>; |
| 66 | +@group(2) @binding(22) var clearcoat_sampler: binding_array<sampler, 16>; |
| 67 | +@group(2) @binding(23) var clearcoat_roughness_texture: binding_array<texture_2d<f32>, 16>; |
| 68 | +@group(2) @binding(24) var clearcoat_roughness_sampler: binding_array<sampler, 16>; |
| 69 | +@group(2) @binding(25) var clearcoat_normal_texture: binding_array<texture_2d<f32>, 16>; |
| 70 | +@group(2) @binding(26) var clearcoat_normal_sampler: binding_array<sampler, 16>; |
| 71 | +#else // BINDLESS |
31 | 72 | @group(2) @binding(21) var clearcoat_texture: texture_2d<f32>; |
32 | 73 | @group(2) @binding(22) var clearcoat_sampler: sampler; |
33 | 74 | @group(2) @binding(23) var clearcoat_roughness_texture: texture_2d<f32>; |
34 | 75 | @group(2) @binding(24) var clearcoat_roughness_sampler: sampler; |
35 | 76 | @group(2) @binding(25) var clearcoat_normal_texture: texture_2d<f32>; |
36 | 77 | @group(2) @binding(26) var clearcoat_normal_sampler: sampler; |
37 | | -#endif |
| 78 | +#endif // BINDLESS |
| 79 | +#endif // PBR_MULTI_LAYER_MATERIAL_TEXTURES_SUPPORTED |
0 commit comments