Open zhuxudong opened 1 month ago
Attention: Patch coverage is 49.01610%
with 570 lines
in your changes missing coverage. Please review.
Project coverage is 66.71%. Comparing base (
1b3c7fd
) to head (19eeb18
). Report is 50 commits behind head on dev/1.4.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
🚨 Try these New Features:
The pull request introduces significant changes to the post-processing setup in a graphics engine, focusing on restructuring how bloom and tonemapping effects are applied. New classes for PostProcess
, BloomEffect
, and TonemappingEffect
are created, along with a custom post-processing pass. The Camera
class receives a new property for post-processing effects, while the PostProcessManager
is renamed and refactored for enhanced management of effects. Additionally, several utility classes are introduced or modified to streamline texture blitting and rendering processes.
File Path | Change Summary |
---|---|
e2e/case/postProcess-HDR-bloom-ACES.ts |
Expanded imports, restructured initialization of post-processing effects, added PostProcess , BloomEffect , and TonemappingEffect classes, updated method signature for initPostProcessEnv , and configured tonemapping mode. |
e2e/case/postProcess-HDR-bloom-neutral.ts |
Similar changes as in the HDR-ACES file, with modifications to post-processing setup and explicit tonemapping mode setting. |
e2e/case/postProcess-LDR-bloom-neutral.ts |
Expanded imports, created a new root entity for global post-processing, and instantiated effects through the PostProcess component. |
e2e/case/postProcess-customPass.ts |
Introduced CustomPass class extending PostProcessPass , implemented custom shader rendering logic, and added initPostProcessEnv function. |
e2e/config.ts |
Added a new configuration entry for customPass in the PostProcess section of E2E_CONFIG . |
packages/core/src/Camera.ts |
Added postProcessMask property to the Camera class. |
packages/core/src/Component.ts |
Changed _phasedActive property from private to public with @internal annotation. |
packages/core/src/RenderPipeline/BasicRenderPipeline.ts |
Updated render method to modify post-processing handling and refined color target management. |
packages/core/src/RenderPipeline/Blitter.ts |
Introduced Blitter class for texture blitting operations. |
packages/core/src/RenderPipeline/OpaqueTexturePass.ts |
Replaced texture blitting method with Blitter.blitTexture . |
packages/core/src/RenderPipeline/PipelineUtils.ts |
Removed several static properties and the blitTexture method, indicating a shift in texture management. |
packages/core/src/RenderPipeline/index.ts |
Modified exports to include Blitter and reorder existing exports. |
packages/core/src/Scene.ts |
Updated to use PostProcessManager instead of _PostProcessManager , added postProcessManager getter. |
packages/core/src/postProcess/PostProcess.ts |
Introduced PostProcess class for managing visual effects, including methods to add, remove, and manage effects. |
packages/core/src/postProcess/PostProcessEffect.ts |
Added PostProcessEffect class as a base for post-processing effects, including state management methods. |
packages/core/src/postProcess/PostProcessManager.ts |
Renamed from _PostProcessManager , simplified constructor, and added methods for managing post-processes. |
packages/core/src/postProcess/PostProcessPass.ts |
Defined an abstract class for post-process passes with an event enumeration. |
packages/core/src/postProcess/PostProcessUberPass.ts |
Introduced PostProcessUberPass class for managing bloom and tonemapping effects. |
packages/core/src/postProcess/effects/BloomEffect.ts |
Modified to extend PostProcessEffect , simplified properties and rendering logic. |
packages/core/src/postProcess/effects/TonemappingEffect.ts |
Updated to extend PostProcessEffect , simplified property management. |
packages/core/src/postProcess/index.ts |
Streamlined exports and removed specific shader-related imports. |
sequenceDiagram
participant Camera
participant PostProcessManager
participant PostProcess
participant BloomEffect
participant TonemappingEffect
Camera->>PostProcessManager: initializePostProcess()
PostProcessManager->>PostProcess: create()
PostProcess->>BloomEffect: addEffect()
PostProcess->>TonemappingEffect: addEffect()
PostProcessManager->>Camera: applyEffects()
enhancement
, post processing
, shader
, medium priority
🐇 In the realm of code so bright,
Post-processing takes its flight.
Bloom and tone, effects so grand,
With each render, magic planned.
A hop, a skip, through shaders we go,
Enhancing scenes with a radiant glow! ✨
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Please check if the PR fulfills these requirements
What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
What is the current behavior? (You can also link to an open issue here)
What is the new behavior (if this is a feature change)?
Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
Other information:
Summary by CodeRabbit
Release Notes
New Features
PostProcess
class to manage visual effects in scenes.CustomPass
for custom shader effects.postProcessMask
in the Camera class to control applied effects.Blitter
class for enhanced texture blitting functionality.PostProcessManager
for improved management of post-process passes and effects.Improvements
BloomEffect
andTonemappingEffect
classes for easier property management.PostProcessUberPass
.Bug Fixes
Documentation