From d2e8dbb396944473e0eb8c2a89659a9a9403a8dc Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Thu, 16 May 2024 16:50:01 -0700 Subject: [PATCH 1/3] Make the prepass shader compile when lightmaps are present. Commit 3f5a090b1bf6bb8b97972feb5504777f6b380559 added a reference to `STANDARD_MATERIAL_FLAGS_BASE_COLOR_UV_BIT`, a nonexistent identifier, in the alpha discard portion of the prepass shader. Moreover, the logic didn't make sense to me. I think the code was trying to choose between the two UV sets depending on which is present, so I made it do that. --- crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl b/crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl index 3dd9babda6d82..e5bfb2bd225df 100644 --- a/crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl +++ b/crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl @@ -20,13 +20,10 @@ fn prepass_alpha_discard(in: VertexOutput) { #ifdef VERTEX_UVS #ifdef VERTEX_UVS_A var uv = in.uv; -#else +#else // VERTEX_UVS_A var uv = in.uv_b; -#endif -#ifdef VERTEX_UVS_B - if ((pbr_bindings::material.flags & pbr_types::STANDARD_MATERIAL_FLAGS_BASE_COLOR_UV_BIT) != 0u) { - uv = in.uv_b; - } +#endif // VERTEX_UVS_A + #endif let uv_transform = pbr_bindings::material.uv_transform; uv = (uv_transform * vec3(uv, 1.0)).xy; From 237890dc220a88df7f6658ff8e72ad01564be216 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Thu, 16 May 2024 17:49:49 -0700 Subject: [PATCH 2/3] Address review comment --- crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl b/crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl index e5bfb2bd225df..f42f437f9708a 100644 --- a/crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl +++ b/crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl @@ -18,11 +18,11 @@ fn prepass_alpha_discard(in: VertexOutput) { var output_color: vec4 = pbr_bindings::material.base_color; #ifdef VERTEX_UVS -#ifdef VERTEX_UVS_A - var uv = in.uv; -#else // VERTEX_UVS_A +#ifdef STANDARD_MATERIAL_BASE_COLOR_UV_B var uv = in.uv_b; -#endif // VERTEX_UVS_A +#else // STANDARD_MATERIAL_BASE_COLOR_UV_B + var uv = in.uv; +#endif // STANDARD_MATERIAL_BASE_COLOR_UV_B #endif let uv_transform = pbr_bindings::material.uv_transform; From a1a3709b0e287597d935bf02d9c4f9d58e58d192 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Sat, 18 May 2024 14:40:28 -0700 Subject: [PATCH 3/3] Fix syntax --- crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl b/crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl index f42f437f9708a..e267631dddb2c 100644 --- a/crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl +++ b/crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl @@ -24,7 +24,6 @@ fn prepass_alpha_discard(in: VertexOutput) { var uv = in.uv; #endif // STANDARD_MATERIAL_BASE_COLOR_UV_B -#endif let uv_transform = pbr_bindings::material.uv_transform; uv = (uv_transform * vec3(uv, 1.0)).xy; if (pbr_bindings::material.flags & pbr_types::STANDARD_MATERIAL_FLAGS_BASE_COLOR_TEXTURE_BIT) != 0u {