1@group(0) @binding(0) 2var texture_0: texture_2d<f32>; 3@group(0) @binding(1) 4var texture_1: texture_2d<f32>; 5 6fn to_texture_position(fragment_position: vec4f) -> vec2u { 7 let texture_position = round(fragment_position.xy - vec2f(0.5)); 8 return vec2u(u32(texture_position.x), u32(texture_position.y)); 9} 10 11@fragment 12fn fs_main(@builtin(position) position: vec4f) -> @location(0) vec4f { 13 let tex_position = to_texture_position(position); 14 15 let a = textureLoad(texture_0, tex_position, 0).rgb; 16 let b = textureLoad(texture_1, tex_position, 0).rgb; 17 18 let blended = 0.5 * (a + b); 19 20 return vec4f(blended, 1.0); 21}