Texture Native (Секция RW)

Материал из GTAModding.ru
Перейти к: навигация, поиск
Секция 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
  • Struct - 4 байта ширина, 4 байта - высота, 4 байта - глубина цвета (bpp), далее - неизвестно
  • Struct - 80 байт - информация о изображении, растр, (80 байт - информация о палитре), палитра

Основная структура информации

Здесь содержится вся или практически вся информация об изображении.

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)