branchrust_reboot/main/texture_optimisations_2026cancel
13 Commits over 0 Days - Infinitycph!
9 alpha-less BC7 albedo/em maps -> DXT1, 3 also halved (retro cupboard ems, m16a2_02, loot barrel): saved ~28 MB VRAM, no alpha lost
no visual quality difference
Regenerated MaterialIndex.json - was dated Aug 2021, so Tools/Optimize/Find Material Optimzations had been reporting 5-year-old state. Fresh scan covers 9,055 materials and flags 164 with compression savings (84 unique textures, ~68 MB VRAM potential) for example m16a2 ao on high quality compression = 1.3mb, normal compression with no visual cost = 0.7mb
First pass on the free wins: 15 alpha-less DXT5/BC7 textures -> DXT1, ~13 MB VRAM, no quality cost
- m2bradley mainbody/armor: removed DXT5 standalone override (5.3 MB)
- m16a2 AOs x3, flamethrower AO: HQ -> Normal compression (5.3 MB)
- workbench upgrade AOs x2, apartment door mats AO, crate_2/gib/webbing AOs: HQ -> Normal compression (2.2 MB)
ao rreduction & optimisation pass on some structure assets
they were shipping 2k ao textures, now resized but visually no difference.
11 ao maps touched, 9 were shipping at 2k
vram 25.3MB -> 2.2MB
some more tweaks to textures that don't need to ship 2k
vram 12.0MB -> 1.0MB
texture reduction pass - deployable, tools, food, component items:
71 textures touched, 38 resolutions brought down
an apple had a 2k ao map at runtime
vram 55.1MB -> 9.5MB
camera, obsidian knife, vampire stake texture reduction among others
11 maps 2048 -> 1024,
vram 24.8MB -> 6.2MB
weapon + tool texture further reduction pass where applicable
45 ao maps 1024/2048 -> 512,
reduced m15 worldmodel bc/nrm/sg 2048 -> 1024 (almost no visual difference for 3rd person)
vram 44.1mb -> 11.8mb
optimised ao textures for vehicles, generic textures and misc items.
halved 2k -> 1k with almost zero visual difference, not enough to warrant the double res
328 MB -> 192 MB vram
optimised props ao textures as it was the same issue with 227 of them, most carrying sources far bigger than they ship at and storing a single channel as rgb.
resized to existing max cap 110 files
rgb -> 8-bit grey 183 files
halved 2k -> 1k 24 files
146.3 MB -> 96.3 MB vram
optimised deployable ao textures where applicable. 245 of them, most carrying sources far bigger than they ship at and storing a single channel as rgb.
resized to existing cap 126 files
rgb -> 8-bit grey 148 files
halved 2k -> 1k 47 files
186.6 MB -> 92.6 MB vram
ao is sampled from the green channel so rgb storage was never doing anything.
optimised weapon ao textures. 68 were oversized on disk and nearly all were storing a
single channel as rgb. no weapons ships above 1024 now.
max size 2048 -> 1024 (52 files)
on disk 4096/2048 -> 1024/512/256 (68 files)
bit depth rgb -> 8-bit grey (58 files)
vram 114.8 MB -> 28.6 MB
ao convention on weapons is half the albedo, so 1024 against the usual 2048 albedo.
80 already did this, we were just inconsistent about it. we could half again on a per asset basis depending on size of object.
optimised darts textures and max sizes. we were shipping the radiation dart at 4k on all textures.
RadiationDart_AO 4096 -> 512
RadiationDart_bc 4096 -> 1024
RadiationDart_mg 4096 -> 1024
RadiationDart_nrm 4096 -> 1024
42.7 MB → 2.17 MB VRAM
looking at other textures that are unnecessarily big too to optimise where applicable.