Skip to content

Example: RimWorld

José Ángel Soler Ortiz edited this page Sep 3, 2023 · 32 revisions

How is texture encoding useful?

Encoding textures will make your game load faster and reduce VRAM usage. When fully zoomed in, textures will look better as DDS compression is better than the algorithm used by RimWorld. When zooming out, they will look more defined and less blurry. These textures are stored as different files so they will require additional hard drive space.

By default Rimworld loads your PNG files, generate mipmaps for them, compress them into Unity's internal texture format and copy them to the VRAM. DDS files are compressed in advance and have mipmaps precalculated. Rimworld does not need to do it by itself and thus loads faster.

How to use todds

To use the textures created by todds, you will need to have a mod that enables DDS textures in your modlist, such as Performance Fish or Graphics Settings+.

todds is a command-line application. It is expected that double clicking on the executable appears to do nothing. You need to launch cmd in the same folder in which you downloaded todds and run it from the command-line. This is the recommended command to encode RimWorld textures.

todds.exe -f BC1 -af BC7 -on -vf -fs -r Textures -t -p "C:\Program Files (x86)\Steam\steamapps\workshop\content\294100"

Advanced options

The following are some examples of what can be achieved using todds. Run todds without any parameters to learn more about its features.

Remove mipmaps

By default, todds will include mipmaps in the encoded textures. Mipmaps are smaller versions of the texture, already calculated and optimized. Mipmaps will increase texture quality when the game is zoomed out, at the cost of increased VRAM usage. You can disable mipmap generation by adding the -nm option.

todds.exe -f BC1 -af BC7 -on -nm -vf -fs -r Textures -t -p "C:\Program Files (x86)\Steam\steamapps\workshop\content\294100"

Pausing the encoding process

You can pause the encoding process at any point by pressing Ctrl+C. To resume the process, just run todds with the same parameters again. Keep in mind that running todds with -o (explained below) will always try to encode all textures even if they already exist.

Overwriting textures

If you want to overwrite existing DDS textures, replace the -on in the encoding commands with -o. Keep in mind that todds will always try to encode every texture again every time you run it.

Deleting textures

If you want to delete the textures created by todds, run:

todds.exe -cl -o -r Textures -t -p "C:\Program Files (x86)\Steam\steamapps\workshop\content\294100"

Clone this wiki locally