Jump to content

Texture2DArrays with mipmaps are loaded incorrectly from .dds files


photo

Recommended Posts

Hello,

 

I believe that the dds loader incorrectly reads texturearrays with mipmaps from files.

It seems that they are loaded in the same way as 3d textures, although they should be loaded in the same way as cubemaps (with more then 6 faces)

 

for texture arrays the file layout is:

Arrayslice 0 mip 0

Arrayslice 0 mip 1

Arrayslice 0 mip 2

....

Arrayslice 1 mip 0

Arrayslice 1 mip 1

....

 

 

whereas for 3d textures it is:

Volumeslice 0 mip 0

Volumeslice 1 mip 0

Volumeslice 2 mip 0

...

Volumeslice 0 mip 1

Volumeslice 1 mip 1

Volumeslice 2 mip 1

...

 

I have attached 2 files to demonstrate this (packed in a zip file). The file correct_1008.dds is encoded according to the specifications, but when loaded into Unigine, it shows only garbage. The file incorrect_1008.dds has the file layout of a volume texture and it works correctly in Unigine.

I have produced both dds files with my own dds writer (therefore it was easy to change the file layout to produce the incorrect dds file).

But you can easily test that with Visual Studio (2013 and 2015), it can read dds files.

 

I just want to document that I encountered that issue. There is no urgent need to fix that from my side.

 

Cheers

 Helmut

 

 

ddsfiles.zip

Link to comment
×
×
  • Create New...