In Neverwinter Nights EE, MTR files take precedence over TXI files. This information is only included for reference.
The theory behind the TXI system is to attach properties to a certain texture. When a texture is loaded in game, the engine looks for an accompanying TXI file - recognized by having the exact same name as the texture but with the TXI extension. If the game engine does not find a TXI file, it simply loads the texture by itself. Inside the TXI file can be one or more attributes assigned to the texture, such as texture warping (for water and lava), environment mapping effects, animation, etc.
Note this is a work in progress page - if Bioware didn't use it it probably won't work well/at all, while if they did we might have some notes below on how it works.
| Table of Contents |
|---|
Material Specific Fields
These fields go in the TXI file for the base texture. That is, do not specify these fields in the bumpmap or environment map TXI files - they will be ignored.
...
bumpmaptexture shinywater
BumpReplacementTexture
This seems to actually load a different texture file for a given texture reference. You could use a dummy file (a 1x1 texture file) have the TXI with this in it and then it loads the final texture
Archived tutorial on the usage that needs recreating on this wiki by OldTimeRadio shows this can be used to mix PLT and DDS on the same model (although not the same node).
This can now be achieved also by shaders.
EnvMapTexture
Specify an environment map for static geometry. Dynamic geometry uses the environment map provided on the model. Default is no environment map.
envmaptexture myenvmapname
Note: A texture specified here overrides the ENVMAP setting in Appearance.2da.
It also enables environment mapping if not enabled by default, for instance Player and Creature Accessories Using ProgFX Type 12 may need it to accurately have PLT shiny vs. translucency be applied - use envmaptexture default for it to follow the area setting (as per appearance.2da does) or chrome1 is a reasonable "default" envmap (used at chargen).
Blending
Specify a blending mode for a material . (ie how transparency is dealt with). This blending mode will override the standard mode. Options are "additive", "punchthrough", "default", and "lighten". Default Default is default.
blending default
...
- Used for transparency (e.g. grass, hair, etc.).
Lighten (hold on a second - this doesn't seem to be valid? - needs further testing - Jasperre)
- Used for textures without an alpha channel, makes any pixel colored black transparent..
Alphamean
Specify a transparency setting for a material. This determines how much to “fade out” the alpha channel of the texture.
...
Specify the procedural type. Only use this if a texture needs to be generated procedurally. Options are "water", "life", "perlin", "arturo", "wave" or "wavecycle". Default is no procedural type.
Note each one does something different:
- life - unused in the base game "Animates a life texture using the rules of the game of life." "This controller will use, but does not require, that the texture have an image. If an image exists, the initial life state will be set on for a texel if the pixel's red value > lifethreshold (75). Otherwise, a texel will be set on with a probability of lifeprobability% (60)."
- perlin - unused in the base game "This controller generates a Perlin noise function water-like texture."
- arturo - this moves the texture around a little - Globe of Invulnerability for instance (fxpa_globe.txi). "Initializes a wave approximation texture suggested by Erik de Neve of Epic. This texture is generated using a function described by Arturo R Montesinos in a 1994 demo."
- wave - unused in the base game - "Initializes the water texture controller by initializing the velocities array to zero, and the positions array to the heightmap. This controller does not require an image to be present in the texture, but will use one if it is provided."
- cycle - cycles through frames, used for things like fire, eg fxpa_flame01
Old ones no longer in use:
- water - this used to animate a texture like water, now replaced by shaders and nonfunctional
| Code Block |
|---|
proceduretype arturo |
DownSampleMax / DownSampleMin
...
Specify the gamma correction for this filter. Default gamma correction is 1.0.
gamma 0.5
BumpMap - DEPRECIATED
Specify whether this texture is a bumpmap. If this flag is set, the texture module will expect to read in a texture which is grayscale. Default is 0.
bumpmap 1
IsDiffuseBumpMap / IsSpecularBumpMap - DEPRECIATED
Specify what kind of bumpmapping this bump map will do: specular, diffuse, or both. These values are ignored if this texture is not a bump map. Default: isdiffusebumpmap 0, isspecularbumpmap 1
isdiffusebumpmap 1
isspecularbumpmap 1
BumpMapScaling - DEPRECIATED
Specify a scaling factor for the bumpmap height. If you want higher peaks and lower valleys in the bump map, set the value to be greater than 1. If you want a smoother bump map, set this value to less than 1. Default is set to 1.
bumpmapscaling 1.5
SpecularColor - DEPRECIATED
Specify a color for specular bumpmap highlights (RGB). This value is modulated with the bump mapping light's color to produce the final highlight color. Default is (1,1,1).
specularcolor 0.5 0.5 0.8
General Texture Controller Specific Fields
...
The following field indicates whether to distort an image using the procedure. . This is used for water, lava and all that good 2002 "animated texture" stuff. If this field is set to 1, it requires that an image be provided for this texture. Also, if this value is set to 1, all channelscale and channeltranslate values will be ignored. Default is set to 0.
Note the maximum texture size for using distort 1 is 256x256 (anything above may crash the game) - this is a hardcoded limited in the game engine itself. An alternative is to use spritesheets and emitters. The frame to be used is selected in the emitter properties, not the TXI however.
distort 1
DistortAngle
If this value is set to 1, the texture distortion occurs in an angular fashion. If 0, distortion occurs in a linear fashion. Both are valid but can produce different distortion effects. Default is set to 0.
...
arturowidth 17
arturoheight 17
Deprecated Fields
These set of fields no longer work in NWNEE but did early on in its lifetime. They are read into the engine but are unused by it.
Instead look at Enhanced Lighting Engine and PBR and MTR files for adding normal/height/specular/roughness maps for texrures.
BumpMap - DEPRECATED
Specify whether this texture is a bumpmap. If this flag is set, the texture module will expect to read in a texture which is grayscale. Default is 0.
bumpmap 1
IsDiffuseBumpMap / IsSpecularBumpMap - DEPRECATED
Specify what kind of bumpmapping this bump map will do: specular, diffuse, or both. These values are ignored if this texture is not a bump map. Default: isdiffusebumpmap 0, isspecularbumpmap 1
isdiffusebumpmap 1
isspecularbumpmap 1
BumpMapScaling - DEPRECATED
Specify a scaling factor for the bumpmap height. If you want higher peaks and lower valleys in the bump map, set the value to be greater than 1. If you want a smoother bump map, set this value to less than 1. Default is set to 1.
bumpmapscaling 1.5
SpecularColor - DEPRECATED
Specify a color for specular bumpmap highlights (RGB). This value is modulated with the bump mapping light's color to produce the final highlight color. Default is (1,1,1).
specularcolor 0.5 0.5 0.8
Field List
From the source code these are all the valid fields. As mentioned at the top of this page many may not work as expected or at all, but are, at least, not going to crash the engine if included.
Texture Related Fields
| Code Block |
|---|
proceduretype
filerange
defaultwidth
defaultheight
downsamplemax
downsamplemin
mipmap
filter
gamma
isbumpmap
clamp
alphamean
isdiffusebumpmap
isspecularbumpmap
bumpmapscaling
specularcolor
numx
numy
cube
bumpintensity
temporary
useglobalalpha
isenvironmentmapped
pltreplacement |
Font Related Fields
| Code Block |
|---|
numchars
fontheight
baselineheight
texturewidth
spacingR
spacingB
caretindent
upperleftcoords
lowerrightcoords
isdoublebyte
fontwidth
numcharspersheet
dbmapping
cols
rows
The 8193.24 preview patch adds these parameters for fonts:
ttfContrast
ttfOutlineOpacity
ttfOutlineBrightness |
Material Related Fields
| Code Block |
|---|
bumpmaptexture
bumpyshinytexture
envmaptexture
bumpreplacementtexture
blending
decal |