@vertex fn vertex_main(@builtin(vertex_index) vertex_id: u32) -> @builtin(position) vec4 { let vertices = array, 3>( vec2(-1., -3.), vec2(-1., 1.), vec2(3., 1.), ); return vec4(vertices[vertex_id], 0., 1.); } @group(0) @binding(0) var albedo_tex: texture_storage_2d; @group(0) @binding(1) var position_tex: texture_storage_2d; @group(0) @binding(2) var normal_tex: texture_storage_2d; @group(0) @binding(3) var depth_tex: texture_depth_2d; @fragment fn fragment_main(@builtin(position) screen_position: vec4) -> @location(0) vec4 { let texel_position = vec2(screen_position.xy); let albedo = textureLoad(albedo_tex, texel_position); let position = textureLoad(position_tex, texel_position); let normal = textureLoad(normal_tex, texel_position); let depth = textureLoad(depth_tex, texel_position, 0); return vec4(depth / 1000.); }