Texture Native (Секция RW)
Материал из GTAModding.ru
Версия от 14:15, 19 августа 2011; Lego (обсуждение | вклад)
Секция RenderWare |
Texture Native |
0x0015 |
Texture Native - секция-контейнер, используемая в TXD-файлах внутри секции Texture Dictionary. Как правило, сопровождается секцией Struct.
Содержание |
PC / XBOX
PlayStation 2
- Texture Native
- Struct - 4 байта - Платформа (PS2), 4байта - Флаги Фильтра
- String - Название текстуры (размер кратен 4 байтам)
- String - Название альфа-канала (размер кратен 4 байтам)
- Struct
- Sky Mipmap Val - 4 байта (пока неизвестно)
Основная структура информации
Здесь содержится вся или практически вся информация об изображении.
DWORD - 4 байта - Ширина изображения в пикселях DWORD - 4 байта - Высота изображения в пикселях DWORD - 4 байта - Глубина цвета (bpp) BYTE - 1 байт - Неизвестно, везде равно 0x04 (скорее всего это RwRasterType и 0x04 означает Texture) WORD - 2 байта - Флаги изображения BYTE - 1 байт - Неизвестно, везде равно 0x00 ...
Флаги изображения
Это обычные флаги RenderWare Graphics, соеденённые в одном слове:
- RwRasterFormat (Как правило, встречаются лишь RGBA, 8bit pal и 4bit pal, но приведу полный список):
0x0100 rwRASTERFORMAT1555 - 16 bits - 1 bit alpha, 5 bits red, green and blue 0x0200 rwRASTERFORMAT565 - 16 bits - 5 bits red and blue, 6 bits green 0x0300 rwRASTERFORMAT4444 - 16 bits - 4 bits per component 0x0400 rwRASTERFORMATLUM8 - Gray scale 0x0500 rwRASTERFORMAT8888 - 32 bits - 8 bits per component 0x0600 rwRASTERFORMAT888 - 24 bits - 8 bits per component 0x0700 rwRASTERFORMAT16 - 16 bits - undefined: useful for things like Z buffers 0x0800 rwRASTERFORMAT24 - 24 bits - undefined: useful for things like Z buffers 0x0900 rwRASTERFORMAT32 - 32 bits - undefined: useful for things like Z buffers 0x0A00 rwRASTERFORMAT555 - 16 bits - 5 bits red, green and blue 0x1000 rwRASTERFORMATAUTOMIPMAP - RenderWare generated the mip levels 0x2000 rwRASTERFORMATPAL8 - 8 bit palettised 0x4000 rwRASTERFORMATPAL4 - 4 bit palettised 0x8000 rwRASTERFORMATMIPMAP - Mip mapping on
- Одновременно может использоваться только один флаг из каждой "группы" (группы флажков тут условно разделены пустой строкой).
- RwRasterPrivateFlag:
- Здесь я в данный момент не уверен, но если значение равно единице - нужно как-то корректировать палитру (или наоборот - не корректировать).
0x01 rwRASTERGAMMACORRECTED = 0x01, 0x02 rwRASTERPIXELLOCKEDREAD = 0x02, /* pixels are locked for reading */ 0x04 rwRASTERPIXELLOCKEDWRITE = 0x04, /* pixels are locked for writing */ 0x08 rwRASTERPALETTELOCKEDREAD = 0x08, /* palette is locked for reading */ 0x10 rwRASTERPALETTELOCKEDWRITE = 0x10, /* palette is locked for writing */ 0x20 rwRASTERPIXELLOCKEDRAW = 0x20, /* the pixels are in platform specific
Блоки информация об изображении / палитре
Информация хранится в 80-байтовом блоке в любом из этих случаев. Здесь всегда содержится информация об размере последующей структуры (по всей видимости, размер выражен в 16-байтовых блоках).
Смотри также
- TXD - информация непосредственно о TXD-архивах (Texture Dictionary)