Jump to content
  • Advertisement
  • 08/02/16 11:52 PM

    Troubleshooting Physically-Based Content

    Visual Arts


    Originally published on the Geomerics blog.

    Physically-based rendering (PBR) is increasing in popularity and with its vast range of benefits, it is no wonder why. Artists can now remove the guesswork around authoring surface attributes and set up a material once, then reuse it throughout game development, freeing up more time to focus on the more creative aspects of asset creation. Yet, following the introduction of physically-based rendering, Geomerics has seen artists struggle to identify and fix inconsistencies when they appear. In this blog, we'll take a focused look at working with physically-based scenes and demonstrate how best to troubleshoot issues when they do inevitably arise. Before starting this tutorial, we recommend that you are familiar with the basics of physically based rendering and light physics. Allegorithmic has an extremely digestible guide on the subject that we strongly recommend.

    What to do if the scene lighting is too dark

    0.png Image 1: Physically inconsistent shadows In image 1, a material (the wall in this case) looks very bright in the spotlight, yet has distinct dark shadows which are physically inconsistent. Increasing the brightness or aperture to create the correct surrounding shadows leads to the spotlight being too bright, with the light on the floor appearing particularly out of place. If the lighting or shading looks incorrect in physically-based scenes, always investigate the material or texture properties first. To explore the issue in this case, enter the base colour visualiser. ScreenShot00003.png Image 2: Wall with the wrong material properties By entering this mode you immediately see that the wall in question stands out with the black looking surface indicating that the albedo is incorrectly set. This is the reason for the material absorbing too much light. Adjust the base colour values to be within a physically correct range in order to ensure the correct response under changing light conditions. ScreenShot00005.png Image 3: Wall with the corrected material properties The wall's material properties now look correct in the visualiser and correspond to the neighbouring areas. Going back to the editor, you see that the light has the right output and the shadows are soft with the right amount of bounce. The overly dark shadows that previously bordered the spotlight have been softened. The light shining on the wall and the shadows subsequently cast are physically consistent throughout the scene. ScreenShot00004.png Image 4: Physically correct lighting and shadows You can verify an accurate material response by moving the light or adjusting its brightness; with these changes the light bounce and shadows should update correctly.

    What to do if a material is too shiny

    ScreenShot00006.png Image 5: Rock with metallic-like reflection Image 5 shows a scene with notable reflections on the wall, poster and rocks, yet the reflections on the rock in the foreground look dissimilar to those in the background; it appears metallic. Adjusting the reflection capture to nullify the metallic-like reflection on that rock would lead to the reflections on the poster, wall and neighbouring rock to blur and dilute as shown in Image 7. The rock still looks metallic but the rest of the scene looks dull and leaden. 5.png Image 6: The effects of lowering the reflection captures To address this issue, first check the rock's material properties by entering the metallic visualiser. ScreenShot00009.png Image 7: Metallic visualiser Immediately you see the object is quite distinctive in comparison to the rest of the scene. Enter into the material editor to investigate the issue further. 3.png Image 8: Material editor While the settings look correct, the metallic value, set at 0.8 (or 80% metallic), is wrong for the material. You can fix this by applying the correct material value, 0.0 in this case (rocks are never metallic!) ScreenShot00011.png Image 9: Updated material properties with correct reflection levels Going back into the editor mode, you can see that the issue has been fixed as both rocks and their reflections look consistent, while the shine on the wall looks vibrant. You can check if there is a physically consistent response by moving the rocks around the scene.

    What to do if reflections are too bright

    4.png Image 10: Character with inconsistent reflections Finally the character in image 10 has physically inconsistent reflections. The torso is distinctly too shiny compared to the rest of the body. The rubbery brown texture on the torso should look the same as on the legs. Reducing the intensity of the reflections to compensate would ruin the other surrounding objects in the scene such as the wall, pipes and even the character's limbs. As you have done previously, investigate the material properties first before doing anything with the lights. Examine the material with the roughness visualiser, where you immediately see the torso's roughness is noticeably unlike the rest of the character. ScreenShot00012-7.png Image 11: Roughness visualiser Enter the material editor and everything looks correct, except for the one notable slip that the "sampler type" in the texture base was set as colour. As the texture map is acting as a greyscale mask to define surface roughness, it's imperative that it is correctly interpreted by the shader and does not shift the values in any way. ScreenShot00012-1.png Image 12: Material editor By opening the texture properties you can have a closer look at the texture's values. ScreenShot00012-2.png Image 13: Texture properties The brightness levels are noticeably too low, so adjust them from 0.3 to 1.0 to increase the texture's roughness to the required level. You can also see that the texture has been set to sRGB, meaning that gamma correction is applied causing the values of the texture to be incorrect. In physically-based rendering all values are based on the real world, hence no artificial value corrections are needed. Lastly, as with the sampler type, the compression settings are set to default (DXT1), hence based on a colour texture. Grayscale texture compression must be applied (R8) for it to be consistent with the rest of the character. 6.png Image 14: Corrected texture properties Now with the correct roughness texture settings, the character's texture looks uniform in the roughness visualiser. It is now physically consistent and lights and reflections appear realistic and accurate as per image 15. ScreenShot00012-5.png Image 15: Character with correct material settings

    Key takeaways

    • PBR removes the guesswork around authoring surface attributes to look realistic, easing the creation process.
    • PBR materials can often misdirect the artist about the root cause of issues in the scene.
    • When materials are not behaving as expected, use the viewport visualisation modes to investigate the integrity of the material properties before adjusting other elements such as lighting or reflection captures.
    • If authored correctly, PBR should provide accurate material response independent of lighting conditions.
    If lighting does not behave as expected in a scene, artists usually assume that the lighting is the source of the problem; so they move it, change it or adjust the intensity and direction to no avail. Yet the problem is more regularly with the initial material and texture set-up. If authored correctly, physically-based rendering provides accurate material response independent of lighting conditions. By paying close attention to the initial configuration, you can ensure consistent lighting throughout your game. This blog has outlined some of the most common issues that can arise when material configurations are wrong, and we hope that it will serve you well in creating even greater games with spectacular lighting, stress free. If you would like further tutorial content from the Geomerics team, tweet @Geomerics with suggestions.

      Report Article

    User Feedback

    Nice, well formed article. Having recently 'gone PBR' in my own engine, it's great to have yet more good references for the inevitable 'When Things Go Wrong!' dramas!

    Share this comment

    Link to comment
    Share on other sites
    Nice and practical article. One remark, maybe you can add UE4 somewhere in the title or at least the article itself (because I believe the mentioned tooling is all UE4).

    Share this comment

    Link to comment
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!