Arcane University:NetImmerse Format/BSLightingShaderProperty
The BSLightingShaderProperty is the most common type of shader property used in Skyrim nifs. It defines the attributes of the material which is used for shading the mesh. It is suitable for most tangible objects. For objects which require more elaborate blending effects, an effect shader may be better.
Contents
Shader Types[edit]
There are several overall shader types which you can choose from. They are ordered here and in NifSkope generally from most common to least common. Each one uses the textures in its child block BSTextureSet slightly differently. Some of the data which is used in common across different shader types is outlined below:
- UV Offset: How much to offset the UV map.
- UV Scale: How much to scale the UV map.
- Texture Set: Which textures to use. This block can be shared among multiple shader properties within the nif, saving a small amount of memory and making it slightly easier to make changes if multiple shapes in the nif use the same textures.
- Emissive Color: Color of any glow effects. If the shader type is not "Glow Shader," it will make the whole mesh glow.
- Emissive Multiple: Multiplier on glow intensity.
- Texture Clamp Mode: Whether to clamp or wrap the UVs for vertices which fall outside the 0.0-1.0 range. Tiling textures must use wrapping. Non-tiling may use either wrap or clamp, but may be slightly more performant using clamp.
- Alpha: Overall opacity of the TriShape, zero being fully transparent, and one being fully opaque. Can be buggy, so use an alpha property instead whenever possible.
- Refraction Strength: Ranges from zero to 1.testing needed
- Glossiness: Inverse width of the specular highlight. Higher values are narrower, lower values are wider.
- Specular Color: The color of the specular highlight.
- Specular Strength: Multiplier on specular highlight intensity. Values between 0.25 and 1 are typical.
- Lighting Effect 1: Soft lighting intensity (must use soft lighting shader flag). Adds a glow through the object to simulate light being diffused and passing through the object. This is good for simulating translucence on objects such as leaves.
- Lighting Effect 2: Rim lighting intensity (must use rim lighting shader flag). Rim lighting is only visible when light is on the opposite side of the mesh and simulates light bending around the object and lighting it at the edges.
Default[edit]
The default shader is the most commonly used. It is good for most solid objects which do not require any additional shading effects. Shapes using the default shader should have a diffuse texture and combined normal/specular texture.
Environment Map[edit]
The environment map shader is also quite common. It provides a method of simulating reflectivity by using a prerendered environment texture as the reflection. This is applied additively to the mesh. It is commonly used for metals, ore, and ice. Shapes using the environment map shader should have diffuse, combined normal/specular, environment, and environment mask textures. The environment mask texture is used to define how strongly the cubemap is blended per texel. If no environment mask is assigned, the shader falls back on the specular map as a mask. The environment map shader is incompatible with glow mapping, so if you have a mesh for which you want to use both effects, you have to split it into parts, or overlay a partially transparent mesh.
To use the Environment Map shader, set the shader type and the Environment Map shader flag, and make sure the Glow Map shader flag is not set.
Values added:
- Environment Map Scale: Multiplier on environment map intensity. Values between 0.25 and 2 are typical.
Glow Shader[edit]
The glow shader is another very common shader type. This shader allows per-texel glow on a mesh, rather than simply full-mesh glow. The effect is applied additively using the color map in texture slot 2. Emissive multiple can be animated for a puslating glow effect.
To use the glow shader, set the shader type and the Glow Map shader flag, and make sure the Environment Map shader flag is not set.
Parallax[edit]
The parallax shader was used in Skyrim, but is broken in Special Edition. Enabling it requires either the SSE Parallax Shader Fix mod or ENB. It uses a single channel (grayscale) texture from slot 3. Zero (black) is maximum depth, one (white) is maximum height, and 0.5 (gray) is neutral.
Face Tint[edit]
Skin Tint[edit]
Hair Tint[edit]
Multilayer Parallax[edit]
The multilayer parallax shader is one of the more complex shaders, but can look quite nice when set up properly. It provides a method of faking translucency and depth within a mesh, using a second diffuse texture, parallax, and refraction. It is useful for things like ice. The frost atronach is a great example from Skyrim to look at. It also allows for environment mapping on the outer mesh. To use the multilayer parallax shader, set the shader type, and add the multi layer parallax, rim lighting, and back lighting shader flags. The textures are set up as follows:
- Slot 0: Diffuse: A typical diffuse texture for the outer layer. It must have alpha transparency in order for the inner layer to be visible. No alpha property is needed here.
- Slot 1: Normal / Gloss: The typical combined normal + gloss map.
- Slot 2: Subsurface Color: Subsurface color map?testing needed Often uses the same texture as slot 7.
- Slot 3: Not used.
- Slot 4: Environment: The typical environment, or cubemap, texture.
- Slot 5: Not used.
- Slot 6: Multilayer: The inner layer diffuse. This texture can be scaled and refracted using the shader settings.
- Slot 7: Subsurface Color Tint: Subsurface color map. This functions similarly to rim lighting. It is blended additively around the edges of the mesh, giving the appearance of light being tinted as it passes through thin parts of the mesh.
Fields added:
- Parallax inner layer thickness: The apparent depth of the inner layer.
- Parallax refraction scale: How much to refract the inner layer. Ranges from 0.0 (no refraction) to 1.0 (extreme refraction).
- Parallax inner layer texture scale: Scale of the inner layer UV map.
- Parallax envmap strength: Multiplier on environment map intensity, same as the regular Environment Map shader.testing needed
Eye Envmap[edit]
Shader Flags[edit]
Further Reading[edit]
- BSLightingShaderProperty Basics: explains further about BSLightingShaderProperty node and its uses. Includes image examples.
