Bundles

MotionBlurBundle

pub struct MotionBlurBundle {
    pub motion_blur: MotionBlur,
    pub depth_prepass: DepthPrepass,
    pub motion_vector_prepass: MotionVectorPrepass,
}

Proposal 1 (Selected)

#[derive(Component)]
#[require(DepthPrepass, MotionVectorPrepass)]
pub struct MotionBlur;

TemporalAntiAliasBundle

pub struct TemporalAntiAliasBundle {
    pub settings: TemporalAntiAliasSettings,
    pub jitter: TemporalJitter,
    pub depth_prepass: DepthPrepass,
    pub motion_vector_prepass: MotionVectorPrepass,
}

Proposal 1 (Selected)

#[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

pub struct ScreenSpaceAmbientOcclusionBundle {
    pub settings: ScreenSpaceAmbientOcclusionSettings,
    pub depth_prepass: DepthPrepass,
    pub normal_prepass: NormalPrepass,
}

Proposal 1 (Selected)

#[derive(Component)]
#[require(DepthPrepass, NormalPrepass)]
pub struct ScreenSpaceAmbientOcclusion;

Likewise, rename ScreenSpaceAmbientOcclusionSettings.

ScreenSpaceReflectionsBundle

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)

#[derive(Component)]
#[require(DepthPrepass, DeferredPrepass)]
pub struct ScreenSpaceReflections;

And again, rename ScreenSpaceReflectionsSettings.