Keep color encoding and color space separate
I’ve been writing about this for a while now. Rod Bogart, Principal Color Scientist at Epic Games, says it much better than I ever could.
Color space ≠ color encoding
“When we say linear RGB, it’s telling us two important properties of the color value that we have, and those are the color encoding and the color space.
Now, many people, when they say the words color space, they include the notion of color encoding—and, to be honest, I prefer that you not do that.
If you can, try to keep them separate, because they’re distinct from each other and they both matter independently—and you do need to keep track of them in the engine.”
An encoding tells us how values represent light
Bogart then explains what he means by color encoding:
“We did color space and that is the thing that tells us what color red is; but color encoding is what tells us how much light we have.”
The name sRGB is used for both a color space and an encoding—but they aren’t the same thing
“And this is called an EOTF—an electro-optical transfer function. The ‘electro’ is the code value that you’re sending, this pixel value; the ‘opto’ is the part that is how much light you get. And so the comparison between those two is the EOTF, and you get a curve.”

“And in this particular case, this color encoding is called sRGB—which is unfortunate, because when we saw earlier, there’s also a color space called sRGB. So, we need to keep track of those two separately.”
“So, let’s go back—this semester is over, congratulations, you all passed…”

“We’re going to go back to our simplified render diagram here and we’re going to see where sRGB terminology might come up—and one of them is in the working color space. So there is one, and you can set it in your project settings, and by default, the default is an sRGB color space. Color space, not color encoding at this point—color space, because it’s linear.”
“And there you see the chromaticity values that we have: and that list is exactly the same list of values that I showed you earlier when I was talking about [Rec.] 709, because they’re the same. The [Rec.] 709 color space and the sRGB color space are exactly the same.”
“So the preference is, when we talk about sRGB in the engine, we’re almost always talking about the sRGB encoding curve.”
Color space, color encoding, OETF, EOTF, gamma and gamut describe different things, and treating them as interchangeable makes an imaging pipeline harder—not easier—to understand.
Source: Rod Bogart, From Texture to Display: The Color Pipeline of a Pixel in Unreal Engine, Unreal Fest 2024, Unreal Engine YouTube channel, Jan. 8, 2025
Leave a Reply