Skip to content

Conversation

atlv24
Copy link
Contributor

@atlv24 atlv24 commented Aug 27, 2025

Objective

Split out post process effects from bevy_core_pipeline because they are not core pipelines.

Solution

@IceSentry proposed something like this, not sure if the split is exactly as he envisioned but this seems reasonable to me.

The goal is to move absolutely everything possible out of bevy_core_pipelines to unblock bevy_pbr/bevy_sprite_render compilation.

Future PRs may attempt to move more little bits out.

Testing

@IceSentry
Copy link
Contributor

This was my original PR #18425

@IceSentry
Copy link
Contributor

IceSentry commented Aug 27, 2025

The shape of my PR and yours look roughly similar. I think the main difference is you handled 2D and I didn't 😅

Edit: After looking at it a bit more, yeah, it's almost identical lol

@IceSentry
Copy link
Contributor

Also, a bit of a bikeshed thing but I think I prefer calling it bevy_post_processing? Not sure yet. I just know I'm annoyed that we ues a mix of post_process and post_processing right now. I was also a bit unsure how to deal with the built in post processing stack because it makes naming things a bit weird.

pub mod dof;
pub mod motion_blur;
pub mod msaa_writeback;
pub mod post_process;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have no idea how to solve this and this isn't a blocker but it's a bit annoying to name it this since now you need bevy::post_process::post_process::Something

Copy link
Contributor

@Zeophlite Zeophlite Aug 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe rename src/post_process/ to src/after_effect/ 😁

Copy link
Contributor

@Zeophlite Zeophlite Aug 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mod post_process; only really has chromatic_abberation , so maybe we call it mod camera_effect; or similar

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe just name it chromatic aberration :p

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, the main purpose of that thing is to combine multiple post processing effect in one node. The fact that it's only chromatic aberration right now is just because nobody has implemented anything else yet. Things like film grain or vignette or whatever else should be in there eventually.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe we can call it EffectStack or MultiEffect?

@atlv24
Copy link
Contributor Author

atlv24 commented Aug 28, 2025

Imo bevy_anti_aliasing should have been named bevy_anti_alias, for the same reasons we didnt name bevy_render bevy_rendering or bevy_log bevy_logging. I'd even go as far as saying bevy_animation should have been called bevy_animate, because bevy_reflect wasn't called bevy_reflection. I also think bevy_picking should be called bevy_pick. (i hate superfluous suffixes)

@IceSentry
Copy link
Contributor

Yeah, I'm fine with either really. The annoying part is how we have a mix of both right now

@atlv24
Copy link
Contributor Author

atlv24 commented Aug 28, 2025

What i dont know is how to distinguish bevy_post_process::PostProcessPlugin vs bevy_post_process::post_process::PostProcessingPlugin if we standardize. Maybe we rename the inner one to PostProcessStackPlugin?

@alice-i-cecile alice-i-cecile added A-Rendering Drawing game state to the screen M-Needs-Migration-Guide A breaking change to Bevy's public API that needs to be noted in a migration guide S-Needs-Review Needs reviewer attention (from anyone!) to move forward labels Aug 28, 2025
use bevy_app::{App, Plugin};

#[derive(Default)]
pub struct PostProcessPlugin;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two complaints:

a) this should be a plugin group
b) this should document what's in it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Rendering Drawing game state to the screen M-Needs-Migration-Guide A breaking change to Bevy's public API that needs to be noted in a migration guide S-Needs-Review Needs reviewer attention (from anyone!) to move forward
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

4 participants