Announcement

Collapse
No announcement yet.

Epic Games / Disney White-Washing

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

    Epic Games / Disney White-Washing

    I have an issue with the rendering in the Unreal engine: it looks washed out and unnecessarily white on many surfaces.

    My question is this: was the usage of the PBR system outlined here by Disney, really the best approach for PBR and its implementation in the Unreal Engine?

     
    Spoiler


     
    Spoiler


    Looking at these two images, one from Fortnite and one from Disney, you can clearly see the whiteness, in particular on the neck/arms, on the ground, in the hair, table and all glinting surfaces beyond a certain angle, the materials exhibit this quite clearly and it looks really 'cartoony' and 'fake'.

    Is there any way to remove this whitewashing? I appreciate it works for Disney, because they are not using real-time and they are creating children's movies and having this level of whiteness might help them.

    Another game recently produced using (I believe 4.20) is Insurgency: Sandstorm. My case-in-point where the rendering looks bad as an example for discussion would be these official screenshots:




    The whitewashing in the Unreal Engine makes all glinting surfaces white and have the overriding image look like a cartoon. In the images, it also looks like (partially) the objects have a layer of white 'wax' over the surfaces, making it so when light hits the object, it will enhance the whiteness and wash-out the contrast. This is a military game, that, looks like a military game trying not to look like a Disney cartoon.

    Now, is this a bigger problem involving all real-time rendering with PBR, wherein the amount of rendering required to off-set the whitewashing is too high for real-time? Or, is this as I suspect that using the Disney method for PBR was the 'wrong choice' and now, devs have to fix the problem?

    A common comment is that you can tell whether a game uses the UE4 engine because of this whitewashing.

    So, how do we make the rendering in the engine not look washed-out, and, perhaps more importantly, make a game not look like every other game insofar as players/consumer will not correctly identify that a game was rendered in Unreal.

    White-washing is a problem. What is the solution?


    #2
    Im personally doesnt see any "whitewashing" effect on Insurgency: Sandstorm screenshoot. Maybe a little lower contrast because of postprocessing.
    Also, im defenitely doesnt see any "sign" of UE4 on that screenshoot.

    Fortnine may looks like "Disney catroon" cause Epic trying to achieve exactly "that cartoon look" and make it good, but not because of some sidefx of PBR rendering in UE4.

    perhaps more importantly, make a game not look like every other game insofar as players/consumer will not correctly identify that a game was rendered in Unreal.
    But it's ridiculous! No one care what engine you use. If you game good - its a good game, if you game bad - its a bad game.
    No one will say - "Meh... so awful gameplay, AI and storytelling but look at the picture! Looks like they dont use UE4! Wow that game are awsome!"

    Comment


      #3
      My question is this: was the usage of the PBR system outlined here by Disney, really the best approach for PBR and its implementation in the Unreal Engine?
      Technically, yes. Overall it was the best.

      What OP is is referencing to in his post is indeed a problem. But it is 3 separate problems that give this ugly white sheen that should not be there.

      1) Fresnel approximation lacks a specifics in the graph, that is there in full calculation.
      2) Lack of specular occlusion in certain cases.
      3) Overbrightening of fresnel on rough surfaces due to more microfacets reflecting light straight into the cam.

      Contribution of 1 is minimal, besides approximation is significantly cheaper. Not much to do here.
      2 is not directly related to shading. You can see this one in OP's sandstorm screenshot, where floor near the window is receiving indirect specular, where it should not.

      3 is the problem that can and should be dealt with. It is handled by adding a compensatory factor depending on surface roughness nowdays. Krzysztof.N Epic should really consider implementing that. If they don't, adding it on your own is quite trivial luckily.
      Last edited by Deathrey; 01-20-2019, 09:04 AM.

      Comment


        #4
        Originally posted by Alexander.L View Post
        Im personally doesnt see any "whitewashing" effect on Insurgency: Sandstorm screenshot.
        You...must be trolling.

        Two minutes on Twitch and you can very clearly see the white-washing everywhere. The screenshots from the developer show it, too - that is why I linked them. As the screenshots could be pre-rendered, you can simply boot the game or play it (as you can Fortnite, but that has a 'style' and I only used it as an example) or you can just watch it being played in real-time on Twitch.

        What I cannot accurately identify is what the settings being used are, and, there is not a mod/SDK for this program as yet, so the rendering is very hard to determine, minus official screenshots and of course real time rendering on twitch or other streaming video repositories.

        Originally posted by Deathrey View Post

        Technically, yes. Overall it was the best.

        What OP is is referencing to in his post is indeed a problem. But it is 3 separate problems that give this ugly white sheen that should not be there.

        1) Fresnel approximation lacks a specifics in the graph, that is there in full calculation.
        2) Lack of specular occlusion in certain cases.
        3) Overbrightening of fresnel on rough surfaces due to more microfacets reflecting light straight into the cam.

        Contribution of 1 is minimal, besides approximation is significantly cheaper. Not much to do here.
        2 is not directly related to shading. You can see this one in OP's sandstorm screenshot, where floor near the window is receiving indirect specular, where it should not.

        3 is the problem that can and should be dealt with. It is handled by adding a compensatory factor depending on surface roughness nowdays. Epic should really consider implementing that. If they don't, adding it on your own is quite trivial luckily.
        Thank you for the comments, and thank you for being one of the few people who isn't calling me 'mad' or 'crazy'

        Comment


          #5
          1 - The brightness factors are more related to lack of occlusion in practically everywhere there isn't any accurate real time shadowing or no shadowing at all. This will naturally result in over bright and non occluded specularity as well as reflections. In offline renders this almost never happens as every light casts very accurate shadows everywhere. In video games you can't have this for performance reasons.

          2 - Regarding PBR being washed out you must consider the following:

          A - You can't directly compare Real time with what Disney or what any offline renderer is doing, the shader calculations are vastly superior in films no matter if they both claim they are using PBR, it is NOT the same PBR as you would expect from an offline renderer. The realtime ones are doing so much more cheating to try hard to get similar results. For instance SSS in real time is a post effect, in offline its true calculation taking into account the simulation of multi layer skins on up to micro pore levels if render time displacements are used.

          B - The "whitewashing" you speak of in Disney is a specific style they aim for with their highlights, they can make those shaders look very different if they wish to I don't think it is related to any underlying tech here that forces them to get that look. They are also mostly in areas where there is SSS used. If you notice the cheeks those are painted textures driving the SSS to determine exactly where to get the whites and darker red tones. There is also some post work here as well.

          C - UE4 SSS tries to approximate this using post processing, it softens the surface and outputs a certain look unique to the engine's implementation. This also can be manipulated to look different but not to that degree.

          3 - You can tell if a game uses UE4 because of a few factors:

          A - PBR is used the same ways as in most games as a rule with little modifications and art direction to change the lights/shaders etc. This results in games looking similar. In fact I would argue that after PBR was introduced into game development more and more games have been looking similar given the similar pipeline and underlying tech used. At least before they had to try to achieve a look uniquely for every game because they were forced to deal with limitations and that unintentionally or intentionally resulted in "different looks" so to speak from a tech render perspective.

          B - UE4 has a few areas that you could immediately tell its the tech used. Notably vegetation shading and SSS, also TAA implementation seems behind other game engines such as the ones used in Doom and uncharted, this creates smearing and blur more noticeably.

          C - The way lighting is baked and looks: If not enough attention is spent here then the default settings will give you a generic light feel signature to the engine. this is hard to point out and explain in a few words.

          And as a fruit for thought. Have you noticed how games using "Forward rendering" in UE4 look less like UE4?


          Bottom line is you want to make games using UE4 "look" Unique, it's simple get good art direction and Lighting/shading artists. Tweak those lights and shaders, bend the rules a bit and you'll get there. DON"T get stuck with what they tell you to do with PBR in the engine.

          Comment


            #6
            You...must be trolling.
            Actually - nope. Can you, please, provide some defenitely NOT whitewashing screenshoot from any game, cause maybe we just talk about slightly different things

            Comment


              #7
              It just looks like a poorly made LUT to me. Have a look at what comes out of a high end production digital film camera - its pretty washed out and bland. But you have the dynamic range to be able to grade the footage/image to look how you want. It seems to me that this 'washed out' look is just down to not having a decent color grade on the overall image at the end of the process.
              Latest Company Showreel
              https://vimeo.com/outpostvfx/spring17

              Comment


                #8
                White washing is probably the worst term you could have came up with. Excessive fresnel or over blown highlights are more accurate, white washing already has 2 very different meanings.

                Comment


                  #9
                  Originally posted by ZacD View Post
                  White washing is probably the worst term you could have came up with. Excessive fresnel or over blown highlights are more accurate, white washing already has 2 very different meanings.
                  lol true this.

                  Comment


                    #10
                    Originally posted by William K View Post

                    lol true this.
                    In terms of rendering?

                    Comment


                      #11
                      White washing typically means turning non-white characters white in order to have as much main stream appeal as possible, or casting white actors for non-white characters.

                      White washing can also mean to cover gloss over it cover up.

                      Or to apply a semi transparent coat of white paint.


                      So when it comes to the artistic use of the term white washing, using a semitransparent layer of white paint doesn't look remotely similar to the problem you are presenting.
                      Last edited by ZacD; 01-20-2019, 11:06 AM.

                      Comment


                        #12
                        In case of Fortnite that is simply the fog actor being rendered.
                        | Finite State Machine | Auto-Save Plugin | USQLite Plugin | Object-Pool | Sound-Occlusion | Anti-Cheat Plugin | Property Transfer Tool | Magic Nodes |

                        Comment


                          #13
                          Originally posted by ZacD View Post
                          So when it comes to the artistic use of the term white washing, using a semitransparent layer of white paint doesn't look remotely similar to the problem you are presenting.
                          I think it does look very close to that - you can see the underlying base color, yet it does have an extra layer of white over the top, and at glinting angles, the base color is not apparent, washing out the object.
                          Originally posted by BrUnO XaVIeR View Post
                          In case of Fortnite that is simply the fog actor being rendered.
                          Not so sure, unless you are referring to the screenshot. The glinting angle of every character is white and surfaces that are not white should not glint the color white?

                          Comment


                            #14
                            Originally posted by ZacD View Post
                            White washing is probably the worst term you could have came up with. Excessive fresnel or over blown highlights are more accurate, white washing already has 2 very different meanings.
                            I totally thought the same thing!

                            I get what OP means though, I’ve struggled with this ever since I started using PBR workflows, especially on flat surfaces like dirt and grass. I’ll usually just lower the specular value in the material but I know that’s not correct.

                            Does anyone have more info on what Deathrey Mentioned regarding a compensatory factor based on roughness? Is this something that could be done at the material level or would shader code need modified?

                            Comment


                              #15
                              ^ Deathrey probably means to increase Roughness/ decrease Specular with Fresnel, so edges do not receive any/ receive less specularity

                              Comment

                              Working...
                              X