1#define_import_path bevy_pbr::prepass_utils 3#import bevy_pbr::mesh_view_bindings as view_bindings 6fn prepass_depth(frag_coord: vec4<f32>, sample_index: u32) -> f32 { 8 return textureLoad(view_bindings::depth_prepass_texture, vec2<i32>(frag_coord.xy), i32(sample_index)); 10 return textureLoad(view_bindings::depth_prepass_texture, vec2<i32>(frag_coord.xy), 0); 13#endif // DEPTH_PREPASS 16fn prepass_normal(frag_coord: vec4<f32>, sample_index: u32) -> vec3<f32> { 18 let normal_sample = textureLoad(view_bindings::normal_prepass_texture, vec2<i32>(frag_coord.xy), i32(sample_index)); 20 let normal_sample = textureLoad(view_bindings::normal_prepass_texture, vec2<i32>(frag_coord.xy), 0); 22 return normalize(normal_sample.xyz * 2.0 - vec3(1.0)); 24#endif // NORMAL_PREPASS 26#ifdef MOTION_VECTOR_PREPASS 27fn prepass_motion_vector(frag_coord: vec4<f32>, sample_index: u32) -> vec2<f32> { 29 let motion_vector_sample = textureLoad(view_bindings::motion_vector_prepass_texture, vec2<i32>(frag_coord.xy), i32(sample_index)); 31 let motion_vector_sample = textureLoad(view_bindings::motion_vector_prepass_texture, vec2<i32>(frag_coord.xy), 0); 33 return motion_vector_sample.rg; 35#endif // MOTION_VECTOR_PREPASS