TIM2

Материал из GTAModding.ru
Версия от 16:12, 11 июля 2011; Lego (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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-битные текстуры.