Home Technical Talk

PBR workflow. When should you use Metallic vs reflectance?

polycounter lvl 9
Offline / Send Message
tynew polycounter lvl 9
I'll be learning the PBR workflow today, and that question stumped me. When should use either map and where it is appropriate? How does it differ? For example what if I have a metallic map and I wanted it to have colored reflectance in some areas?

Replies

  • almighty_gir
    Offline / Send Message
    almighty_gir ngon master
    The two workflows are mutually exclusive, you can't really combine them. And which workflow you use will vary depending on which studio you work at and what engine they're using.

    For example, UE4 is metalness only, Cryengine is full reflectivity, Unity is whatever shader you use.

    If you're concerned about being able to colour your reflective values wherever you like, then you should absolutely use reflectance. Metalness is a much quicker workflow though, and generally speaking it's easier to learn as an artist.
  • tynew
    Offline / Send Message
    tynew polycounter lvl 9
    Thanks gir for the info. I've picked up some freelance work which will be requiring PBR textures and the engine the studio will be using is unity with the shader forge plugin.

    What I was trying to mean in my previous post is what if I use a Metalness map, but some small areas of the object require some color in its reflection? Would I just add more color to the Albedo to try and get that point across?

    I haven't seen any workflow videos of someone actually pbr texturing in regular photoshop. I have read the Marmo tutorial and checked out the the Cerberus model provided by Andrew on polycount.
  • stevston89
    Offline / Send Message
    stevston89 interpolator
    If you need to add some color to the reflection you can make it partly metallic with a grey value in the metalness map. However this will also darken your diffuse/ albedo. I wouldn't really reccomend it. Also the reflection color has to be the same as the diffuse color for that to work. Unless there is some shader magic you can use to hack the spec color ( but at that point it might as well be the reflectance version instead of metalness) .
  • almighty_gir
    Offline / Send Message
    almighty_gir ngon master
    Pretty much what stevston said here. you can partially tint the specular by making it mildly metallic (the metalness map is grayscale after all), but it isn't ideal because:

    due to energy conservation, the diffuse is multiplied by 1 - metalness. so as you try to tint the specular, the diffuse will become darker. at the same time, the specular will only be tinted by the original diffuse colour, you couldn't have say, a green diffuse and a yellow specular.

    your best bet is to ask the client which workflow they use, and if possible could you have the compiled shader to use on your end.

    failing that, i have written a unity shader that does metalness or reflectivity. (well, two shaders, one for each workflow). I'll be releasing those soon.
  • EarthQuake
    Check out the tutorial I wrote about PBR for TB2 here: http://www.marmoset.co/toolbag/learn/pbr-practice

    Its specific to Toolbag, but most of the concepts are pretty universal and it explains the metalness vs spec map thing.
  • commador
    Offline / Send Message
    commador polycounter lvl 14
    I've looked over the guide a few times now, specifically for the metalness workflow and I think I've got it. I've written a summary to further plant it in my brain, based on the lens example in the tutorial.
    Practical example. Painted metal, bare copper.

    albedo: painted metal will be color of paint. Bare copper will be copper colored (most “white” metal such as steel aluminum and iron will be gray to white, as the albedo color is actually a predefined static value in the shader. Only “colored” metals such as gold, bronze, or copper will be colored)

    microsurface: painted metal will be dark gray to gray, depending on paint finish (matte or smoother). Bare copper will be white as it is smooth. (For brushed metal, some darker “grain” streaks may be used)

    metalness: painted metal will be black. Bare copper will be white.

    Is this correct?
  • iniside
    Offline / Send Message
    iniside polycounter lvl 6
    What is microsurface ? If you explain what you mean by that I will be able to comment, for duffyse and metalness it's right.

    People really should stop using term albedo, as it really means pure color without any fakes, and I say good luck, making good looking prop without any faked lighting ;)
  • EarthQuake
    Microsurface = gloss or roughness map, check the tutorial linked above for more.

    Albedo is a very technically correct term, these days you should not be faking any lighting, provided you have decent shaders/lighting systems.
  • Joopson
    Offline / Send Message
    Joopson quad damage
    So, with the metalness workflow, is the only way to define specular brightness of a non-metal to darken or lighten the diffuse, or adjust the roughness of the highlight?

    I've been really struggling figuring out metalness, because it feels incredibly confining to me; but I think it's just because I misunderstand the way it works.
  • EarthQuake
    Joopson wrote: »
    So, with the metalness workflow, is the only way to define specular brightness of a non-metal to darken or lighten the diffuse, or adjust the roughness of the highlight?

    I've been really struggling figuring out metalness, because it feels incredibly confining to me; but I think it's just because I misunderstand the way it works.

    In Toolbag 2, yes, though adjusting the albedo for non-metals doesn't actually affect reflectivity (just apparent reflectiveness). Adjusting the gloss value does affect reflectivity indirectly, due to energy conservation.

    Other engines may have both a metalness and base reflectivity input though (but this gets sort of messy).
  • cptSwing
    Offline / Send Message
    cptSwing polycounter lvl 11
    While confining in some ways (we were poring over an oil-spill decal problem today), the metalness workflow does shave some work from the texturing process!
  • EarthQuake
    cptSwing wrote: »
    While confining in some ways (we were poring over an oil-spill decal problem today), the metalness workflow does shave some work from the texturing process!

    Yeah, and in that case you probably want a special-case newton's rings shader, you can't really get that look with just a standard colored spec map either.
  • iniside
    Offline / Send Message
    iniside polycounter lvl 6
    EarthQuake wrote: »
    Microsurface = gloss or roughness map, check the tutorial linked above for more.

    Albedo is a very technically correct term, these days you should not be faking any lighting, provided you have decent shaders/lighting systems.

    I have, and I still fake lighting. We are just not yet on film level, and we won't be for foreseeable future.
    The only difference is how much lighting you should fake. Now, it's about faking smaller details ;)
  • Kurt Russell Fan Club
    Offline / Send Message
    Kurt Russell Fan Club polycounter lvl 9
    Albedo is a fine term to use, it's for surface diffuse reflections. "Diffuse" has more contributions e.g. subsurface, so why not use terms that mean the things we mean?

    I'm sure there will be hacks as long as we're simulating the real-world. Even "film" level is garbage compared to reality. It's all just layers of hacks. But you shouldn't be baking much lighting - certainly not compared to the diffuse of old.
  • tynew
    Offline / Send Message
    tynew polycounter lvl 9
    Thanks for the awesome replies, I really think there should be a thread about the discussion of PBR workflows :)

    I had a look at this
    materialref01.png


    So it looks like to get the colored specular I was talking about, you can add color to the roughness? I thought the roughness had to be grey scale.

    I was also wondering, how did quixel find the values for each material? Where can us artists find values for each material like that?
  • Froyok
    Offline / Send Message
    Froyok greentooth
    tynew wrote: »
    I really think there should be a thread about the discussion of PBR workflows :)

    There is one : http://www.polycount.com/forum/showthread.php?t=124683
  • BARDLER
    Offline / Send Message
    BARDLER polycounter lvl 12
    tynew wrote: »
    Thanks for the awesome replies, I really think there should be a thread about the discussion of PBR workflows :)

    I had a look at this
    materialref01.png


    So it looks like to get the colored specular I was talking about, you can add color to the roughness? I thought the roughness had to be grey scale.

    I was also wondering, how did quixel find the values for each material? Where can us artists find values for each material like that?

    They don't find them, they scan them with this monster.
    63f0817a97ed11e2ac3122000a1fb77a_7.jpg
  • tynew
    Offline / Send Message
    tynew polycounter lvl 9
    Oh that is pretty insane then. Do artists have to rely on website databases for value information? If so is Quixel the only one that will be supporting that soon?
  • Joopson
    Offline / Send Message
    Joopson quad damage
    tynew wrote: »
    So it looks like to get the colored specular I was talking about, you can add color to the roughness? I thought the roughness had to be grey scale.

    All the roughness values (which are labelled "Microsurface") do seem to be greyscale.
    The R in the image stands for Reflectivity, and those are colored.
  • tynew
    Offline / Send Message
    tynew polycounter lvl 9
    Oh that makes me feel like an idiot for not seeing the obvious :D

    So my real question is, can I make any material accurate only using a metallic map workflow?
  • almighty_gir
    Offline / Send Message
    almighty_gir ngon master
    short answer: no.

    longer answer: although almost all dielectric materials fall into the reflective range of 0.02 - 0.04, there are some extreme cases that don't. and because the metalness workflow puts all dielectrics at reflectivity 0.04 that means that you will have some materials that are never 100% physically accurate.

    that said, the difference between values of that range is almost imperceptible to most people.
  • gnoop
    Offline / Send Message
    gnoop polycounter

    I wonder does anyone really use reflectance workflow nowdays? I mean in actual game?


    As of physically accurate materials I think neither of them are . The idea of PBR is all around microsurface while most of natural materials are very grainy and its surface irregularity is not micro at all.

    Normal map resolution is typically not enough to reproduce not so micro surface bumps . Thus such basic thing as asphalt is very tricky actually and needs a lot of special tricks and workarounds . I have to see yet a real looking asphalt highlight in a game. Same with a snow or sand, or grass and so on.

    Both of workflows are good for man made objects really

  • Neox
    Offline / Send Message
    Neox veteran polycounter

    yes. but its rare

    i would love to have it on more projects

    having control over the color of reflections besides using metalness is so much nicer for stylized stuff

  • Eric Chadwick

    If you're using glTF format there's an extension for colored specular KHR_materials_specular or you can use the older but still valid extension KHR_materials_pbrSpecularGlossiness.

Sign In or Register to comment.