So in Paint.net I saved my image as a BC7 linear compressed DDS … If I load this in NVTT to add mipmaps and save as BC7 RGBA will it recompress and possibly cause issues? If so, do I have any options to avoid this?
I just want to add box mipmaps.
So in Paint.net I saved my image as a BC7 linear compressed DDS … If I load this in NVTT to add mipmaps and save as BC7 RGBA will it recompress and possibly cause issues? If so, do I have any options to avoid this?
I just want to add box mipmaps.
Hi @kulharin! Yes, it’ll uncompress and re-compress the texture.
The changes will be pretty small, if any – ideally, the compressor would be able to re-compute blocks that match exactly (avoiding the generation loss we see in things like JPEG) – but in practice, a few blocks will differ. If you ever see large differences, please let us know and we’ll treat it as a bug.
Here’s an example. Here’s a texture compressed using BC7:
pebbles-nvtt2.bc7.dds (569.7 KB)
And then recompressed using nvtt_export.exe pebbles-nvtt2.bc7.dds -f bc7 -o pebbles-nvtt2.bc7.bc7.dds
:
pebbles-nvtt2.bc7.bc7.dds (569.7 KB)
nvimgdiff
reports a root mean square error of 0.001640 between these images. Here’s the difference image:
Since that’s hard to see, here’s with the differences magnified by a factor of 50:
There isn’t a way to avoid this in nvtt_export at the moment unfortunately, but it might be possible to write a program to do this using a DDS reader (e.g. nv_dds) together with NVTT.