CarthOnasty

.txi Parameters and What They Do

Recommended Posts

I was looking for a centralized list of all of the parameters for .txis and what they did, but I wasn't able to locate anything. Here's what I've discovered so far, looking through various KOTOR files. By all means let me know if anything is inaccurate or if you can provide any more information. Thanks!
 

blending

  • Various blending options using the alpha channels of the .tga. (Think Photoshop blending options.)
  • blending additive
    • Used for translucency.
    • Equivalent to Add or Linear Dodge, the color is added to whatever is underneath.
  • blending punchthrough
    • Used for transparency.
    • e.g. grass, hair, etc.

 

bumpmapscaling

  • Increases the intensity of the bump map, i.e. increases the height of the bump map.
  • bumpmapscaling 1

 

bumpmaptexture

  • Defines the bump map for the texture.
  • bumpmaptexture C_Hutt01b

 

bumpyshinytexture

  • Used with a bump map on a texture that uses an environment map.
  • e.g. If you're using cm_baremetal on a metal texture, you'll want to use bumpshinytexture instead of envmap.
  • bumpyshinytexture C_Hutt01b

 

cube

  • Defines that the associated texture is a cubemap.
  • cube 1

 

decal

  • Renders the texture on top of anything it's flush with. Black areas of texture will be translucent.
  • decal 1

 

defaultheight

  • The height of 1 frame for an animation.
  • defaultheight 128

 

defaultwidth

  • The width of 1 frame for an animation.
  • defaultwidth 128

 

envmaptexture

  • Defines the environment map for the texture.
  • envmaptexture CM_Bright

 

fps

  • The speed at which frames will cycle when animated.
  • fps 24

 

isbumpmap

  • Defines the texture is a bump map.
  • isbumpmap 1

 

isdiffusebumpmap

  • ???
  • isdiffusebumpmap 1

 

isspecularbumpmap

  • ???
  • isspecularbumpmap 1

 

mipmap

  • Multiple copies of the same texture in different sizes to be rendered based on distance from PC. With this command, you can force the game to always show the highest mip.
  • mipmap 1

 

numx

  • The number of horizontal frames for an animation.
  • numx 4

 

numy

  • The number of vertical frames for an animation.
  • numy 4

 

proceduretype

  • Followed by cycle, initiates the cycling of frames for animations.
  • proceduretype cycle

 

Here's a more specific example for how an animation would work:

  • proceduretype cycle
  • defaultwidth 256
  • defaultheight 256
  • numx 3
  • numy 2
  • fps 12

 

Shout out to Kexikus, JCarter426, and DarthParametric for all the additional info.

Share this post


Link to post
Share on other sites

AFAIK isbumpmap just tells the game that this is a bump map just like cube tells it that this is a cubemap.

 

I also suggest that you post this in the tutorial section or that it's moved there.

 

Thanks for collecting this information.

Share this post


Link to post
Share on other sites

blending

  • Various blending options using the alpha channels of the .tga. (Think Photoshop blending options.)
  • blending additive, blending punchthrough (not sure of the difference though)

 

Additive is equivalent to "add" or "linear dodge" mode - the color is added to whatever is underneath it.

 

Punchthrough is equivalent to "normal" mode, I think.

 

In the game, punchthrough is generally used when only transparency is needed, when there really is supposed to be nothing there (grass, leaves, grates, hair, etc) while additive is used for any translucent texture (such as windows) because it brightens the background and makes it easier to see.

 

You might be wondering why punchthrough is even there when we have alpha channels that can handle transparency. That's because the game is crazy and won't render anything behind another object even if its texture is transparent from the alpha channel, unless a blending mode is applied.

 

bumpmapscaling

  • ??? (I can only assume it scales the bump map, e.g. 1=100%, 2=200%, etc.)
  • bumpmapscaling 1

 

This increases the intensity of the bump map. If you have part of the bump map that is higher than the base texture, bumpmapscaling 2 will double the height, bumpmapscaling 3 will triple it, and so on. At least, that's my guess. I noticed a subtle but possibly not imaginary difference when I tried it.

 

bumpyshinytexture

  • ??? (Defines which areas of the bump map should also be shiny?)
  • bumpyshinytexture

 

This is for use with a bump map on a texture that uses an environment map. If you're using cm_baremetal on a metal texture, for example, you'll want to use bumpshinytexture instead of bumpmaptexture.

 

decal

  • Black areas of texture will be translucent.
  • decal 1

 

I believe there's more to it than that. This is an assumption based on how I've seen it work in other games, but I believe decal will make the texture render on top of anything that it's flush with. A burn decal on a wall, for example, will always render on top of the wall texture, rather than the Z-fighting nonsense you'd usually get.

 

isbumpmap

  • ???
  • isbumpmap 1

 

This just tells the game the texture is a bump map.

 

