Run update_previous_view_projections in PreUpdate schedule (#9024)
				
					
				
			# Objective - Fixes #8630. ## Solution Since a camera's view and projection matrices are modified during `PostUpdate` in `camera_system` and `propagate_transforms`, it is fine to move `update_previous_view_projections` from `Update` to `PreUpdate`. Doing so adds consistence with `update_mesh_previous_global_transforms` and allows systems in `Update` to use `PreviousViewProjection` correctly without explicit ordering.
This commit is contained in:
		
							parent
							
								
									7f1d084b71
								
							
						
					
					
						commit
						e03dd4d695
					
				| @ -1,4 +1,4 @@ | ||||
| use bevy_app::{Plugin, PreUpdate, Update}; | ||||
| use bevy_app::{Plugin, PreUpdate}; | ||||
| use bevy_asset::{load_internal_asset, AssetServer, Handle, HandleUntyped}; | ||||
| use bevy_core_pipeline::{ | ||||
|     prelude::Camera3d, | ||||
| @ -141,9 +141,15 @@ where | ||||
| 
 | ||||
|         if no_prepass_plugin_loaded { | ||||
|             app.insert_resource(AnyPrepassPluginLoaded) | ||||
|                 .add_systems(Update, update_previous_view_projections) | ||||
|                 // At the start of each frame, last frame's GlobalTransforms become this frame's PreviousGlobalTransforms
 | ||||
|                 .add_systems(PreUpdate, update_mesh_previous_global_transforms); | ||||
|                 // and last frame's view projection matrices become this frame's PreviousViewProjections
 | ||||
|                 .add_systems( | ||||
|                     PreUpdate, | ||||
|                     ( | ||||
|                         update_mesh_previous_global_transforms, | ||||
|                         update_previous_view_projections, | ||||
|                     ), | ||||
|                 ); | ||||
|         } | ||||
| 
 | ||||
|         let Ok(render_app) = app.get_sub_app_mut(RenderApp) else { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Edgar Geier
						Edgar Geier