I know filmic uses for wide color range. But what is a display device for? Which cases I need to prefer one of display device settings?
2 Answers
Prerequisite
I think the right word here is color profils not color models.
A color profil defines 3 things:
- The white point (what is white)
- The primaries (e.g. : R,G,B...)
- The transfer function (the contrast curve applied e.g. gamma, Log...)
- You may think why defining white? White is white no?
In fact there is no absolute white.
Think to a paper sheet, most of them are "white", but if you look at it under an overcast sky, it's not the same white as if you look it with the direct sun light.
It's colored a bit in "blue" if overcast, "red" / "orange" if direct sun.
It's the same here, you can have different white point, with slightly different HUE.
For exemple the sRGB white point is D65 (see the picture below), but you have D60 white point...
- The primaries, it's the same as "black" and "white" we need to define them. For RGB we need to define what R, G, and B are, it also defines the boundaries of the colors you can display in the color space.
For sRGB it's the triangle made by the position of R, G, B.
Remember sRGB is a limited color space made for screen display (3 subpixels R,G,B value range 0 to 255), but there are plenty of colors outside this color space.
- The transfer function is a mathematical function that change the contrast of the displayed pixels. (gamma, EOTF, OETF, Log are some functions that can be used)
It's the curve you are playing with to contrast your image.
Answer
With that in mind, sRGB, Rec709... have differents 1., 2., and 3. They are for different purpose and it's the answer to your question, you need to choose the one corresponding to your need
In Blender with the default config you have Display device that defines the white point (1.) and the primaries (2.), the view that defines the transfer curve (3.) and you have the look that is a creative transformation of the image, contrast or color tint.
Color profils are applied at the verry end of the chain, so juste before displaying the image or when saving it.
It means that all the compositor transformations you make are applied on a linear image, so all datas preserved but when saved, the image lost information if non 32bits linear.
So exept for some cases, e.g. basic drawing without light interaction, it's always better to use filmic to view your viewport, even if you save it in linear 32bits at the end. With filmic what you see correspond to how light intensity works in real life, it's not the case in sRGB / Default setup.
E.G. of use:
For display :
sRGB : is for typical 8bit CRT monitor display, so for web, photo display... I think Apple use a different profile but I don't have Apple devices so I can't say more.
Rec 709 : is for TV/Cinema display
For post prod :
CIE XYZ : In blender with the view set to Log you have the typical washed out picture used by studios before color gradding video footage.
Linear space : That isn't a color space since colors aren't defined, it's the scene referred space, it's what Blender calculate internally and how light intensity works in real life. It can't be displayed correctly on a CRT monitor, but keeps all the original datas if the picture is saved in 32bits.
For convertion/compare between different spaces :
CIE LAB : is an absolute color profile, like a reference to calculate all colors even colors that cannot be reproduced in the physical world.
More about the topic :
EDIT 1 : More infos about workflows
Remember, you can preview picture with one configuration and save/export with an one other one, if you know well what's your needs, how color management and color spaces work.
I agree with Troy, color management in Blender is messy, but not only color management there are other part that involved with color management that aren't suited for linear, but it's an other story.
It's not only Blender, I use Affinity Photo, you can't work in 32bits correctly and I don't speak about Photoshop...
All of that because Color management, color spaces, and the different transformation of the chain are really hard to understand and need something close to devotion. But it's really worth it.
About your workflows, since you don't have specific workflow I give you what I usually do:
Blender previsualisation :
Preview in sRGB / Filmic (filmic is a kind of Log encoding)/ High contrast (contrast depends of the final look you want), render an image of the sequence, color grade with the compositor node Color balance, set the type to Offset/Power/Slope (ASC-CDL), then it start to really depend of the needs.
You have to ask yourself, is this shot the final video wich will be diffuse or, will the final grade be made in an external software?
Final video :
Render your sequence with the same color management setup and compositing, and export in the format you want.
For web, screen display, Tiff 8bit, Avi, MP4... this will gives you a sRGB with the maximum light info baked but no more room for playing with intensity of light (contrast, exposure...)
If you work on Apple change sRGB for P3...
Video that is color graded in an external software :
Render you sequence without the color balance node active, in .EXR 16 or 32 bit (if 32 is too heavy), this time you have a 16/32 bit linear output (so no color space baked). Than you can import in Resolve for exemple, change the color space to whatever you want and do the color grading, adding LUTs...
Export the vidéo to your needs e.g. : DCP (jpeg2000)...
Hope this is clear enough.
-
$\begingroup$ Great answer, anyway, i can't understand workflow how to use that. For example, if i want to create a video for cinema. In this case i will create DCP - XYZ color space in jpeg 2000. When I render that, i can't preview the result, because i have only sRGB monitors. So in this situation i will render in sRGB, then convert it DCP with losing colors, because if i use XYZ, I can't preview result. And also, I can't use filmic in XYZ $\endgroup$– CrantiszCommented Jan 28, 2019 at 7:03
-
$\begingroup$ It would be easier to answer @Crantisz if you had a clear context that you were trying to solve. Blender's default configuration uses a REC.709 based reference space, and as such, is of limited gamut to begin with. $\endgroup$– troy_sCommented Jan 28, 2019 at 15:57
-
$\begingroup$ @troy_s i haven't context, I want to know a workflow how to use this $\endgroup$– CrantiszCommented Jan 28, 2019 at 22:35
-
1$\begingroup$ If you don’t have a specific thing you are trying to solve, then a good rule of thumb is that in a decent configuration, the Display class outlines the colorimetry. The Views should all be representations designed for that colorimetry, and Looks are creative twists that are applied to Views. Again, the mess that is the default Blender configuration is just that; a mess. If you have specific questions about a view, I could offer more information. $\endgroup$– troy_sCommented Jan 29, 2019 at 5:47
I’ll only add a few snippets as per your original question:
But what is a display device for?
Display device is the class of display you are on. The transforms target the display. Some common ones are a simple generic sRGB device or Apple Display P3 devices.
The colorimetry and characteristics of that device become the target for the view transforms; all view transforms should be designed for the colorimetry of the destination Display Device.
Which cases I need to prefer one of display device settings?
You must choose a display device that matches the device you are working on. If you are on a generic sRGB device, choose sRGB. If you are on an Apple Display P3 device, choose Display P3. Etc.
What is the difference between color models (sRGB, Rec709, XYZ, ets) and which cases I need to prefer one of them?
If you have properly selected a Display Device, each View should display correctly for the chosen device. What exactly “correctly” is depends on the transform in question.
In the default configuration, XYZ would display XYZ correctly, if your reference were XYZ. This is completely boneheaded and is included because the default configuration is a hand-me-down hodgepodge from other configurations, and an abuse of OCIO’s design. RRT is a mangled up transform from a different colour encoding archival system. In essence, they are all garbage with the exception being “Default”, which is actually the sRGB OETF encoding. Sadly, the sRGB transfer function is also a poor choice to use when rendering or doing things that involve physical quantities of light.
Blender’s default configuration is a colossal mess and, in addition to being broken, is a confusing nightmare for pixel pushers. Instead of asking these sorts of good questions, inquisitive folks avoid the settings altogether because of the mess.