Skip to content
aspadm edited this page Jul 11, 2018 · 1 revision

English version

Формат: MMP

Описание

Упакованная текстура с поддержкой MIP-уровней

Структура

Файл начинается с заголовка со следующей структурой:

struct Header
{
    uint magic; // 4D 4D 50 00
    
    uint width;
    uint height;
    
    uint mip_count;
    uint format;
    uint bit_count;
    
    struct Channel a_format, r_format, g_format, b_format;

    uint offset
};

a_format, r_format, g_format, b_format - спецификации структуры ARGB данных пикселя:

struct Channel
{
    uint mask;
    uint shift;
    uint count;
};

Значение format одно из следующих:

format описание
44 44 00 00 ARGB4
44 58 54 31 DXT1
44 58 54 33 DXT3
50 4E 54 33 PNT3 - RLE сжатый ARGB8
50 56 00 00 R5G5B5
51 55 00 00 A1R5G5B5
88 88 00 00 ARGB8

После заголовка располагаются данные изображения - нулевой MIP-уровень, первый и так далее.

Дополнительная информация

Если формат изображения PNT3, то структура пикселей не важна; bit_count - размер сжатого изображения в байтах. Размер несжатого изображения - 4 * ширина * высота.

Распаковка PNT3:
Если значение uint 0 или 1000000, пропустить эти 4 байта, увеличить счётчик, иначе скопировать последние байты в соответствии со счётчиком и сбросить его.

Clone this wiki locally