KTX Image

From XentaxWiki
Jump to: navigation, search

KTX

  • Format Type : Image
  • Endian Order : Little Endian or Big Endian


Format Specifications (KTX v1.1)

KTX v1.1 file format is no longer used in newer games. It was replaced by KTX v2.0.

// KTX 1.1 texture 
// Khronos Texture file format


// header (64 bytes)
12 bytes - magic  // "AB 4B 54 58 20 31 31 BB 0D 0A 1A 0A"  (KTX 11)
4 bytes (uint32) - endianess  // "01 02 03 04" - little endian
                              // "04 03 02 01" - big endian
4 bytes (uint32) - gl type  // can be "0"
4 bytes (uint32) - type size  // "1"
4 bytes (uint32) - gl format  // "0"
4 bytes (uint32) - gl internal format
4 bytes (uint32) - gl base internal format
4 bytes (uint32) - pixel width
4 bytes (uint32) - pixel height
4 bytes (uint32) - pixel depth
4 bytes (uint32) - number of array elements
4 bytes (uint32) - number of faces
4 bytes (uint32) - number of mipmap levels
4 bytes (uint32) - size of key value data


// key and value data
num_of_key_value_entries *
{
   4 bytes (uint32) - size of key value entry
   x bytes - key value entry  // e.g. "KTXorientation.S=r,T=d,R=i"
   x bytes - padding
}


num_of_mipmap_levels *
{
   4 bytes (uint32) - image data size
   x bytes - image data
}

x bytes - padding

Full file format description can be found in official documentation here.

Format Specifications (KTX v2.0)

// KTX 2.0 texture 
// Khronos Texture file format


// header
12 bytes - magic  // "AB 4B 54 58 20 32 30 BB 0D 0A 1A 0A"  (KTX 20)
4 bytes (uint32) - vulkan format
4 bytes (uint32) - type size
4 bytes (uint32) - pixel width
4 bytes (uint32) - pixel height
4 bytes (uint32) - pixel depth
4 bytes (uint32) - layer count
4 bytes (uint32) - face count
4 bytes (uint32) - level count
4 bytes (uint32) - super compression scheme

// index
4 bytes (uint32) - dfd byte offset
4 bytes (uint32) - dfd byte length
4 bytes (uint32) - kvd byte offset
8 bytes (uint64) - sgd byte offset
8 bytes (uint64) - sgd byte length

// level index
num_of_levels *
{
   8 bytes (uint64) - byte offset
   8 bytes (uint64) - byte length
   8 bytes (uint64) - uncompressed byte length   
}


// data format descriptor
4 bytes (uint32) - dfd total size
x bytes - dfd block


// key value data
4 bytes (uint32) - key and value byte length
x bytes - key and value data
x bytes - padding


// super compression global data
x bytes - super compression data

// image data
x bytes - data

Full file format description can be found in official documentation here.

MultiEx BMS Script

Not written yet.

Notes and Comments

  • This is KTX image file format.

Compatible Programs