Vanilla Plus Skin
Acknowledgement
Huge thanks goes to WallSoGB as usual.
Description
Vanilla Plus Skin is a xNVSE plugin and shader replacer that improves skin shading.
Skin is partially translucent, which gives raise to the famous effect called subsurface scattering. There are various ways to approach this phenomena in regards to shading, but many of them are very hard to do in a real-time environment. Many of the techniques were developed through out the years just before and after the release of New Vegas (famously, for example, The Matrix Reloaded used a specific technique that has been adapted to games).
In vanilla, skin is shaded pretty much as any other object, but with a twist. To at least partially simulate the effects of subsurface scattering, the developers decided to use a simple technique called backlighting. But combined with the rest of the shading, this can result in very weird situations where the skin is basically glowing, and doesn't really look like skin.
Welcome to Vanilla Plus Skin. I researched modern real-time techniques, and the one I decided to use is called preintegrated subsurface scattering (used to great effect in, for example, Ghost of Tsushima). In the screenshots section you can see a comparison between vanilla and my skin shading to see the difference. Skin should look more natural and softer, especially noticeable at areas of high curvature.
Technical Note
Technically speaking, to accomplish this, two things are needed:
- a preintegrated skin LUT (look-up table),
- curvature data at each vertex of the mesh.
For the LUT, while we could use a texture, I decided to render it (at game start) instead. This is to keep as much precision as possible and avoid issues like banding or color artifacts. The second problem is the curvature data. While we could theoretically preprocess all meshes, I decided to do it on the fly as the skin geometry is prepared for rendering (the main reasons being compatibility and facegen being an absolute mess). This should, hopefully, be very fast and not noticeable during gameplay. However, I plan on keeping an eye on it and optimizing as necessary.
TLDR: This mod should be compatible with all face and body mods (like Character Kit Remake etc.).
Requirements
Installation
Install as normal. Load after LOD Flicker Fix - NVSE.
Source Code
Instructions
Override LOD Flicker Fix.
Requirements
Vanilla Plus Skin
Main file: Override LOD Flicker Fix.