Linear workflow for Rec709


#1

Hi,

I am trying to figure out the correct workflow for rec709. After reading Bitter’s blog (thanks for the big explanation on LW :bowdown: )I got a little confused.

I am linearizing the textures and the color pickers (shaders and lights) in maya through a mip_gamma_gain set to .4545, then rendering half float and comping them in nuke with sRGB preview on the viewport.

This is the right workflow if you are working in sRGB but now the client told us to see the result in Rec709 (altough the final exr will be still in linear).

Now, what would be the proper workflow for this?
Can someone explain me why I should see the result with a Rec709 curve when I’m using a LCD monitor with a 2.2 gamma?? Should I still use .4545 as the value to linearize the textures or should it be different?

It’s incredible, everytime that you think that you got the LW there’s something new :slight_smile:


#2

Most modern monitors will allow you to change the color settings including gamma. Or if you have a calibrator you can give it a target like rec 709.

In those cases I might change just one of my monitors (I have 2) and view on that one.

Most places don’t worry too much about the monitor colorspace (but they should) so your thought process is correct but don’t be appalled if most people don’t care.

For Hereafter, most was done on HP Dreamcolor monitors for Lighters, Compositors, and Texture Artists. HP Dreamcolor’s have a built-in profile for DCI-P3, etc. They aren’t cheap and the reliability was suspect (magenta and yellow splotches often)

So using a calibrator that takes your monitor settings into account is best.

And rec 709 has a lower gamma, closer to film. So your .4545 is no longer correct.

I want to say it’s 1.9 but could be off my rocker, it’s late.


#3

If we have 2 calibrated monitors, one for sRGB, the other for rec709, and we display an image that was originally linear and is now saved in each of the color spaces for each monitor, and we view them side by side, what differences are we going to see?

I’m aware of the gamut differences, but having never seen this comparison with my eyes I’m interested in how much difference you do actually perceive.

David


#4

Probably just the gamma difference. The chromaticity for sRGB and rec 709 are the same I believe. rec 709 is closer to film gamma. (things were readjusted for several reasons including the average viewing environment)

DCI-P3 is much much darker on a screen next to sRGB. DCI-P3 is also designed for theatrical exhibition where you sit in a pitch black environment. It includes compensation for luminance from a correctly projected image on a threater screen, etc. When working next to an sRGB screen, the sRGB screen had to be turned waaaay down to not overpower its neighbor.

So depending on what your source is, there might be little or a lot between screens. But yes, sRGB and rec. 709 are similar.

Sidenote: mental ray samples in perceptual space by default. Render to linear using the correct workflow and Unified Sampling. You don’t need a lens shader or to render through a LUT to avoid problems.


#5

Hi Bitter, thank you very much for your reply!

I’ve heard that they are buying a Dreamcolor for checking (one for all of us), so I guess that it will be the final testing to do :slight_smile:

I’m working with just one monitor (hopefully) calibrated for sRGB color space. I’ve been told to watch the result (in both maya and nuke) applying a rec709 lut to the viewer (but the monitor response curve is still sRGB right?).Does this make sense?

I’m still applying gamma .4545 to textures, shaders and lights colors (color swatches) but I’m not sure about the result. Should I set it to 1/(rec709 gamma)?
Everything comes out kind of dark and I don’t know if I should just raise the light intensity or if something is broken in between :slight_smile:

Thak¡nk you very much for your time, it’s really appreciated :slight_smile:

ps: colorspace node in nuke says that rec709 gamma is ~1.95


#6

Technically, to be correct you should apply 1/1.95 (.5128) to the textures and color picker.

rec 709 should look darker on a sRGB screen. It has a gamma of 1.9 as opposed to 2.2

Try viewing the images in a dark environment (Most of us here have Vitamin D deficiency. Go figure.)

A Dreamcolor monitor has this profile built in. The calibrator that comes for them (purchase separately) will use the rec 709 as the target if specified and the monitor is set correctly to rec 709.

