Skip to content

RSB File Format RUS

AlexKimov edited this page Apr 20, 2018 · 11 revisions

Неофициальное описание формата RSB

Дата: 2018.04 | Версия: 0.8

Глоссарий

GR - игра Ghost Recon,
RSE - Red Storm Engine, игровой движок игры Ghost Recon,
RSB - Red Storm Bitmap (формат для хранения текстур игры)
ps2 - Sony Playstation 2 
Неизвестная константа - постоянное значение, роль которой неизвестна
Неизвестная переменная - то же, но изменяется от файла к файлу

Типы данных

integer - неотрицательные целочисленные значения, при размере 2 байта числа 0..65535, при размере 4 байта 0..4294967295
float - неотрицательные нецелое число от -2147483648.0 до 2147483647.0.
string - строка с завершаюшим нулем на конце.

Ссылки

Подробный шаблон формата RSB для программы 010Editor RSB.bt

Копирайты

Упоминаемые в тексте игры, а также форматы игровых файлов и игровые движки принадлежат Ubisoft и/или соотвествующим владельцам. Как-то так.

Оглавление

1. Ведение

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

3. Секции

  3.1. Заголовок файла

  3.2. Пиксельные данные

  3.3. Свойства текстуры

  3.4. Дополнительные каналы текстуры

4. Приложение A

Введение

Этот документ описывает структуру формата файла RSB, используемого игровым движком RSE. RSB файлы хранятся в папке "Texture", а также некоторых других папках оригинальной игры и имеют расширение ".rsb". Формат RSB используется для хранения растровых изображений. Все переменные в секциях описаны в порядке их следования в файле.

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

RSB формат файла разделен на четыре основные секции (см Табл. 1). Файл не имеет сигнатур для определения его формата.

Таблица 1. Структура файла

Секция Ссылки
1 Заголовок файла См. Таблица 2
2 Пиксельные данные См. Таблица 5
3 Дополнительные каналы поверхности См. Таблица 6
4 Свойства текстуры См. Таблица 8

Секции

Заголовок файла

Файл начинается с секции заголовка, которая содержит общие данные об изображении: размер, битовую маску, формат сжатия и т.п.

Таблица 2.0 Структура заголовка файла для версий игры для ПК
Размер Тип данных Описание Значение
4 integer Версия файла см. Таблицу 3
4 integer Ширина изображения см. Таблицу 4
4 integer Высота изображения см. Таблицу 4

Если версия файла равна 0, то добавляется еще одна переменная

Размер Тип данных Описание Значение
4 integer Есть ли в файле дополнительное 8 битная копия изображения 0 - нет,1 - есть

Для версий больше или равных 7ой добавляются четыре (?) переменных

Размер Тип данных Описание Значение
4 integer (?) Неизвестная константа 0
1 integer (?) Неизвестная переменная 0,1
1 integer (?) Неизвестная переменная 0,1
1 integer (?) Неизвестная переменная 0,1
Далее идет битовая маска
4 integer Количество красные бит на один пиксель 0, 4, 5, 6, 8
4 integer Количество зеленых бит на один пиксель 0, 4, 5, 6, 8
4 integer Количество синих бит на один пиксель 0, 4, 5, 6, 8
4 integer Количество битов прозрачности на один пиксель 0, 4, 5, 6, 8
Для версий больше или равных 9ой добавляются две переменные
4 (?) Неизвестная переменная hex - FFFF
4 integer Версия формата сжатия DXT 0,1,2,3,4,5 или FFFF (без )

Конец секции.

В версиях игры для ps2 структура данных заголовка немного другая.

Таблица 2.1 Структура заголовка файла для версий игры на PS2
Размер Тип данных Описание Значение
2 integer Версия файла 0,2,3,4,5,6

описание дополняется....

Конец секции.

