SUBSTANCE DESIGNER PBR UTILITY NODES FOR UNREAL 4
These PBR utility nodes were designed to work with UE4's PBR range. Three of them use physically-based data for dielectric, metallic, and specular presets. Another validates whether your dielectric/metallic albedo values are within/outside UE4's PBR range, while the final PBR utility node can adjust out-of-range base colors.

UNREAL 4 NEUTRAL LIGHTING ENVIRONMENT (made in UE 4.18)
The neutral lighting environment below uses all dynamic effects, like LPVs, DFAO, SSR, SSAO, RTDF, volumetric lighting, Convolution Bloom, bokeh lens flares, utilization of real-world data, etc., for quick material/asset testing without the need to bake lighting. The scene includes varying, physically-approximated TODs, tools, and PBR materials for visual reference. 

PBR ​LIGHTING GUIDE
Note: This guide assumes the reader has a basic understanding of PBR.

Since lighting conditions vary by location, time of day, weather, pollution/atmosphere, season, etc., the values listed below should only be used as a guide for a light rig. 

LIGHT VALUES GUIDE
Types of light values, including their definitions/measurements, are listed below.

Lumens: Total emitted light.
Lux: Reflected surface illuminance. Also, 1 lux = 1 lm/m2. per square meter
Cd/m2 (cd = candela): Light source intensity per square meter.
Nit = cd/m2.

As a general rule of thumb for daytime, there is a ~4:1 sun/sky (direct light vs shade) intensity ratio. This can be measured from reflected surfaces, such as an 18%-gray card.
DESCRIPTION​
LUX, NIT, or CD/M2 VALUES
​Brightest Sunlight
120,000 - 125,000​
Sunlight Range
30,000 - 125,000
Bright Sunlight​​
111,000
White Paper at Sunny Noon
25,000
Clear, Midday Shade
​20,000
​Fluorescent Lights
12,000
Brightest, White Clouds
​10,000
Average, Clear Sky
​5,000 - 7,000
Midday Overcast
​1,000 - 2,000
HDR10 LCD Monitor
1,000
Clear Sunrise/Sunset ​​​
400​​​
​LCD Monitor
250
Thickest, Midday ​Storm Clouds ​​
​< 200​
Sunrise/Sunset Overcast
40
Floodlit Buildings
​2
Thickest Sunrise/Sunset Storm Clouds ​​​
< 1​​​​​​​​
Clear Night with Full Moon
0.25
Clear Night with Quarter Moon
​0.01​
Clear, Moonless Night with Airglow
0.002​​
Clear, Moonless Night
0.0002​​
Moonless Night Overcast
0.0001

COLOR TEMPERATURE GUIDE
​Color temperature is defined by the temperature of a black body emitting light at a particular color. Below are examples of color temperature values.
DESCRIPTION​
COLOR TEMPERATURE (K)
Clear, Blue Sky
10,000+
Hazy Sky
8,000
​Outdoor Shade
7,000 - 8,000
Daytime Overcast
6,000 - 7,000
LCD Monitor
6,500
​Noon and Camera/Studio Flash
5,500
​Early Morning/Evening - Afternoon
3,500 - 5,000
Fluorescent Lights 
​4,000 
1-hour After Sunrise/Before Sunset
3,500 - 3,600
​Studio/Photoflood Lamps and Tungsten Lights
​3,200
​Sunrise/Sunset
1,850 - 3,100
​Halogen Lights
3,000
​Incandescent Lights
2,400 2,800
High-Pressure Sodium Lights
2,200
Candle Flame
1,850
Match Flame
1,700 - 1,800
Low-Pressure Sodium Lights
​1,700

SUNNY 16 RULE GUIDE
​The Sunny 16 Rule, which can be viewed in the chart below, approximates correct daylight exposures without a light meter. The camera's ISO and shutter speed share a reciprocal relationship. 
ISO
SUNNY - F/22
(sand/snow)
SHUTTER SPEED
SUNNY - F/16
​(strong shadows​)
SHUTTER SPEED
PARTLY CLOUDY - F/11
(soft shadows)
SHUTTER SPEED
CLOUDY - F/8
(faint shadows)
SHUTTER SPEED
CLOUDY - F/5.6
(no shadows)
SHUTTER SPEED
SUNSET - F/4
(long shadows)​
SHUTTER SPEED
100
1/100 or 1/125
1/100 or 1/125
1/100 or 1/125
1/100 or 1/125
1/100 or 1/125
1/100 or 1/125
200
1/200 or 1/250
1/200 or 1/250
1/200 or 1/250
1/200 or 1/250
1/200 or 1/250
1/200 or 1/250
400
1/400 or 1/500
1/400 or 1/500
1/400 or 1/500
1/400 or 1/500
1/400 or 1/500
1/400 or 1/500
800
1/800 or 1/1,000
1/800 or 1/1,000
1/800 or 1/1,000
1/800 or 1/1,000
1/800 or 1/1,000
1/800 or 1/1,000

