Skip to content

RSB File Format RUS

Alexander Evdokimov edited this page Dec 11, 2017 · 11 revisions

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

Дата: 2017.12 | Версия: 0.7

Глоссарий

GR - игра Ghost Recon,
GRE - игровой движок игры Ghost Recon,
RSB - Red Storm Bitmap (формат для хранения текстур игры)

Оглавление

1. Ведение

2. Обзор

3. Секции

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

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

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

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

4. Аппендикс A

Введение

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

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

** RSB ** формат файла разделен на четыре секции (см Табл. 1).

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

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

Секции

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

Размер заголовка файла в зависимости от версии находится в пределах от 28 до 45 байт.

Таблица 2.0 Структура заголовка файла
Размер Тип Описание Значение
4 integer Версия файла см. Таблицу 2.1
Размер текстуры
4 integer Ширина 1..2048
4 integer Высота 1..1024
Для версий больше или равных 7ой добавляются три переменные
4 integer Неизвестная константа 0
4 integer Неизвестная константа 0
1 integer Неизвестная константа 0
Битовая маска
4 integer Количество красные бит на один пиксель 0, 5, 6, 8
4 integer Количество зеленых бит на один пиксель 0, 5, 6, 8
4 integer Количество синих бит на один пиксель 0, 5, 6, 8
4 integer Количество битов прозрачности на один пиксель 0, 5, 6, 8
Для версий больше или равных 9ой добавляются две переменные
4 integer Неизвестная константа hex - FFFF
4 integer Неизвестная константа hex - FFFF

Версии RSB

Таблица 2.1 Версии 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, + неизвестные переменные в секции со свойствами текстур

Размеры текстур, используемые в игре.

Таблица 2.2 Размеры текстур
Размер
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

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

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

Таблица 3. Битовые маски
Маска (порядок) бит на пиксель Описание
1 R5G6B5 16 Красный - 5 бит, Зеленый - 6 бит, Синий - 5 бит
2 R8G8B8 24 Красный - 8 бит, Зеленый - 8 бит, Синий - 8 бит
2 A4R4G4B4 16 Альфа - 4 бита, Красный - 4 бита, Зеленый - 4 бит, Синий - 4 бит
3 A4R4G8B8 24 Альфа - 4 бита, Красный - 4 бита, Зеленый - 8 бит, Синий - 8 бит
4 A8R8G8B8 32 Альфа - 8 бит, Красный - 8 бит, Зеленый - 8 бит, Синий- 8 бит
Таблица 3.1 Структура пикселя
Размер Компонента Значение
0..8 Красный 0..255
0..8 Зеленый 0..255
0..8 Синий 0..255
0..8 Альфа 0..255

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

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

Режимы смешивания 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) Данный вид анимации заключается в перемещении текстуры в горизонтальном и вертикальном направлениях или ее вращении. Одновременно доступен только один вид: либо смешение, либо вращение.

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

Параметры текстуры

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

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

Таблица 4. Свойства текстуры
Размер Тип Описание Значение
Для файлов версий 5 и более + 1 переменная
4 integer Количество дополнительных каналов
Если количество дополнительных каналов больше 0, то далее информация о каналах
См Adobe Photoshop File Formats Specification
Для всех версий
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 - on, 0 - off
1 integer *** Distortion 1 - on, 0 - off
Для файлов версий 7 и более + 1 переменная
4 integer TextureTags см. Таблица
Для файлов версий меньше чем 7 + 2 переменных
3 integer Неизвестная переменная
Для всех версий
4 integer Source Function см. Таблица
4 integer Destination Function см. Таблица
4 integer Compare Function см. Таблица
1 integer Reference Value
Texture scrolling
4 integer Scrolling Type see Table 4.5
4 float Horizontal Rate (moves texture horizontally)
4 float VerticalRate (moves texture vertically )
Animation params
4 integer Animation Type see Table 4.4
4 float Animation Interval (play speed of an animation)
4 integer Frames Count 0..9
(if Animation > 0 and TextureCount > 0) Frames Array list, repeated for Frames Count
4 integer Frame Texture Name Length
string Frame Texture Name
if File Version > 4 two more values
4 integer Maps Count
4 integer *** Subsampling Priority
1 byte Damaged
For all File Versions
if Damaged > 0 one more value (It doesn't work properly. Do not use)
4 integer Texture Name Length
string Texture Name
if File Version > 2 one more value
4 integer Surface Type see Table 4.6

*** It’s best to leave these parameters alone unless you like crashing.

Table 4.1 COMPARE FUNCTION PARAMETER
Texture size
0 Zero
1 Less
2 Equal
3 Greater Equal
4 Always
Table 4.2 Source function parameter
Texture size
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
Table 4.3 Destination function parameter
Texture size
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
Table 4.4 ANIMATION TYPE
Texture size
0 Cycle
1 Oscillate
2 Constant
  • Cycle - a repeating pattern that starts over when it finishes. But if its attached to a billboard object it stop at the end and the billboard will disappear.
  • Oscillate - ping pong pattern
  • Constant - similar to cycle but wont disappear if attached to a billboard
Table 4.5 SCROLLING TYPE
Texture size
0 Rotate
1 Degrees Seconds
Table 4.6 SURFACE TYPE
Texture size
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

Surface Property Channels

The RSB can store additional surface channels which apply surface properties to portions of the texture. This is useful when there are several different images on a single texture, some may be wood surfaces, some may be metal, etc.

Surface property corresponds to the sounds that are made when bullets impact the surface or when the player character walks on it. Surface Property Channels are based on photoshop alpha channles, more information about structures and data https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/.

Appendix A.

File Sections sizes in bytes

File header section

File version Size
1 1, 2, 4, 5, 6 28
1 8 37
1 9 45

Texture properties section (minimumal size)

File version Size
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