t.ara Posted June 22, 2020 Posted June 22, 2020 BSLightingShaderProperty Basics: Environment/Reflection Specular and Glossiness (Specular Power) Glow/Emissive Alpha/Transparency/Opacity Parallax MultiLayer Parallax Refraction Notes and Miscellaneous Information Introductory Information It is not necessary to build your own BSLightingShaderProperty from scratch. Things are made much easier by copying and pasting a BSLightingShaderProperty from elsewhere before modifying it for your needs. Nifskope's BSLightingShaderProperty interactive help pageCheck "Interactive Help" in Help drop down to view in Nifskope Nifskope block hierarchy example Nifskope block details example “slot #” is the row # in BSShaderTextureSet under the expandable textures list “=>” means in block details of that block (select the block in order to view it's details) Texture Slots !in this image "Alpha" means alpha image channel1. Environment/Reflection Requirementscube map aka environment mapBSLightingShaderProperty => Skyrim Shader Type ~ 1 or Environment Map should be setBSLightingShaderProperty => Shader Flags 1 ~ SLSF1_Environment_Mapping must be enabledBSLightingShaderProperty => Shader Flags 2 ~ SLSF2_Glow_Map must be disabled Appearance Controller(s)BSLightingShaderProperty => Environmental Map ScaleBSShaderTextureSet => environment/cube map (slot 5)BSShaderTextureSet => environment/reflection mask (slot 6) Environment Map Scale - 1 is normal intensity - less than 1 is lower intensity - greater than 1 is higher intensityenvironment/reflection mask is a greyscale image - black is minimum intensity, environment/cube map has no effect in these areas - white is maximum intensity - intensity increases as shade approaches white Environment Map Scale Environment/cube map Environment/reflection mask 2. Specular and Glossiness (Specular Power) Requirements BSLightingShaderProperty => Shader Flags 1 ~ SLSF1_Specular must be enabled Appearance Controller(s)BSLightingShaderProperty => Specular StrengthBSLightingShaderProperty => Specular ColorBSLightingShaderProperty => GlossinessBSShaderTextureSet => normal map (RGB) + greyscale specular map (Alpha) (slot 2) Glossiness is the width of the specular highlight - 10 is a wide specular highlight - 50 is a thinner specular highlight - 100 is an even thinner specular highlight - value ranges from 0 to 999 specular map is a greyscale image - black is minimum intensity, no specular highlight - white is maximum intensity - intensity increases as shade approaches white Specular Strength - 1 is normal intensity - less than 1 is lower intensity - greater than 1 is higher intensitySpecular Color is the color of the specular highlight Specular strength Specular color Specular mapGlossiness 3. Glow/Emissive RequirementsBSLightingShaderProperty => Skyrim Shader Type ~ 2 or Glow Shader should be setBSLightingShaderProperty => Shader Flags 2 ~ SLSF2_Glow_Map must be enabledBSLightingShaderProperty => Shader Flags 1 ~ SLSF1_Environment_Mapping must be disabled Appearance Controller(s)BSLightingShaderProperty => Emissive MultipleBSLightingShaderProperty => Emissive ColorBSShaderTextureSet => emissive/glow map (slot 3) Emissive Multiple - glow intensity increases as emissive multiple increasesColor of glow is controlled by both the color(s) of the glow map texture and the emissive colorEmissive/glow map is a color image - black is minimum intensity (no glow) - white is maximum intensity (maximum glow) - intensity increases as shade approaches white Emissive multiple Emissive color Emissive/glow map4. Transparency/Alpha Requirementsautomatically enabled for outer layer if using MultiLayer Parallax shader, otherwise:requires that a NiAlphaProperty be added to the NiTriShape (right-click NitriShape – Node>Attach Property>NiAlphaProperty) Appearance Controller(s)NiAlphaProperty => Flags (double-click to view settings)BSLightingShaderProperty => AlphaBSShaderTextureSet => diffuse map (RGB) + transparency/opacity map (Alpha) (slot 1) NiTriShapeData => Vertex Colors (Alpha) Alpha ranges from 0 to 1 - 0 is fully transparent (invisible) - 1 is fully visible (opaque) transparency map is a greyscale image in the alpha image channel of the diffuse - black is fully transparent (invisible) *dependent on flags set in NiAlphaProperty block details - white is fully visible (opaque) *dependent on flags set in NiAlphaProperty block details - transparency increases as shade approaches black *dependent on flags set in NiAlphaProperty block details Alpha Transparency map 4.1 Color Blending and NiAlphaProperty Settings NiAlphaProperty Settings Color Blending Color Blending Equation (Source * SourceBlendFactor) + (Destination * DestinationBlendFactor) "Source" is the color of the model materials in that pixel before blending "Destination" is the color of what is behind the model in that same pixel before blending The two values are modified by the value of the blend factor in that same pixel, then they are added together. Blend Factors aka Blend Modes One - multiply by one (no modification) Zero - multiply by zero Src Color - multiply by "Source" Inv Src Color - multiply by inverse "Source" Dst Color - multiply by "Destination" Inv Dst Color - multiply by inverse "Destination" Src Alpha - multiply by value of the model's alpha channel (diffuse and vertex colors) present at that pixel Inv Src Alpha - multiply by inverse value of the model's alpha channel (diffuse and vertex colors)present at that pixel Dst Alpha - multiply by value of the background model's alpha channel (diffuse and vertex colors)present at that pixel Inv Dst Alpha - multiply by inverse value of the background model's alpha channel (diffuse and vertex colors)present at that pixel Additional Information on color blending 5. Parallax RequirementsENB required to function properlyBSLightingShaderProperty => Skyrim Shader Type ~ 3 or Heightmap must be setBSLightingShaderProperty => Shader Flags 1 ~ SLSF1_Parallax must be enabled Appearance Controller(s)BSShaderTextureSet => height/parallax map (slot 4) height/parallax map is a greyscale image in RGB format - mid grey (RGB, 127, 127, 127) is zero depth and height - black is maximum depth - white is maximum height 6. MultiLayer Parallax RequirementsBSLightingShaderProperty => Skyrim Shader Type ~ 11 or MultiLayer Parallax must be setBSLightingShaderProperty => Shader Flags 2 ~ SLSF2_Multi_Layer_Parallax must be enabled Appearance Controller(s)BSShaderTextureSet => diffuse map (RGB) + transparency/opacity map (Alpha) (slot 1)BSShaderTextureSet => subsurface color map (slot 3)BSShaderTextureSet => inner layer diffuse (RGB) + inner layer depth (Alpha) (slot 7)BSLightingShaderProperty => Parallax Inner Layer ThicknessBSLightingShaderProperty => Parallax Refraction ScaleBSLightingShaderProperty => Parallax Inner Layer Texture ScaleBSLightingShaderProperty => Parallax Envmap Strength environment map and specular/glossiness have no effect on the inner layertransparency/opacity map controls outer layer transparency - viewing angle affects transparency - viewing the surface at a steeper angle increases opacity - black is almost completely transparent (see above) - white is opaquesubsurface color map - used to fake subsurface scattering inner layer diffuse is the diffuse texture of the inner layer (obviously)inner layer depth is a greyscale image - controls the depth of the inner layer from the outer layer - black is minimum depth (inner layer distance from outer layer is 0) - white is maximum depth (inner layer distance from outer layer is max) Parallax Inner Layer Thickness - controls inner layer max depth - depth increases as value increasesParallax Refraction Scale - deforms the inner layer based on outer layer normal map detail, viewing angle, and inner layer depth - refraction intensity increases as value increases - (maybe?) max is 1Parallax Inner Layer Texture Scale - inner layer diffuse tiling - density of tiling increases as values increase (x and y) - x and y control the axis of tilingParallax Envmap Strength - outer layer environment map intensity increases as value increases 7. Refraction RequirementsBSLightingShaderProperty => Shader Flags 1 ~ SLSF1_Refraction Appearance Controller(s)model surface normals BSShaderTextureSet => normal map (RGB) + specular (Alpha) (slot 2) BSLightingShaderProperty => Unknown Float 2 *name may be changed in newer versions of Nifskope (written June 30, 2014) Unknown Float 2 ranges from 0 to 1 - refraction strength increases as value increases - 0 is no refraction (no distortion) - 1 is maximum refraction (most extreme distortion) _. Notes and Miscellaneous Information Normal map not working? Check that the normal map is saved as a DDS image Check that normal map is in correct texture slot (slot 2) Set NiTriShape > NiTriShapeData => Has Normals Value to yes (double-click) Set NiTriShape > NiTriShapeData => BS Num UV Sets Value to 4097 Update tangent space: Toolbar – Spells > Batch > Update All Tangent Spaces DDS image format as it pertains to Skyrim MIP Mapping Always generate MIP maps when saving a DDS image for use in Skyrim. Saving a DDS image without MIP maps has been known to cause lag on asset load (ex. pause when swapping weapons). Google MIP mapping if you'd like the details about what it is and what it does. DXT compression (DXT1, DXT3, DXT5) DXT1, DXT3, and DXT5 all use the same compression method for the RGB image channels. The difference between them comes from how the alpha image channel is compressed. DXT compression can (will) cause artifacts in the texture, especially in areas with gradients. The benefit of compressed textures is the smaller size on disk and in RAM. DXT1 – no alpha DXT3 – explicit alpha DXT5 – interpolated alpha Uncompressed (8.8.8.8 ARGB, 8.8.8 RGB) Uncompressed dds images are quite large (space on disk and in RAM) compared to those saved with DXT compression. The benefit of uncompressed textures is the lack of compression artifacts. This can be important when artifacts are noticeable in-game. **if textures are too large, this can cause lag on asset load, especially with slower computers (ignore gif compression, small specks in RGB images) Layering Incompatibility between some effects can be worked around by layering meshes (NiTriShape). For example, for glow shader and environment map, one NiTriShape will have a BSLightingShaderProperty set up for environment mapping, while another will be set up for glow. The glow NiTriShape will use alpha transparency to hide all areas that do not have the glow effect. The glow map can be used for the transparency map in diffuse alpha image channel. (The original info is from InsumeDave, on NEXUS-FORUMS) Because more and more infos slowly get lost, I put it also here.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.