CarthOnasty 214 Posted April 23, 2018 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. Quote Share this post Link to post Share on other sites
Kexikus 994 Posted April 23, 2018 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. Quote Share this post Link to post Share on other sites
JCarter426 1,214 Posted April 23, 2018 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. 1 Quote Share this post Link to post Share on other sites
CarthOnasty 214 Posted April 24, 2018 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. Quote Share this post Link to post Share on other sites
CarthOnasty 214 Posted April 24, 2018 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. Quote Share this post Link to post Share on other sites
JCarter426 1,214 Posted April 24, 2018 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: Quote Share this post Link to post Share on other sites
DarthParametric 3,777 Posted April 24, 2018 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. Quote Share this post Link to post Share on other sites
JCarter426 1,214 Posted April 24, 2018 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. Quote Share this post Link to post Share on other sites
DarthParametric 3,777 Posted April 24, 2018 Yeah, you specify both together, like so: bumpyshinytexture CM_baremetal bumpmaptexture TextureNameB Quote Share this post Link to post Share on other sites
CarthOnasty 214 Posted April 24, 2018 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. Quote Share this post Link to post Share on other sites
DarthParametric 3,777 Posted April 25, 2018 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 Quote Share this post Link to post Share on other sites