Texture Native (Секция RW) — различия между версиями

Материал из GTAModding.ru
Перейти к: навигация, поиск
(Флаги изображения)
(PlayStation 2)
Строка 16: Строка 16:
 
:* [[Extension (Секция RW)|Extension]]
 
:* [[Extension (Секция RW)|Extension]]
 
::* [[Sky_Mipmap_Val_(Секция_RW)|Sky Mipmap Val]] - 4 байта (пока неизвестно)
 
::* [[Sky_Mipmap_Val_(Секция_RW)|Sky Mipmap Val]] - 4 байта (пока неизвестно)
 +
 +
=== Платформа и фильтр ===
 +
BYTE[4] - 4 байта - Строка "PS2" с завершающим нулём
 +
BYTE    - 1 байт  - Координата U (маска rwTEXTUREADDRESSINGUMASK = 0x0F00)
 +
BYTE    - 1 байт  - Координата V (маска rwTEXTUREADDRESSINGVMASK = 0xF000)
 +
WORD    - 2 байта - Флажки фильтра (маска rwTEXTUREFILTERMODEMASK = 0x00FF)
 +
Флажки фильтра (RwTextureFilterMode) предствалены ниже.<br />
 +
Использовать можно только один из фильтров.
 +
0x01  rwFILTERNEAREST            - Point sampled
 +
0x02  rwFILTERLINEAR            - Bilinear
 +
0x03  rwFILTERMIPNEAREST        - Point sampled per pixel mip map
 +
0x04  rwFILTERMIPLINEAR          - Bilinear per pixel mipmap
 +
0x05  rwFILTERLINEARMIPNEAREST  - MipMap interp point sampled
 +
0x06  rwFILTERLINEARMIPLINEAR    - Trilinear
  
 
=== Основная структура информации ===
 
=== Основная структура информации ===

Версия 15:59, 19 августа 2011

Секция 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 байт - информация о палитре), палитра

Платформа и фильтр

BYTE[4] - 4 байта - Строка "PS2" с завершающим нулём
BYTE    - 1 байт  - Координата U (маска rwTEXTUREADDRESSINGUMASK = 0x0F00)
BYTE    - 1 байт  - Координата V (маска rwTEXTUREADDRESSINGVMASK = 0xF000)
WORD    - 2 байта - Флажки фильтра (маска rwTEXTUREFILTERMODEMASK = 0x00FF)

Флажки фильтра (RwTextureFilterMode) предствалены ниже.
Использовать можно только один из фильтров.

0x01  rwFILTERNEAREST            - Point sampled
0x02  rwFILTERLINEAR             - Bilinear
0x03  rwFILTERMIPNEAREST         - Point sampled per pixel mip map
0x04  rwFILTERMIPLINEAR          - Bilinear per pixel mipmap
0x05  rwFILTERLINEARMIPNEAREST   - MipMap interp point sampled
0x06  rwFILTERLINEARMIPLINEAR    - Trilinear

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

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

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 бит  - 1 бит альфа, по 5 бит на красный, зелёный и синий (5-5-5, только первый бит - альфа)
0x0200  rwRASTERFORMAT565         - 16 бит  - 5 бит - красный, 6 бит  - зелёный, 5 бит - синий (5-6-5)
0x0300  rwRASTERFORMAT4444        - 16 бит  - по 4 бита на красный, зелёный и синий
0x0400  rwRASTERFORMATLUM8        -  8 бит  - белый (красный = зелёный = синий)
0x0500  rwRASTERFORMAT8888        - 32 бита - 8 bits per component
0x0600  rwRASTERFORMAT888         - 24 бита - 8 bits per component
...
0x0A00  rwRASTERFORMAT555         - 16 бит  - по 5 бит на красный, зелёный и синий (обычный 5-5-5)

0x1000  rwRASTERFORMATAUTOMIPMAP  - RenderWare генерирует мипмапы автоматически
 
0x2000  rwRASTERFORMATPAL8        - 8 бит с палитрой (в этих двух случаях тип палитры указан с помощью флагов выше)
0x4000  rwRASTERFORMATPAL4        - 4 бит с палитрой
 
0x8000  rwRASTERFORMATMIPMAP      - Флаг наличия мипмапов.
  • RwRasterPrivateFlag:
Здесь я в данный момент не уверен, но если значение равно единице - нужно как-то корректировать палитру (или наоборот - не корректировать). Пока что привожу с оригинальными комментами разработчиков.
0x01  rwRASTERGAMMACORRECTED
0x02  rwRASTERPIXELLOCKEDREAD     - pixels are locked for reading
0x04  rwRASTERPIXELLOCKEDWRITE    - pixels are locked for writing
0x08  rwRASTERPALETTELOCKEDREAD   - palette is locked for reading
0x10  rwRASTERPALETTELOCKEDWRITE  - palette is locked for writing
0x20  rwRASTERPIXELLOCKEDRAW      - the pixels are in platform specific

Блоки информация об изображении / палитре

Информация хранится в 80-байтовом блоке в любом из этих случаев. Здесь всегда содержится информация об размере последующей структуры (по всей видимости, размер выражен в 16-байтовых блоках).

Смотри также

  • TXD - информация непосредственно о TXD-архивах (Texture Dictionary)