TIM2 — различия между версиями
Материал из GTAModding.ru
Lego (обсуждение | вклад) (Надо уже создать статью, блин) |
Lego (обсуждение | вклад) (→Структура файла TIM2) |
||
Строка 12: | Строка 12: | ||
} | } | ||
</source> | </source> | ||
− | <code>sign</code> - 4 байта - всегда равно "TIM2" | + | * <code>sign</code> - 4 байта - всегда равно "TIM2" |
− | <code>format_id</code> - 2 байта - равно 4 (??) | + | * <code>format_id</code> - 2 байта - равно 4 (??) |
− | <code>pictures</code> - 2 байта - количество изображений в файле. | + | * <code>pictures</code> - 2 байта - количество изображений в файле. |
− | <code>padding</code> - 8 байт - зарезервированное место (байты могут быть нулями) | + | * <code>padding</code> - 8 байт - зарезервированное место (байты могут быть нулями) |
Далее идёт заголовок изображения, повторяющийся N раз (N=<code>picures</code>) вместе с палитрой и самим растром. | Далее идёт заголовок изображения, повторяющийся N раз (N=<code>picures</code>) вместе с палитрой и самим растром. | ||
Строка 35: | Строка 35: | ||
}; | }; | ||
</source> | </source> | ||
− | <code>total_size</code> - 4 байта - общий размер (размер изображения, палитры и заголовка) | + | * <code>total_size</code> - 4 байта - общий размер (размер изображения, палитры и заголовка) |
− | <code>clut_size</code> - 4 байта - размер палитры (равен количеству цветов, умноженному на 4) | + | * <code>clut_size</code> - 4 байта - размер палитры (равен количеству цветов, умноженному на 4) |
− | <code>image_size</code> - 4 байта - размер изображения (размер растра, равен произведению длины, ширины и размеру пикселя в байтах) | + | * <code>image_size</code> - 4 байта - размер изображения (размер растра, равен произведению длины, ширины и размеру пикселя в байтах) |
− | <code>header_size</code> - 2 байта - размер заголовка (этой структуры) | + | * <code>header_size</code> - 2 байта - размер заголовка (этой структуры) |
− | <code>clut_colors</code> - 2 байта - количество цветов в палитре | + | * <code>clut_colors</code> - 2 байта - количество цветов в палитре |
− | <code>pict_format</code> - 1 байт - | + | * <code>pict_format</code> - 1 байт - |
− | <code>mipmaps</code> - 1 байт - количество мипмапов. | + | * <code>mipmaps</code> - 1 байт - количество мипмапов. |
− | <code>clut_type</code> - 1 байт - неизвестно, обычно равно 3 | + | * <code>clut_type</code> - 1 байт - неизвестно, обычно равно 3 |
− | <code>image_type</code> - 1 байт - тип изображения: | + | * <code>image_type</code> - 1 байт - тип изображения: |
0 - NONE | 0 - NONE | ||
1 - RGB16 | 1 - RGB16 | ||
Строка 50: | Строка 50: | ||
4 - IDTEX4 - для 4-битных текстур | 4 - IDTEX4 - для 4-битных текстур | ||
5 - IDTEX8 - для 8-битных текстур | 5 - IDTEX8 - для 8-битных текстур | ||
− | <code>image_width</code> - 2 байта - ширина изображения в пикселях | + | * <code>image_width</code> - 2 байта - ширина изображения в пикселях |
− | <code>image_height</code> - 2 байта - высота изображения в пикселях | + | * <code>image_height</code> - 2 байта - высота изображения в пикселях |
Далее идут данные растра, за ними - данные палитры. | Далее идут данные растра, за ними - данные палитры. |
Версия 16:13, 11 июля 2011
TIM2 - растровый графичесий формат приставки Sony Playstation 2. C небольшими изменениями1 используется в PS2 TXD-файлах трилогии GTA, Bully, Manhunt и в других аналогичных играх.
Структура файла TIM2
В начале файла содержится заголовок размером 16 байт, имеющий следующую структуру:
struct tim2_header { char sign[4]; unsigned short format_id; unsigned short pictures; unsigned char padding[8]; }
-
sign
- 4 байта - всегда равно "TIM2" -
format_id
- 2 байта - равно 4 (??) -
pictures
- 2 байта - количество изображений в файле. -
padding
- 8 байт - зарезервированное место (байты могут быть нулями)
Далее идёт заголовок изображения, повторяющийся N раз (N=picures
) вместе с палитрой и самим растром.
struct tim2_imge_header { unsigned long total_size; unsigned long clut_size; unsigned long image_size; unsigned short header_size; unsigned short clut_colors; unsigned char pict_format; unsigned char mipmaps; unsigned char clut_type; unsigned char image_type; unsigned short image_width; unsigned short image_height; unsigned char unknown[24]; };
-
total_size
- 4 байта - общий размер (размер изображения, палитры и заголовка) -
clut_size
- 4 байта - размер палитры (равен количеству цветов, умноженному на 4) -
image_size
- 4 байта - размер изображения (размер растра, равен произведению длины, ширины и размеру пикселя в байтах) -
header_size
- 2 байта - размер заголовка (этой структуры) -
clut_colors
- 2 байта - количество цветов в палитре -
pict_format
- 1 байт - -
mipmaps
- 1 байт - количество мипмапов. -
clut_type
- 1 байт - неизвестно, обычно равно 3 -
image_type
- 1 байт - тип изображения:
0 - NONE 1 - RGB16 2 - RGB24 3 - RGB32 4 - IDTEX4 - для 4-битных текстур 5 - IDTEX8 - для 8-битных текстур
-
image_width
- 2 байта - ширина изображения в пикселях -
image_height
- 2 байта - высота изображения в пикселях
Далее идут данные растра, за ними - данные палитры.
Примечания
^В TXD-файлах текстуры хранятся в с использованием swizzling'а. Исключение составляют только некоторые 4-битные текстуры.