Neverwinter Nights:TXI

From TBotR Wiki

Introduction

The theory behind the .txi system is to attach properties especially to a certain texture. When a texture is loaded into the game, it looks for an accompanying .txi file (from either the resources or the override directory). This file will be recognized by having the exact same name as the texture, merely having the different extension of txi. For example, when the game loads “ttr01_crystal01.tga”, it will look for a txi called “ttr01_crystal01.txi”, and then load it. If it doesn’t find one, it simply loads the texture by itself. Inside the file can be one (or more) of many attributes you can give to a texture. The example .txi file below shows you all the different things you can do with a txi file. This is where effects like texture warping for water and lava, environment mapping effects, animating textures, etc. are achieved.

Example txi File

#*****************************
# 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.

# Specify a bumpmap
#
# Default is no bumpmap.

bumpmaptexture mybumpmapname

# Specify an environment map for static geometry.
# Dynamic geometry uses the environment map provided on
# the model.
#
# Default is no environment map

envmaptexture myenvmapname

# Specify a blending mode for a material.  This blending
# mode will override the standard mode:
#
# Options are "additive", "punchthrough", "default"
#
# Default is default.

blending default

#****************************
# TEXTURE SPECIFIC FIELDS ***
# These fields are applied to the texture being read in.
# Some are specific to different types of textures (like
# bump maps) and will be ignored if the .txi belongs to
# a texture which is not of the same type.  I will try to
# document these cases.  

# The default width and height of a texture in the
# absence of an image.  These are usually set when you
# are using a procedural texture.
#
# Defaultfor both values is 16

defaultwidth  16
defaultheight 16

# Specify the procedural type.  Only use this if a texture
# needs to be generated procedurally.
#
# Options are "water", "life", "perlin", "arturo" or "wave".
#
# Default is no procedural type.

proceduretype arturo

# Specify how the texture can be downsampled.  
#
# Default is a min of 0, max of 15

downsamplemax 2
downsamplemin 0

# Specify whether or not to mipmap the texture.
#
# Default mipmap is on.

mipmap 0

# Specify whether or not to filter the texture using linear
# filtering or not.  If set to 0, filtering is nearest, 
# otherwise it is linear.
#
# Default filtering is linear.

filter 1

# Specify the gamma correction for this filter.
#
# Default gamma correction is 1.0

gamma 0.5

# Specify whether or not 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

# 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

# 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

# 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 ***
# These fields only apply to those textures 
# which are procedural.  If these values are 
# specified on a non-procedural texture, they will
# be ignored.

# The following two fields specify how a procedure should be 
# applied to create a final texture.  The scaling factor 
# indicates how much the channels of the final procedural image
# should be affected by the procedural result.  The translation
# factor indicates how much to add to the scaled results for
# each channel.
# 
# Default: Channelscale is all 1's, channeltranslate is all 0's.
# This creates a grayscale semitransparent image based on
# the procedure.

channelscale 4
0
0.5
0.5
0

channeltranslate 4
0.5
0.5
0.5
0.5

# The following field indicates whether or not to distort an
# image using the procedure.  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.

distort 1

# 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.
	
distortangle 0

# This value indicates how much the texture should be distorted
# (in texels).  If the value is small, the original image will
# not be distorted significantly.  If it is too large, the
# distortion will generate a very noisy and chaotic result.
#
# Default is set to 5.0

distortionamplitude 3.5

# This value indicates the speed of the procedure.  Most procedures
# can be sped up or slowed down based on this value.
#
# Default is 1.0

speed 2.0

# The following two parameters are used for Arturo procedural textures.  
# The actual arturo function is calculated using the size specified
# in these parameters, and is then upsampled to the size of the texture.
# You may be able to get better results by tinkering with these,
# although the default values work very reasonably.
# 
# Default is 15 for both.

arturowidth  17
arturoheight 17
Personal tools