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 bevy_pbr::render::forward_io::VertexOutput;
3enable wgpu_binding_array;
5@group(constants::MATERIAL_BIND_GROUP) @binding(0) var textures: binding_array<texture_2d<f32>>;
6@group(constants::MATERIAL_BIND_GROUP) @binding(1) var nearest_sampler: sampler;
7// We can also have array of samplers
8// var samplers: binding_array<sampler>;
10@fragment
11fn fragment(
12 mesh: VertexOutput,
13) -> @location(0) vec4<f32> {
14 // Select the texture to sample from using non-uniform uv coordinates
15 let coords = clamp(vec2<u32>(mesh.uv * 4.0), vec2<u32>(0u), vec2<u32>(3u));
16 let index = coords.y * 4u + coords.x;
17 let inner_uv = fract(mesh.uv * 4.0);
18 return textureSample(textures[index], nearest_sampler, inner_uv);
Contents