About This File
tga2tpc
Author: ndix UR
Release: Sep 2020
Version: 4.0.0
Convert TGA images to TPC format for use in KotOR and TSL.
TPC files contain the information from a TXI file (so the TXI file is no longer needed when a TPC file is used), and can be uncompressed or compressed with either DXT1 or DXT5.
Advanced features like animation and cubemap layering are initiated by the presence of specific TXI directives like cube 1 and proceduretype cycle.
For some reason, the game really wants normal maps to be in TPC format. This will let you create and use full 32-bit color normal maps without having to make them into simple height maps by using indexed color.
The tool is free, open source, and cross-platform. Code is available at https://github.com/ndixUR/tga2tpc
The app is written in javascript, built on Electron using three.js, jquery, bootstrap. It includes a ported version of the AMD/GPUOpen Compressonator image compression library.
============================================================
How do I set it up?
Windows: unzip the package, run tga2tpc.exe
Mac: unzip the package, move tga2tpc.app to /Applications, run it
* This is not a signed application, so you have to do whatever is required to run non-MAS applications on your MacOS version.
============================================================
How do I use it?
Drag files in and hit start. There shouldn't be much more to it than that. Using power-of-2 sized textures is always required for optimal quality, TXI information is optional, and the settings are pretty much self-explanatory. The nature of TPC alpha blending is not necessarily intuitive so you may need to seek information to use it properly.
Compressor settings:
- Super Fast - the lowest quality setting, uses the pre-4.0.0 image compressor that includes the 'compression failure' error for long conversion queues
- Fast - Bare bones setting
- Normal - Runs two profiles and selects the best result, adaptive color weighting
- Slow - Deeper refinement of the color palette for each 4x4 pixel block
- Ultra - 3D refinement of the color palette for each 4x4 pixel block
How Automatic encoding mode selects encoding for each texture in the queue:
- 24bpp TGA = DXT1
- 32bpp TGA = DXT5
- 8bpp TGA = 8bpp uncompressed
- isbumpmap1 or compresstexture 0 in TXI data = 24 or 32bpp uncompressed
============================================================
Features
- Create cubemaps
- Create animated textures
- Automatic compression selection based on trends from the vanilla game
- High quality DXT1/5 compression engine using custom ported version of AMD/GPUOpen Compressonator
- Multi-core image compression on systems with 4 or more cores
- Horizontal/Vertical flip, for those pesky wrongly oriented TGA files
- Bicubic downsampling for mipmaps (precomputed lower detail versions of the texture, part of the TPC format)
- Control texture alpha blending setting (part of TPC format), can be loaded from TXI file comments of the form: "# alphablending 0.67"
Known Issues
- Cannot create uncompressed animated textures.
- Super Fast compressor has a memory leak issue, leading to errors for long conversion queues
- Using 4:1 and wider size ratios for individual frames of animated textures seem to crash the game. 2:1 is fine, 1:4 is fine, etc.
- Only for converting from TGA to TPC. For TPC to TGA, use Kotor Tool, xoreos-tools, tpcview, etc.
- Progress bar doesn't update as often as you might want.
- The package size is large. This is the cost of easy cross-platform GUI support. All electron applications are large like this.
- You are likely to have problems trying to read TGAs from folders containing markup entities/encoded characters (like ')
============================================================
Thanks
DarthParametric for inciting the creation of this tool, and doing the testing.
DrMcCoy and all the contributors to xoreos, whose TPC decoding implementation provided the basis for the TPC library herein.
bead-v for moral support.
What's New in Version 4.0.0 See changelog
Released
- Major feature: Entirely new higher quality compression engine (JS port of AMD/GPUOpen Compressonator)
- Major feature: Support odd and ill-advised image dimensions
- Selectable quality levels ranging from "Super Fast" (worst) to "Ultra" (best)
- "Super Fast" quality level uses the compression engine from previous versions; all others use new engine
- More granular progress feedback
- New compression engine bypasses 'compression failure' issue
Recommended Comments
There are no comments to display.