mipmap
  • ???
  • mipmap 1

 

This is an optimization thing. A mipmap has multiple copies of the texture in different sizes and the game renders the smaller ones from far away, only rendering the real size when you're close up. I'm not entirely sure how it works with KOTOR since KOTOR also has different texture packs, and I've only seen the mipmap parameter on certain textures. But it's not really a concern to us, thanks to modern hardware.

  • Like 1

Share this post


Link to post
Share on other sites

AFAIK isbumpmap just tells the game that this is a bump map just like cube tells it that this is a cubemap.

 

I also suggest that you post this in the tutorial section or that it's moved there.

 

Thanks for collecting this information.

 

You are correct! And that's a great idea, I'll recommend to a mod or repost once I get everything fleshed out. Thanks!

 

 

 

I am your padawan, instill within me your knowledge. Thanks so much for all the info!! I tried to paraphrase to keep everything a short read, so I hope you don't mind. Thanks again.

Share this post


Link to post
Share on other sites

Additive is equivalent to "add" or "linear dodge" mode - the color is added to whatever is underneath it.

 

Punchthrough is equivalent to "normal" mode, I think.

 

In the game, punchthrough is generally used when only transparency is needed, when there really is supposed to be nothing there (grass, leaves, grates, hair, etc) while additive is used for any translucent texture (such as windows) because it brightens the background and makes it easier to see.

 

You might be wondering why punchthrough is even there when we have alpha channels that can handle transparency. That's because the game is crazy and won't render anything behind another object even if its texture is transparent from the alpha channel, unless a blending mode is applied.

 

When using blending additive, can I have only certain parts of the texture be translucent? Or must the whole thing be? Ideally I'd have a texture that's mostly opaque, with a small area being translucent.

Share this post


Link to post
Share on other sites

I am your padawan, instill within me your knowledge. Thanks so much for all the info!! I tried to paraphrase to keep everything a short read, so I hope you don't mind. Thanks again.

 

No problem. It's good to have a resource like this. :)

 

 

When using blending additive, can I have only certain parts of the texture be translucent? Or must the whole thing be? Ideally I'd have a texture that's mostly opaque, with a small area being translucent.

 

Use an alpha channel as normal. Black will be translucent, white will be opaque. However, all the dark parts of the texture will still be translucent due to the blending mode, since it is additive and black is adding 0. There's no way to get around that unless you use punchthrough or two different textures.

 

By the way, here's what happens when the game is missing the TXI:

 

 

bD08t8e.png

 

Share this post


Link to post
Share on other sites

This is an optimization thing. A mipmap has multiple copies of the texture in different sizes and the game renders the smaller ones from far away, only rendering the real size when you're close up. I'm not entirely sure how it works with KOTOR since KOTOR also has different texture packs, and I've only seen the mipmap parameter on certain textures. But it's not really a concern to us, thanks to modern hardware.

I believe the mipmap semantic forces the game to always render the stated mip level. So you can force the game to always show the highest mip, even when it is far away, for example.

 

A couple of other options for bump/normal maps:

isdiffusebumpmap 1

isspecularbumpmap 1
Which notionally should allow for something like the opposite of bumpyshiytexture, but I haven't experimented much with it.

 

A more specific example for proceduretype cycle:

proceduretype cycle
defaultwidth 256
defaultheight 256
numx 3
numy 2
fps 12
You have to specify the dimensions of the image, how many frames that image comprises, and at what framerate you want them to play.

Share this post


Link to post
Share on other sites

I believe the mipmap semantic forces the game to always render the stated mip level. So you can force the game to always show the highest mip, even when it is far away, for example.

 

Ah, that makes sense.

 

Also, I made a typo before. bumpshinytexture replaces envmap, not bumpmaptexture.

Share this post


Link to post
Share on other sites

I believe the mipmap semantic forces the game to always render the stated mip level. So you can force the game to always show the highest mip, even when it is far away, for example.

 

A couple of other options for bump/normal maps:

isdiffusebumpmap 1

isspecularbumpmap 1
Which notionally should allow for something like the opposite of bumpyshiytexture, but I haven't experimented much with it.

 

A more specific example for proceduretype cycle:

proceduretype cycle
defaultwidth 256
defaultheight 256
numx 3
numy 2
fps 12
You have to specify the dimensions of the image, how many frames that image comprises, and at what framerate you want them to play.

 

 

 

Ah, that makes sense.

 

Also, I made a typo before. bumpshinytexture replaces envmap, not bumpmaptexture.

 

All noted, thank you.

Share this post


Link to post
Share on other sites

I would suggest you use CODE instead of bulleted lists. Preview the post and then change AUTO to XML so you don't get the technicaolour nightmare.

 

Code = Auto:

Line 1
Line 2
Line 3
Code = XML:

Line 1
Line 2
Line 3

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.