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

Understanding Metallic and Remapping fields in new Lit shader

Discussion in 'Graphics Experimental Previews' started by dgoyette, Oct 26, 2018.

  1. dgoyette

    dgoyette

    Joined:
    Jul 1, 2016
    Posts:
    4,195
    I'm in the process of migrating my project to HDRP, and I'm a little confused about some of the new Lit shader settings. Previously I was using the Standard Shader (Metallic) for various material. I authored the textures in Substance Painter, and exported the textures into Unity. (Substance Painter has an export template designed for the Unity HDRP, and it exports BaseColor, Normal, and MaskMap, in addition to some other things I'm not using.)

    Using the Legacy rendering engine, I just assigned my Metallic texture to the shader, and that was it. Now, though, there is more to choose from:

    upload_2018-10-25_22-7-10.png

    After migrating materials to HDRP, this material started off with a value of 0 for Metallic. That looked awesome. I've found that setting it to 0.5 seems about right, or it's about as good as it gets. But I'm wondering, is this expected? Is it normal to have to set the Metallic value to a non-zero value despite using a Mask Map?

    In addition, what are these Remapping sliders? Empirically, the best results (most similar to legacy) are when I've dragged them all the way open, as I've shown in the screenshot.

    So I'm just wondering, is it SOP to set Metallic to 0.5, and to have the Remapping sliders wide open?
     
  2. Remy_Unity

    Remy_Unity

    Unity Technologies

    Joined:
    Oct 3, 2017
    Posts:
    703
    Normaly, if using a mask map, Metallic should be 1 and the two remapping sliders totally expanded.
    The metallic value is applied as a multiplier to the metallic mask, and the two remapping slider will ... well, remap the values of smoothness and AO.
    For example, that means that if the smoothness values of your texture range from 0 to 1 but you set the smoothness remapping to 0.25 and 0.75, the final values will be scaled and offset to range from 0.25 to 0.75.
    Or you could also tweak the minimum remap to have a globally more smooth surface, or tweak the maximum to a more rough surface.
    We made this to allow better fine control after having set a map then just a single multiplier value.
     
    dgoyette likes this.
  3. dgoyette

    dgoyette

    Joined:
    Jul 1, 2016
    Posts:
    4,195
    Thanks, Remy. That definitely helps. When I set Metallic to 1, and I turn off Scene lighting everything looks correct now. So I think my earlier issue was probably more likely due to not having a great handle on the new Lighting characteristics yet. I'm all set. Thanks again.
     
  4. dgoyette

    dgoyette

    Joined:
    Jul 1, 2016
    Posts:
    4,195
    Actually...I wonder if my confusion could have been avoided if the HDRP Material Upgrade process had set the Metallic to 1 instead of 0 for all my converted materials? I'm not sure if that's always the right thing to do, but it seems likely that in the case where Unity created a MaskMap for my converted material, it should probably have set the Matellic value to 1, and set the Remapping properties of the material to wide-open?
     
  5. Remy_Unity

    Remy_Unity

    Unity Technologies

    Joined:
    Oct 3, 2017
    Posts:
    703
    Wasn't it the case ?
    Also, the converter will keep the metallic value that was set, and re-interpret the smoothness and ambient occlusion values as the maxs for the two sliders. In the standard shader those values apply as multipliers on the textures.
     
  6. dgoyette

    dgoyette

    Joined:
    Jul 1, 2016
    Posts:
    4,195
    I recently went through converting my project to HDRP, and more pretty much every material I had to take the Metallic slider from 0 to 1. I still have a pre-HDRP branch on my project for comparison, so I can show a before-and-after of a material. Here's the material as it exists in standard rendering:

    upload_2018-11-5_9-46-59.png

    And here's the result of upgrading materials to HDRP using the automatic updater (I just went through the migration process on my non-HDRP branch, to make sure this is reliable):

    upload_2018-11-5_9-58-54.png

    This was the case with pretty much all of the materials I have using the Standard shader: Metallic was set to 0, and smoothness remapping was in that range. I'm not sure if that was due to some analysis of the metallic texture?
     
  7. Remy_Unity

    Remy_Unity

    Unity Technologies

    Joined:
    Oct 3, 2017
    Posts:
    703
    Ok, so this is an issue then. Thanks for reporting :)
     
  8. Vict0r3znov

    Vict0r3znov

    Joined:
    Oct 14, 2018
    Posts:
    26
    Hello, i just wanted to share with you that the issue with the metalic slider is not solved yet, Unity 2020.1.6f1 and when upgrading shaders i have to change the value to 1 on each material
     
  9. onechain1

    onechain1

    Joined:
    Nov 6, 2021
    Posts:
    2
    Hi, I just want to say the problem still exists in 2021.2. Somehow all my HDRP/Lit materials get their Metallic Remapping slider set to 0 from time to time.