RGBA color values greater than 1.0?

I normally understand RGBA colors to be clamped from [0,1]. But I purchased a niagara asset and noticed the default RGBA color values could exceed 1. Seems to cause some sort of gradient effect when they exceed 1?

Anyone have more details about how RGBA values greater than 1 work?

I don’t know the full ins and outs of it, but it’s very good for setting high emissive values, for instance. I don’t think that gradient effect makes it through to the object though…

The old-school slate/ui/simple material colors are 0…1 one-byte-per-component.

Those are actually Vector values, being treated as colors. That means that each value is a floating-point value! This also gives them better precision than the old school colors.

Those are actually Vector values, being treated as colors. That means that each value is a floating-point value! This also gives them better precision than the old school colors.

ok. but what does an R color channel value of 1.1 mean? How does Unreal Engine treat such values above 1?

It means “overbright” if it’s at the end of the pipeline, and it just leans “a linear value of 1.1” if in the middle of the pipeline.
An overbright color value will typically contribute significantly to bloom, and to lens flares.

In the high quality rendering pipeline, Unreal uses HDR frame buffers, where such values can be represented just fine, and the final value gets adjusted based on the post processes, such as tone mapping.
The entire pipeline is quite intricate, and varies a fair bit based on which pipeline is being used (various combinations of things like mobile, forward, static, deferred, ray tracing, lumen, …)

Maybe here’s a place to start learning more:

Or here:

Or read the C++ source code…

1 Like