Background on Extended Materials - hakasapl/PGPatcher GitHub Wiki

This page gives some background on the various material types, some of which PGPatcher patches for. It's not critical to know for PGPatcher unless you are curious, it's mostly a rant for me.

Introduction

The naming of various shaders and parallax types is possibly the worst development in Skyrim modding ever, it causes confusion among even experienced users. First of all, everyone is after Parallax, but Parallax is only one rendering technique. Modern modding is capable of many other things which this guide will go over.

Bethesda's Vanilla Parallax

Skyrim has a built-in parallax shader with no mods, but it doesn't work. SSE Parallax Shader Fix and early versions of ENBSeries fixed this shader and allowed parallax mods to start being developed in Skyrim. This is a rudimentary implementation: parallax effect only with no shadows.

Complex Parallax

Later, Community Shaders and current versions of ENBSeries implemented what is known as "complex parallax". Complex parallax is an enhanced version of vanilla parallax which adds shadows around the parallax bumps that react to lighting. Assuming you followed the Basic Usage Game Requirements, any parallax mod will always be rendered using the "complex parallax" technique. Therefore, differentiating between "Complex Parallax" and "Parallax" mods on nexus is not required, they are interchangeable as there is nothing the mod author needs to change for their mod to be "complex parallax", it just happens automatically if you have the requirements.**

"Legacy Terrain" / Terrain Parallax

Legacy terrain parallax requires the height map information to be stored in the alpha layer of the diffuse texture. This breaks alpha blending on meshes, which mods like Terrain Parallax Blending Fix provide a bandaid fix for.

Terrain Helper / PBR Terrain

Terrain Helper is a mod which allows terrain parallax to work with a discrete parallax map, much like in meshes. This solves the blending issue. This solves a lot of performance and mod development problems so it is considered the correct way for terrain parallax to be implemented as of its release. Terrain Helper works for ENB and CS. PBR terrain in Community Shaders uses a similar technique to terrain helper to accomplish the same thing, except they also allow PBR RMAOS maps in addition to parallax to be rendered on terrain.

Complex Material

Complex parallax is still limited for these reasons:

  • Does not support decals
  • Does not support skinned meshes
  • Blue distant LOD bug
  • Doesn't fully work with NiAlpha properties
  • Probably more...

Complex material is a different kind of shader that builds on the vanilla environment mapping shader. Environment mapping in vanilla skyrim allows for parts of meshes to be reflective by providing an environment mask (what controls which parts are reflective), and a cubemap (the reflection itself that gets rendered). The complex material specification extends the environment mask file (commonly named TEXTURE_m.dds) with three additional layers: metalness, roughness, and parallax. Because of this, environment mapping and parallax can be combined in one shader type, which is ordinarily not allowed with complex parallax.

TruePBR (Community Shaders Only)

Community Shaders exclusive feature that will save us all - it does all of the above and more. See their wiki here: TruePBR Wiki