Skip to content

Example: RimWorld

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

How is texture encoding useful?

Encoding textures using todds will make your game load faster and reduce VRAM usage. It will also make textures look better in-game at default zoom levels, and make them less blurry when zooming out.

How to use todds

RimWorld can't load encoded textures by default. 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 the cmd application in the same folder in which you downloaded todds and run the tool 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"

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.

In-depth explanation

If the textures of your modlist are not encoded, RimWorld will need to encode each texture while the game is launching. This encoding is done at a low quality level to speed up the process, but it will still take some time.

RimWorld will also need to generate mipmaps for these textures. Mipmaps are smaller versions of the texture, which are used when zooming out. Downscaling the images to generate mipmaps also takes time during every game load, and it uses a fast algorithm which makes textures look blurry when zooming out.

todds generates DDS files at a high quality level. These DDS files also include pre-calculated mipmaps at a high quality level. When RimWorld loads these files, it does not need to encode textures or calculate mipmaps, resulting in improved loading times. Textures will look better in-game, thanks to the increased encoding and mipmap quality. Finally, DDS files are designed to take less VRAM when loaded.

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.

Overwriting textures

If you want to overwrite existing DDS textures, replace the -on in the encoding commands with -o. Keep in mind that using Ctrl+C to pause encoding when -o is enabled is not useful as todds will still need to encode every texture again every time you run it with this parameter.

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"

Remove mipmaps

It is possible to encode textures without mipmaps. This will result in a reduction of the file size of DDS textures. But as mentioned above in the in-depth explanation, RimWorld will need to calculate mipmaps if they are missing, resulting in increased loading times and blurrier textures when zooming out.

If you want to encode textures without mipmaps, you can add 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"