# Bundles ## `MotionBlurBundle` ```rust pub struct MotionBlurBundle { pub motion_blur: MotionBlur, pub depth_prepass: DepthPrepass, pub motion_vector_prepass: MotionVectorPrepass, } ``` ### Proposal 1 (Selected) ```rust #[derive(Component)] #[require(DepthPrepass, MotionVectorPrepass)] pub struct MotionBlur; ``` ## `TemporalAntiAliasBundle` ```rust pub struct TemporalAntiAliasBundle { pub settings: TemporalAntiAliasSettings, pub jitter: TemporalJitter, pub depth_prepass: DepthPrepass, pub motion_vector_prepass: MotionVectorPrepass, } ``` ### Proposal 1 (Selected) ```rust #[derive(Component)] #[require(TemporalJitter, DepthPrepass, MotionVectorPrepass)] pub struct TemporalAntiAliasing; ``` Rename `TemporalAntiAliasSettings` to `TemporalAntiAliasing` to make it seem more like the most important end-user facing component. ## `ScreenSpaceAmbientOcclusionBundle` ```rust pub struct ScreenSpaceAmbientOcclusionBundle { pub settings: ScreenSpaceAmbientOcclusionSettings, pub depth_prepass: DepthPrepass, pub normal_prepass: NormalPrepass, } ``` ### Proposal 1 (Selected) ```rust #[derive(Component)] #[require(DepthPrepass, NormalPrepass)] pub struct ScreenSpaceAmbientOcclusion; ``` Likewise, rename `ScreenSpaceAmbientOcclusionSettings`. ## `ScreenSpaceReflectionsBundle` ```rust pub struct ScreenSpaceReflectionsBundle { /// The component that enables SSR. pub settings: ScreenSpaceReflectionsSettings, /// The depth prepass, needed for SSR. pub depth_prepass: DepthPrepass, /// The deferred prepass, needed for SSR. pub deferred_prepass: DeferredPrepass, } ``` ### Proposal 1 (Selected) ```rust #[derive(Component)] #[require(DepthPrepass, DeferredPrepass)] pub struct ScreenSpaceReflections; ``` And again, rename `ScreenSpaceReflectionsSettings`.