Таблица 3. Версии RSB
Версия Игры Отличие
0, 1 Dominant Species, Bang Gunship Elite, Force 21, Rainbow six (1998) + дополнения, Rogue Spear(2000) + дополнения, Freedom First Resistance, Ghost Recon отсутствуют свойства текстуры, 0 - имеет два варианта структуры с палитрой и без
2 Ghost Recon отсутствуют свойства текстуры
3 Ghost Recon не содержит информацию о поверхности текстуры (См. Дополнительные каналы), не содержит информацию о МипМапах
5, 6 Ghost Recon + свойства текстуры. которых нет в 3
8, 9 Ghost Recon + текстуры с DXT1 сжатием
10, 11 Rainbow Six Lockdown + DXT5, + неизвестные переменные в секции со свойствами текстур
Таблица 4. Размеры текстур, используемые в игре.
Размер Комментарий
1 16 x 16
2 16 x 32
3 16 x 64
4 32 x 32
5 32 x 64
6 32 x 128
7 64 x 64
8 64 x 128
9 64 x 256
10 128 x 128
11 128 x 256
12 128 x 512
13 256 x 256
14 256 x 512
15 256 x 1024
16 256 x 2048
17 512 x 512
18 512 x 1024
19 512 x 2048
20 1024 x 1024
21 1024 x 2048
22 2048 x 2048

Секция "Пиксельные данные"

Пиксельные данные в RSB файлах представляют собой массив пикселей в формате цветовой модели RGB в сжатом виде (DXT) или не сжатом. Один пиксель массива содержит значения яркости красной, зеленой и синей компоненты цвета, а также может дополнительно содержать информацию о прозрачности пикселя, т.н. альфа канал (см. Табл. 3). Общее количество всех пикселей рассчитывается как произведение ширины на высоту текстуры.

Таблица 5. Битовые маски
Маска (порядок) бит на пиксель Описание
1 R5G6B5 16 Красный - 5 бит, Зеленый - 6 бит, Синий - 5 бит
2 R8G8B8 24 Красный - 8 бит, Зеленый - 8 бит, Синий - 8 бит
3 A4R4G4B4 16 Альфа - 4 бита, Красный - 4 бита, Зеленый - 4 бит, Синий - 4 бит
4 A1R5G5B5 16 Альфа - 1 бит, Красный - 5 бита, Зеленый - 5 бит, Синий - 5 бит
5 A4R4G8B8 24 Альфа - 4 бита, Красный - 4 бита, Зеленый - 8 бит, Синий - 8 бит
6 B8G8R8A8 32 Альфа - 8 бит, Красный - 8 бит, Зеленый - 8 бит, Синий- 8 бит
7 DXT1, DXT5 16 пикселей в 8(16) битном блоке см. Описание формата DXT

Секция "Каналы поверхностей текстуры"

Секция существует только для файлов версий 5, 6, 8 и 9. Добавляется одна переменная.

Таблица 6. Каналы поверхностей
Размер Тип Описание Значение
4 integer Количество дополнительных каналов

Если она больше 0, то далее идут данные об этих каналах см. Adobe Photoshop File Formats Specification

Конец секции.

Секция "Свойства текстуры"

Прозрачность

Режимы смешивания Alpha Testing и Alpha Blending.

При использовании режима Alpha Testing пиксели текстуры белого или черного цвета становятся либо полностью прозрачными или полностью непрозрачными (видимыми). Данный режим требует меньше ресурсов для отображения на экране, поскольку для его работы не требуется использование предварительной сортировки (alpha sorting). Однако, в отличии от режима Alpha Testing, режим Alpha Blending не поддерживает постепенное смешивание (gradual blend) по яркости пикселя. Таким образом Alpha Blending не подходит для отрисовки эффектов дыма, огня, воды, но хорош для заборов, деревьев, знаков, колес и любых других объектов с четкими границами.

Для работы режима Alpha Testing используются параметры Source Function и Destination Function, для Alpha Blending - Compare Function и "Reference Value".

Анимация

Текстура в RSB файле может быть анимирована двумя способами: заданным смещением текстуры от первоначального положения и с использованием т.н. flipbook анимации, когда несколько выбранных изображений последовательно сменяют друг друга.

Анимация с помощью смещения текстуры (Scrolling) Данный вид анимации заключается в перемещении текстуры в горизонтальном и вертикальном направлениях или ее вращении. Одновременно доступен только один вид: либо смешение, либо вращение.

Fllipbook анимация Данный вид анимации заключается в смене одинаковых по размеру текстур в заданной последовательности.

Параметры (теги) текстуры

Параметры тектсуры, которые влияют на взаимодействие с ней.

Таблица 7 Теги
Название Описание Индекс
1 Gunshot Transparent Пули способны проходить сквозь текстуру 1
2 Grenade Transparent Воздействие гранат и бомб сквозь текстуру 2
4 Line-of-sight Transparent Враги (искусственный интеллект) будут видеть вас сквозь текстуру 4
5 Foliage При попадании пули будут появляться листья 8
7 Water Вода 16

