11use bevy_app:: { App , Plugin } ;
22use bevy_asset:: { embedded_asset, load_embedded_asset, AssetServer , Handle } ;
3- use bevy_camera:: { Camera , Camera3d , Projection } ;
3+ use bevy_camera:: { Camera , Camera3d } ;
44use bevy_core_pipeline:: {
55 core_3d:: graph:: { Core3d , Node3d } ,
66 prepass:: { DepthPrepass , MotionVectorPrepass , ViewPrepassTextures } ,
@@ -83,7 +83,7 @@ impl Plugin for TemporalAntiAliasPlugin {
8383 }
8484}
8585
86- /// Component to apply temporal anti-aliasing to a 3D perspective camera.
86+ /// Component to apply temporal anti-aliasing to a 3D camera.
8787///
8888/// Temporal anti-aliasing (TAA) is a form of image smoothing/filtering, like
8989/// multisample anti-aliasing (MSAA), or fast approximate anti-aliasing (FXAA).
@@ -109,8 +109,6 @@ impl Plugin for TemporalAntiAliasPlugin {
109109///
110110/// Any camera with this component must also disable [`Msaa`] by setting it to [`Msaa::Off`].
111111///
112- /// [Currently](https://github.com/bevyengine/bevy/issues/8423), TAA cannot be used with [`bevy_camera::OrthographicProjection`].
113- ///
114112/// TAA also does not work well with alpha-blended meshes, as it requires depth writing to determine motion.
115113///
116114/// It is very important that correct motion vectors are written for everything on screen.
@@ -344,20 +342,15 @@ impl SpecializedRenderPipeline for TaaPipeline {
344342}
345343
346344fn extract_taa_settings ( mut commands : Commands , mut main_world : ResMut < MainWorld > ) {
347- let mut cameras_3d = main_world. query :: < (
348- RenderEntity ,
349- & Camera ,
350- & Projection ,
351- Option < & mut TemporalAntiAliasing > ,
352- ) > ( ) ;
353-
354- for ( entity, camera, camera_projection, taa_settings) in cameras_3d. iter_mut ( & mut main_world) {
345+ let mut cameras_3d =
346+ main_world. query :: < ( RenderEntity , & Camera , Option < & mut TemporalAntiAliasing > ) > ( ) ;
347+
348+ for ( entity, camera, taa_settings) in cameras_3d. iter_mut ( & mut main_world) {
355349 let mut entity_commands = commands
356350 . get_entity ( entity)
357351 . expect ( "Camera entity wasn't synced." ) ;
358352 if let Some ( mut taa_settings) = taa_settings
359353 && camera. is_active
360- && camera_projection. is_perspective ( )
361354 {
362355 entity_commands. insert ( taa_settings. clone ( ) ) ;
363356 taa_settings. reset = false ;
0 commit comments