by Oleg » Thu Mar 23, 2023 4:26 am
pass it through any other image conversion utility to fix. The texture data could be messed up already and ZModeler can't load such a texture. For example, make an export to .yft file and put this texture there as an embedded texture. Then extract it from .yft file with OpenIV.
The texture is a set of texture data objects (mips) and DDS heading that specifies how to read the data. In ZModeler 3.2 some texture heading are ignored and only the most significant heading data values are used to read texture data. That is why it can still show and use this texture. Upon saving, bad .dds heading data makes the texture unloadable buy most of DDS loaders. When you put this texture as embedded in .yft, the texture data (unchanged) is equipped with yft embedded texture heading, and OpenIV will be able to reconstruct correct DDS heading for this data to save a proper DDS image.
I can not make any changes to ZModeler 3.2.x product anymore, so I can not fix this issue with ZModeler 3.2. textures.
Also, keep in mind that ZModeler 3.2. uses DX9 engine and does not support some of texture formats like ATI1, ATI2 (BC5 normal map), so texture data in ZModeler 3.2. could be incompatible with DDS texture heading (e.g. ATI2 texture loaded in ZModeler 3.2. sill has ATI2 DDS heading, but the actual texture is BC3-converted DXT5 texture). This can cause problems too.
pass it through any other image conversion utility to fix. The texture data could be messed up already and ZModeler can't load such a texture. For example, make an export to .yft file and put this texture there as an embedded texture. Then extract it from .yft file with OpenIV.
The texture is a set of texture data objects (mips) and DDS heading that specifies how to read the data. In ZModeler 3.2 some texture heading are ignored and only the most significant heading data values are used to read texture data. That is why it can still show and use this texture. Upon saving, bad .dds heading data makes the texture unloadable buy most of DDS loaders. When you put this texture as embedded in .yft, the texture data (unchanged) is equipped with yft embedded texture heading, and OpenIV will be able to reconstruct correct DDS heading for this data to save a proper DDS image.
I can not make any changes to ZModeler 3.2.x product anymore, so I can not fix this issue with ZModeler 3.2. textures.
Also, keep in mind that ZModeler 3.2. uses DX9 engine and does not support some of texture formats like ATI1, ATI2 (BC5 normal map), so texture data in ZModeler 3.2. could be incompatible with DDS texture heading (e.g. ATI2 texture loaded in ZModeler 3.2. sill has ATI2 DDS heading, but the actual texture is BC3-converted DXT5 texture). This can cause problems too.