Difference between revisions of "PBR texture compliance"

From War Thunder Wiki
Jump to: navigation, search
(Created page with "Category:War Thunder CDK")
 
m (Changed protection level for "PBR texture compliance" ([Edit=Allow only administrators and moderators] (indefinite) [Move=Allow only administrators and moderators] (indefinite)))
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:War Thunder CDK]]
+
Physically Based Render and Shading was introduced to War Thunder with the release of 1.53 patch. Below you will find useful tips on how to use new render features for making aircraft skins.<br />
 +
[[File:PBR Metal WikiSpan F-84B-26.png|center|class=dynamic_image]]
 +
 
 +
 
 +
== Albedo texture ==
 +
Previously known as diffuse texture. Albedo texture is a mix of '''Diffuse Reflection''' color for non-metals and '''Specular Reflection''' color for metals. Albedo texture is our physically correct base color texture.
 +
 
 +
=== Albedo Texture Features ===
 +
There are 2 important values to remember for a physically correct albedo texture:
 +
* Albedo of coal is ~RGB 59 or 23% brightness in sRGB colorspace
 +
* Albedo of fresh snow is ~RGB 236 or 93% brightness
 +
Black paint usually fits into 50-60 range. And white paint cannot be brighter than fresh snow.<br />
 +
Please take a look at FS 595C physically correct values:
 +
FS37038 - International Black flat paint is RGB 55; 56; 56. Is close to 59
 +
FS37875 - International White flat paint is RGB 227; 229; 218. Is not greater than 236
 +
Albedo colors below 59 contribute to Albedo AO/Cavity Map. Cavity map is integrated into albedo map and is used to emphasize surface micro detail.<br />
 +
Albedo colors above 236 contribute to glow effect.<br />
 +
Specular highlight gradually fades away in 59-31 range.<br />
 +