Warning: The calibrator utility for Dreamcolors seemed to absolutely HATE Windows XP Pro 64-bit. Not tried it on more recent versions.


#7

You are not talking about fileTextures though are you? I would have thought that the usual rules would apply there. As in, if the file texture was an 8 bit image you would still assume it was coming from sRGB (unless you knew different) and apply 1/2.2 (.4545).

I know from your other posts that you prefer fileTextures come into maya already linear, but what would be an example of a source image that required .5128 to make it linear? (Answering my own question…) Obviously images that are rec709, but do people use this colorspace for fileTextures?

By the way… in case it is not obvious, these questions come more from ignorance about rec709 in a linear workflow, and not because I think you may be wrong about anything here).

David


#8

I mean if he’s working from a monitor where the working space is rec 709. (that was confusing, oops)

Using a Dreamcolor or other monitor where the working space is rec 709 to paint textures etc would mean you are viewing them correctly. As they will be output eventually.

Sorry, I wasn’t clear. Should make more sense now I hope.

So painting them in a sRGB colorspace (and viewing) and then linearizing them, rendering to rec 709 means they will look dark.

Painting in rec 709, linearizing and then viewing means they should be the same. So that is consistent and a correct color pipeline if you want to see what you are painting, etc.

(I’ll add that tidbit in the blog notes so it’s a bit more obvious. I didn’t cover a lot of viewing your textures in the correct space when painting. Mostly because Photoshop is so damned stubborn about managing behind your back and I need to learn where to kill that.)


#9

Another note, if the primaries are different is where this gets to be more of a pain.

A shift in chromaticity might mean your whitepoint, primaries, etc will shift. Your green is now not quite the green you painted.

This means more work in Photoshop to be sure you’re painting correctly. It’s also why Photoshop warns you when you bring something in with a profile of sRGB into some other profile. “convert to working colorspace?” It’s going to look strange in some cases.

Just occurred to me that doesn’t solve the stupid color picker.

sRGB to rec 709 is fine because your primaries are the same, just a gamma change. So normal linearizing them works fine for the color picker. But if the chromaticity shifts then you will have a situation where you need an actual color texture to replace that.

NOW I remember all of those confusing conversations with Technicolor where neither of us quite got where the other one was coming from. Like we were both speaking different languages. The Digital Supervisor explained “I think we are talking about the same thing, but anyway, the result is what they expected so it must be.”


#10

Hi guys
Since linear workflow has been introduced and until now it remains unclear…
If we’re forced to make some sort of rendering in linear, and we must! why Autodesk does not facilitate the task by coding some sort of an intelligent algorithms that recognize automatically the file texture if it represent color or data, 8bit or float
If the texture is 8bit apply the reverse gamma automatically by default and leave the choice for the user with check mark, otherwise skip, same thing for color swatch!
is it so hard to do?
@Bitter you blog look great and very informative thanks for charing
/Rachid


#11

The problem with that is the fact that they don’t know the destination, especially if it’s passing through a LUT.

You’d also have to feed it textures that had the right color space embedded in it, which most users won’t do.

However, it might be nice if it understood what was plugged into bump, displacement, etc. Which is why I prefer to linearize outside of Maya.

And just because a texture might be 16-bit or float doesn’t mean it’s in the right color space (although float is considered linear by default) I can save an EXR 16-half (float) with a color space of sRGB baked in.

Too many variables to deal with since users have so many destinations to choose from. Some of which are contrived. But, once you understand it (I’m still clearing out cobwebs that keep me up at night) then it becomes less heinous. And you can tell your boss you’re much more valuable. :slight_smile:

(And thanks for the blog comment. We’re in a good spot right now where we aren’t super busy so I’m hoping to get enough on there while I have some time.)


#12

I agree of all the rest of your comment expect these 02:

