Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

A list of standard shaders included in the game files and what they're used on - when someone gets around to fully testing.

Shader FilenameTypeDescriptive NameIncludesUsage in GameNotes
fs.shdFragment Shader
inc_standard
Looks to the the standard fragment shader when no texture, lighting or PBR maps are applied.
fs_beamvolFragment Shader
None
Not sure, fog related?

Related to beaming (light ray effects on tiles).
fs_cg_btn_colFragment Shader
inc_standard
No comments. cg_btn_col is the button to select "colour" - PLT colours for the player - at chargen. So something to do with that potentially.
fs_invalidFragment ShaderInvalidNone
Provides the RGB colour 1.0, 0.0, 1.0 (alpha 1.0) to the output. This is bright pink.
fs_pltgenFragment ShaderPLT GenerationNone
No comments. PLT file related? Currently PLT files are dealt with on the CPU.
fs_shadowplaneFragment ShaderShadow Planeinc_standard
No comments. Presumably shadow related.
fs_shadowvolFragment ShaderShadow VolumeNone
"This is just for debugging output." presumably for debugging shadow volumes
fscFragment ShaderColourinc_standard
Fragment colour matches the vertex colour, no PBR and no Textures - shadows possibly use this.
fsc_lsFragment ShaderColour, Long Distance FogNone

Fragment shader using color input with long-distance fog. The long-distance fog is useful for shadows: it needs to fade out unless it's on the top portion of the screen.

fsc_smFragment ShaderColour, Sphere MappedNone

fsfbdofFragment ShaderDepth of FieldNone
Depth of Field shader. Depth of field is generally used for screenshots only since it makes everything but the camera focus point blurry.
fsfbgamFragment ShaderGammaNone
Sets the gamma. The gamma option in-game defaults to 2.2
fsfblvlsFragment ShaderDynamic contrast shaderNone
Adds contrast to the current scene with a dynamic midpoint based on area lighting.
fsfbpostprFragment ShaderPost Processorinc_postpr
See include file "inc_postpr". Does this in fact do all the post-processing shader effects and the other files are legacy? or do the other files do it and this is legacy? or a mix?
fsfbshrpFragment ShaderSharpenNone
Sharpens the image based on differences in luma.
fsfbssaoFragment ShaderSSAONone

Screen Space Ambient Radiosity, Highlight and Occlusion for NWN:EE. Mimics the ambient light radiation and occlusion that would realistically affect the appearance of objects in a scene, adding to the sense of depth and detail.

fsfbvibFragment ShaderVibranceNone
Seems to find the min and max colour and saturates it by the difference. Unknown if used in game.
fsgluFragment Shader
inc_standard

fsgrassFragment ShaderGrassinc_standard
Presumably the shader for grass
fslitFragment ShaderLightinginc_standard
No textures, but has fog, lighting and keyholing, so general lighting shader?
fslit_nm




fslit_sm




fslit_sm_nm




fsparticle




fst




fstc




fstc_sm




fst_sm




fswater



Main entrypoint for fancy water applied via TXI. Can also be called directly to make custom fancy waters, but will not work exactly the same.
fs_beamvol




fs_cg_btn_col




fs_invalid




fs_pltgen




fs_shadowplane




fs_shadowvol




inc_common



Includes the most common functions and sets up variables used by all shader subtypes. Also preps communication with textures and negotiates flags that were no explicitly set. Calls inc_config.
inc_config



Sets up some specific shader flags, such as which shader quality to use, and some stuff about lighting. Called by inc_common.
inc_keyhole



Sets up keyholing functions. Called by inc_standard.
inc_lighting



Includes functions for rendering light from point sources and from certain types of self-illumination maps. Calls inc_material. Called by inc_standard.
inc_material



Includes functions for deriving numeric values from textures. Handles things like specular and roughness mapping, as well as texturespace occlusion based on height mapping. Calls inc_lighting. Called by
inc_postpr



Includes the main hub file for all of the post processing functions. If options are set to run those functions, it will include the other postpr includes and run their functions.
inc_postpr_dof



Includes functions to draw depth of field effects.
inc_postpr_dyn_c



Includes function for screenspace dynamic contrast correction.
inc_postpr_gam



Includes functions for screenspace gamma correction.
inc_postpr_shrp



Includes functions for screenspace sharpening.
inc_postpr_vibr



Includes functions for screenspace vibrance enhancement.
inc_standard



Includes functions to run the standard shader. Calls inc_lighting and inc_keyhole. Called by shader entrypoint files like fs_lit and vs_lit.
inc_water



Includes functions to produce fancy water. Includes code for handling things like wind sources and using the built-in noise texture. Called by fs_water.
vsfbdof




vsfbgam




vsfblvls




vsfbpostpr




vsfbshrp




vsfbssao




vsfbvib




vsglu




vsgrass




vslit




vslitc




vslitc_nm




vslitc_sm




vslitc_sm_nm




vslitnotex




vslitnt_sm




vslit_nm




vslit_sk




vslit_sk_nm




vslit_sm




vslit_sm_nm




vsparticle




vsv




vsvc




vsvt




vsvtc




vsvt_sm




vswater



Main entrypoint for fancy water applied via TXI.
vswaterc




vs_beamvol



Includes code for projecting beaming volumes.
vs_invalid




vs_pltgen




vs_shadowplane




vs_shadowvol



Includes code for projecting shadow volumes. Not to be confused with texturespace or screenspace shadow-ing from occlusion.

If you're not sure which stock shader is used for a given model, you can:

...

You can also do this for the "metallicness" value but this tends to be auto-generated. This provides some instant results, eg:

Some examples:

SpecularRoughnessPictureNotes
0.30.05

Image Modified

Generally a bit "wet" but not quite good enough
1.00.00001

Image Modified

A metallic mess (note setting Roughness to 0.0 seems to recalculate it as if it wasn't set)