KTX Image
KTX, KTX2
- Format Type : Image
- Endian Order : Little Endian or Big Endian
- Signatures : KTX 11 / KTX 20
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
None.
Games
List of games using this file format:
- Lord of the Rings: Rise of War
- Miniverse
Compatible Programs
- crunch
- GIMP + gimp-ktx plugin
- Image Viewer and Tonemapper (can view KTX/KTX2 files)
- Kram (can view KTX/KTX2 files)
- KTX-Software (official tools to create KTX/KTX2 files)
- PicoPixel (can view KTX files)
- PVRTexTool
See Also
- KTX-Specification (official KTX file format repository on Github)
- KTX 1.1 file format
- KTX Software Wiki
Gallery
-
KTX file opened in PicoPixel