[Paid] [Updated 11/11/23] [Development Resumed] [Dev Tool] Texture Trimmer (Formerly DDSRemap)


I developed this tool originally in Python while attempting to optimize texture dictionaries, it was then ported to Rust offering much greater speed in the processing of textures and also added support for YFTs, YDDs, and YDRs that include embedded textures and downsized YTDs for clothing with less quality loss. Now in the latest update (7.0) it is written entirely in C# which has provided a boost in reliability and ease of maintenance, v7.0 also now includes a UI in the base version.

I think most of us server developers know that many of the vehicle developers making high-quality vehicles, or any developer making high quality models of any kind for that matter, use textures that are far too big with far too little optimization. This tool will attempt to optimize those textures with minimal loss of quality. This program used to be free and the originally released free version will always remain so.

Install .NET 7.0: Download .NET 7.0 (Linux, macOS, and Windows)
It’s labeled as .NET Desktop Runtime on that page

Changelogs

v7.1 build 19
  • Fixed an issue with textures that use the A8 format
  • Fixed an issue where removing an item from the excluded textures list did not keep it removed on tool restart
  • Fixed an issue where the “Open Output When Complete” option did nothing
  • Improved processing speed by up to 57% when processing large batches of files
v7.1 build 18
  • Fixed a hang caused by attempting to process YDD files
  • Began work on allowing localization of the tool
v7.1 build 17
  • Fixes a bug that would cause the tool to crash at startup when run on Windows installs using a language that uses , instead of . in non-whole numbers
v7.1 build 16
  • Fixes a major bug that slipped through the cracks in build 15
  • Fixes a minor UI issue
v7.1 build 15
  • UI Overhaul, new look and UI framework
  • More protections added to the UI to prevent users from changing setting while the tool is running
v7.0 build 50
  • Complete rewrite to C#
  • Added UI to base version
    • With this change features from the upgraded UI package have been ported to the main package such as custom input and output locations, and a visual way to set options for processing rather than through command line flags
  • Added an in-memory optimization feature so textures are never extracted to disk
  • Added the ability to add specific texture names to a list that shouldn’t be touched
  • Improved reliability, speed, and space saving moderately
  • Spreadsheet output has been removed for now, but may be added back if enough request come in
  • Renamed from DDSRemap to Texture Trimmer
v6.0 build 44
  • Complete rewrite to Rust
  • Reworked version numbering system
  • Bugfixes from beta builds of v6.0
  • Returning support for YFT, YDD, and YDR files
  • Support for “clothing mode” this will disable almost all scaling of textures for clothing files to maintain quality
  • Faster performance than the 5.X series that relied more heavily on Python which is a slower language, now we use Rust
  • Stability improvements
  • Improved spreadsheet output that will help you review your savings
v5.1
  • Bugfixes
  • An XLXS (spreadsheet) is now generated at the end of the run to provide a detailed savings report.
v5.0
  • Bugfixes
  • -rt flag for only fixing script_rt textures, suggested by @iSentrie
  • A full UI rewrite to improve the user experience of the tool
  • Renamed ytds folder to input
v4.2
  • Hotfix for a bug introduced in v4.1
v4.1
  • Added error handling for unsupported YTD compression types, most notably files that have gone through Escrow appear to have an issue with this tool. If you have an escrowed vehicle please ask the creator to run it through DDSRemap before escrowing it. More info is below.
  • Added error handling for empty YTD files, I don’t know why these exist but I ran into a few so I’ve added this support.
v4.0
  • Now supports nested file structures, so you could in theory just dump your entire server in to have it compress all of the YTDs (this is not recommended). The intended use case for this is when you have vehicles that have multiple folders for each vehicle in the stream folder.
  • The script_rt textures will now be handled correctly automatically and any that are fed into the program that aren’t formatted correctly will be altered to the correct format
v3.0
  • Now supports directly importing and exporting ytds
  • Disabled downscaling liveries by default, can still do so by launching the program from the command line with -il
  • Switched to a paid model as this took a long time to develop, only asking for $9.99 (You can pay more if you wish)
  • You no longer need to download compressonator or Python as it comes bundled.
v1.5
  • Single color textures will now be scaled down to 4x4
  • Fixed an error in the original that made certain textures get left out of optimization due to a logical error
  • Made output cleaner

Vehicle Developers

If you have been asked to run your vehicle release through this tool but don’t own it yourself and don’t want to buy it message me and we can discuss a partnership.


Getting Started After purchasing and downloading the tool from Tebex extract it to your computer. After extraction place your original YTD files into the input folder. Then double click on the executable in the folder or the run.bat file. This will begin processing your YTD files. After it completes your new optimized YTD files can be found in the out folder.

Known Bugs None have been reported, if you find one please post it here or message me directly.

Purchase https://north-western-development.tebex.io/package/5215722

Documentation and Future Changelogs https://docs.northwesterndevelopment.com

v1.5 Free

Requirements:

Additional Setup:

  • Make sure Python and Compressonator are in your path variable, you can use Google to find out how

Usage:

  1. Use OpenIV to export all textures from a specific .ytd into the originals folder as DDS files
  2. Run python alpha.py
  3. When it completes, go back to OpenIV (make sure edit mode is on) and click import and select everything in the out folder (some imports may fail, this is fine)
  4. Click save and profit off the reduced sizes
  5. Run cleanup.bat and start over

Notes:

  • If a texture doesn’t look good enough to you you can replace it with the original in the originals folder
  • I will not provide support in how to use or setup the tool, I will help troubleshoot errors though
  • The last step of the process is highly concurrent (multi-threaded) every image is being processed almost simultaneously and may lag your PC slightly while running

Downloads: DDSRemap.zip (1.8 KB)

19 Likes

Great timesaver. Thank you, sir.

An update has been posted to improve performance and size-reduction if you are interested.

2 Likes

Underrated release

2 Likes

I could use some help to get this working. I have installed everything and set it up correctly. I think my issue lies with pip. I have no idea how to install it.

1 Like

Is there a function to ignore carbon files? If you downscale these the texture turns into yellow and the vehicle looks very ugly

Hi, could you send me an example texture to play with?

1 Like

Currently not. You can take any texture from a add-on vehicle named “carbon” or something like that

Why isnt it possible to only compress the files to start the resource without any problems in F8 Menu?
I´ve tried to compress all the files and totally compress them into the third of the size but the memory usage just went down by 1 mb? So scaling the Textures is the only workable thing to do?

Just purchased this a few hours ago, and it is a huge time saver.

Do you plan on adding wheel support?

1 Like

Just bought this, and trying to figure it out.

I placed a ytd in a ytd folder, then click on the dds_remap_v3 file. A command prompt briefly appears then goes away… then nothing else happens. No new files added to any of the folders.

2 Likes

Could you send me a screen shot of the folder layout that you’re using.

Unfortunately to my knowledge, most wheel textures are textures built into the game.

Does it prevent from script_rt textures being modified?

1 Like

It does not, I haven’t personally experienced any oddities with them being modified though. If you do experience an issue I can fix it pretty quick.

Can you shift + right click in that folder, open powershell, then type ./dds_remap_v3.exe and press enter and post the results here?

Well not quite baked into the game, but yea, kinda baked into the model in the since they’re ydr’s.

Unfortunately, I’m not sure I can do much with YDRs but I’ll look into it.

1 Like

Well a ydr when exported to an xml file, does export out the textures to a subfolder, which is essentially what you’re already doing to the ytd files, resizing them, and repacking the file. And since you’re using codewalker to do so, ydr’s can be done with that as well.

It would be amazing to be able to optimize ydr’s as well :+1: