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

Материал из GTAModding.ru
Перейти к: навигация, поиск
(Флаги изображения)
(Флаги изображения)
Строка 28: Строка 28:
 
====Флаги изображения====
 
====Флаги изображения====
 
Это обычные флаги RenderWare Graphics, соеденённые в одном слове:
 
Это обычные флаги RenderWare Graphics, соеденённые в одном слове:
* <b>RwRasterFormat</b> <i>(Как правило, встречаются лишь RGBA, 8bit pal и 4bit pal, но приведу полный список)</i>:
+
* <b>RwRasterFormat</b> <i>(Как правило, встречаются лишь RGBA, 8bit pal и 4bit pal, но приведу остальные, которые могут встретится)</i>:
 
: Одновременно может использоваться только один флаг из каждой "группы" (группы флажков тут условно разделены пустой строкой).
 
: Одновременно может использоваться только один флаг из каждой "группы" (группы флажков тут условно разделены пустой строкой).
  0x0100  rwRASTERFORMAT1555        - 16 bits - 1 bit alpha, 5 bits red, green and blue
+
  0x0100  rwRASTERFORMAT1555        - 16 бит  - 1 бит альфа, по 5 бит на красный, зелёный и синий (5-5-5, только первый бит - альфа)
  0x0200  rwRASTERFORMAT565        - 16 bits - 5 bits red and blue, 6 bits green
+
  0x0200  rwRASTERFORMAT565        - 16 бит  - 5 бит - красный, 6 бит  - зелёный, 5 бит - синий (5-6-5)
  0x0300  rwRASTERFORMAT4444        - 16 bits - 4 bits per component
+
  0x0300  rwRASTERFORMAT4444        - 16 бит  - по 4 бита на красный, зелёный и синий
  0x0400  rwRASTERFORMATLUM8        - Gray scale
+
  0x0400  rwRASTERFORMATLUM8        - 8 бит  - белый (красный = зелёный = синий)
  0x0500  rwRASTERFORMAT8888        - 32 bits - 8 bits per component
+
  0x0500  rwRASTERFORMAT8888        - 32 бита - 8 bits per component
  0x0600  rwRASTERFORMAT888        - 24 bits - 8 bits per component
+
  0x0600  rwRASTERFORMAT888        - 24 бита - 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
+
  0x0A00  rwRASTERFORMAT555        - 16 бит  - по 5 бит на красный, зелёный и синий (обычный 5-5-5)
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
+
  0x1000  rwRASTERFORMATAUTOMIPMAP  - RenderWare генерирует мипмапы автоматически
 
  &nbsp;
 
  &nbsp;
  0x2000  rwRASTERFORMATPAL8        - 8 bit palettised
+
  0x2000  rwRASTERFORMATPAL8        - 8 бит с палитрой (в этих двух случаях тип палитры указан с помощью флагов выше)
  0x4000  rwRASTERFORMATPAL4        - 4 bit palettised
+
  0x4000  rwRASTERFORMATPAL4        - 4 бит с палитрой
 
  &nbsp;
 
  &nbsp;
  0x8000  rwRASTERFORMATMIPMAP      - Mip mapping on
+
  0x8000  rwRASTERFORMATMIPMAP      - Флаг наличия мипмапов.
 
* <b>RwRasterPrivateFlag</b>:
 
* <b>RwRasterPrivateFlag</b>:
: Здесь я в данный момент не уверен, но если значение равно единице - нужно как-то корректировать палитру (или наоборот - не корректировать).
+
: Здесь я в данный момент не уверен, но если значение равно единице - нужно как-то корректировать палитру (или наоборот - не корректировать). Пока что привожу с оригинальными комментами разработчиков.
 
  0x01  rwRASTERGAMMACORRECTED
 
  0x01  rwRASTERGAMMACORRECTED
 
  0x02  rwRASTERPIXELLOCKEDREAD    - pixels are locked for reading
 
  0x02  rwRASTERPIXELLOCKEDREAD    - pixels are locked for reading

Версия 14:24, 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 байт - информация о палитре), палитра

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

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

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)