Теги текстуры, заданные в файле объекта к которому привязана текстура имеют приоритет над тегами в RSB файле.

Таблица 8. Секция "Свойства текстуры"
Размер Тип Свойство (оригинал) Значение
1 integer Alpha Blending 1 - вкл., 0 - выкл.
1 integer Alpha Testing 1 - вкл., 0 - выкл.
1 integer Sampling 1 - вкл., 0 - выкл.
1 integer Animation 1 - вкл., 0 - выкл.
1 integer Scrolling 1 - вкл., 0 - выкл.
1 integer Tiled 1 - вкл., 0 - выкл.
1 integer *** Compression 1 - вкл., 0 - выкл.
1 integer *** Distortion 1 - вкл., 0 - выкл.

Для файлов версий 7 и более добавляется 1 переменная "Теги текстуры"

Размер Тип Свойство (оригинал) Значение
4 integer Теги текстуры см. Таблица 7
4 integer Source Function см. Таблица 9
4 integer Destination Function см. Таблица 10
4 integer Compare Function см. Таблица 11
1 integer Исходное значение прозрачности
4 integer Тип анимации смещением см. Таблица 13
4 float Гор. смещение
4 float Верт. смещение
4 integer Тип анимации при FlipBook анимации см. Таблица 12
4 float Интервал анимации
4 integer Количество текстур 0..9

Если Animation > 0 и "Количество текстур" > 0, то далее идет список текстур для анимации в виде массива, где элементы выглядят так

Размер Тип Свойство (оригинал) Значение
4 integer Длина названия текстуры
string Названия текстуры

Если версия файла > 4, то добавляется еще 2 переменные

Размер Тип Свойство (оригинал) Значение
4 integer Количество карт MIP-текстурирования
4 integer *** Subsampling Priority
1 integer Наличие текстуры при повреждении 1 - вкл., 0 - выкл.

Если "Наличие текстуры при повреждении" = 1, то далее идут следующие данные

Размер Тип Свойство (оригинал) Значение
4 integer Длина названия текстуры
string Названия текстуры

Если версия файла > 2 то добавляются переменная "Тип поверхности текстуры" при взаимодействии (звук от попадания или ходьбы) |

Размер Тип Свойство (оригинал) Значение
4 integer Тип поверхности текстуры см Таблица 14

Конец секции.

Таблица 9. COMPARE FUNCTION
Texture Размер
0 Zero
1 Less
2 Equal
3 Greater Equal
4 Always
Таблица 10. Source function
Texture Размер
0 Zero
1 One
2 Source Alpha
3 Inverse Source Alpha
4 Source Color
5 Inverse Source Color
6 Destination Color
7 Inverse Destination Color
8 Both Source Alpha
9 Both Inverse Source Alpha
Таблица 11. Destination function
Texture Размер
0 Zero
1 One
2 Source Alpha
3 Inverse Source Alpha Source Color
5 Inverse Source Color
6 Destination Color
7 Inverse Destination Color
8 Both Source Alpha
9 Both Inverse Source Alpha
Таблица 12. ANIMATION TYPE
Texture Размер
0 Cycle
1 Oscillate
2 Constant
  • Cycle - повторение анимации, исчезает, если объект типа billboard (всегда повернут к игроку перпиндикулярно плоскости взгляда, например, все спецэффекты)
  • Oscillate - пин-понг,
  • Constant - повторение анимации, не исчезает
Таблица 13. SCROLLING TYPE
Texture Размер
0 Rotate
1 Degrees Seconds
Таблица 14. SURFACE TYPE
Texture Размер
0 NONE
1 Carpet
2 Concrete
3 Wood
4 Metal
5 Asphalt
6 Sand
7 Lowgrass
8 Highgrass
9 Puddle
10 Water
11 Drywall
12 Thin Metal
13 Thick Metal
14 Metal Gas Tank
15 Steam Pipe
16 Electrical Panel
17 Snow
18 Safety Glass
19 Bullet Resistant Glass
20 Ice
21 Mud
22 Glass
23 Foliage
24 Gravel
25 Glass Shards

Приложение A.

Размеры секций

Заголовок файла

Версия Размер
1 1, 2, 4, 5, 6 28
1 8 37
1 9 45

Секция текстур (мин. размер)

Версия Размер
1 1 0
2 2, 3 46
3 4 53
4 5, 6 61
5 6 65
6 8, 9

Version History:

0.7         
0.6
0.5 
0.4
Clone this wiki locally