UNREAL 4 PBR LIGHTING GUIDE (requires UE 4.20+)
Note: This guide assumes the reader has a basic understanding of PBR.

​•  Sun: Uses lux values. You can apply the "Light Values/Color Temperature Guide" data to the sun's Intensity/Temperature parameters.

•  Sky: Uses cd/m2, or nits, values. The Pixel Inspector (Window > Developer Tools > Pixel Inspector) analyzes scene pixel for sky intensity values via its HDR Luminance reader. (This method can be used to standardize emissive texture values.) You can apply the "Light Values Guide" data for sky intensity values.
•  Spot/Point/Rect Lights: Uses unitless, candela, or lumen values. (Rect Lights cast realistic, dynamic shadows that soften with distance.) You can apply the "Color Temperature Guide" data to these lights' Temperature parameter.
  To get the sky’s average luminance value in cd/m2, or nits, sample sky intensity values from midtone areas via the Pixel Inspector. Since reading individual pixels can vary, it’s best to average large portions of pixel values first for easier sky analysis. This can be achieved by loading the sky texture into the Texture Properties Editor, lowering its resolution or increasing its mip level, saving it, and then analyzing the sky in the viewport.
​Below is an example of an adjusted sky texture’s mip level. The one on the left has a resolution of 4,096 x 2,048 (mip level: 0), and the one on the right has a resolution of 32 x 16 (mip level: 7).
Techniques for adjusting sky intensity values  can be found in “The Matted, White Paper Test” section of the Unreal 4 PBR Lighting Guide.

  Physically-based camera exposure can be controlled by the viewport’s EV100 option, located in the Lit menu. If you choose to use it, uncheck the Game Settings first. 
Alternatively, for additional control over physical camera attributes, you can use the Post Process Volume’s camera parameters (Lens > Exposure > Metering Mode: Manual – the Camera options then become active.). You can apply the "Sunny 16 Rule Guide" data here. It’s also advised to leave the tonemapper alone unless you're trying to mimic a specific film stock.
  Since light calculations occur in linear color space, it’s advised to preview sRGB albedo textures in this format to understand how base colors impact lighting. (Typically, linear values are darker than sRGB ones.) For instance, linear albedo values that appear too dark may not bounce much light due to absorption, thus flattening the lighting results.

Below are other material properties to consider for light interactions.

Transparent materials: Low absorption and no scattering.
Translucent materials: Low absorption and high scattering.  
Opaque materials: High absorption or reflectance and low scattering.

THE MATTED, WHITE PAPER TEST ​(requires UE 4.20+)
​To confirm the accuracy of Unreal 4’s PBR lighting system, I created a simple scene to evaluate it. The test uses physical values of matted, white paper and real-world data for sun/sky intensities. You can click on the gallery images below to learn more about this process.

UNREAL 4 CUBEMAP ORIENTATION GUIDE (for custom-cubemapped skyboxes)
​Cubemap panels need to be arranged in a specific manner for correct orientation in UE4. The chart below represents these panels in a horizontal strip layout, ordered from left to right, as you go down the list. 
AXIS
ROTATION
+X
90° CCW
-X
90° CW
+Y
180°
-Y
No Rotation
+Z
No Rotation
-Z
No Rotation
Alternatively, you can import a 32-bit OpenEXR sky texture, with an equirectangular, 2:1 aspect ratio, use it within a material, then assign that material to a sphere covering the background, and finally capture the results in a cubemap via the sky light.

Techniques for skybox setup can be found in “The Matted, White Paper Test” section of the Unreal 4 PBR Lighting Guide.

​GENERAL TEXTURING GUIDE

Albedo maps should only store base color information (Most base colors exist in the midtone range.), not shading and lighting data. This means AO and cavity, for example, should not be baked into them, nor should highlights be painted in. 

UE4 works in linear space, so it’s important that textures are interpreted in the correct color space. Below is a guide for varying texture types and which color spaces they should be read as by UE4.
MAP TYPE
NUMBER OF CHANNELS
COLOR SPACE
Albedo
3 | RGB
sRGB
Normal
3 | RGB
Linear RGB
AO, Cavity, Height, Metallic, Opacity, Roughness, and Transmissive
1 | Grayscale
Linear RGB
Proper edge padding can minimize color bleeding artifacts from mip mapping. The list below shows varying texture resolutions with corresponding edge padding values for UV shell spacing and textural downsizing processes. 
TEXTURE RESOLUTION
EDGE PADDING VALUES
256 x 256
2px
512 x 512
4px
1,024 x 1,024
8px
2,048 x 2,048
16px
4,096 x 4,096
≥ 16px

