Jump to content

Hedgehog Engine 2 - Physically Based Rendering (PBR)

From HedgeDocs

Physically based rendering is used in HE2 games and mostly associated with "PRM" textures. By combining several textures of various properties, you can create a wide range of materials to render physically accurate looking surfaces.

Components

Albedo

Albedo is the base color of a surface and is used with “diffuse” lighting.

Materials with various albedo colors in Shadow Generations
Materials with various albedo colors in Shadow Generations

Smoothness

Smoothness determines how reflective a surface is. The lower the smoothness, the blurrier the reflection. This is represented by a value between 0 and 1.

Materials with full specularity and a gradually increasing smoothness in Shadow Generations
Materials with full specularity and a gradually increasing smoothness in Shadow Generations

Specular

Seperately from diffuse lighting, specular lighting controls the visibility of specular lighting and reflections. You can imagine it as a “layer” on top of the diffuse lighting, with the specularity acting as the “layer transparency”. Hedgehog Engine 2 specifically makes use of “F0 reflectance”.

It’s represented by a value between 0 and 1; Usually a specular value of 0.125 is considered the “default”.

Gold-ish (#FFAA00) materials with a gradually increasing specularity in Shadow Generations
Gold-ish (#FFAA00) materials with a gradually increasing specularity in Shadow Generations
Info
When used in a PBRFactor shader parameter, the specular value is used as is.

In PRM textures however, it is divided by 4. Thus, the highest specular value achievable with a standard image format is 0.25.

This can be circumvented by using using an HDR image format such as R16G16B16A16_FLOAT.


Metallic

Metallic is similar to specular, with the 2 differences:

  • The albedo color affects the color of reflection
  • A more linear value progression

Similarly to specular, it also can be seen as a seperate “layer” that is placed above the specular lighting.

It too is represented by a value between 0 and 1. Usually a metallic value of 0 is considered the “default”.

Gold-ish (#FFAA00) materials with a gradually increasing metallicness in Shadow Generations
Gold-ish (#FFAA00) materials with a gradually increasing metallicness in Shadow Generations
Note
Usually, metallic is done either 0 or 1, and rarely anything in between.


Combining Specular and Metallic

While rarely done, it is possible to use specular and metallic lighting together.

Gold-ish (#FFAA00) materials with a smoothness of 0.85 and gradually increasing specularity and metallicness in Shadow Generations
Gold-ish (#FFAA00) materials with a smoothness of 0.85 and gradually increasing specularity and metallicness in Shadow Generations

Emission

Emission is essentially the colored “glow” of the surface, like the light coming from a lamp. This is unaffected by any lighting that may hit the surface.

Black materials with various emission colors in Shadow Generations
Black materials with various emission colors in Shadow Generations

Unlike the other surface values, emission supports high-dynamic-range images, and can use values beyond the 0-1 range, which the rendering engine may process in various ways.

Additionally, emission is often accompanied by a “Luminance” parameter that changes how bright the emission texture appears.

Black materials with white emission and gradually increasing luminance in Shadow Generations
Black materials with white emission and gradually increasing luminance in Shadow Generations

Ambient Occlusion / Cavity

Ambient occlusion (often abbrivated with “AO” or “A/O”) is, as the name implies, responsible for occluding/removing ambient lighting. There are several types of ambient lighting, but this part solely focusses on the material surface AO, sometimes also referred to as "Cavity".

In Hedgehog Engine 2 games, ambient lighting consists of

  • Global illumination (GI)
  • Environment reflections (“Image based lighting”; IBL)
  • Screen space reflections (SSR)

Ambient occlusion too is represented by a value between 0 and 1. However, unlike the other values, where a higher greater value “increases” the effect, here a lower value increases the occlusion of ambient lighting.

Thus the default value, at which no ambient light is occluded, is 1.

Gold-ish (#FFAA00) materials with different lighting values and gradually decreasing ambient occlusion in Shadow Generations
Gold-ish (#FFAA00) materials with different lighting values and gradually decreasing ambient occlusion in Shadow Generations
Info
Note how, in the chart above, the “sun” in the reflection is still visible. That is because it is a sun light and not actually part of the environmental reflections, which are handled as seperate part of the lighting in HE2.


Examples

Now, with all the info above, even moreso when combined with Normal maps, we can create a wide range of materials to use!

Let’s look at some examples:

Example 1: ARK Techno Panels

m01_techno_panel_emsa_sy1 from the ARK in Shadow Generations
m01_techno_panel_emsa_sy1 from the ARK in Shadow Generations

Example 2: Rail Canyon Asphalt

m06_ds_asphalt_base_sy1 from Rail Canyon in Shadow Generations
m06_ds_asphalt_base_sy1 from Rail Canyon in Shadow Generations

Example 3: Kingdom Valley Wood bark

m03_kdv_wood02_dfsp_n_ih1 from Kingdom Valley in Shadow Generations
m03_kdv_wood02_dfsp_n_ih1 from Kingdom Valley in Shadow Generations

Example 4: Sunset Heights Building wall

m06_ds_wall_window18_fh1 from Sunet Heights in Shadow Generations
m06_ds_wall_window18_fh1 from Sunet Heights in Shadow Generations

Example 5: Chaos Island Rock Cliff

m05_rockcliff01_sy1 (top layer) from Chaos Island in Shadow Generations
m05_rockcliff01_sy1 (top layer) from Chaos Island in Shadow Generations

Example 6: Radical Highway Tunnel Wall

m06_ds_tunnel_d_kk1 from Radical Highway in Shadow Generations
m06_ds_tunnel_d_kk1 from Radical Highway in Shadow Generations
Cookies help us deliver our services. By using our services, you agree to our use of cookies.