Hi everyone,
We are currenly working with Unity on a game and we only (mostly) use diffuse textures. All the information needed -AO, metal/spec or rough/gloss- is then faked in that only texture (just to make myself absolutely clear
).
I read and learned a lot about color space these last few days and I am trying to figure out either should I use Linear color space or Gamma color space. Correct me if I am wrong, but in very very short it is better to use Linear color space as the result is more accurate to real life and is physically correct. Then you have to check the sRGB sampling box when you import Diffuse/Albedo/Spec/AO maps (since you want them to be gamma corrected) but uncheck that box for any metallic, roughness maps or any greyscale or mixmaps with information inside the RGB channels.
Linear is almost always used for PBR now for the the realism, but as our game is in a cartoonish style and we only use diffuse maps for texturing, is there really a point choosing Linear color space over Gamma color space?
I was worried about performance optimization, so I did some research about their rendering pipeline and it does not seem to me that there is a big difference in performance, but I may be wrong.
Any thoughts about what would be best?
Replies
*Edit* Actually, Unity 5.5 added support for linear on mobile. Read here: https://blogs.unity3d.com/2016/12/07/linear-rendering-support-on-android-and-ios/
Albedo should be sRGB. Metal, Roughness, AO ideally are linear.
There is no performance impact on how the texture is decoded in srgb or linear.
It is for PC. I didn't know they added the support in the end!
@radiancef0rge
So it is not a rule of thumb for PBR?
I read here that it is "typical practice in PBR to use a linear pipeline". Indeed I mistakenly assumed it was always used.
Because metal/roughness/etc.. represent 'values used for math' and would be misinterpreted and give inaccurate results if they are fed to the shader as sRGB, is that correct?
Off the top of my head, I would stay in gamma color space as we only use a diffuse map in our shader.
Really sorry if this is redundant but I want to be sure that I understand.
Thank you for the answer!
I'll give it a try then.
Thanks for the help with my noob questions.