So I still don't get it...
For my understanding ( to be able to properly work in a linear manner) I should be able to:
- set each bitmap I load to be handled linear or gamma. I don't find such a setting except the turn-to... nodes. should I use them?
- when using a node for the 3d view I should be able to tell the shader if the node I supply is linear or gamma. Same here: I don't find a way except to use again the turn-to... node
- when exporting a graph I should be able to say which output node is linear and which in gamma. The only hint I read was that "base color" is always gamma and everything else linear. But is this right? A quick test I did didn't reviled such an effect.
I want to build a compound map. A RGBA texture containing 4 different grayscale maps/masks. I import this map into unity and set it to bypass sRGB sampling. But it does not give the same result. If I keep sRGB sampling it looks correct. But I obviously don't want to work in gamma with my masks.
Any insight would be appreciated!
cheers
Replies
By default, the PBR BaseColor, Metallic shader interprets the basecolor as sRGB and the other maps (roughness, metallic, normal..) as linear.
The PBR Diffuse, Specular, Glossiness interprets the Diffuse and Specular as sRGB, the other maps as linear.
You can force the linear interpretation for BaseColor, diffuse, spec in the material/shader properties. But I don't see a reason why you'd do that.
SD does not handle color space, so we can say it works entirely in linear space. However, when you work with colors, because the color dialog is displayed with a sRGB correction, we can say you author the textures as sRGB.
For the unity problem, everything relies on how you preview your maps in both applications, both shaders should interpret the textures the same way to get the same result on both sides.
After a quick test I guess it's the smoothness default offset of both shader which don't match. By chance this offset was more or less compensated by the (of course wrong) sRGB sampling in unity which lead to my assumption.
That SD works entirely linear when we talk about the node network is a very valuable piece of information!
cheers!!
- in U5 the default PBR shader uses a blinn-phong brdf, we use GGX. Both have a very different specular response. For the same smoothness/glossiness value in both applications, the result will be very different simply because the maths behind are different
- in U5 their is a bug in the reflection probe / mipmap level sampling in the default shader: a given smoothness value on a material will render dramatically different when the reflection probe resolution is changed.
These two factor makes the matching with both application (and actually any application because of the second point) impossible..
I tried the instructions on this blog post (very easy) and was able to get much better results in Unity 5, with a better representation of my Substance materials.
http://gfxdevunity.blogspot.ca/2015/05/replacing-blinn-phong-by-ggx.html
also check this forum thread for more info,
http://forum.unity3d.com/threads/using-ggx-instead-of-blinn-phong.323827/#post-2103011