Hi
I am still adapting to PBR and biting it from different angles.
My today's question is maybe simple. Why use metallic texture to differentiate metal parts from non-metals when I can do this by albedo + spec map.
Why it's better using metalness map instead specular map? Is it better only because it limits possible artist's errors which could be putting too much variation and tinting spec maps?
Replies
Its basically an alternative, easier way for mapping specular reflection.
You can't use the metalness and the specular workflow at the same time, because its almost the same thing (slight mathematical difference). A pbr shader can use metallic OR specular input only at the same time. As far as I know, you need the metalness workflow with unity. Correct me if I'm wrong please.
It's no better in any regards imo. It's just what you say basically. An inflexible approach to do materials not allowing "mistakes". While old way was flexible and allowed to do whatever you want it to be.
But in fact, if your shader/lighting math have some simplifications or just errors maybe you couldn't anymore do something with it on art level since inflexible system just wouldn't allow you.
So it's just like everything flexible vs inflexible, every side has its pluses and minuses.
Turning something real like dust or dirt covered galvanized metall into a nightmare and requiring a lot smaller texel size/ bigger or more repetitive texture.
Contrast roughness transitions make "halos" too altogether making material less pixel to pixel precise
I wouldn't call such "cool programmers achievement" especially artist friendly.
Also depending on what engine/context newer PBR shading models might come with some internal features which you might not be aware of. Not features that you need to take action for, but niceties. Better fresnel terms, energy conservation, reflection sharpness/roughness, proper gamma handling, etc. Of course, this all depends on what you're coming from and have been used to working with before.
Why do we have PBR only now not a few years ago? Materials are much more complex to compute or what?
Although I don't see reasons why we can't bake shader tree in all necessary texture inputs even with such inflexible approach other than saving one extra texture input that often could be just a single color value.
General pbr: http://www.marmoset.co/toolbag/learn/pbr-practice
In short, spec maps are more flexible, but with the added flexibility comes a lot of freedom to make very much physically inaccurate materials, so your artists need to have a very strong understanding of physical material properties. Spec maps also use a little more texture memory.
Metalness maps are more efficient (use less memory), and more restrictive, but make it harder to make implausible materials, and some say the metalness workflow is easier to pick up and faster to work with. As mentioned above, they also have more visible artifacts (see the white edge issue in the first link).