bevy_core_pipeline/
lib.rs

1#![expect(missing_docs, reason = "Not all docs are written yet, see #3492.")]
2#![forbid(unsafe_code)]
3#![cfg_attr(docsrs, feature(doc_auto_cfg))]
4#![doc(
5    html_logo_url = "https://bevyengine.org/assets/icon.png",
6    html_favicon_url = "https://bevyengine.org/assets/icon.png"
7)]
8
9pub mod auto_exposure;
10pub mod blit;
11pub mod bloom;
12pub mod contrast_adaptive_sharpening;
13pub mod core_2d;
14pub mod core_3d;
15pub mod deferred;
16pub mod dof;
17pub mod experimental;
18pub mod fullscreen_vertex_shader;
19pub mod fxaa;
20pub mod motion_blur;
21pub mod msaa_writeback;
22pub mod oit;
23pub mod post_process;
24pub mod prepass;
25mod skybox;
26pub mod smaa;
27mod taa;
28pub mod tonemapping;
29pub mod upscaling;
30
31pub use skybox::Skybox;
32
33/// The core pipeline prelude.
34///
35/// This includes the most common types in this crate, re-exported for your convenience.
36pub mod prelude {
37    #[doc(hidden)]
38    pub use crate::{core_2d::Camera2d, core_3d::Camera3d};
39}
40
41use crate::{
42    blit::BlitPlugin,
43    bloom::BloomPlugin,
44    contrast_adaptive_sharpening::CasPlugin,
45    core_2d::Core2dPlugin,
46    core_3d::Core3dPlugin,
47    deferred::copy_lighting_id::CopyDeferredLightingIdPlugin,
48    dof::DepthOfFieldPlugin,
49    experimental::mip_generation::MipGenerationPlugin,
50    fullscreen_vertex_shader::FULLSCREEN_SHADER_HANDLE,
51    fxaa::FxaaPlugin,
52    motion_blur::MotionBlurPlugin,
53    msaa_writeback::MsaaWritebackPlugin,
54    post_process::PostProcessingPlugin,
55    prepass::{DeferredPrepass, DepthPrepass, MotionVectorPrepass, NormalPrepass},
56    smaa::SmaaPlugin,
57    tonemapping::TonemappingPlugin,
58    upscaling::UpscalingPlugin,
59};
60use bevy_app::{App, Plugin};
61use bevy_asset::load_internal_asset;
62use bevy_render::prelude::Shader;
63use oit::OrderIndependentTransparencyPlugin;
64
65#[derive(Default)]
66pub struct CorePipelinePlugin;
67
68impl Plugin for CorePipelinePlugin {
69    fn build(&self, app: &mut App) {
70        load_internal_asset!(
71            app,
72            FULLSCREEN_SHADER_HANDLE,
73            "fullscreen_vertex_shader/fullscreen.wgsl",
74            Shader::from_wgsl
75        );
76
77        app.register_type::<DepthPrepass>()
78            .register_type::<NormalPrepass>()
79            .register_type::<MotionVectorPrepass>()
80            .register_type::<DeferredPrepass>()
81            .add_plugins((Core2dPlugin, Core3dPlugin, CopyDeferredLightingIdPlugin))
82            .add_plugins((
83                BlitPlugin,
84                MsaaWritebackPlugin,
85                TonemappingPlugin,
86                UpscalingPlugin,
87                BloomPlugin,
88                FxaaPlugin,
89                CasPlugin,
90                MotionBlurPlugin,
91                DepthOfFieldPlugin,
92                SmaaPlugin,
93                PostProcessingPlugin,
94                OrderIndependentTransparencyPlugin,
95                MipGenerationPlugin,
96            ));
97    }
98}