Notice how the Post Process Material appears at 100% strength as soon as the value is anywhere above 0, instead of gradually ramping up.
[Attachment Removed]
The weight value you used is interpreted as 0 = disabled and >0 = enabled, which is the intended behavior in Unreal Engine.
Because the output from the Post Process Material is already blended with SceneColor, there is no way to control the blending intensity of the red color. If you need to adjust the intensity, you can do so by adding a scalar parameter inside the material and using it to control the effect strength.
For reference, the following Epic documentation may be helpful:
For this case, the key question here is the difference between the weight value in the Camera’s Post Process Settings and the intensity value defined in the post-process material blueprint.
When working with post-process effects, a value like “10%” is inherently ambiguous. Unreal Engine has no built-in understanding of what “10% of a post-process material” means, because the meaning of intensity depends entirely on how the material is authored. An explicit context is required to define the effect.
In this scenario, the 10% appears to represent a 10% lerp from black to a custom color (red). This kind of behavior must be explicitly implemented in the material blueprint. It allows Content creators to define the executable steps in the material to fully control how the final effect is calculated. Additionally, post-process material intensity is typically evaluated per pixel, and exposing an intensity parameter in the material allows the generated shader code to apply the effect efficiently and correctly.
By contrast, the weight value, it is a technically correct but obviously confusing thing. At the camera stage, the post-process material has already been evaluated and its output color is all the camera receives. The weight cannot inspect the internal logic of the material or infer the creator’s intent. It is the final output, without understanding how the effect itself is constructed.
Because of this, controlling the intensity directly within the post-process material blueprint is the correct and more reliable approach for this use case.
I hope this clarifies the difference. Please let me know if you have any further questions.
Thank you for the update. This is a totally fair question, this part of the system is obviously confusing thing.
In most cases, the weight value should be treated simply as an enable/disable switch for a post-process effect.
After looking into source code, there is a very specific edge case where the weight can effectively behave like a slider.
Using your scenario as an example:
1, Create a post-process material named PPM_Base with a scalar parameter for intensity and a vector parameter for color.
2, Create a material instance from PPM_Base, set Intensity = 1.0 and Color = Red, and name it PPMI_Red.
3, Create another material instance from PPM_Base, set Intensity = 1.0 and Color = Green, and name it PPMI_Green.
4, Add PPMI_Red to the Post Process Materials array and set its Weight = 1.0.
5, Add PPMI_Green to the array, then adjust its Weight slider and observe the blending result.
In this setup, the second weight value works because multiple material instances share the same parent material. The engine blends the instances by lerp interpolating all exposed scalar parameters.
I hope this clarifies the usage of weight value. Let me know if you need any help implementing this.
What I mean is that even is I add a scalar parameter in my material to control the intensity, like in the attached image, this scalar will be controled on the Material instance; not by the post effect weight sliders [Image Removed]