Difference between revisions of "PBR Reference Guide"

From FreeSpace Wiki
Jump to: navigation, search
Line 1: Line 1:
 
==Introduction==
 
==Introduction==
As of release 3.8.0, the FS2 Open engine supports Physically-Based Rendering. Along with it comes many new hurdles for asset creators, and the need for a guide on the matter. This article is designed mostly as a reference guide that can serve as a basis for workflows and as a refresher if needed.  
+
As of release 3.8.0, the FS2 Open engine supports Physically Based Rendering. Along with it comes many new hurdles for asset creators, and the need for a guide on the matter. This article is designed mostly as a reference guide that can serve as a basis for workflows and as a refresher if needed.
 +
 
 +
===Key Concepts===
 +
The wikipedia pages on [https://en.wikipedia.org/wiki/Physically_based_rendering/ Physically Based Rendering] and [https://en.wikipedia.org/wiki/Bidirectional_reflectance_distribution_function/ BRDFs] are particularly good to read and keep in mind when working on PBR assets.
  
 
==Tools==
 
==Tools==
Line 22: Line 25:
  
 
==The Workflow==
 
==The Workflow==
 +
The PBR workflow for FSO introduces two new texture maps, as well as some constraints on old texture types.
 +
Remember, PBR materials are (mostly) split up into two types:
 +
*Dielectric
 +
*Metallic
 +
Technically, elements that we refer to as metalloids or semi-metals on the periodic table have some properties from both dielectrics and metals, but this will be covered later.
 +
 +
===Diffuse/Albedo===
 +
As before, the diffuse texture is supposed to contain diffuse color information. However, in the past, many people included color for metallic materials. With PBR textures, the diffuse map should contain only color information for dielectric materials. Dielectric materials are basically any material that has no metallic properties. This includes:
 +
*Paints
 +
*Plastics
 +
*Most organic materials
 +
*Most minerals
 +
 +
Essentially, metals should be very dark grays to black, with the exception of a few members of the Gold/Platinum group (Gold has a very dark orange-brown diffuse color), while dielectrics can be whatever color you want.
 +
 +
Additionally, the diffuse map should no longer contain any lighting information. The ambient occlusion map you bake for your asset should be in it's own texture now.
 +
 +
===Specular/Reflectance===
 +
This new map, denoted by the format ***-reflect.img, replaces the shine map used by old assets. Shine maps contained specular color information in the RGB channels, as well as an "environment reflectance" value in the Alpha channel, which determined the mip level or accuracy of environment reflections. Reflectance maps rearrange how this information is stored; The RGB channels store specular color as the overall color and "metalness" as the magnitude of the color value, while the Alpha channel now contains the Gloss of the material. That's right, you can now do per pixel gloss instead of the old -ogl_spec commandline parameter.
 +
 +
This texture should contain only color information for metallic materials. I shouldn't need to tell you what a metal is. Metals tend to be very bright white to gray, but can have some additional coloration like blue, although there's always copper and gold as notably colorful metals. Dielectrics should be dark to medium grays.
 +
 +
No lighting information here either, unless you like screwy reflections.
  
 +
===Occlusion===
 +
This new map, denoted by the format ***-ao.img, contains all non-emissive lighting information for your asset. For this texture, only two channels are used, one contains Ambient Occlusion information, while the other contains Cavity Occlusion information.
  
 
[[Category:*]]
 
[[Category:*]]

Revision as of 16:08, 20 December 2017

Introduction

As of release 3.8.0, the FS2 Open engine supports Physically Based Rendering. Along with it comes many new hurdles for asset creators, and the need for a guide on the matter. This article is designed mostly as a reference guide that can serve as a basis for workflows and as a refresher if needed.

Key Concepts

The wikipedia pages on Physically Based Rendering and BRDFs are particularly good to read and keep in mind when working on PBR assets.

Tools

There are many tools available to modders that can assist in the creation of assets.

Substance Painter

Substance Painter is a 3D painting software created by Allegorithmic. It can be purchased under a multitude of plans (including a perpetual license), although an educational license is available.

Quixel Suite

Quixel Suite is a 3D painting tool created by Quixel that integrates with Adobe Photoshop CS4/5/6 and Creative Cloud. It is available under a perpetual license, with an educational discount available.

Quixel Suite's biggest feature is the Quixel Megascans material library, which provides thousands of scanned PBR materials, with several hundred being included with the suite and a large variety of packs available for purchase. The included materials provide everything you need to get started, but some of the Megascans materials and masks are incredibly useful.

QS provides the simplest transfer to FSO, as it features an export preset that produces textures compatible with the engine by default.

Other Tools

The following tools will be covered in later tutorials and additions to this reference guide.

The Workflow

The PBR workflow for FSO introduces two new texture maps, as well as some constraints on old texture types. Remember, PBR materials are (mostly) split up into two types:

  • Dielectric
  • Metallic

Technically, elements that we refer to as metalloids or semi-metals on the periodic table have some properties from both dielectrics and metals, but this will be covered later.

Diffuse/Albedo

As before, the diffuse texture is supposed to contain diffuse color information. However, in the past, many people included color for metallic materials. With PBR textures, the diffuse map should contain only color information for dielectric materials. Dielectric materials are basically any material that has no metallic properties. This includes:

  • Paints
  • Plastics
  • Most organic materials
  • Most minerals

Essentially, metals should be very dark grays to black, with the exception of a few members of the Gold/Platinum group (Gold has a very dark orange-brown diffuse color), while dielectrics can be whatever color you want.

Additionally, the diffuse map should no longer contain any lighting information. The ambient occlusion map you bake for your asset should be in it's own texture now.

Specular/Reflectance

This new map, denoted by the format ***-reflect.img, replaces the shine map used by old assets. Shine maps contained specular color information in the RGB channels, as well as an "environment reflectance" value in the Alpha channel, which determined the mip level or accuracy of environment reflections. Reflectance maps rearrange how this information is stored; The RGB channels store specular color as the overall color and "metalness" as the magnitude of the color value, while the Alpha channel now contains the Gloss of the material. That's right, you can now do per pixel gloss instead of the old -ogl_spec commandline parameter.

This texture should contain only color information for metallic materials. I shouldn't need to tell you what a metal is. Metals tend to be very bright white to gray, but can have some additional coloration like blue, although there's always copper and gold as notably colorful metals. Dielectrics should be dark to medium grays.

No lighting information here either, unless you like screwy reflections.

Occlusion

This new map, denoted by the format ***-ao.img, contains all non-emissive lighting information for your asset. For this texture, only two channels are used, one contains Ambient Occlusion information, while the other contains Cavity Occlusion information.