Parallax Shaders - Objects
Parallax Shaders - Objects is a set of replacement shaders for parallax mapping used in the game. Parallax mapping is a technique which creates an illusion of 3D from basic 2D textures, which improves the small scale detail of objects.
Acknowledgement
Thank you, Goshko, for motivating me to work on this.
Description
Parallax Shaders - Objects is a set of shaders which replace the vanilla shaders. Vanilla parallax shaders work, but the effect is barely visible, and (based on the mesh of the object) can lead to various issues like texture sliding. I have decoded the vanilla shaders and improved the parallax effect in several ways:
- replaced basic parallax mapping with parallax occlusion mapping, improving the 3D effect,
- to avoid a large performance hit, the effect is only used for objects in a certain distance,
- added self-shadowing, further improving the 3D effect.
This set of shaders only replaces the base game parallax mapping, not parallax occlusion mapping (work-in-progress for improving those). Only objects which are set up properly for this effect will use these shaders. This means that the NIF must have the Parallax_Shader_Index_15 shader flag and have a height map texture attached to it (more details can be found, for example, on GECKWiki).
Potential issues
Unfortunately, parallax mapping does not come without it's set of potential issues. Parallax works best on flat surfaces, complex objects with many faces, bad UV maps, etc., all can lead to weirdness and texture sliding. Authors that would like to use parallax should make sure that they test the results properly.
Requirements
Parallax Shaders - Objects requires the following:
A note on performance
Parallax occlusion mapping introduces a fair amount of texture sampling to the shaders, which can have a small performance hit.
Source Code
Instructions
Override LOD Flicker Fix.
Requirements
Parallax Shaders - Objects
Main file: Parallax shaders, override LOD Flicker Fix.