Material and Mesh Optimization

Texture Optimization

Texture Optimization Tips:

RGB maps (diffuse, normal, etc.) use x2 more memory than single-channel maps (metallic, roughness, opacity).
Prioritize optimizing these first.

  • Use a single-channel opacity map instead of a full-color texture to save memory.
  • Data size scales x4 with each step (e.g., 2K → 4K). Avoid 4K unless it makes a visible difference.

All texture cooker files should be PNG format with the correct mode selected in photoshop (grayscale textures are saved as grayscale PNGs, RGB textures are saved as RGB PNGs), with filenames that are followed by a suffix before the file extension, either .color or .data. This tells the cooker and GPU what sort of texture the file is.

The game will convert to .dds for you (for mods please ship the mod with .dds so the players computer doesn’t need to convert)

The full filename using this format would be something like vehiclename_gauges_b.color.png

  • .color is for 8-bit RGB format textures (such as base color or emissive maps)
  • .data is for 8-bit greyscale textures (such as metallic or AO maps)
  • .normal is for normal maps specifically - these should also be set to 8-bit RGB

Below are the maps in-game and the ram usage:

3-channel RGB map sizes

Size Resolution File Path
21 MB 4096x4096x0 nine_main_b.color.dds
5.3 MB 2048x2048x0 nine_gauges_b.color.dds
1.3 MB 1024x1024x0 autobello_interior_b_b.color.dds
341 KB 512x512x0 sealedbeam_b.color.dds

1-channel (Gray Scale) map sizes

Size Resolution File
11 MB 4096x4096x0 nine_main_r.data.dds
2.7 MB 2048x2048x0 nine_main_ao.data.dds
683 KB 1024x1024x0 DumpTruck_glass_dmg_r.data.dds
171 KB 512x512x0 nine_badges_m.data.dds

Color values for maps

(almost no data size)

This means that we don’t need to and should not ever be using purely one color textures in any scenario, and this would serve purely to waste memory.

The color value directly correlates to what the value of that color on the texture would be, with colors using RGB values as an input while metallic maps are on a 0 to 1 scale (0 being black, 1 being white).

(red base color done via values with no texture) (red base color done via values with no texture)

(low roughness value set via value with no texture) (low roughness value set via value with no texture)

Last modified: April 15, 2026

Any further questions?

Join our discord
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.