Updated to9.3.5-6r5 - Added -S/<DIVISOR> function (divide texture size by divisor) (?) Example: TexA.exe -HQ -NORECOMP -S/2 "X:\Textures" ------------------------------------------------------------------------------------------------------------------------------- (!) NOTICE: Add string to TexA.ini file if you want prevent resize with deviding small textures (this string already exist in INI - so just uncomment it) [SPECIFIC FILE NAMES] (?i).*\.*-SIZECHECK<=64 (this option will skip textures if one of side is less or equal 64) (!) DO NOT CONFUSE 'TAB' AND 'SPACE' SYMBOL BETWEEN [REGEX PATTERN] AND [FIRST ARGUMENT] ------------------------------------------------------------------------------------------------------------------------------- - Returned reparse point processing support (was disabled in v.9.3.1r5) - (NTFS reparse point: https://en.wikipedia.org/wiki/NTFS_reparse_point) - Added INI setting [USING NATIVE REPARSE POINT PATH] (enabled by default) - (?) Direct processing files by native\physical path of the file, not the sym\hardlink (for some mod managers compatibility) - Added notice about quotes in path with spaces - Using included versions of D3DCompiler_47, vcruntime140 if installed versions mismatch (prevent compatibility issues)
Updated to9.3.4r5 - AddedINI option [CORES PER THREAD = AUTO] ;Used cpu cores for each thread (see THREAD NUM arguments) (*) AUTO - Max physical cores of CPU to each thread (you can reduce it to decrease CPU usage) [GPGPU] ;Using all available GPU's for support to CPU (comment out to disable) - So, while processing textures\images and using -HQ now your main CPU get a support of all available GPUs - Example: integrated UHD chip or similar + discrete Nvidia\AMD GPUs now help main CPU and speed up processing
- Added bmp3, bmp3i, bmp3iu, bmpi, bmpiu (useful for old games) bmp3 - bitmap version 3 bmp3i - bitmap version 3 with indexed palette bmp3iu - bitmap version 3 with indexed palette without RLE bmp - bitmap version 4+ bmpi --\\--\\-- bmpiu --\\--\\--
Updated to9.3.3r5 - Addeduseful INI option [DDS AUTO COMPRESSION FORMATS = BC1 BC2 BC3] - If you process textures from old games that not support DXT5 you can disable DXT5 - Set: BC1 BC2 BC2 (Alpha: 1-bit, 4-bit, 8-bit) - So BC2 will be used for 4-bit alpha and 8-bit alpha (?) Yep, BC1 BC1 BC1 - Not good idea (you'll lost alpha) (*) Also, you can override any formats for each alpha type (Example: DDS AUTO COMPRESSION FORMATS = BC1, BC3, BC7) - In this case you will get DXT1 for 1-bit alpha textures, DXT2-3 for 4 bit alpha, BC7 compression for 8-bit alpha
Updated to9.2r5 - (!) Addedsupport for 'Reparse Point' file system objects(MO2 'VFS', etc) - Minor fixes and improvements - Fixedget format if file is zero size - Fixedissue with format info (8.9 regression) - Fixed-USELINKS with 'SEPARATE OUTPUT' - Fixed-NOCOPY :)
Updated to8.8r5 - Added check for cross processing paths(alert if separate output dir included to processing directory) - Added-CLEAN; remove empty directories(global args only) (affect to 'PATH' and 'SEPARATE OUTPUT') - Added-NOCOPY (global args only) (!) Required [SEPARATE OUTPUT PATH = ] (Prevent copy non-processed textures to [SEPARATE OUTPUT PATH = ] while used -NORECOMP, -SKIP, -SIZECHECK, [SKIP BY FORMAT = ])
To: Could you add a flag to not copy not processed files or skipped? I'm a MO2 user so keeping an exact copy of un-processed files is quite inefficient. The idea is simple is to make easily "a texture patch".
Updated to8.7r5 - Added -NORECOMP (depend on TexA.ini 'no recompress' section) (!) Notice: this is max priority argument after Texa.ini -SKIP and -SIZECHECK arguments So do not use it if you need some operation except resizing Useful if a large batch of images is being processed with -HQ (mainly DDS\JPEG) and if the texture is already compressed and does not required resizing, then it will be skipped. Uncompressed DDS or not presented at NO RECOMPRESS section will be compressed to optimal formats (See TexA.ini NO RECOMPRESS section)
Updated to8.6.3r5 - Updated some vc++ dll's - Added version without AVX2 for old CPU's (stored in Non_Avx_Version dir) (tested) Notice: (This resolve any troubles for all windows version) Visual C++ Redistributable Runtimes All-in-One (July 2021)
Updated to8.6r5 - Fixed critical error (low level kernel error) - Improved BMP with alpha - Now you can convert any image with transparency to bmp with alpha channel! - Win7\10 tested (seems to be now it may work on wine linux with installed dll's from Fix_for_win_7. Not tested) Be sure to update! Thanks QlH9ovVcxCwEx9S4 for report it
Updated to 8.5R5 - Addedmissed (*) symbols to INI regex examples - Minor fixes(override arguments parser)
Notice: Found issue with some TGA's format (that files was created seems to be early 2000s) If you got same issue just convert it to png TexA -Comp -F_png X:\Textures(This conversion is no quality loss) And then process it as you want.
Updated to 8.4R5 - Fixed bug with ucase file extentions (thx to gjbigs33)
Updated to 8.3R5 - Added -f_dds (for some non standard operations) - Fixed CLI 'drag and drop' file path windows issue with chr-151 (—) - (microsoft cli host bug with replacing [—] to [-] while parsing 'drag and drop') - Minor fixes (some arguments description)
New version uploaded 8.2R5 (EXPERIMENTAL) - Addeduseful function(To use: drag and drop image file on TexA window and press enter button to get info) (Launch TexA without any args)
New version uploaded 8.1R5 (EXPERIMENTAL) - Added (8.1) [SEPARATE OUTPUT PATH = ] (TexA.ini) - Custom output path (create automatically if not exist - example: c:\processed) - Use 'custom output path' for operating with hard\symlinked files without modify source linked files or just use it you don't want modify original files (useful for MO2, etc)
- (!) Improved dxt1-5 compression image quality (if used -HQ) - (!) In some cases size already compressed textures may be reduced to 2x times size without lose any quality - Added Kaiser filter (now kaiser used for mipmaps, lanczos for downscaling resize) - (!) Filters kaiser and lanczos required -HQ - Added -KTX (use KTX container output format) - Added -DX10 (directx10 DDS header format) - Added -SIZECHECK (forcibly skip textures by the matching size of a condition) (TexA.ini) - Added [DO NOT COMPRESS] section. Preserve uncompressed types like R8 LUMA, etc (see TexA.ini) - Added [SKIP BY FORMAT] section. Skip by DDS formats\image type (TexA.ini) - Added -ALLOWPMA Preserving premultiplied DDS alpha output (if input DDS contain premultiplied alpha) - Added -PMA force premultiplied DDS alpha - Added -KEEPFORMAT (preserving DDS input-output\format-compression while used -HQ) - (!) Notice -HQ without -KEEPFORMAT equal to adaptive compression enabled. Without -HQ (fast processing) all processing is format preserving type by default - Added digital filters for enhancing old textures (-DF1-4) - Added support for BC1N, BC3N, BC3_RGBM, LUMI, HDP, HDR, WDP, JXR as custom input\output formats - Added low-level image analyze (unused alpha, etc) - Added protection (if texture processing failed on one of stage it will be automatically restore from temporary backup) - (!) To disable use -NOPROTECT (debug only!) - Fixed processing some file names contains special symbols - Fixed regular mode texture skip (if no other operations avaliable) - (!) -HQ mode require full processing not depend on size (recommend to use -DATABASE to prevent multiple processing) - Improved performance in HQ mode - Bc7 use GPU for compression - Submodules Tex-A-B-C-D use AVX2 for some operations
Updated to 7.8r4 (!) Strongly recommend to update - Added -SKIP (see TexA.ini) - Fixed unacceptable path - Fix for auto operation selection - Added some improvement to file system processing - Added Non-Dependent on 'OS long paths' enabled (-uselinks) - Minor fixes - Fixed conversion from DDS to Non-DDS (corrected enabling alpha channel) - Fixed Non-DDS color space (for some Non-DDS formats converted from DDS) -Added: [-ALLOW3D]: Processing Non-2D dimension textures (except cube) [-ALLOWUNKNOWN]: Force trying to handle unknown types NOTICE:I don't know how it work with symlinked files that use MO2 and some other mod managers (beware to use it in game dir, if you use symlinked textures files) - Instead it - copy your textures to some dir and then process it (!) INFO:Previous beta versions have a bug with mipmaps generation. It's not critical, because it simply regenerate without any affect to texture - If you have a some visual bugs with DDS's - just re-process your textures with TEXA -HQ -FORCEMIP X:\TEXTURES(automatically fix added)
Use -ORFto correct wrong exif tags of tga\png\jpg (converted to dds image is inverted) You can add it to TexA.ini or use it as global arg For TexA.ini file only - use TAB instead SPACE between regex pattern and first argument! [SPECIFIC FILE NAMES] (?i).\.tga<TAB>-ORF -HQ -COMP -FORCEMIP
---UPDATED--- If input image non DDS and used -COMP argument: ---------------------------------------------------------- Overriding DDS output format: -F_<FORMAT> Example: TEXA -HQ -COMP -FORCEMIP -F_DXT1 C:\TEXTURES (compress all non DDS to DDS with format DXT1) (!) Recommend to use -HQ -F_DXT1-5 (high quality compression with Lanczos algorithm for resize and mips) - DXT1-5 with high quality filtering and compression - Slow, but qualitatively (!) bc4, bc5, bc6, bc7 (this formats use directx compressor) - Also you can use -F_BC1-7 Automatic DDS output format: Example: TEXA -HQ -COMP -FORCEMIP C:\TEXTURES (compress all non DDS to DDS with optimal format + high quality compression with Lanczos algorithm for resize and mipmaps)
Notice: - With simple -HQ argument all uncompressed input DDS will be recompressed with optimal formats - Without -HQ output format equal input format (DDS and non DDS formats)
So, my recommendation how to use :) 1) TexA -HQ -DATABASE (-S<SIZE> if you need it) X:\TEXTURES - If input DDS --> output DDS with optimal DXT recompression (DXT format depend on image type, alpha etc) - Resizing, if -S present (DDS\NON DDS) - Rebuild mipmaps, if source DDS contained mips - Preserving Non DDS formats (png, tga...) 2) TexA -HQ -DATABASE -COMP (-S<SIZE> if you need it) X:\TEXTURES - If input is a mixed formats and you want DDS output - Optimal DXT recompression for DDS and converting other formats to DDS (DXT format depend on image type, alpha etc) - Rebuild mipmaps, if source DDS contained mips - Convert non DDS to DDS with mipmaps - Resizing, if -S present (DDS\NON DDS)
3) TEXA.EXE -DATABASE (-FORCEMIP -S<SIZE>, ETC OPTIONAL) X:\TEXTURES - Fast processing with preserving format (mixed input) - Requires one or more optional arguments - Output format\compression fully equals input format - Rebuild mipmaps, if source DDS contained it - Resizing, if -S present (mixed input)
(!) Notice for all variants: if you dont know is input DDS contained correct mipmaps - just use -FORCEMIP also Have fun! :)
i didn't understand this app... tried running the first command
"TEXA.EXE -HQ -DATABASE X:\TEXTURES"
i presume the "X:\TEXTURES" is the fallout 4 data directory? at least that's where the textures are, so there's no auto decompression of the ba2 files?
that's all i got running the command:
[File not found!] Notice: Possible windows CLI 'drag and drop' issue (check source path for special symbols)
Hi! I got into a 'small' problem. If i understand correctly texa.exe and texa.ini should be placed into directory with textures to process them or pointed to the this directory. I tried many variants and none worked for me. Could you please give precise instructions regarding source path and output path designation? Thank you.
Respect o7 a powerful tool for opening old Ba2 and processing\converting etc - really makes the ba2 files a lot smaller and game run\load faster thank you
I too have been getting errors from Archive2 saying it is skipping certain textures because they contain features that aren't supported. These errors only occur after running TexA with the -HQ option.
I too have been getting errors from Archive2 saying it is skipping certain textures because they contain features that aren't supported. These errors only occur after running TexA with the -HQ option.
Archive2 - BSA-packer? Is texture work in game without ba2 packing (from data\textures directory)? TIP: Use -KEEPFORMAT with -HQ (it preserve original DDS DXT compression without changing) (-KEEPFORMAT: Preserving DDS input-output\format-compression while used -HQ (no compression optimization)
Without -KEEPFORMAT and used -HQ TexA change DDS DXT to optimal, depend on image type (low level image aliasing) In some cases it may reduce texture size 2-3 times (without quality lose) Also try-DX10 TEXA -KEEPFORMAT -HQ -DX10 -Sxxxx X:\TEXTURES
Anyway this is not bug of TexA(ucase .dds FIXED) You should report to author of Archive2. Seem to be it is non correct process some DDS formats. (it work only with bc7?) Try BSArch BSA BA2 Batch Extractor and Packer ---> BSArch(look at -fo4dds Fallout 4 DDS archive format)
Also you can try: TEXA -HQ -COMP -F_PNG -Sxxxx X:\TEXTURES (convert all to png with resizing) Then: TEXA -HQ -COMP -FORCEMIP X:\TEXTURES(convert all to DDS with optimal DXT format\compression) It prevent using bc7 (maybe Archive2 issue with bc7)
Also, for example: TEXA -HQ -COMP -FORCEMIP -F_BC7 X:\TEXTURES(convert all dds\NonDDS to bc7) (As i remember F4 use bc7 compression for textures, but it contain it in ba2 as custom RAW data with streaming mipmaps) -DX10 (force dx10+ DDS header, you can use it also) Is texture work in game without ba2 packing (from data\textures directory)?
No, the textures do not work when loaded as loose files. My game crashes. I seem to have narrowed down the issue.
All of the textures that bring up errors in Archive2 have been converted to the format "R8G8B8A8_UNORM" after running with the -HQ setting. Even when I ran -HQ with the -KEEPFORMAT setting these textures were still converted to the R8G8B8A8_UNORM format.
Also, I noticed when running TexA it tells you when it is converting to another format and shows which format but it doesn't show it is converting these textures to the R8G8B8A8_UNORM format. I only discovered this by opening the indivdual textures with the TexA.exe.
but it doesn't show it is converting these textures to the R8G8B8A8_UNORM format
Seem to be this is bug
Can you upload few original textures before use TexA and TexA arguments that was used (texa -hq........) (I need to reproduce this issue with your textures)
Here are a few textures that always get converted to R8G8B8A8_UNORM and generate errors: Download
Also, I did try packing with BSArch but it reports errors too and fails to package the textures.
As far as the TexA arguments used only -HQ specifically seems to cause the problem and when I used your suggestions like adding -DX10, -KEEPFORMAT etc. alongside -HQ didn't resolve the issue.
UPD: The issue was with file.DDS extension (example: low case .dds work normally) You did find a critical bug. I just somehow missed that this could be :)
I'll fix it today and upload fixed version. Thank you!
By the way, why your files witn .DDS not dds? :)
UPD: Fixed version uploaded Please, test it and report (is Archive2 issue resolved?)
Notice:For F4 you can use BC7 DDS compression for any textures with\without alpha (this is a best quality at current time, It makes sense if you are making textures from non DDS sources) TexA -HQ -COMP -FORCEMIP -F_BC7...... But, need to check is Archive2 support it
I changed all the .DDS to lowercase .dds and tested with the old version and that same "Unknown Hard Error" occured. Maybe your update isn't causing the error, maybe something is wrong with these textures?
I did more testing and I believe the problem is the textures with one of the mods I am using. Running the new version on the textures from other mods didn't produce the "Unknown Hard Error". Other than the textures from that one mod the new version has fixed the archive2 packing errors and no longer converts those textures to R8G8B8A8_UNORM when running with the -HQ flag.
I believe this issue has been fixed but if any new issues pop up I will let you know.
Thank you for your help and thank you for the hard work you put in to making this great tool.
I am having a hard time figuring out this tool, as I am having the same issue trying to pack some textures in BA2. I've done it many times before so I know that the issue is with the specific textures, which is what led me to try compressing them with this tool. I'm really just not good at the command line so I'm sure the error is on my part. The textures I'm trying to pack are from "better goodneighbor". Any assistance is much appreciated.
If you compress the original image to DDS bc7, it is difficult to distinguish it from the original. You have to do 'pixel hunting' (although this is also compression with a loss of quality) In theory bc7 provide best quality and performance, but this is not always the best option (it all depends on the textures content)
Hi Kuzja, I am running TexA on the High Resolution Texture Pack DLC (-HQ -FORCEMIP -DATABASE) and I am not seeing any difference in file size. Is this expected?
Hi, If input is uncompressed it will be recompressed Also: -S<size> argument for resizing textures (-S4096, -S2048, -S1024...etc) Are you really understand what are you want to do with textures? If not, please do not use this tool! (You can break textures if you misuse it)
Hi Kuzja, Thanks, my intention was not to resize textures: I was hoping to find uncompressed textures in the High Resolution Texture Pack DLC, and it does not look like there are any. Just wanted to get a second opinion.
Hi! This is an amazing tool you've made. Can you elaborate on what the Color Optimization and Normal Map Optimization options actually do?
As far as I can tell from the description, the normal map (-PN) operations are for use in converting OpenGL formatted normals to DirectX and vice versa? Does this actually have any impact on game performance if the normals are not in the correct format?
I'm a bit less clear on what the color optimization (-CT) option actually does. It is used for optimizing non-DDS textures only or is this also used on DDS textures? If so what are the effects of specifying this option?
How long does this take to work, on average? it's been fifteen minutes and all that has been processed is Facepaint4 and TropicalFish08_n which seems a bit... slow.
has been processed is Facepaint4 and TropicalFish08_n which seems a bit... slow.
I have 10k textures per ten minutes. Seems to be something wrong on your side...
- Win10 x64? - How much RAM on your pc? - Your cpu cores count? - How you launch TexA (command line arguments?) - Also it use GPU for some texture operations TexA 6 -HQ -s2048 .\textures (6 - used cores\threads) TexA 6 try to reduce it: 6 --> 2 or remove it (TexA -HQ -s2048 .\textures)
Notice: if you work with 4k+ textures TexA required ~5gb free RAM (if you set 6 cores)
I was following the directions in the Example Presets. I'm getting much more specific now. I'll private message you my cores and all. I will say I use a multiple HD system.
D:\ drive of my Windows 10 AMD Ryzen 8-core 3.40 GHz 64-bit system.
Very useful :)
Ok, Lets try to resolve it: '64-bit system' - You mean win10x64? (maybe you use linux + wine or else?) 'multiple HD system' - what you mean? How much RAM on your pc? Are you have enabled swap file?
Try make a D:\TEST folder and put to it some images (dds\png), then run: MakeTexA_Test.bat With TexA.exe -HQ -COMP -FORCEMIP D:\TEST
My C: drive is a 222 GB (250,000,000,000 bytes, you know the drill) "Bubble" memory OS drive for my computer. My Steam and associated games, NMM, and assorted gaming tools are in the D: Data drive with its 1,000,000,000,000 (and change) bytes while things like a couple decades of vids, tunes, and pics are all safely in my expansion drive. If you've ever lost crap with a computer being the wrong kind of terminal you know the need.
32 GB RAM, I maxed out what could be done buying. I mean, it's gonna happen anyway, right? (67.7 GB left in D: to play with)
ADDENDUM: Every time I blink it's getting more bugs worked out, and I thank you for it. I'll test with the first release version, I think.
50 comments
- Added -S/<DIVISOR> function (divide texture size by divisor)
(?) Example: TexA.exe -HQ -NORECOMP -S/2 "X:\Textures"
-------------------------------------------------------------------------------------------------------------------------------
(!) NOTICE:
Add string to TexA.ini file if you want prevent resize with deviding small textures (this string already exist in INI - so just uncomment it)
[SPECIFIC FILE NAMES]
(?i).*\.*-SIZECHECK<=64 (this option will skip textures if one of side is less or equal 64)
(!) DO NOT CONFUSE 'TAB' AND 'SPACE' SYMBOL BETWEEN [REGEX PATTERN] AND [FIRST ARGUMENT]
-------------------------------------------------------------------------------------------------------------------------------
- Returned reparse point processing support (was disabled in v.9.3.1r5)
- (NTFS reparse point: https://en.wikipedia.org/wiki/NTFS_reparse_point)
- Added INI setting [USING NATIVE REPARSE POINT PATH] (enabled by default)
- (?) Direct processing files by native\physical path of the file, not the sym\hardlink (for some mod managers compatibility)
- Added notice about quotes in path with spaces
- Using included versions of D3DCompiler_47, vcruntime140 if installed versions mismatch (prevent compatibility issues)
Updated to 9.3.4r5
- Added INI option
[CORES PER THREAD = AUTO] ;Used cpu cores for each thread (see THREAD NUM arguments)
(*) AUTO - Max physical cores of CPU to each thread (you can reduce it to decrease CPU usage)
[GPGPU] ;Using all available GPU's for support to CPU (comment out to disable)
- So, while processing textures\images and using -HQ now your main CPU get a support of all available GPUs
- Example: integrated UHD chip or similar + discrete Nvidia\AMD GPUs now help main CPU and speed up processing
- Added bmp3, bmp3i, bmp3iu, bmpi, bmpiu (useful for old games)
bmp3 - bitmap version 3
bmp3i - bitmap version 3 with indexed palette
bmp3iu - bitmap version 3 with indexed palette without RLE
bmp - bitmap version 4+
bmpi --\\--\\--
bmpiu --\\--\\--
Updated to 9.3.3r5
- Added useful INI option
[DDS AUTO COMPRESSION FORMATS = BC1 BC2 BC3]
- If you process textures from old games that not support DXT5 you can disable DXT5
- Set: BC1 BC2 BC2 (Alpha: 1-bit, 4-bit, 8-bit)
- So BC2 will be used for 4-bit alpha and 8-bit alpha
(?) Yep, BC1 BC1 BC1 - Not good idea (you'll lost alpha)
(*) Also, you can override any formats for each alpha type (Example: DDS AUTO COMPRESSION FORMATS = BC1, BC3, BC7)
- In this case you will get DXT1 for 1-bit alpha textures, DXT2-3 for 4 bit alpha, BC7 compression for 8-bit alpha
Updated to 9.2r5
- (!) Added support for 'Reparse Point' file system objects (MO2 'VFS', etc)
- Minor fixes and improvements
- Fixed get format if file is zero size
- Fixed issue with format info (8.9 regression)
- Fixed -USELINKS with 'SEPARATE OUTPUT'
- Fixed -NOCOPY :)
Updated to 8.8r5
- Added check for cross processing paths (alert if separate output dir included to processing directory)
- Added -CLEAN; remove empty directories (global args only)
(affect to 'PATH' and 'SEPARATE OUTPUT')
- Added -NOCOPY (global args only)
(!) Required [SEPARATE OUTPUT PATH = ]
(Prevent copy non-processed textures to [SEPARATE OUTPUT PATH = ] while used -NORECOMP, -SKIP, -SIZECHECK, [SKIP BY FORMAT = ])
Updated to 8.7r5
- Added -NORECOMP (depend on TexA.ini 'no recompress' section)
(!) Notice: this is max priority argument after Texa.ini -SKIP and -SIZECHECK arguments
So do not use it if you need some operation except resizing
Useful if a large batch of images is being processed with -HQ (mainly DDS\JPEG) and if the texture is already compressed and does not required resizing, then it will be skipped.
Uncompressed DDS or not presented at NO RECOMPRESS section will be compressed to optimal formats
(See TexA.ini NO RECOMPRESS section)
Updated to 8.6.3r5
- Updated some vc++ dll's
- Added version without AVX2 for old CPU's (stored in Non_Avx_Version dir)
(tested)
Notice:
(This resolve any troubles for all windows version)
Visual C++ Redistributable Runtimes All-in-One (July 2021)
Updated to 8.6r5
- Fixed critical error (low level kernel error)
- Improved BMP with alpha
- Now you can convert any image with transparency to bmp with alpha channel!
- Win7\10 tested (seems to be now it may work on wine linux with installed dll's from Fix_for_win_7. Not tested)
Be sure to update!
Thanks QlH9ovVcxCwEx9S4 for report it
Updated to 8.5R5
- Added missed (*) symbols to INI regex examples
- Minor fixes (override arguments parser)
Notice:
Found issue with some TGA's format (that files was created seems to be early 2000s)
If you got same issue just convert it to png
TexA -Comp -F_png X:\Textures (This conversion is no quality loss)
And then process it as you want.
Updated to 8.4R5
- Fixed bug with ucase file extentions (thx to gjbigs33)
Updated to 8.3R5
- Added -f_dds (for some non standard operations)
- Fixed CLI 'drag and drop' file path windows issue with chr-151 (—)
- (microsoft cli host bug with replacing [—] to [-] while parsing 'drag and drop')
- Minor fixes (some arguments description)
New version uploaded 8.2R5 (EXPERIMENTAL)
- Added useful function (To use: drag and drop image file on TexA window and press enter button to get info)
(Launch TexA without any args)
New version uploaded 8.1R5 (EXPERIMENTAL)
- Added (8.1) [SEPARATE OUTPUT PATH = ] (TexA.ini)
- Custom output path (create automatically if not exist - example: c:\processed)
- Use 'custom output path' for operating with hard\symlinked files without modify source linked files or just use it you don't want modify original files (useful for MO2, etc)
- (!) Improved dxt1-5 compression image quality (if used -HQ)
- (!) In some cases size already compressed textures may be reduced to 2x times size without lose any quality
- Added Kaiser filter (now kaiser used for mipmaps, lanczos for downscaling resize)
- (!) Filters kaiser and lanczos required -HQ
- Added -KTX (use KTX container output format)
- Added -DX10 (directx10 DDS header format)
- Added -SIZECHECK (forcibly skip textures by the matching size of a condition) (TexA.ini)
- Added [DO NOT COMPRESS] section. Preserve uncompressed types like R8 LUMA, etc (see TexA.ini)
- Added [SKIP BY FORMAT] section. Skip by DDS formats\image type (TexA.ini)
- Added -ALLOWPMA Preserving premultiplied DDS alpha output (if input DDS contain premultiplied alpha)
- Added -PMA force premultiplied DDS alpha
- Added -KEEPFORMAT (preserving DDS input-output\format-compression while used -HQ)
- (!) Notice -HQ without -KEEPFORMAT equal to adaptive compression enabled. Without -HQ (fast processing) all processing is format preserving type by default
- Added digital filters for enhancing old textures (-DF1-4)
- Added support for BC1N, BC3N, BC3_RGBM, LUMI, HDP, HDR, WDP, JXR as custom input\output formats
- Added low-level image analyze (unused alpha, etc)
- Added protection (if texture processing failed on one of stage it will be automatically restore from temporary backup)
- (!) To disable use -NOPROTECT (debug only!)
- Fixed processing some file names contains special symbols
- Fixed regular mode texture skip (if no other operations avaliable)
- (!) -HQ mode require full processing not depend on size (recommend to use -DATABASE to prevent multiple processing)
- Improved performance in HQ mode
- Bc7 use GPU for compression
- Submodules Tex-A-B-C-D use AVX2 for some operations
I need feedback
Is latest TexA version work normally?
Just reply (Win10\Win7\Win8) +
(Post not locked)
(!) Strongly recommend to update
- Added -SKIP (see TexA.ini)
- Fixed unacceptable path
- Fix for auto operation selection
- Added some improvement to file system processing
- Added Non-Dependent on 'OS long paths' enabled (-uselinks)
- Minor fixes
- Fixed conversion from DDS to Non-DDS (corrected enabling alpha channel)
- Fixed Non-DDS color space (for some Non-DDS formats converted from DDS)
-Added:
[-ALLOW3D]: Processing Non-2D dimension textures (except cube)
[-ALLOWUNKNOWN]: Force trying to handle unknown types
NOTICE: I don't know how it work with symlinked files that use MO2 and some other mod managers (beware to use it in game dir, if you use symlinked textures files)
- Instead it - copy your textures to some dir and then process it
(!) INFO: Previous beta versions have a bug with mipmaps generation. It's not critical, because it simply regenerate without any affect to texture
- If you have a some visual bugs with DDS's - just re-process your textures with TEXA -HQ -FORCEMIP X:\TEXTURES (automatically fix added)
Use -ORF to correct wrong exif tags of tga\png\jpg (converted to dds image is inverted)
You can add it to TexA.ini or use it as global arg
For TexA.ini file only - use TAB instead SPACE between regex pattern and first argument!
[SPECIFIC FILE NAMES]
(?i).\.tga<TAB>-ORF -HQ -COMP -FORCEMIP
(!) Do not confuse 'TAB' and 'SPACE'
If input image non DDS and used -COMP argument:
----------------------------------------------------------
Overriding DDS output format:
-F_<FORMAT>
Example: TEXA -HQ -COMP -FORCEMIP -F_DXT1 C:\TEXTURES (compress all non DDS to DDS with format DXT1)
(!) Recommend to use -HQ -F_DXT1-5 (high quality compression with Lanczos algorithm for resize and mips)
- DXT1-5 with high quality filtering and compression
- Slow, but qualitatively
(!) bc4, bc5, bc6, bc7 (this formats use directx compressor)
- Also you can use -F_BC1-7
Automatic DDS output format:
Example: TEXA -HQ -COMP -FORCEMIP C:\TEXTURES (compress all non DDS to DDS with optimal format + high quality compression with Lanczos algorithm for resize and mipmaps)
Notice:
- With simple -HQ argument all uncompressed input DDS will be recompressed with optimal formats
- Without -HQ output format equal input format (DDS and non DDS formats)
1) TexA -HQ -DATABASE (-S<SIZE> if you need it) X:\TEXTURES
- If input DDS --> output DDS with optimal DXT recompression (DXT format depend on image type, alpha etc)
- Resizing, if -S present (DDS\NON DDS)
- Rebuild mipmaps, if source DDS contained mips
- Preserving Non DDS formats (png, tga...)
2) TexA -HQ -DATABASE -COMP (-S<SIZE> if you need it) X:\TEXTURES
- If input is a mixed formats and you want DDS output
- Optimal DXT recompression for DDS and converting other formats to DDS (DXT format depend on image type, alpha etc)
- Rebuild mipmaps, if source DDS contained mips
- Convert non DDS to DDS with mipmaps
- Resizing, if -S present (DDS\NON DDS)
3) TEXA.EXE -DATABASE (-FORCEMIP -S<SIZE>, ETC OPTIONAL) X:\TEXTURES
- Fast processing with preserving format (mixed input)
- Requires one or more optional arguments
- Output format\compression fully equals input format
- Rebuild mipmaps, if source DDS contained it
- Resizing, if -S present (mixed input)
(!) Notice for all variants: if you dont know is input DDS contained correct mipmaps - just use -FORCEMIP also
Have fun! :)
"TEXA.EXE -HQ -DATABASE X:\TEXTURES"
i presume the "X:\TEXTURES" is the fallout 4 data directory? at least that's where the textures are, so there's no auto decompression of the ba2 files?
that's all i got running the command:
[File not found!] Notice: Possible windows CLI 'drag and drop' issue (check source path for special symbols)
I got into a 'small' problem. If i understand correctly texa.exe and texa.ini should be placed into directory with textures to process them or pointed to the this directory. I tried many variants and none worked for me. Could you please give precise instructions regarding source path and output path designation? Thank you.
a powerful tool for opening old Ba2 and processing\converting etc - really makes the ba2 files a lot smaller and game run\load faster
thank you
Archive2 - BSA-packer?
Is texture work in game without ba2 packing (from data\textures directory)?
TIP:
Use -KEEPFORMAT with -HQ (it preserve original DDS DXT compression without changing)
(-KEEPFORMAT: Preserving DDS input-output\format-compression while used -HQ (no compression optimization)
Without -KEEPFORMAT and used -HQ TexA change DDS DXT to optimal, depend on image type (low level image aliasing)
In some cases it may reduce texture size 2-3 times (without quality lose)
Also try -DX10
TEXA -KEEPFORMAT -HQ -DX10 -Sxxxx X:\TEXTURES
Anyway this is not bug of TexA(ucase .dds FIXED)You should report to author of Archive2. Seem to be it is non correct process some DDS formats. (it work only with bc7?)Try BSArch BSA BA2 Batch Extractor and Packer
---> BSArch (look at -fo4dds Fallout 4 DDS archive format)
(Report is -KEEPFORMAT helped you)
TEXA -HQ -COMP -F_PNG -Sxxxx X:\TEXTURES (convert all to png with resizing)
Then:
TEXA -HQ -COMP -FORCEMIP X:\TEXTURES (convert all to DDS with optimal DXT format\compression)
It prevent using bc7 (maybe Archive2 issue with bc7)
Also, for example:
TEXA -HQ -COMP -FORCEMIP -F_BC7 X:\TEXTURES (convert all dds\NonDDS to bc7)
(As i remember F4 use bc7 compression for textures, but it contain it in ba2 as custom RAW data with streaming mipmaps)
-DX10 (force dx10+ DDS header, you can use it also)
Is texture work in game without ba2 packing (from data\textures directory)?
All of the textures that bring up errors in Archive2 have been converted to the format "R8G8B8A8_UNORM" after running with the -HQ setting. Even when I ran -HQ with the -KEEPFORMAT setting these textures were still converted to the R8G8B8A8_UNORM format.
Also, I noticed when running TexA it tells you when it is converting to another format and shows which format but it doesn't show it is converting these textures to the R8G8B8A8_UNORM format. I only discovered this by opening the indivdual textures with the TexA.exe.
Can you upload few original textures before use TexA and TexA arguments that was used (texa -hq........)
(I need to reproduce this issue with your textures)
Also, I did try packing with BSArch but it reports errors too and fails to package the textures.
As far as the TexA arguments used only -HQ specifically seems to cause the problem and when I used your suggestions like adding -DX10, -KEEPFORMAT etc. alongside -HQ didn't resolve the issue.
UPD:
The issue was with file.DDS extension (example: low case .dds work normally)
You did find a critical bug.
I just somehow missed that this could be :)
I'll fix it today and upload fixed version.
Thank you!
By the way, why your files witn .DDS not dds? :)
UPD:
Fixed version uploaded
Please, test it and report (is Archive2 issue resolved?)
Notice: For F4 you can use BC7 DDS compression for any textures with\without alpha (this is a best quality at current time, It makes sense if you are making textures from non DDS sources)
TexA -HQ -COMP -FORCEMIP -F_BC7......
But, need to check is Archive2 support it
I am glad if I have been able to help and I will test out the new version now.
Used:
TexA -HQ -S4096 X:\textures
?
Plz, give me a link for your archive2 versionI'll try to check it
UPD:
I did try this version:
Archive2 - BSA-packer
I did process your uploaded textures with:
TexA -HQ -S4096 X:\textures
Then, i did make ba2 with settings by default in Archive 2
No issues and error (after file save ba2)
Also Archive2 work fine with BC7:
I did test it:
TEXA -HQ -COMP -F_BC7 -S4096 X:\TEXTURES
I believe this issue has been fixed but if any new issues pop up I will let you know.
Thank you for your help and thank you for the hard work you put in to making this great tool.
In theory bc7 provide best quality and performance, but this is not always the best option (it all depends on the textures content)
I am running TexA on the High Resolution Texture Pack DLC (-HQ -FORCEMIP -DATABASE) and I am not seeing any difference in file size. Is this expected?
If input is uncompressed it will be recompressed
Also:
-S<size> argument for resizing textures
(-S4096, -S2048, -S1024...etc)
Are you really understand what are you want to do with textures?
If not, please do not use this tool!
(You can break textures if you misuse it)
Thanks, my intention was not to resize textures: I was hoping to find uncompressed textures in the High Resolution Texture Pack DLC, and it does not look like there are any. Just wanted to get a second opinion.
As far as I can tell from the description, the normal map (-PN) operations are for use in converting OpenGL formatted normals to DirectX and vice versa? Does this actually have any impact on game performance if the normals are not in the correct format?
I'm a bit less clear on what the color optimization (-CT) option actually does. It is used for optimizing non-DDS textures only or is this also used on DDS textures? If so what are the effects of specifying this option?
To: '-pn'
-PN0 convert from green normals with inverteing
-PN1 convert from green normals tro blue normals
-PN2 OpenGl<--->DirectX
To: '-ct' (this is more debug option, no need to use it, used while converting Non-DDS to DDS)
Look at TexA-DDS (post thread)
I have 10k textures per ten minutes.
Seems to be something wrong on your side...
- Win10 x64?
- How much RAM on your pc?
- Your cpu cores count?
- How you launch TexA (command line arguments?)
- Also it use GPU for some texture operations
TexA 6 -HQ -s2048 .\textures (6 - used cores\threads)
TexA 6 try to reduce it: 6 --> 2 or remove it (TexA -HQ -s2048 .\textures)
Notice:
if you work with 4k+ textures TexA required ~5gb free RAM (if you set 6 cores)
Ok,
Lets try to resolve it:
'64-bit system' - You mean win10x64? (maybe you use linux + wine or else?)
'multiple HD system' - what you mean?
How much RAM on your pc?
Are you have enabled swap file?
Try make a D:\TEST folder and put to it some images (dds\png), then run:
Make
TexA_Test.bat
WithTexA.exe -HQ -COMP -FORCEMIP D:\TEST
32 GB RAM, I maxed out what could be done buying. I mean, it's gonna happen anyway, right? (67.7 GB left in D: to play with)
ADDENDUM: Every time I blink it's getting more bugs worked out, and I thank you for it. I'll test with the first release version, I think.
TexA.exe <TAB> -HQ <TAB> -COMP <TAB> -FORCEMIP <TAB> D:\TEST
and run that .bat file?
TexA.exe <TAB> -HQ <TAB> -COMP <TAB> -FORCEMIP <TAB> D:\TESTTexA.exe -HQ -COMP -FORCEMIP D:\TEST
No tabs :)
Plan on editing the .bat to "TexA.exe 8 -HQ -COMP -FORCEMIP -s4096 .\textures" if that's a valid format.