Search Unity

  1. Unity Asset Manager is now available in public beta. Try it out now and join the conversation here in the forums.
    Dismiss Notice

Metal Channel in Mask Map is Ignored on Lit Shader when using a Subsurface Scattering

Discussion in 'Graphics Experimental Previews' started by punk, Sep 5, 2018.

  1. punk

    punk

    Joined:
    Jun 28, 2013
    Posts:
    408
    I'm noticing on the current HD Pipeline version in the package manager that the Metal channel is ignored when setting the Lit Shader to material type Subsurface Scattering is that a bug or by design?

    (edit) just to be clear im using a Mask Map and Metal channel is ignored

    sss.png
     
    Last edited: Sep 5, 2018
  2. Grimreaper358

    Grimreaper358

    Joined:
    Apr 8, 2013
    Posts:
    789
    It's not a bug, objects using Subsurface scattering won't need to be metallic (not physically possible) and if you have an object that has both metallic and dielectric materials you will have a metallic map which the input for that is still there (Mask Map, just not the slider). The different shader models/settings/material types are dynamic so settings that don't need to be exposed are hidden depending on what you choose - people won't be making materials that aren't realistic/physically correct.

    the Mask map is
    Metallic - R channel
    AO - G Channel
    Detail Map Mask - B Channel
    Smoothness map - Alpha Channel
     
  3. punk

    punk

    Joined:
    Jun 28, 2013
    Posts:
    408
    Yeah i realize that, the metal channel on the Mask Map is ignored, I've updated the title - thanks
     
    Last edited: Sep 5, 2018
  4. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Why not? we are making materials that don't look correct because that's the game's style... Or do you mean that the lit shader designs out non PBR use cases?
     
  5. Grimreaper358

    Grimreaper358

    Joined:
    Apr 8, 2013
    Posts:
    789
    Yea exactly, it guides you towards not creating unrealistic materials. For instance, making an sss material, it locks/hides the metallic slider so you wouldn't be able to make it a metallic sss material (not physically possible)
    Even if you made a metallic map and specify it to be metallic it will ignore that and still be dielectric. You can certainly make (non-physical) materials with the Specular Color material type (or if your maps aren't made correctly for metallic or on purpose to get an effect you want - still limited because things can look bad easily) but there are certain things you can't break unless you make a shader for it/edit the Pipeline, so everything else keeps you on track for physically accurate materials even for stylized textures.

    eg This ball uses the Specular Color mode and I made it green but the reflected light/specular metallic red. So the green parts are dielectric but at the specular angle, it blends to metallic. this is "impossible" to do with metallic workflow (you could make a texture to match but it will be static so when viewed from another angle it wont be the same)
    upload_2018-9-24_22-26-40.png

    So Specular and Unlit materials are mainly used for the really stylized look (unrealistic materials)
    Creating stylized textures with metallic workflow is still making PBR maps, they don't look realistic because of the shapes and details in the maps and models. Technically they are physically correct but not physically accurate.
     
    hippocoder likes this.
  6. punk

    punk

    Joined:
    Jun 28, 2013
    Posts:
    408
    i agree with all of this, I'm curious tho, are you saying the metal channel in the mask map on the SSS shader works for you? Because as far as i can tell it looks like there is no metal channel passed to the SSS shader, excuse if my terminology is wrong
     
  7. Grimreaper358

    Grimreaper358

    Joined:
    Apr 8, 2013
    Posts:
    789
    You're correct. It just ignores the metallic input (I think they want objects using SSS to be separated maybe to be rendered in a separate pass together or for some other performance reasons) Even if you try to make a shader in shader graph, once you enable SSS for the shader properties it removes the input for metallic to the master node.

    You'll have to separate the SSS parts of your model and use another material for it.
     
  8. punk

    punk

    Joined:
    Jun 28, 2013
    Posts:
    408
    Yeah cool thanks, i just wanted to confirm that with someone else, its not ideal for optimzed game models, but it is what it is
     
  9. Genebris

    Genebris

    Joined:
    Mar 18, 2013
    Posts:
    144
    Sorry for necro posting, but I'm facing this issue in 2022. What am I supposed to do when I have a character with a metal ring on his finger? Separating ring in a mesh is no a feasible solution.
     
  10. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Separating the ring in a mesh is the feasible solution.

    If you cannot, then just blend in a reflection cubemap and tweak stuff in the graph for 'metals'. Seems a waste for just one part though.

    So it's more than possible to emulate metals just by making some shiny bits in the graph. Won't be physically accurate but iron man's suit in marvel films is never physically accurate either.
     
  11. Genebris

    Genebris

    Joined:
    Mar 18, 2013
    Posts:
    144
    How is separating this circular ring in a mesh is a reasonable thing to do?

    upload_2022-9-11_4-6-19.png