The problem with that is the fact that they don’t know the destination, especially if it’s passing through a LUT.

So They can do an exception for that!

And just because a texture might be 16-bit or float doesn’t mean it’s in the right color space (although float is considered linear by default) I can save an EXR 16-half (float) with a color space of sRGB baked in…

Yes you can do that, But they can made a good algorithm that detect each kind of sort of texture like your example …and in general for texturing purpose we use 8bit except for data like displacement …normal map etc…
/Rachid


#13

Except if I need an emissive texture for something where I will use a floating point texture so I have values greater than 1.

Also, using a mipmapped and cached EXR is a good idea for rendering. Now all our textures could potentially be seen as floating point/linear even if they are not.

Personally, when I let the computer make decisions for me, I end up regretting it.

God help me when my car starts driving for me.


#14

haha +1 for the car
but I am supposed to drive the vehicle, repair a spare, not tinkering the carburetor for speed!
/rachid


#15

To be accurate - it is better* to linearize the textures outside of Maya (say in Nuke) rather than apply a gamma of .4545 (or .5128 for Rec709). Using a gamma node is only an approximation of a sRGB-to-linear transformation.

http://forums.cgsociety.org/showpost.php?p=7162940&postcount=6

*I haven’t tried out colour-management in Maya2011/12


#16

Yeah, I explain that in the second part of my blog post. Part of it is explained here where primaries may change between color spaces.

The profiles in Maya handle that but in a limited fashion (you can also construct your own in Maya. More of a pain really)


#17

Hi!

Thank you everybody for the help and the suggestions. I’ve been talking quite a lot about the matter here and seems that we managed to have a better result. Still testing but linearizing textures and shaders thinking about the final colorspace really helped :slight_smile:
Still watching the result on a sRGB monitor but I hope this is not going to be a BIG problem.

I will surely bother with some more questions in the future :stuck_out_tongue:

Cheers


#18

Because there is no such things as sRGB monitors and Maya is not color managed software I would suggest this workflow:

Use a color measuring device like a colorimeter - they come with a calibrating/profiling software. Calibrate to a desired target settings like gamma and white point - doesn’t matter which, and profile the monitor - usually done automatically by the calibrating/profiling software.

Create or Open and if necessary edit you textures in Photoshop. Once you like how they look, convert them from whatever color space you are using to your monitor’s color space by choosing Edit > Convert to Profile and from the profiles menu choose the monitor profile created by your calibrating/profiling software that is currently used.
Convert the textures to 32 bit by choosing Image > Mode > 32 bits and save - people usually prefer .exr

Use the textures in Maya and render with the target gamma that you used for the calibration of your monitor. Open the rendered image or sequence in Photoshop and first assign to it your monitor profile by using Edit > Assign Profile and then convert to your destination by using Edit > Convert to Profile.

It is a g good practice to save a master copy before converting to a destination for other eventual future destinations.


#19

Hi
Interesting workflow, but we don’t had the same monitor, the same calibration and the same profile!
What if you are working with someone via internet in a same project and you send him a file texture that you have painted and saved ?. How does your file look in his monitor? I’m just asking
/Rachid


#20

achoury, the textures, images, etc, will look the same provided:

1. His monitor is also profiled by using a color measuring device.
2. Color managed program like Photoshop is used.
3. His monitor has a color space with a gamut that contains the colors of the image which my monitor can display but if not, then the color managed software will provide the best possible match.

All i have to do is provide information about the meaning of the colors used. This can be done in several ways:

1. By attaching a color profile to the image
2. By sending the color profile file for the color space used along with the image/s.This is useful for file formats that don't support attaching color profiles
3. Telling the other guy what color space was used if it is a common standard color space like sRGB, Adobe RGB, Prophoto, and etc. because those come with and are available with all major color managed programs. In Photoshop, and the other other Adobe color managed programs, images without profiles are displayed using the color space selected for a working space in the Color settings.