TIM2

Материал из GTAModding.ru
Перейти к: навигация, поиск

TIM2 - растровый графичесий формат приставки Sony Playstation 2. C небольшими изменениями1 используется в PS2 TXD-файлах трилогии GTA, Bully, Manhunt и в других играх.

Содержание

Структура файла

В начале файла содержится заголовок размером 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 байта - высота изображения в пикселях

Далее идут данные растра, за ними - данные палитры.

Swizzling

В TXD-архивах GTA используется технология swizzling'а, которая, в общих чертах, позволяет выиграть в производительности игры за счёт нестандартного расположения пикселей. В зависимости от количества битов на пиксель (bpp) алгоритм подвергается некоторым вариациям. Следует также отметить, что в GTA3 некоторые текстуры хранятся без swizzling'а т.е. в обычном TIM2-формате.

Примечания

^В TXD-файлах текстуры хранятся в с использованием swizzling'а. Исключение составляют только некоторые 4-битные текстуры.

Ссылки