DONTNOD Physically based rendering chart for Unreal Engine 4

With permission of Dontnod entertainmen

I get the permission from Dontnod entertainment to release the graphic chart I, Sophie Van de Velde (Lead environment) and Laurent Harduin (Lighter) made for the artists to help them with the physically based rendering (PBR) workflow present in the Unreal engine 4. This chart is an updated version of the previous chart I post on this blog DONTNOT specular and glossiness chart.

To save the chart, just right clik and chose save link target as… The chart is a PNG file.


(Real world pictures courtesy of Andrea Weidlich from “Exploring the potential of layerer BRDF models” siggraph asia 2009)

The chart has been design for Dontnod team and with Unreal engine 4 convention for textures based on the Disney “principled” BRDF use in the Unreal engine 4 [1]. The chart is use as predefined value that the artist color pick and use when creating textures. For the different meaning of the parameters except the Porosity you can refer to the Unreal engine 4 documentation:

For the details of some values, refer to the other article from this blog like feedding a physically based shading model or GDCEurope 2013 talk : The art and rendering of Remember Me.


The color is provide in sRGB 0-255.

The diffuse part of the base color (the one use by the non-metallic) must be in the range of the first gradient 50-243. There is some sample values of real world material in sRGB below the gradient. Some of these values are base on real world measured material (from misc sources, not done by us) and other are have been generated by Laurent Harduin. He take calibrated raw picture of representative material, take the luminance histogram in Photoshop and use the value of the medium axis for the luminance. Then he blur the picture and take one pixel inside the blurred region and use that as the color value. This explain why in few case like the clean cement the color and the luminance doesn’t match perfectly. We also lower a bit the value to take into account the invevitable specular present during the capture.

The reflectance part (the one use by metallic) must be in the range 186-255 (not present in the chart). Some example are provided below the grey square. Most of the time the metallic color of material match what the eye see.


Simple monochrome linear parameter. Range is 0-1 but the gradient is from 0-255. The yellow sphere below represent in-engine capture of a sphere and a cube.


The specular part of Disney “principled” BRDF is a GGX BRDF. It use a roughness parameter. This roughness is the “Disney roughness”, not the real GGX roughness. Disney Roughness = sqrt(Roughness). When use at runtime this Disney Roughness is transform to the GGX roughness with roughness = Disney Roughness * Disney Roughness.

The gradient display roughness from 0 for smooth (left) material to 1 for rough material (right).
The grey gradient are from 0 to 255 and red segments are displayed  every 1/10 with a sphere like object below to show the in-game result of the designated value.
The first row of real world image above represent no metallic object, the second row represent metallic object. Goal is to give artist a better feeling of what is roughness.
The first row of sphere like object represent metallic object, the second row represent non-metallic object.

Note: The roughness here is coupled with the BRDF used by the Unreal engine 4, it may not be compatible with other engine or offline renderer.


The Dontnod chart include an unusual parameter named Porosity. This parameter is the “open porosity” of a material. It can be used for driving weathering and aging effect (Pollution, rain, aging…). More details on its usage can be found in previous blog post: Water drop 3a – Physically based wet surfaces and Water drop 3b – Physically based wet surfaces. In practice Dontnod use it mainly with the dynamic wet formula provided in the  mentionned previous post.

The range is remapped from 0-1 to 0-70% of open porosity. There is real worl image to try to give a feeling of what the value mean. An extremely porous material is the clay (70%), but open porosity can vary a lot for same material, clay could also be only 50%.


From Kevin Hnat thesis [2]. French translation from top to bottom. Clay, chalk, sand, limestone, granite.

Note: The porosity parameter is not used in the BRDF formulation. More research need to be done on this topic and currently there is only one porosity BRDF paper available which doesn’t fit with the current need.


There is no chart for the reflectance value of the Unreal engine 4, just let the value by default and apply a cavity map on it.

Difference with the old chart

The previous chart was based on modfied Unreal engine 3 where I introduced a new physically based renderer based on Blinn-Phong BRDF. This new chart is based on the Disney “principled” BRDF use in the Unreal engine 4 which is based on the GGX BRDF. The glossiness of the previous chart and the roughness of this one do not match. Moreover, the range is inversed. Previous specular value for metalic can be reuse for Unreal engine 4 reflectance parameter. UE4 use a mapped range of 0-1 to 0.08, so you need to do the conversion. But in practice there is so little difference that’s it is not necessary to use the precise values.


[1] Burley, “Physically based shading at Disney”,
[2] Hnat,  thesis “Influence of surfaces micro-geometry on realistic rendering” in French,

24 Responses to DONTNOD Physically based rendering chart for Unreal Engine 4

  1. Chris_F says:

    Just an FYI, if you had saved the chart as a PNG file it would be smaller than the ZIP’d TGA and wouldn’t require the file extension hack.

  2. Horst-Peter says:

    Hello and thank you for the chart. If I am not using a texture, but a constant to drive my base color I assume I would need to use the linear values like 0.04 for charcoal and such?

  3. Pingback: Confluence: Sales

  4. Very informative, thanks!

  5. Bruce Wilkie says:

    Hi ya – looking at the Siggraph paper for UE4 stuff, I had thought that “Disney’s roughness” was roughness^2, _not_ sqrt(roughness). Am I misunderstanding something?

    • seblagarde says:

      Be careful about what we are talking about.
      What is present in the chart is the Disney roughness (the one which is perceptually linear).
      When use in the engine you need to transform it to GGX roughness. This is roughness = DisneyRoughness * DisneyRoughness.
      What I write in the article is the reverse. I said how to retrieve the DisneyRoughness based on GGX roughness
      disneyRoughness = sqrt(roughness)

  6. M. says:

    What does N&B refer to?

    • seblagarde says:

      Haha, that is indeed a good question . N&b (noir et blanc in French ) mean b&w (black and white), i.e the texture is monochrome.

      I haven’y spot this before , so thanks for the report🙂

  7. seblagarde says:

    I update the base color description to explain a bit where the value of color albedo come from (Thanks to Steve Hill to ask the origin).

  8. Pingback: Physically Based Rendering in Substance

  9. Pingback: Experimenting with Physically based rendering in Blender Cycles | extremeistan

  10. Pingback: NegativeMindException | 物理ベースレンダリングのためのマテリアル設定チートシート

  11. Pingback: Simple PBR Shader for Blender 2.72 Cycles |

  12. Pingback: PBR en Element 3D v2 (parte 3) | Dan Garotte Portfolio

  13. Pingback: PBR in Element 3D v2 (part 3) | Dan Garotte Portfolio

  14. Pingback: PBR a Element 3D v2 (part 3) | Dan Garotte Portfolio

  15. Pingback: [Data] Dieletric Materials Brightness Value | Hap|仲林: The Artisteer

  16. Pingback: 物理ベースレンダリングのためのマテリアル設定チートシート

  17. Pingback: Weekly Summary:13 – Abigail Hookham's Game art and design journal

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: