Fix incorrect function calls to hsv_to_rgb in render debug code. (#14260)
# Objective - Fixes https://github.com/bevyengine/bevy/issues/14139 ## Solution - correct the input parameters at these call sites. ## Testing 1. Use a 3D scene example with PBR lighting and shadows enabled, such as the `shadow_caster_receiver` and `load_gltf` example, for testing. 2. Enable relevant shader defines in crates/bevy_pbr/src/pbr_material.rs for the StandardMaterial. ```rust impl Material for StandardMaterial { // ... fn specialize( _pipeline: &MaterialPipeline<Self>, descriptor: &mut RenderPipelineDescriptor, _layout: &MeshVertexBufferLayoutRef, key: MaterialPipelineKey<Self>, ) -> Result<(), SpecializedMeshPipelineError> { // ... // shader_defs.push("CLUSTERED_FORWARD_DEBUG_Z_SLICES".into()); // shader_defs.push("CLUSTERED_FORWARD_DEBUG_CLUSTER_COHERENCY".into()); shader_defs.push("DIRECTIONAL_LIGHT_SHADOW_MAP_DEBUG_CASCADES".into()); // ... } } ``` ## Showcase ### CLUSTERED_FORWARD_DEBUG_Z_SLICES - example: examples/3d/shadow_caster_receiver.rs  ### CLUSTERED_FORWARD_DEBUG_CLUSTER_COHERENCY - example: examples/3d/shadow_caster_receiver.rs  ### DIRECTIONAL_LIGHT_SHADOW_MAP_DEBUG_CASCADES For this one, we need to use a large scene and modity the `CascadeShadowConfigBuilder`, here is a simple patch for the `load_gltf` example: ``` diff --git a/examples/3d/load_gltf.rs b/examples/3d/load_gltf.rs index 358446238..9403aa288 100644 --- a/examples/3d/load_gltf.rs +++ b/examples/3d/load_gltf.rs @@ -18,7 +18,7 @@ fn main() { fn setup(mut commands: Commands, asset_server: Res<AssetServer>) { commands.spawn(( Camera3dBundle { - transform: Transform::from_xyz(0.7, 0.7, 1.0) + transform: Transform::from_xyz(0.7, 0.7, 2.0) .looking_at(Vec3::new(0.0, 0.3, 0.0), Vec3::Y), ..default() }, @@ -39,30 +39,40 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) { // We also adjusted the shadow map to be larger since we're // only using a single cascade. cascade_shadow_config: CascadeShadowConfigBuilder { - num_cascades: 1, - maximum_distance: 1.6, + num_cascades: 5, + maximum_distance: 20.0, ..default() } .into(), ..default() }); + commands.spawn(SceneBundle { scene: asset_server .load(GltfAssetLabel::Scene(0).from_asset("models/FlightHelmet/FlightHelmet.gltf")), ..default() }); + + for i in 1..=10 { + commands.spawn(SceneBundle { + scene: asset_server + .load(GltfAssetLabel::Scene(0).from_asset("models/FlightHelmet/FlightHelmet.gltf")), + transform: Transform::from_xyz(i as f32 * 0.5, 0.0, i as f32 * -2.0), + ..default() + }); + } } fn animate_light_direction( time: Res<Time>, mut query: Query<&mut Transform, With<DirectionalLight>>, ) { - for mut transform in &mut query { - transform.rotation = Quat::from_euler( - EulerRot::ZYX, - 0.0, - time.elapsed_seconds() * PI / 5.0, - -FRAC_PI_4, - ); - } + // for mut transform in &mut query { + // transform.rotation = Quat::from_euler( + // EulerRot::ZYX, + // 0.0, + // time.elapsed_seconds() * PI / 5.0, + // -FRAC_PI_4, + // ); + // } } ```  --------- Co-authored-by: ickshonpe <david.curthoys@googlemail.com>
This commit is contained in:
		
							parent
							
								
									b8416b3043
								
							
						
					
					
						commit
						462da1e49d
					
				| @ -84,11 +84,12 @@ fn cluster_debug_visualization( | |||||||
|     if (z_slice & 1u) == 1u { |     if (z_slice & 1u) == 1u { | ||||||
|         z_slice = z_slice + bindings::lights.cluster_dimensions.z / 2u; |         z_slice = z_slice + bindings::lights.cluster_dimensions.z / 2u; | ||||||
|     } |     } | ||||||
|     let slice_color = hsv_to_rgb( |     let slice_color_hsv = vec3( | ||||||
|         f32(z_slice) / f32(bindings::lights.cluster_dimensions.z + 1u) * PI_2, |         f32(z_slice) / f32(bindings::lights.cluster_dimensions.z + 1u) * PI_2, | ||||||
|         1.0, |         1.0, | ||||||
|         0.5 |         0.5 | ||||||
|     ); |     ); | ||||||
|  |     let slice_color = hsv_to_rgb(slice_color_hsv); | ||||||
|     output_color = vec4<f32>( |     output_color = vec4<f32>( | ||||||
|         (1.0 - cluster_overlay_alpha) * output_color.rgb + cluster_overlay_alpha * slice_color, |         (1.0 - cluster_overlay_alpha) * output_color.rgb + cluster_overlay_alpha * slice_color, | ||||||
|         output_color.a |         output_color.a | ||||||
| @ -115,7 +116,8 @@ fn cluster_debug_visualization( | |||||||
|     // NOTE: Visualizes the cluster to which the fragment belongs |     // NOTE: Visualizes the cluster to which the fragment belongs | ||||||
|     let cluster_overlay_alpha = 0.1; |     let cluster_overlay_alpha = 0.1; | ||||||
|     var rng = cluster_index; |     var rng = cluster_index; | ||||||
|     let cluster_color = hsv_to_rgb(rand_f(&rng) * PI_2, 1.0, 0.5); |     let cluster_color_hsv = vec3(rand_f(&rng) * PI_2, 1.0, 0.5); | ||||||
|  |     let cluster_color = hsv_to_rgb(cluster_color_hsv); | ||||||
|     output_color = vec4<f32>( |     output_color = vec4<f32>( | ||||||
|         (1.0 - cluster_overlay_alpha) * output_color.rgb + cluster_overlay_alpha * cluster_color, |         (1.0 - cluster_overlay_alpha) * output_color.rgb + cluster_overlay_alpha * cluster_color, | ||||||
|         output_color.a |         output_color.a | ||||||
|  | |||||||
| @ -194,11 +194,12 @@ fn cascade_debug_visualization( | |||||||
| ) -> vec3<f32> { | ) -> vec3<f32> { | ||||||
|     let overlay_alpha = 0.95; |     let overlay_alpha = 0.95; | ||||||
|     let cascade_index = get_cascade_index(light_id, view_z); |     let cascade_index = get_cascade_index(light_id, view_z); | ||||||
|     let cascade_color = hsv_to_rgb( |     let cascade_color_hsv = vec3( | ||||||
|         f32(cascade_index) / f32(#{MAX_CASCADES_PER_LIGHT}u + 1u) * PI_2, |         f32(cascade_index) / f32(#{MAX_CASCADES_PER_LIGHT}u + 1u) * PI_2, | ||||||
|         1.0, |         1.0, | ||||||
|         0.5 |         0.5 | ||||||
|     ); |     ); | ||||||
|  |     let cascade_color = hsv_to_rgb(cascade_color_hsv); | ||||||
|     return vec3<f32>( |     return vec3<f32>( | ||||||
|         (1.0 - overlay_alpha) * output_color.rgb + overlay_alpha * cascade_color |         (1.0 - overlay_alpha) * output_color.rgb + overlay_alpha * cascade_color | ||||||
|     ); |     ); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Sou1gh0st
						Sou1gh0st