mirror of
https://github.com/bevyengine/bevy
synced 2024-11-22 20:53:53 +00:00
Early-exit bloom node if intensity == 0.0
(#12113)
# Objective - The bloom effect is currently somewhat costly (in terms of GPU time used), due to using fragment shaders for down- and upscaling (compute shaders generally perform better for such tasks). - Additionally, one might have a `BloomSettings` on a camera whose `intensity` is only occasionally set to a non-zero value (eg. in outside areas or areas with bright lighting). Currently, the cost of the bloom shader is always incurred as long as the `BloomSettings` exists. ## Solution - Bail out of the bloom render node when `intensity == 0.0`, making the effect free as long as it is turned all the way down.
This commit is contained in:
parent
bb00d9fc3c
commit
e5994a4e55
1 changed files with 4 additions and 0 deletions
|
@ -129,6 +129,10 @@ impl ViewNode for BloomNode {
|
|||
): QueryItem<Self::ViewQuery>,
|
||||
world: &World,
|
||||
) -> Result<(), NodeRunError> {
|
||||
if bloom_settings.intensity == 0.0 {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let downsampling_pipeline_res = world.resource::<BloomDownsamplingPipeline>();
|
||||
let pipeline_cache = world.resource::<PipelineCache>();
|
||||
let uniforms = world.resource::<ComponentUniforms<BloomUniforms>>();
|
||||
|
|
Loading…
Reference in a new issue