Primary surface shading gradually fades in 31-0 RGB range.'''<br />
 +
Albedo value of 0 means pixels will not receive any lighting and stay black under any lighting conditions.
 +
Good practical value for black paint is RGB 43; 43; 44
 +
For any painted surface you would not want to fall below ~12% brightness (RGB 31).
 +
 
 +
=== PBR Compliant Colors ===
 +
We rely on Federal Standard 595C for our painted surface color needs. When migrating to PBR physically correct color library was created. Colors were calculated using measured spectral data with Standard Illuminant D65 and conversion to sRGB colorspace. Our resulting colors matched publically available color charts which can be found here http://www.e-paint.co.uk/chart_options.asp British Standard BS 381C also proved to be correct. We recommend using FS and BS from this site for all of your PBR Paint color needs. For albedo values of various raw materials please see appropriate reference data.<br />
 +
Please notice that albedo texture holds '''Specular Reflection''' color for metals. '''Not''' metal albedo values. Because metal albedo is almost black.<br />
 +
Practical albedo texture values for various metals:
 +
* Bare aluminum under chipped paint - ~0.5-0.6 brightness (RGB 128-153)
 +
* Whole unpainted aluminum surfaces - ~0.6-0.96 brightness (RGB 153-250). With a hue of ~190-200 and saturation of ~3-4%
 +
Aluminum albedo brightness depends on degree of oxidizing.<br />
 +
Some real ingame values:
 +
* F-82E aluminum surfaces are averaging to RGB 174; 178; 179. With peaks up to 250
 +
* F-84B aluminum surfaces are averaging to RGB 179; 186; 187. With peaks up to 220
 +
While perfect aluminum reflection color is ~0.92 (linear space) which equals to ~0.96 in sRGB space (RGB 246). If we paint entire aircraft with this peak value alone it will not look real. To get the natural look we have to take behaviour of this material in real environment into account. While the initial value is a good entry point.
 +
* Crome plated and Steel are ~0.6 brightness (RGB 153). Both have roughly the same neutral tint slightly pulling to shades of green and blue.
 +
* Stainless steel may be darker. ~0.5-0.6. Slightly pulling to blue and violet tints.
 +
 
 +
== Smoothness ==
 +
Literally describes how smooth the surface is. Smoothness is "_n" texture component that replaces previous gen. specular map.<br />
 +
Darker colors = surface is more rough<br />
 +
Lighter colors = surface is smoother<br />
 +
Smoothness values influence the size and brightness of specular highlight. The rougher the surface the more wide and dull the highlight is.
 +
 
 +
For painted surfaces (non-metals) following smoothness values are good:
 +
* Flat paint - brightness ~0.2-0.4
 +
* Semi-Gloss paint - brightness ~0.4-0.6
 +
* Gloss paint - brightness > ~0.6
 +
For a freshly-painted aircraft (glossy paint) it's ok to have smoothness values of ~180-200.
 +
 
 +
For metals following smoothness values are practically good:
 +
* Chrome = ~0.6
 +
* Stainless steel = ~0.6
 +
* Aluminum surfaces = ~0.35-0.4
 +
The smoother the metal the more surroundings it reflects.<br />
 +
Another common component is rubber:
 +
* Rubber = ~0.25-0.3
 +
Nice albedo value for dusty tyres to go with this smoothness is RGB 34,33,28.
 +
 
 +
Smoothness texture component can be obtained by modifying your existing specular map.
 +
 
 +
== Metalness ==
 +
It is our new texture component that describes the conductivity of a surface. Metals are conductors. '''Metalness value of pure metals is 1.0'''. Non-metals are isolators. '''The value of isolators is 0'''. Usually painted surfaces are isolators. Most of aircraft construction metals can be oxidized to some degree. Aluminum is easily oxidized so it's metalness value is never 1.0. Unless it is freshly polished. Chrome, gold or stainless steel are less susceptible to oxidizing. Their metalness can be 1.0. Metalness texture component can have 256 levels (0-255) and occupies blue "_n" texture channel.<br />
 +
 
 +
[[File:PBR metal ex Wiki F-84B-26.png |400px|Metalness]]
 +
 
 +
Practical metalness values for aircraft are:
 +
* Chrome - 1.0 metalness (255)
 +
* Stainless steel - 1.0 metalness (255)
 +
* Aluminum surfaces - 0.5 - 0.7 metalness (128-178)
 +
 
 +
== Upgrading your textures to PBR standard ==
 +
When upgrading your textures to PBR format please take these steps into account:
 +
* Albedo. Increase brightness for painted parts that fall below ~43 RGB
 +
* Albedo. Avoid 0 blacks (unless its a hole or deep seam)
 +
* Albedo. Brighten metal parts. Usually shock absorbers were black on old diffuse textures
 +
* Normals texture. Make metalness map for chrome and bare metal parts ("_n" texture blue channel)
 +
* Normals texture. Increase smoothness for painted parts (when making smoothness from old specular map)
 +
* Normals texture. Decrease smoothness for metal parts. Make more rough
 +
In case you are using our stock "_n" files then only albedo corrections are required.<br />
 +
In previous generation textures the blue channel (Normals Z) was filled black and not used. In our new engine the blue channel is used by metalness texture component. This automatically makes old "_n" textures non-metal in the new engine. Since the majority of aircraft are painted we are good at this point. All pre 1.53 textures will work with PBR engine as is. And it will be a matter of improving them. Paying special attention to bare metal aircraft.<br />
 +
Experiment to find good values for various materials using Asset Viewer. To aid you in texture creation process the Asset Viewer has new G-Buffer visualization tool.
 +
 
 +
[[File:AssetViewer EnvironmentalSettingTool Wiki.png‎|Environment settings]]
 +
 
 +
It can separately show diffuse and specular reflectivity, base color, metalness, smoothness and other scene contributing components.
 +
 
 +
[[File:AssetViewer GBufferVisualizationTool Wiki.png|400px|G-Buffer visualisation tool]]
 +
 
 +
== "_n" texture components by channels ==
 +
For skin artists.<br />
 +
Since you are working with exported/swizzled (ARGB->RAGB) textures, channel order in final *.dds textures is the following:
 +
* R - smoothness
 +
* G - normal Y
 +
* B - metalness
 +
* A - normal X
 +
Normals Z data is derived from X and Y inside the shader.
 +
 
 +
For 3d modellers who export textures with Asset Viewer.<br />
 +
Please use normal channel order:
 +
* R - normal X
 +
* G - normal Y
 +
* B - metalness
 +
* A - smoothness
 +
Channels will be swapped to a proper game order automatically on export.
 +
 
 +
Thank you.
 +
 
 +
* To learn about the fundamental stages, on how to create a custom skin. please visit the: [[Custom_skins| '''Custom skin page''']]
 +
 
 +
[[Category:War_Thunder_CDK]]

Latest revision as of 16:57, 5 February 2019

Physically Based Render and Shading was introduced to War Thunder with the release of 1.53 patch. Below you will find useful tips on how to use new render features for making aircraft skins.

PBR Metal WikiSpan F-84B-26.png


Albedo texture

Previously known as diffuse texture. Albedo texture is a mix of Diffuse Reflection color for non-metals and Specular Reflection color for metals. Albedo texture is our physically correct base color texture.

Albedo Texture Features

There are 2 important values to remember for a physically correct albedo texture:

  • Albedo of coal is ~RGB 59 or 23% brightness in sRGB colorspace
  • Albedo of fresh snow is ~RGB 236 or 93% brightness

Black paint usually fits into 50-60 range. And white paint cannot be brighter than fresh snow.
Please take a look at FS 595C physically correct values:

FS37038 - International Black flat paint is RGB 55; 56; 56. Is close to 59
FS37875 - International White flat paint is RGB 227; 229; 218. Is not greater than 236

Albedo colors below 59 contribute to Albedo AO/Cavity Map. Cavity map is integrated into albedo map and is used to emphasize surface micro detail.
Albedo colors above 236 contribute to glow effect.
Specular highlight gradually fades away in 59-31 range.
Primary surface shading gradually fades in 31-0 RGB range.
Albedo value of 0 means pixels will not receive any lighting and stay black under any lighting conditions.

Good practical value for black paint is RGB 43; 43; 44
For any painted surface you would not want to fall below ~12% brightness (RGB 31).

PBR Compliant Colors

We rely on Federal Standard 595C for our painted surface color needs. When migrating to PBR physically correct color library was created. Colors were calculated using measured spectral data with Standard Illuminant D65 and conversion to sRGB colorspace. Our resulting colors matched publically available color charts which can be found here http://www.e-paint.co.uk/chart_options.asp British Standard BS 381C also proved to be correct. We recommend using FS and BS from this site for all of your PBR Paint color needs. For albedo values of various raw materials please see appropriate reference data.
Please notice that albedo texture holds Specular Reflection color for metals. Not metal albedo values. Because metal albedo is almost black.
Practical albedo texture values for various metals:

  • Bare aluminum under chipped paint - ~0.5-0.6 brightness (RGB 128-153)
  • Whole unpainted aluminum surfaces - ~0.6-0.96 brightness (RGB 153-250). With a hue of ~190-200 and saturation of ~3-4%

Aluminum albedo brightness depends on degree of oxidizing.
Some real ingame values:

  • F-82E aluminum surfaces are averaging to RGB 174; 178; 179. With peaks up to 250
  • F-84B aluminum surfaces are averaging to RGB 179; 186; 187. With peaks up to 220

While perfect aluminum reflection color is ~0.92 (linear space) which equals to ~0.96 in sRGB space (RGB 246). If we paint entire aircraft with this peak value alone it will not look real. To get the natural look we have to take behaviour of this material in real environment into account. While the initial value is a good entry point.

  • Crome plated and Steel are ~0.6 brightness (RGB 153). Both have roughly the same neutral tint slightly pulling to shades of green and blue.
  • Stainless steel may be darker. ~0.5-0.6. Slightly pulling to blue and violet tints.

Smoothness

Literally describes how smooth the surface is. Smoothness is "_n" texture component that replaces previous gen. specular map.
Darker colors = surface is more rough
Lighter colors = surface is smoother
Smoothness values influence the size and brightness of specular highlight. The rougher the surface the more wide and dull the highlight is.

For painted surfaces (non-metals) following smoothness values are good:

  • Flat paint - brightness ~0.2-0.4
  • Semi-Gloss paint - brightness ~0.4-0.6
  • Gloss paint - brightness > ~0.6

For a freshly-painted aircraft (glossy paint) it's ok to have smoothness values of ~180-200.

For metals following smoothness values are practically good:

  • Chrome = ~0.6
  • Stainless steel = ~0.6
  • Aluminum surfaces = ~0.35-0.4

The smoother the metal the more surroundings it reflects.
Another common component is rubber:

  • Rubber = ~0.25-0.3

Nice albedo value for dusty tyres to go with this smoothness is RGB 34,33,28.

Smoothness texture component can be obtained by modifying your existing specular map.

Metalness

It is our new texture component that describes the conductivity of a surface. Metals are conductors. Metalness value of pure metals is 1.0. Non-metals are isolators. The value of isolators is 0. Usually painted surfaces are isolators. Most of aircraft construction metals can be oxidized to some degree. Aluminum is easily oxidized so it's metalness value is never 1.0. Unless it is freshly polished. Chrome, gold or stainless steel are less susceptible to oxidizing. Their metalness can be 1.0. Metalness texture component can have 256 levels (0-255) and occupies blue "_n" texture channel.

Metalness

Practical metalness values for aircraft are:

  • Chrome - 1.0 metalness (255)
  • Stainless steel - 1.0 metalness (255)
  • Aluminum surfaces - 0.5 - 0.7 metalness (128-178)

Upgrading your textures to PBR standard

When upgrading your textures to PBR format please take these steps into account:

  • Albedo. Increase brightness for painted parts that fall below ~43 RGB
  • Albedo. Avoid 0 blacks (unless its a hole or deep seam)
  • Albedo. Brighten metal parts. Usually shock absorbers were black on old diffuse textures
  • Normals texture. Make metalness map for chrome and bare metal parts ("_n" texture blue channel)
  • Normals texture. Increase smoothness for painted parts (when making smoothness from old specular map)
  • Normals texture. Decrease smoothness for metal parts. Make more rough

In case you are using our stock "_n" files then only albedo corrections are required.
In previous generation textures the blue channel (Normals Z) was filled black and not used. In our new engine the blue channel is used by metalness texture component. This automatically makes old "_n" textures non-metal in the new engine. Since the majority of aircraft are painted we are good at this point. All pre 1.53 textures will work with PBR engine as is. And it will be a matter of improving them. Paying special attention to bare metal aircraft.
Experiment to find good values for various materials using Asset Viewer. To aid you in texture creation process the Asset Viewer has new G-Buffer visualization tool.

Environment settings

It can separately show diffuse and specular reflectivity, base color, metalness, smoothness and other scene contributing components.

G-Buffer visualisation tool

"_n" texture components by channels

For skin artists.
Since you are working with exported/swizzled (ARGB->RAGB) textures, channel order in final *.dds textures is the following:

  • R - smoothness
  • G - normal Y
  • B - metalness
  • A - normal X

Normals Z data is derived from X and Y inside the shader.

For 3d modellers who export textures with Asset Viewer.
Please use normal channel order:

  • R - normal X
  • G - normal Y
  • B - metalness
  • A - smoothness

Channels will be swapped to a proper game order automatically on export.

Thank you.

  • To learn about the fundamental stages, on how to create a custom skin. please visit the: Custom skin page