UNREAL 4 PBR MATERIALS Guide

Note: This guide assumes the reader has a basic understanding of PBR.

​Both UE4's environment and color picker live in linear color space (In effect, the color swatches below were created with their linear RGB-equivalent values.), so the values found below are listed first in linear RGB. Additionally, some of the values were designed to work best within UE4 and may not be suited for other applications.​

Albedo grayscale range

MATERIAL TYPE
DESCRIPTION
COLOR SWATCH
HEXADECIMAL VALUES
RGB CHANNEL VALUES
NORMALIZED VALUES
Charcoal 
Dielectric albedo values control reflected color. Charcoal is the darkest, dielectric albedo value that should be used. Insulators do not typically have colored specular reflectivity, but light source color can influence reflected color values.
Linear RGB = 050505
​​sRGB = ​​2b2b2b
Linear RGB = ​5
​​sRGB = ​43
Linear RGB = ​​​0.02
​​sRGB = ​0.169
Fresh Snow 
Dielectric albedo values control reflected color. Fresh snow is the brightest, dielectric albedo value that should be used. Insulators do not typically have colored specular reflectivity, but light source color can influence reflected color values.
Linear RGB = cfcfcf
​​sRGB = ​​e9e9e9
Linear RGB = ​207
​​sRGB = ​233
Linear RGB = 0.81
​​​sRGB = 
​0.91
Metallic
​Metallic albedo values control reflectance properties that can contain color. Conductive albedo values fall within this row’s range. 
-◼
Linear RGB = b3b3b3 - ffffff
​sRGB = dadada - ffffff
Linear RGB = 179 - 255
​​sRGB = 218 - 255
Linear RGB = 0.7 - 1
​sRGB = 0.85 - 1

Metallic Grayscale Range

MATERIAL TYPE
DESCRIPTION
COLOR SWATCH
HEXADECIMAL VALUES
RGB CHANNEL VALUES
NORMALIZED VALUES
Dielectric
Reflectivity is interpreted by the metallic map. Most non-metals should have a value of 0 or no metallic map. Metallic properties should represent the top layer of a material, like painted metal, which should not be defined as metallic.
Linear RGB = 000000
​sRGB = 000000
Linear RGB = 0
​sRGB = 0
Linear RGB = 0
​​sRGB = 0
​Metallic
Reflectivity is interpreted by the metallic map, and most metals have a value of 1. Gradient transitions between insulators and conductors are acceptable. Exceptions, like metalloids, may use values that are neither 0 or 1.
Linear RGB = ffffff
​​sRGB = ffffff
Linear RGB = 255
​​sRGB = 255
Linear RGB = 1
​​sRGB = 1
The images below display ​increasing dielectric-to-conductor metallic properties.

Metallic

Roughness Grayscale Range

The roughness map controls size/spread, sharpness, and light direction for rough/smooth reflective surface properties. Real-world data is not used for its rendering, thus allowing for more artistic interpretation. The images below display increasing rough-to-smooth roughness properties for both dielectric and metallic materials.


Dielectric


​​Metallic

Specular GUIDE

