Saving as DDS and the photo gets superlight

Hello! when im saving as NVIDIA Texture Tool DDS then importing it into OpenIV then the picture gets super light. is it some fix for this?

Hi svrresvoid00!

It sounds like OpenIV might be interpreting sRGB color values as if they were Linear RGB colors. To check, does the issue look like you have an image like this:

but OpenIV displays it like this?

If so, there are a few different approaches I can think of.

  • If you’re saving using BC4-BC7, does it work if you save using BC1 (if the image has no transparency) or BC3 (if the image has transparency) instead?
    • If you’re using BC7, my guess is that because we save using the DXGI format DDS10_FORMAT_BC7_UNORM (because some DDS readers don’t support DDS10_FORMAT_BC7_UNORM_SRGB and storing sRGB data in _UNORM is more common than storing linear data in _UNORM), OpenIV might be interpreting the colors in the file as linear instead of sRGB. With BC1-BC3, the Exporter will output a DirectX 9-style DDS file instead, which OpenIV will probably read correctly.
  • If you’re saving using BC1-BC3, does checking the “DDS: Use DXT10 Header” box at the bottom of the left pane make a difference?

image

  • Finally, if neither of those work, we added an sRGB To Linear effect in the version of the Texture Tools Exporter. This should make the image darker and counter the brightening you see in OpenIV. However, you’ll probably see color banding in dark areas when you load it into OpenIV — so if the first two ideas work, they’ll probably produce better results.

Thanks!

2 Likes

Ah, I should quickly update this since a few people are looking at this thread in the present day: in Texture Tools Exporter version 2024.1.0 and later, you can override the transfer function of the exported image, to make it use DDS10_FORMAT_BC7_UNORM_SRGB instead of DDS10_FORMAT_BC7_UNORM! This might help with programs that use different interpretations of the DDS color spaces than the Texture Tools Exporter does.

The full release notes are here!

1 Like