KTX Image: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Ikskoks
imported>Ikskoks
Line 6: Line 6:


=== Format Specifications (KTX v1.1) ===  
=== Format Specifications (KTX v1.1) ===  
This file format is no longer used in newer games. It was replaced by KTX v2.0.
KTX v1.1 file format is no longer used in newer games. It was replaced by KTX v2.0.
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;">
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;">
<pre>
<pre>

Revision as of 23:24, 24 January 2021

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