MATERIAL TYPE
DESCRIPTION
COLOR SWATCH
HEXADECIMAL VALUES
RGB CHANNEL VALUES
NORMALIZED VALUES
Ice
UE4’s specularity does not correlate to real-world data. The default value is 0.5 and should be left alone; semiconductors/gemstones can have higher values. All materials have specularity so never set it to 0. You can input cavity maps but they should be multiplied by the default 0.5 value . Metals are not affected since their albedo maps control specularity.
Linear RGB = 393939
​​sRGB = 828282​
Linear RGB = 57
​​sRGB = ​130
Linear RGB = 0.224​
​​sRGB = ​0.507
Water
UE4’s specularity does not correlate to real-world data. The default value is 0.5 and should be left alone; semiconductors/gemstones can have higher values. All materials have specularity so never set it to 0. You can input cavity maps but they should be multiplied by the default 0.5 value. Metals are not affected since their albedo maps control specularity.
Linear RGB = 414141​
​​sRGB = ​898989
Linear RGB = 65
​​sRGB = ​137
Linear RGB = 0.255​
​​sRGB = ​0.537
Milk
UE4’s specularity does not correlate to real-world data. The default value is 0.5 and should be left alone; semiconductors/gemstones can have higher values. All materials have specularity so never set it to 0. You can input cavity maps but they should be multiplied by the default 0.5 value. Metals are not affected since their albedo maps control specularity.
Linear RGB = 464646​
​​sRGB = ​​8f8f8f
Linear RGB = 71
​​sRGB = ​143
Linear RGB = 0.277​
​​sRGB = ​0.558
Skin
UE4’s specularity does not correlate to real-world data. The default value is 0.5 and should be left alone; semiconductors/gemstones can have higher values. All materials have specularity so never set it to 0. You can input cavity maps but they should be multiplied by the default 0.5 value. Metals are not affected since their albedo maps control specularity.
Linear RGB = 595959​
​​sRGB = ​​9f9f9f
Linear RGB = 90
​​sRGB = ​159
Linear RGB = 0.35​
​​sRGB = ​0.621
Glass
UE4’s specularity does not correlate to real-world data. The default value is 0.5 and should be left alone; semiconductors/gemstones can have higher values. All materials have specularity so never set it to 0. You can input cavity maps but they should be multiplied by the default 0.5 value. Metals are not affected since their albedo maps control specularity.
Linear RGB = 7f7f7f​
​​sRGB = ​​bbbbbb
Linear RGB = 128
​​sRGB = ​187
Linear RGB = 0.5​
​​sRGB = ​0.73
Plastic
UE4’s specularity does not correlate to real-world data. The default value is 0.5 and should be left alone; semiconductors/gemstones can have higher values. All materials have specularity so never set it to 0. You can input cavity maps but they should be multiplied by the default 0.5 value. Metals are not affected since their albedo maps control specularity.
Linear RGB = 7f7f7f​
​​sRGB = ​​bbbbbb
Linear RGB = 128
​​sRGB = ​187
Linear RGB = 0.5​
​​sRGB = ​0.73
Quartz
UE4’s specularity does not correlate to real-world data. The default value is 0.5 and should be left alone; semiconductors/gemstones can have higher values. All materials have specularity so never set it to 0. You can input cavity maps but they should be multiplied by the default 0.5 value. Metals are not affected since their albedo maps control specularity.
Linear RGB = 919191​
​​sRGB = ​c6c6c6
Linear RGB = 146
​​sRGB = ​198
Linear RGB = 0.570​
​​sRGB = ​0.775
The images below display increasing specular properties.

Specular

 Index of Refraction gUIDE

MATERIAL TYPE
DESCRIPTION
INDEX OF REFRACTION VALUES
Air
​The Index of Refraction, or IOR, describes how much light bends through medium to another. IOR values are based off of real-world, optical measurements. 
Linear Grayscale = 1
Ice
​The Index of Refraction, or IOR, describes how much light bends through medium to another. IOR values are based off of real-world, optical measurements. 
Linear Grayscale = 1.31
Water
​The Index of Refraction, or IOR, describes how much light bends through medium to another. IOR values are based off of real-world, optical measurements. 
​​Linear Grayscale = 1.33
Glass
​The Index of Refraction, or IOR, describes how much light bends through medium to another. IOR values are based off of real-world, optical measurements. 
​​Linear Grayscale = 1.52
Diamond
​The Index of Refraction, or IOR, describes how much light bends through medium to another. IOR values are based off of real-world, optical measurements. 
Linear Grayscale = 2.42
The images below display increasing index of refraction properties.

Refractive

GRAYS GUIDE

GRAY TYPE
DESCRIPTION
COLOR SWATCH
HEXADECIMAL VALUES
RGB CHANNEL VALUES
NORMALIZED VALUES
sRGB Neutral Gray
Neutral gray can be  used for texturing. 
Linear RGB = 808080
​sRGB = bbbbbb
Linear RGB = 128
​sRGB = 187
Linear RGB = 0.5
​sRGB = 0.73
Linear RGB Middle Gray 
18%-gray can be used for testing lighting.
Linear RGB = 2e2e2e
sRGB = 767676
Linear RGB = 46
​sRGB = 118
Linear RGB = 0.18 
sRGB = 0.461

Color Space Conversions

COLOR SPACE CONVERSION TYPE
FORMULA
Linear RGB-to-sRGB Conversion
​[normalized Linear RGB value] ^ (1 / 2.2) = normalized sRGB value
normalized sRGB value * 256 = sRGB channel values 
sRGB-to-Linear RGB Conversion
​[normalized sRGB value] ^ 2.2 = normalized Linear RGB value
normalized Linear RGB value * 256 = Linear RGB channel values

 Dielectric ALBEDO VALUES GUIDE

