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.
1import package::render::pbr_types::StandardMaterial;
3@if(BINDLESS) {
4struct StandardMaterialBindings {
5 material: u32, // 0
6 base_color_texture: u32, // 1
7 base_color_sampler: u32, // 2
8 emissive_texture: u32, // 3
9 emissive_sampler: u32, // 4
10 metallic_roughness_texture: u32, // 5
11 metallic_roughness_sampler: u32, // 6
12 occlusion_texture: u32, // 7
13 occlusion_sampler: u32, // 8
14 normal_map_texture: u32, // 9
15 normal_map_sampler: u32, // 10
16 depth_map_texture: u32, // 11
17 depth_map_sampler: u32, // 12
18 anisotropy_texture: u32, // 13
19 anisotropy_sampler: u32, // 14
20 specular_transmission_texture: u32, // 15
21 specular_transmission_sampler: u32, // 16
22 thickness_texture: u32, // 17
23 thickness_sampler: u32, // 18
24 diffuse_transmission_texture: u32, // 19
25 diffuse_transmission_sampler: u32, // 20
26 clearcoat_texture: u32, // 21
27 clearcoat_sampler: u32, // 22
28 clearcoat_roughness_texture: u32, // 23
29 clearcoat_roughness_sampler: u32, // 24
30 clearcoat_normal_texture: u32, // 25
31 clearcoat_normal_sampler: u32, // 26
32 specular_texture: u32, // 27
33 specular_sampler: u32, // 28
34 specular_tint_texture: u32, // 29
35 specular_tint_sampler: u32, // 30
38@group(constants::MATERIAL_BIND_GROUP) @binding(0) var<storage> material_indices: array<StandardMaterialBindings>;
39@group(constants::MATERIAL_BIND_GROUP) @binding(10) var<storage> material_array: array<StandardMaterial>;
41@else {
42@group(constants::MATERIAL_BIND_GROUP) @binding(0) var<uniform> material: StandardMaterial;
43@group(constants::MATERIAL_BIND_GROUP) @binding(1) var base_color_texture: texture_2d<f32>;
44@group(constants::MATERIAL_BIND_GROUP) @binding(2) var base_color_sampler: sampler;
45@group(constants::MATERIAL_BIND_GROUP) @binding(3) var emissive_texture: texture_2d<f32>;
46@group(constants::MATERIAL_BIND_GROUP) @binding(4) var emissive_sampler: sampler;
47@group(constants::MATERIAL_BIND_GROUP) @binding(5) var metallic_roughness_texture: texture_2d<f32>;
48@group(constants::MATERIAL_BIND_GROUP) @binding(6) var metallic_roughness_sampler: sampler;
49@group(constants::MATERIAL_BIND_GROUP) @binding(7) var occlusion_texture: texture_2d<f32>;
50@group(constants::MATERIAL_BIND_GROUP) @binding(8) var occlusion_sampler: sampler;
51@group(constants::MATERIAL_BIND_GROUP) @binding(9) var normal_map_texture: texture_2d<f32>;
52@group(constants::MATERIAL_BIND_GROUP) @binding(10) var normal_map_sampler: sampler;
53@group(constants::MATERIAL_BIND_GROUP) @binding(11) var depth_map_texture: texture_2d<f32>;
54@group(constants::MATERIAL_BIND_GROUP) @binding(12) var depth_map_sampler: sampler;
55 @if(PBR_ANISOTROPY_TEXTURE_SUPPORTED) {
56 @group(constants::MATERIAL_BIND_GROUP) @binding(13) var anisotropy_texture: texture_2d<f32>;
57 @group(constants::MATERIAL_BIND_GROUP) @binding(14) var anisotropy_sampler: sampler;
58 }
60 @if(PBR_TRANSMISSION_TEXTURES_SUPPORTED) {
61 @group(constants::MATERIAL_BIND_GROUP) @binding(15) var specular_transmission_texture: texture_2d<f32>;
62 @group(constants::MATERIAL_BIND_GROUP) @binding(16) var specular_transmission_sampler: sampler;
63 @group(constants::MATERIAL_BIND_GROUP) @binding(17) var thickness_texture: texture_2d<f32>;
64 @group(constants::MATERIAL_BIND_GROUP) @binding(18) var thickness_sampler: sampler;
65 @group(constants::MATERIAL_BIND_GROUP) @binding(19) var diffuse_transmission_texture: texture_2d<f32>;
66 @group(constants::MATERIAL_BIND_GROUP) @binding(20) var diffuse_transmission_sampler: sampler;
67 }
69 @if(PBR_MULTI_LAYER_MATERIAL_TEXTURES_SUPPORTED) {
70 @group(constants::MATERIAL_BIND_GROUP) @binding(21) var clearcoat_texture: texture_2d<f32>;
71 @group(constants::MATERIAL_BIND_GROUP) @binding(22) var clearcoat_sampler: sampler;
72 @group(constants::MATERIAL_BIND_GROUP) @binding(23) var clearcoat_roughness_texture: texture_2d<f32>;
73 @group(constants::MATERIAL_BIND_GROUP) @binding(24) var clearcoat_roughness_sampler: sampler;
74 @group(constants::MATERIAL_BIND_GROUP) @binding(25) var clearcoat_normal_texture: texture_2d<f32>;
75 @group(constants::MATERIAL_BIND_GROUP) @binding(26) var clearcoat_normal_sampler: sampler;
76 }
78 @if(PBR_SPECULAR_TEXTURES_SUPPORTED) {
79 @group(constants::MATERIAL_BIND_GROUP) @binding(27) var specular_texture: texture_2d<f32>;
80 @group(constants::MATERIAL_BIND_GROUP) @binding(28) var specular_sampler: sampler;
81 @group(constants::MATERIAL_BIND_GROUP) @binding(29) var specular_tint_texture: texture_2d<f32>;
82 @group(constants::MATERIAL_BIND_GROUP) @binding(30) var specular_tint_sampler: sampler;
83 }
Contents