Announcement

Collapse
No announcement yet.

Why did U4 use roughness/metallic vs Specular/Glossiness?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Why did U4 use roughness/metallic vs Specular/Glossiness?

    Why did Unreal choose one over the other?

    #2
    It's based off physically correct materials, specular isn't actually a thing in the real world, it's all reflections.

    Comment


      #3
      Originally posted by darthviper107 View Post
      It's based off physically correct materials, specular isn't actually a thing in the real world, it's all reflections.
      There must be another reason since Unity 5 and CryEngine are using Spec/Gloss. I just like to know the thought-process...

      Comment


        #4
        Originally posted by AdamZ View Post
        There must be another reason since Unity 5 and CryEngine are using Spec/Gloss. I just like to know the thought-process...
        They may not have changed the terminology but the behavior of the material must be the same if they are using PBS. Basically roughness determines the specularity/glossiness of the material, and metallic is used for metallic materials so that they tint the reflection color based on diffuse like real metals. You would fake it by using a colored speculars in the old system.
        FREE VR Drum Kit Project
        FREE Color LUT Collection
        FREE Physics Driven Spacecraft Project
        FREE GTA Style Vehicle Interaction
        Dynamic DoF(Depth of Field)
        Camera Crossfade

        Comment


          #5
          Both CryEngine (the new steam version) and Unity 5 are (will) also use physically based shading, unity3d and the free version of CryEngine use the spec/gloss shading method.

          PBR/PBS allows for much more realistic materials to be created, and enables the lighting to use the material properties directly instead of the older slower method.

          For more on how it works, and why it was implemented, have a look through this:
          https://docs.unrealengine.com/latest...sed/index.html

          Also, this article goes into even greater detail on PBR (not specific to UE4, just talks about the method in general)
          http://seblagarde.wordpress.com/2011/08/17/hello-world/
          Last edited by DotCam; 08-20-2014, 02:22 PM. Reason: Add second link
          Free Community Ocean & Sky Project || Join us on Discord! || Trello Roadmap

          Comment


            #6
            Originally posted by DotCam View Post
            Both CryEngine (the new steam version) and Unity 5 are (will) also use physically based shading, unity3d and the free version of CryEngine use the spec/gloss shading method.

            PBR/PBS allows for much more realistic materials to be created, and enables the lighting to use the material properties directly instead of the older slower method.

            For more on how it works, and why it was implemented, have a look through this:
            https://docs.unrealengine.com/latest...sed/index.html

            Also, this article goes into even greater detail on PBR (not specific to UE4, just talks about the method in general)
            http://seblagarde.wordpress.com/2011/08/17/hello-world/
            I understand why they're using it, but I'm wondering why there are two different methods of creating the shaders now; either spec/gloss and rough/metal. I'm also wondering why two companies are going a different route vs. Unreal.

            I use Substance Designer, and creating textures for S/G and R/M are very different.

            Comment


              #7
              Originally posted by AdamZ View Post
              I understand why they're using it, but I'm wondering why there are two different methods of creating the shaders now; either spec/gloss and rough/metal. I'm also wondering why two companies are going a different route vs. Unreal.
              All 3 (when unity 5 is released) will use the same method, PBR. The reason for the switch is because it allows greater realism with greater performance. I will let you read up on how it works in detail, but it is the new method being used in the game engines.

              The old versions Cryengine 3.5 and before, and unity3d use the old method.

              Info:
              Cryengine PBR - http://docs.cryengine.com/display/SD...g+in+CRYENGINE
              - In CE, gloss = roughness

              Unity 5 PBR - http://blogs.unity3d.com/2014/03/20/...-in-unity-5-0/
              Last edited by DotCam; 08-20-2014, 02:33 PM.
              Free Community Ocean & Sky Project || Join us on Discord! || Trello Roadmap

              Comment


                #8
                Originally posted by DotCam View Post
                All 3 (when unity 5 is released) will use the same method, PBR. The reason for the switch is because it allows greater realism with greater performance. I will let you read up on how it works in detail, but it is the new method being used in the game engines.

                The old versions Cryengine 3.5 and before, and unity3d use the old method.

                Info:
                Cryengine PBR - http://docs.cryengine.com/display/SD...g+in+CRYENGINE

                Unity 5 PBR - http://blogs.unity3d.com/2014/03/20/...-in-unity-5-0/
                You're right, Physically Based Shading/Rendering is the new standard moving forward. I understand why, but the difference Im reading is how to create those shaders. U4 uses Roughness/Metallic, where-as Unity and Cry uses Specular/Glossiness. From my understanding creating those two textures to input those channels are different.
                Last edited by AdamZ; 08-20-2014, 02:42 PM.

                Comment


                  #9
                  Just to clear a possible confusion Metallic isnt Glossiness.
                  FREE VR Drum Kit Project
                  FREE Color LUT Collection
                  FREE Physics Driven Spacecraft Project
                  FREE GTA Style Vehicle Interaction
                  Dynamic DoF(Depth of Field)
                  Camera Crossfade

                  Comment


                    #10
                    Unless I'm mistaken, you can't create Parameter nodes of 0-1 (black to white), plug those into Rough/Metal, and get the same results if you plug in those same parameter numbers into a shader that uses Spec/Gloss.

                    Comment


                      #11
                      Originally posted by AdamZ View Post
                      Unless I'm mistaken, you can't create Parameter nodes of 0-1 (black to white), plug those into Rough/Metal, and get the same results if you plug in those same parameter numbers into a shader that uses Spec/Gloss.
                      Sorry for a late response, I was hoping one of the Unreal Dev's would chime in on why they chose the metal/rough over gloss/spec system, I am not sure about the exact reason, but I believe it is more efficient to render this way. However I can help with how they get converted in UE4.

                      If you have a Gloss texture, you can take the output of that, plug it into a "OneMinus" node, and plug it directly into the roughness channel. You can also use your specular map as a mask to Lerp between different roughness values instead of plugging it directly into Roughness.
                      I have also found that you can usually use the alpha channel of the specular and plug it into the roughness slot as well.
                      And have also read that you can plug the gloss directly into roughness, so I am unsure which is correct. (plug in directly, or apply a OneMinus to it first)

                      I think the reason why the other programs went this way in Cryengine's case at least, you can not modify the shaders in their engine, you can only create materials using the built in shaders. The gloss/spec technique may change in the future, as they only stated incorporating pbr a couple months ago. I am not sure about Unity5 though.

                      Hopefully a unreal dev reads this and can go into more detail for you!
                      Free Community Ocean & Sky Project || Join us on Discord! || Trello Roadmap

                      Comment


                        #12
                        Originally posted by AdamZ View Post
                        I understand why they're using it, but I'm wondering why there are two different methods of creating the shaders now; either spec/gloss and rough/metal. I'm also wondering why two companies are going a different route vs. Unreal.

                        I use Substance Designer, and creating textures for S/G and R/M are very different.
                        It's just a natural way of thinking about materials, first off. "Roughness" as a material parameter kind of explains itself and what it is that it does. "Metalness" is a good way to store an important parameter into a single channel, making for high performance.

                        It's based off an excellent presentation on how Disney did their new physically based pipeline, allowing for often self explanatory parameters that can all interact with each other in predictable ways. The only real question is why Unity and Crytek haven't done the exact same thing. Playing around with metalness and roughness for even a few minutes gives you the exact picture of what both do without much fuss.

                        Besides being faster (you only need 1 texture channel apiece to store each, much less than spec/gloss) it also just gives you nigh physically correct results without even having to think about it.
                        Last edited by Frenetic Pony; 08-20-2014, 08:20 PM.

                        Comment


                          #13
                          The material model is based off of Disney's. I've had experience in the past with a physically based model that was DiffuseColor, SpecularColor, and Gloss. There is nothing more or less physical about it. It is just a different interface to the artist. In my experience there are things about it that are problematic that I intended to solve.

                          Gloss to some people isn't obvious in how it works. What does gloss mean? Although high gloss and low gloss are perfectly clear to me on more than one occasion there has been confusion or debate about which produces sharper or blurrier reflections. Roughness is clear to everyone. It is immediately understandable and clear as to what effect it has on light. The unfortunate thing is that it is opposite the intuitive intensity of specular reflectance. This means that roughness maps look inverted visually. For this reason some engines have gone with "smoothness" instead, which if I were to do it again I would strongly consider.

                          DiffuseColor and SpecularColor have a complex relationship that requires a great deal of artist training and is very error prone. Artists need to be taught that metals have black diffuse and colored specular, nonmetals have noncolored specular of about 4%. What is that in sRGB space? These sound simple but trust me, making sure the textures followed rules like this is a long and difficult process. Having the parameter Metallic is much simpler. Is this metallic, yes, no? Now there is nothing to learn or screw up except setting metallic to something not 0 or 1. The learning process with this material model I have seen go much better.

                          An additional advantage is storage savings. Materials can often assume constants and not require textures for Metallic or Specular. The GBuffer gains one channel by storing Metallic and Specular instead of SpecularColor.

                          There is a downside being that it disallows some nonphysical materials with diffuse and colored specular. Occasionally that can cause issues but most of the time this is a good thing.

                          There are many others going the metallic route, Frostbite and The Order come to mind. The Disney presentation made a really big splash.

                          Comment


                            #14
                            Just to illustrate what Brian said, this video shows the differece between Roughness/Metallic and Specular/Glossiness models and why first one is more intuitive and easier to use: http://vimeo.com/100514711

                            And I think with Cryengine it's more about the lighting fidelity they are able to achieve rather than actual PBR-materials workflow. Last time I checked (when it went EaaS and landed on Steam) they still had a 1-255 range Spec sliders you know
                            Last edited by AntonBoiko; 08-23-2014, 01:47 AM.

                            Comment


                              #15
                              Thanks everyone for your thoughts and suggestions!

                              Comment

                              Working...
                              X