KTX Image: Difference between revisions
Jump to navigation
Jump to search
imported>Ikskoks |
imported>Ikskoks |
||
| Line 57: | Line 57: | ||
<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> | ||
// 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 | |||
</pre> | </pre> | ||
</div> | </div> | ||
Revision as of 00:24, 15 January 2021
KTX
- Format Type : Image
- Endian Order : Little Endian or Big Endian
Format Specifications (KTX v1.1)
// 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
MultiEx BMS Script
Not written yet.
Notes and Comments
- This is KTX image file format.
Compatible Programs