MATERIAL TYPE
COLOR SWATCH
HEXADECIMAL VALUES
RGB CHANNEL VALUES
Forged Iron
Linear RGB = ​0a0a0b
sRGB = ​3a383b
Linear RGB = ​(10, 9, 10)
sRGB = ​​​(58, 56, 59)
Dark Soil
Linear RGB = 170b07
sRGB = ​​553d31​
Linear RGB = ​(23, 11, 7)
sRGB = ​​​(85, 61, 49)
Worn Asphalt
Linear RGB = ​1a1a1a
sRGB = ​​5b5b5b​
Linear RGB = ​(26, 26, 26)
sRGB = ​​​(91, 91, 91)
Varnished Wood
Linear RGB = ​3e1b0b
sRGB = ​​875c3c​
Linear RGB = ​(63, 27, 11)
sRGB = ​​(135, 92, 60)
Tree Bark
Linear RGB = ​2b221a
sRGB = ​​72675b​
Linear RGB = ​(43, 35, 26)
sRGB = ​​(114, 103, 91)
Green Vegetation
Linear RGB = ​323913​
sRGB = ​​7b824e
Linear RGB = ​(51, 58, 19)
sRGB = ​​​(123, 130, 78)
Gray Plaster
Linear RGB = ​383838​
sRGB = ​​818181​
Linear RGB = ​(57, 57, 57)
sRGB = ​​​(129, 129, 129)
Brick
Linear RGB = ​4b342d
sRGB = ​​947d75​
Linear RGB = ​(77, 53, 46)
sRGB = (148, 125, 117)
Old Concrete
Linear RGB = ​3e3f3a
sRGB = ​​878883​
Linear RGB = ​(63, 64, 59)
sRGB = ​​(135, 136, 131)
Gray Paint
Linear RGB = ​5d5d5d
sRGB = ​​a3a3a3​
Linear RGB = ​(95, 95, 95)
sRGB = ​​(163, 163, 163)
Sand
Linear RGB = ​70623b
sRGB = ​​b1a784​
Linear RGB = ​(114, 100, 60)
sRGB = ​​​(177, 167, 132)
Clean Cement
Linear RGB = ​86857f
sRGB = ​​c0bfbb​
Linear RGB = ​(136, 134, 128)
sRGB = ​​(192, 191, 187)
Rough Wood
Linear RGB = ​be9264
sRGB = ​​e0c7a8​
Linear RGB = ​(191, 147, 101)
sRGB = ​​​(224, 199, 168)

Metallic Albedo Values GUIDE

MATERIAL TYPE
COLOR SWATCH
HEXADECIMAL VALUES
RGB CHANNEL VALUES
Gold
Linear RGB = ​​ffc456
sRGB = ​ffe39d
Linear RGB = ​​(254, 197, 87)
sRGB = ​​(255, 227, 157)
Iron
Linear RGB = ​8f9194
sRGB = ​c6c7c9
Linear RGB = ​​(145, 147, 150)
sRGB = ​​​​(198, 199, 201)
Copper
Linear RGB = ​f4a389
sRGB = ​fad1c2
Linear RGB = ​​(243, 164, 139)​
sRGB = ​​​​(250, 209, 194)
Silver
Linear RGB = ​f8f5ea
sRGB = ​fcfbf6
Linear RGB = ​​(247, 245, 235)
sRGB = ​​​​(252, 251, 246)
Cobalt
Linear RGB = ​a9a7a2
sRGB = ​d5d4d1
Linear RGB = ​​(171, 169, 164)​
sRGB = ​​​​(213, 212, 209)
Aluminum
Linear RGB = ​e9ebec
sRGB = ​f5f6f7
Linear RGB = ​​(232, 235, 237)​
sRGB = ​​​​(245, 246, 247)
Titanium
Linear RGB = ​8a7f72
sRGB = ​c3bbb3
Linear RGB = ​​(141, 128, 117)​
sRGB = ​​​​(195, 187, 179)
Chromium
Linear RGB = ​8c8e8d​
sRGB = ​c4c5c5
Linear RGB = ​​(142, 144, 144)
sRGB = ​​​​(196, 197, 197)
​Platinum
Linear RGB = ​aca395
sRGB = ​d6d1c9
Linear RGB = ​​(173, 164, 150)​
sRGB = ​​​​(214, 209, 201)
Nickel
Linear RGB = ​a89b86
sRGB = ​d5cdc0
Linear RGB = ​​(171, 157, 136)
sRGB = ​​​​(213, 205, 192)