In modern skin rendering, micro detail normal maps are a common feature to make skin look much more detailed in close up shots. They are smaller normal maps tiled over a character and blended in with the regular normal maps. Because of the extreme tiling, they look detailed even at close ups shots!
This script switches character skin to use the GlossNMDetailTessMappedComputeBuff shader that was already built into VAM and exposes the Detail Map and Tessellation controls directly to you.
Options:
Tessellation - The tessellation level (1.0 to 8.0). The higher the level, the smoother the character's body will be. This works by increasing polygon count, so beware the FPS impact at higher settings!
Phong Strength - This impacts the Phong smoothing of the tessellation. Best left at 0.5
Detail Map Texture - Choose any tillable normal map. 3 are included with this plug-in!
Detail Weight - Controls the ratio of base normal map vs detail normal map. A value of 0 will only use base normal map, and 1 would only use the detail normal map. 0.5 would blend the two 50%/50%
Detail Map Scale - Controls the scale (tiling) of the normal map across the skin.
Enable Distance Fade - Toggles "Distance Fade". Distance fade will gradually adjust Detail Weight based on player distance from fade target. This makes the effect stronger for close ups, and fades it out as you zoom out.
Distance Fade Target - Which atom control to use for computing distance.
Fade Max Distance & Fade Max Distance Detail Weight - At this distance (or greater), Detail Weight will be set to "Max Distance Detail Weight"
Fade Min Distance & Fade Min Distance Detail Weight - At this distance (or less), Detail Weight will be set to "Min Distance Detail Weight"
Due to overwhelming demand, this is now fully compatible with @Hunting-Succubus SSS Plugin. Be sure "Prevent Shader Overwrite" is checked in plug-in options. In the vast majority of cases it should just work. If you do have issues, be sure to load my plugin after his and not before. See V6 update log for more info
Note: As this plug-in changes the active skin shader, it may not be compatible with other plug-ins that do the same (
A note on noise and VR:
This effect can cause some noise on desktop and a lot of noise in VR when zoomed out.
Some things that can help:
- Using the Distance Fade feature of the plugin
- Using TAA or FXAA anti-aliasing from a post processing plugin like this one: https://hub.virtamate.com/resources/postmagic.161/
- Reduce the Atom's "Diffuse Bumpiness" or "Specular Bumpiness". These are often cranked way too high for soft skin shading.
- Use a plugin like @Hunting-Succubus' SSS Plugin, which introduces some skin blur which will reduce or remove the noise.
- Consider only using this plugin in Desktop scenes. Normal Maps in general don't have the same impact in VR. To quote Unreal's VR best practices documentation "When viewing Normal maps on objects in VR, you will notice that they do not have the impact that they might have once had. This is because Normal mapping does not account for having a binocular display or motion parallax. "
The included normal maps come from a free pack here. If you like the textures, consider buying more from this 3D artist - https://koromoworks.gumroad.com/
Uses some code from MacGruber Utils under CC-BY
It also only works if you use his SSS Person script. It does NOT work with the SSS Session plugin as that one continuously overwrites the shader.
My next update I'm going to try to add some code to detect his plug-in and brute force them to work together.