DFF — различия между версиями
Материал из GTAModding.ru
ILdar07 (обсуждение | вклад) |
|||
Строка 1: | Строка 1: | ||
{{stub}} | {{stub}} | ||
− | '''DFF''' – | + | '''DFF''' – формат, использующийся RockStar Games для хранения трёхмерных игровых моделей в таких играх как [[GTA 3]], [[Vice City]], [[San Andreas]], [[Manhunt]]. Является кросс платформенным форматом. |
− | + | == Основные данные == | |
+ | Все трёхмерные модели в GTA третьей серии закодированы в виде бинарных потоков - [[RenderWare binary stream file]], специализированных для движка RenderWare, используемого в игре. Все бинарные потоки с моделями имеют расширение [[DFF]] (для коллекции разнообразных моделей - генерика, персонажей, оружия, автомобилей и т.д.) или [[BSP]] (для хранения одного игрового уровня). Для просмотра и редактирования иерархии потоков [[DFF]] и [[BSP]] существует программа [[RW Analyze]] от Steve M. Для импорта/экспорта DFF в 3D Studio MAX пользуются [[GTA Tools]] (скрипты КАМа) или [[SA Tools]] (скрипты Дениски). Импорт/экспорт DFF в Zanoza Modeler присутствует в версиях начиная с 1.06. | ||
− | + | == Структура == | |
+ | В узлах иерархии бинарных потоков DFF расположены секции, в которых закодированы различные данные трёхмерных объектов - основные и дополнительные. В DFF можно найти секции, специфичные для [[RenderWare]] и не специфичные, написанные программистами RockStar Games специально под определённую игру и расширяющие её возможности по сравнению со стандартным RenderWare ( [[Pipeline Set]], [[Specular Material]], [[2dfx]], [[Night Vertex Colors]], [[Collision Model]], [[Reflection Material]], [[Mesh Extension]], [[Frame]] ). | ||
− | [[Категория:Форматы файлов]] | + | Каждая секция имеет заголовок, по которой можно её идентифицировать: |
+ | |||
+ | * (Заголовок секции) | ||
+ | 4 bytes - int - Идентификатор секции | ||
+ | 4 bytes - int - Размер секции | ||
+ | 2 bytes - int - Размер дочерней секции | ||
+ | 2 bytes - int - Версия секции | ||
+ | * (Данные секции) | ||
+ | [Размер секции] bytes - data - данные внутри секции | ||
+ | |||
+ | Идентификатор секции определяет, как данные должны быть обработаны. Например если идентификатор секции = rwDATA, rwSTRING, rwFRAME или rwMATERIALSPLIT, то для анализа секции нужно спуститься на один уровень вниз по иерархии - в данные, где расположены другие секции, как например здесь: | ||
+ | |||
+ | *(Заголовок секции) | ||
+ | 4 bytes - int - rwCLUMP | ||
+ | 4 bytes - int - 48 | ||
+ | 2 bytes - int - Unknown | ||
+ | 2 bytes - int - 4099 | ||
+ | *(Данные секции) | ||
+ | (Заголовок секции) | ||
+ | 4 bytes - int - rwDATA | ||
+ | 4 bytes - int - 8 | ||
+ | 2 bytes - int - Unknown | ||
+ | 2 bytes - int - 4099 | ||
+ | (Данные секции) | ||
+ | 4 bytes - int - Some Number | ||
+ | 4 bytes - int - Some Number | ||
+ | |||
+ | (Заголовок секции) | ||
+ | 4 bytes - int - rwSTRING | ||
+ | 4 bytes - int - 16 | ||
+ | 2 bytes - int - Unknown | ||
+ | 2 bytes - int - 4099 | ||
+ | (Данные секции) | ||
+ | 16 bytes - string - Data | ||
+ | |||
+ | Список таких идентификаторов, определяющих иерархию компонентов DFF: | ||
+ | |||
+ | 1 = rwDATA | ||
+ | 2 = rwSTRING | ||
+ | 3 = rwEXTENSION | ||
+ | 6 = rwTEXTURE | ||
+ | 7 = rwMATERIAL | ||
+ | 8 = rwMATERIALLIST | ||
+ | 14 = rwFRAMELIST | ||
+ | 15 = rwGEOMETRY | ||
+ | 16 = rwCLUMP | ||
+ | 20 = rwATOMIC | ||
+ | 26 = rwGEOMETRYLIST | ||
+ | 1294 = rwMATERIALSPLIT | ||
+ | 39056126 = rwFRAME | ||
+ | |||
+ | Полный список идентификаторов можно найти в отдельной статье: [[list of RW section IDs]] | ||
+ | |||
+ | По имени секции можно догадаться, что в ней хранится (например rwGEOMETRY -> rwDATA содержит все вершины, нормали трёхмерных объектов, в то время как rwGEOMETRYLIST -> rwDATA содержит число и имена геометрических объектов). | ||
+ | |||
+ | === Версии DFF === | ||
+ | В заголовке секции можно найти закодированные номера версий RenderWare, под которую скомпелирован DFF: | ||
+ | |||
+ | 3.0.0.3 - 0x0003FFFF | ||
+ | 3.?.?.? - 0x0800FFFF (GTA III) | ||
+ | 3.1.0.0 - 0x00000310 (GTA III) | ||
+ | 3.3.0.2 - 0x0C02FFFF (GTA VC) | ||
+ | 3.4.0.3 - 0x1003FFFF (GTA VC) | ||
+ | 3.6.0.3 - 0x1803FFFF (GTA SA) | ||
+ | |||
+ | === Содержимое DFF === | ||
+ | |||
+ | * [[Clump (RW Section)|Clump]] | ||
+ | ** [[Struct (RW Section)#Clump|Struct]] | ||
+ | ** [[Frame List (RW Section)|Frame List]] | ||
+ | *** [[Struct (RW Section)#Frame_List|Struct]] | ||
+ | *** [[Extension (RW Section)|Extension]] * | ||
+ | **** [[Frame (RW Section)|Frame]] | ||
+ | **** [[HAnim PLG (RW Section)|HAnim PLG]] | ||
+ | ** [[Geometry List (RW Section)|Geometry List]] | ||
+ | *** [[Struct (RW Section)#Geometry_List|Struct]] | ||
+ | *** [[Geometry (RW Section)|Geometry]] * | ||
+ | **** [[Struct (RW Section)#Geometry|Struct]] | ||
+ | **** [[Material List (RW Section)|Material List]] | ||
+ | ***** [[Struct (RW Section)#Material_List|Struct]] | ||
+ | ***** [[Material (RW Section)|Material]] * | ||
+ | ****** [[Struct (RW Section)#Material|Struct]] | ||
+ | ****** [[Texture (RW Section)|Texture]] - optional | ||
+ | ******* [[Struct (RW Section)#Texture|Struct]] | ||
+ | ******* [[String (RW Section)|String]] - diffuse texture name | ||
+ | ******* [[String (RW Section)|String]] - alpha texture name | ||
+ | ******* [[Extension (RW Section)|Extension]] | ||
+ | ******** [[Sky Mipmap Val (RW Section)|Sky Mipmap Val]] ** | ||
+ | ****** [[Extension (RW Section)|Extension]] | ||
+ | ******* [[Material Effects PLG (RW Section)|Material Effects PLG]] - optional | ||
+ | ******** [[Texture (RW Section)|Texture]] - optional ''(See [[Material Effects PLG (RW Section)|Material Effects PLG]] for more information)'' | ||
+ | ********* [[Struct (RW Section)#Texture|Struct]] | ||
+ | ********* [[String (RW Section)|String]] - environment map name | ||
+ | ********* [[String (RW Section)|String]] - alpha texture name | ||
+ | ********* [[Extension (RW Section)|Extension]] | ||
+ | ********** [[Sky Mipmap Val (RW Section)|Sky Mipmap Val]] ** | ||
+ | ******* [[Reflection Material (RW Section)|Reflection Material]] - optional | ||
+ | ******* [[Specular Material (RW Section)|Specular Material]] - optional | ||
+ | ******* [[UV Animation PLG (RW Section)|UV Animation PLG]] - optional | ||
+ | **** [[Extension (RW Section)|Extension]] | ||
+ | ***** [[Bin Mesh PLG (RW Section)|Bin Mesh PLG]] | ||
+ | ***** [[Native Data PLG (RW Section)|Native Data PLG]] (on Xbox and PS2) | ||
+ | ***** [[Skin PLG (RW Section)|Skin PLG]] | ||
+ | ***** [[Mesh Extension (RW Section)|Mesh Extension]] - optional | ||
+ | ***** [[Night Vertex Colors (RW Section)|Night Vertex Colors]] - optional (static objects only) | ||
+ | ***** [[Morph PLG (RW Section)|Morph PLG]] | ||
+ | ***** [[2dfx (RW Section)|2dfx]] - optional | ||
+ | ** [[Atomic (RW Section)|Atomic]] * | ||
+ | *** [[Struct (RW Section)#Atomic|Struct]] | ||
+ | *** [[Extension (RW Section)|Extension]] | ||
+ | **** [[Right To Render (RW Section)|Right To Render]] - optional | ||
+ | **** [[Particles PLG (RW Section)|Particles PLG]] - optional | ||
+ | **** [[Material Effects PLG (RW Section)|Material Effects PLG]] - optional | ||
+ | **** [[Pipeline Set (RW Section)|Pipeline Set]] - optional | ||
+ | ** [[Extension (RW Section)|Extension]] | ||
+ | *** [[Collision Model (RW Section)|Collision Model]] - vehicles only | ||
+ | |||
+ | ''* Эти разделы (и их дочерние разделы) могут повторятся несколько раз. | ||
+ | |||
+ | ==== Секция: Clump ==== | ||
+ | |||
+ | Clump - Data | ||
+ | |||
+ | |SECTION START| | ||
+ | |||
+ | 4 bytes - int - Object Count | ||
+ | |||
+ | |SECTION END| | ||
+ | |||
+ | |||
+ | ==== Секция: Frame List ==== | ||
+ | |||
+ | Frame List - Data | ||
+ | |||
+ | |SECTION START| | ||
+ | |||
+ | 4 bytes - int - Frame Count | ||
+ | (Frame Information) | ||
+ | {ARRAY OF SIZE: [Frame Count]} | ||
+ | 36 bytes - float matrix (3 x 3) - Rotational Matrix | ||
+ | 12 bytes - float - Coordinates Offset | ||
+ | 4 bytes - int - Parent Frame | ||
+ | 4 bytes - int - Unknown | ||
+ | {END ARRAY} | ||
+ | |||
+ | |SECTION END| | ||
+ | |||
+ | Frame List - Frame | ||
+ | |||
+ | |SECTION START| | ||
+ | |||
+ | [Section Size] bytes - string - Frame Name | ||
+ | |||
+ | |SECTION END| | ||
+ | |||
+ | ==== Секция: Geometry List ==== | ||
+ | |||
+ | Geometry List - Data | ||
+ | |||
+ | |SECTION START| | ||
+ | |||
+ | 4 bytes - int - Geometry Count | ||
+ | |||
+ | |SECTION END| | ||
+ | |||
+ | Geometry List - Material Split | ||
+ | |||
+ | |SECTION START| | ||
+ | |||
+ | (Header) | ||
+ | 4 bytes - int - Triangle Strip | ||
+ | 4 bytes - int - Split Count | ||
+ | 4 bytes - int - Face Count | ||
+ | (Split Information) | ||
+ | {ARRAY OF SIZE: [Header - Split Count]} | ||
+ | 4 bytes - int - Face Index | ||
+ | 4 bytes - int - Material Index | ||
+ | (Vertex Information) | ||
+ | {ARRAY OF SIZE: [Face Index]} | ||
+ | 4 bytes - int - Vertex 1 | ||
+ | {END ARRAY} | ||
+ | |||
+ | |SECTION END| | ||
+ | |||
+ | ==== Секция: Geometry ==== | ||
+ | |||
+ | Geometry - Data | ||
+ | |||
+ | |SECTION START| | ||
+ | |||
+ | (Header) | ||
+ | 2 bytes - int - Flags | ||
+ | 2 bytes - int - Unknown | ||
+ | 4 bytes - int - Triangle Count | ||
+ | 4 bytes - int - Vertex Count | ||
+ | 4 bytes - int - Morph Target Count | ||
+ | (Lighting Header) | ||
+ | {IF Version Number = 4099 THEN} | ||
+ | 4 bytes - float - Ambient | ||
+ | 4 bytes - float - Diffuse | ||
+ | 4 bytes - float - Specular | ||
+ | {END IF} | ||
+ | (Colour Information) | ||
+ | {IF rwOBJECT_VERTEX_COLOR in [Header - Flags] THEN} | ||
+ | {ARRAY OF SIZE: [Header - Vertex Count]} | ||
+ | 1 byte - byte - Red | ||
+ | 1 byte - byte - Green | ||
+ | 1 byte - byte - Blue | ||
+ | 1 byte - byte - Alpha | ||
+ | {END ARRAY} | ||
+ | {END IF} | ||
+ | (Texture Mapping Information) | ||
+ | {IF rwOBJECT_VERTEX_UV in [Header - Flags] THEN} | ||
+ | {ARRAY OF SIZE: [Header - Vertex Count]} | ||
+ | 4 bytes - float - U | ||
+ | 4 bytes - float - V | ||
+ | {END ARRAY} | ||
+ | {END IF} | ||
+ | (Face Information) | ||
+ | {ARRAY OF SIZE: [Header - Triangle Count]} | ||
+ | 2 bytes - int - Vertex 2 | ||
+ | 2 bytes - int - Vertex 1 | ||
+ | 2 bytes - int - Flags | ||
+ | 2 bytes - int - Vertex 3 | ||
+ | {END ARRAY} | ||
+ | (Unknown) | ||
+ | 4 bytes - float - Bounding Sphere X | ||
+ | 4 bytes - float - Bounding Sphere Y | ||
+ | 4 bytes - float - Bounding Sphere Z | ||
+ | 4 bytes - float - Bounding Sphere Radius | ||
+ | 4 bytes - int - Has Position | ||
+ | 4 bytes - int - Has Normals | ||
+ | (Vertex Information) | ||
+ | {ARRAY OF SIZE: [Header - Vertex Count]} | ||
+ | 4 bytes - float - X | ||
+ | 4 bytes - float - Y | ||
+ | 4 bytes - float - Z | ||
+ | {END ARRAY} | ||
+ | (Normal Information) | ||
+ | {IF rwOBJECT_VERTEX_NORMAL in [Header - Flags] THEN} | ||
+ | {ARRAY OF SIZE: [Header - Vertex Count]} | ||
+ | 4 bytes - float - X | ||
+ | 4 bytes - float - Y | ||
+ | 4 bytes - float - Z | ||
+ | {END ARRAY} | ||
+ | {END IF} | ||
+ | |||
+ | |SECTION END| | ||
+ | |||
+ | ==== Section: Material List ==== | ||
+ | |||
+ | Material List - Data | ||
+ | |||
+ | |SECTION START| | ||
+ | |||
+ | 4 bytes - int - Material Count | ||
+ | |||
+ | |SECTION END| | ||
+ | |||
+ | ==== Section: Material ==== | ||
+ | |||
+ | Material - Data | ||
+ | |||
+ | |SECTION START| | ||
+ | |||
+ | 4 bytes - int - Unknown | ||
+ | 12 bytes - RGBA - Colour | ||
+ | 4 bytes - int - Unknown | ||
+ | 4 bytes - int - Texture Count | ||
+ | 4 bytes - float - Unknown | ||
+ | 4 bytes - float - Unknown | ||
+ | 4 bytes - float - Unknown | ||
+ | |||
+ | |SECTION END| | ||
+ | |||
+ | ==== Section: Texture ==== | ||
+ | |||
+ | Texture - Data | ||
+ | |||
+ | |SECTION START| | ||
+ | |||
+ | 2 bytes - int - Texture Filter Mode Flags | ||
+ | 2 bytes - int - Unknown | ||
+ | |||
+ | |SECTION END| | ||
+ | |||
+ | ==== Section: Atomic ==== | ||
+ | |||
+ | Atomic - Data | ||
+ | |||
+ | |SECTION START| | ||
+ | |||
+ | 4 bytes - int - Frame Number | ||
+ | 4 bytes - int - Geometry Number | ||
+ | 4 bytes - int - Unknown | ||
+ | 4 bytes - int - Unknown | ||
+ | |||
+ | |SECTION END| | ||
+ | |||
+ | ==Ссылки== | ||
+ | * [http://www.chronetal.co.uk/gta/index.php?page=dff/ Оригинальная статья KCow на английском языке] | ||
+ | |||
+ | {{GTA3-navi}} | ||
+ | [[Категория:Форматы файлов]][[Категория:GTA 3]][[Категория:GTA VC]][[Категория:GTA SA]][[Категория:Manhunt]] |
Версия 12:31, 4 октября 2011
DFF – формат, использующийся RockStar Games для хранения трёхмерных игровых моделей в таких играх как GTA 3, Vice City, San Andreas, Manhunt. Является кросс платформенным форматом.
Содержание |
Основные данные
Все трёхмерные модели в GTA третьей серии закодированы в виде бинарных потоков - RenderWare binary stream file, специализированных для движка RenderWare, используемого в игре. Все бинарные потоки с моделями имеют расширение DFF (для коллекции разнообразных моделей - генерика, персонажей, оружия, автомобилей и т.д.) или BSP (для хранения одного игрового уровня). Для просмотра и редактирования иерархии потоков DFF и BSP существует программа RW Analyze от Steve M. Для импорта/экспорта DFF в 3D Studio MAX пользуются GTA Tools (скрипты КАМа) или SA Tools (скрипты Дениски). Импорт/экспорт DFF в Zanoza Modeler присутствует в версиях начиная с 1.06.
Структура
В узлах иерархии бинарных потоков DFF расположены секции, в которых закодированы различные данные трёхмерных объектов - основные и дополнительные. В DFF можно найти секции, специфичные для RenderWare и не специфичные, написанные программистами RockStar Games специально под определённую игру и расширяющие её возможности по сравнению со стандартным RenderWare ( Pipeline Set, Specular Material, 2dfx, Night Vertex Colors, Collision Model, Reflection Material, Mesh Extension, Frame ).
Каждая секция имеет заголовок, по которой можно её идентифицировать:
* (Заголовок секции) 4 bytes - int - Идентификатор секции 4 bytes - int - Размер секции 2 bytes - int - Размер дочерней секции 2 bytes - int - Версия секции * (Данные секции) [Размер секции] bytes - data - данные внутри секции
Идентификатор секции определяет, как данные должны быть обработаны. Например если идентификатор секции = rwDATA, rwSTRING, rwFRAME или rwMATERIALSPLIT, то для анализа секции нужно спуститься на один уровень вниз по иерархии - в данные, где расположены другие секции, как например здесь:
*(Заголовок секции) 4 bytes - int - rwCLUMP 4 bytes - int - 48 2 bytes - int - Unknown 2 bytes - int - 4099 *(Данные секции) (Заголовок секции) 4 bytes - int - rwDATA 4 bytes - int - 8 2 bytes - int - Unknown 2 bytes - int - 4099 (Данные секции) 4 bytes - int - Some Number 4 bytes - int - Some Number
(Заголовок секции) 4 bytes - int - rwSTRING 4 bytes - int - 16 2 bytes - int - Unknown 2 bytes - int - 4099 (Данные секции) 16 bytes - string - Data
Список таких идентификаторов, определяющих иерархию компонентов DFF:
1 = rwDATA 2 = rwSTRING 3 = rwEXTENSION 6 = rwTEXTURE 7 = rwMATERIAL 8 = rwMATERIALLIST 14 = rwFRAMELIST 15 = rwGEOMETRY 16 = rwCLUMP 20 = rwATOMIC 26 = rwGEOMETRYLIST 1294 = rwMATERIALSPLIT 39056126 = rwFRAME
Полный список идентификаторов можно найти в отдельной статье: list of RW section IDs
По имени секции можно догадаться, что в ней хранится (например rwGEOMETRY -> rwDATA содержит все вершины, нормали трёхмерных объектов, в то время как rwGEOMETRYLIST -> rwDATA содержит число и имена геометрических объектов).
Версии DFF
В заголовке секции можно найти закодированные номера версий RenderWare, под которую скомпелирован DFF:
3.0.0.3 - 0x0003FFFF 3.?.?.? - 0x0800FFFF (GTA III) 3.1.0.0 - 0x00000310 (GTA III) 3.3.0.2 - 0x0C02FFFF (GTA VC) 3.4.0.3 - 0x1003FFFF (GTA VC) 3.6.0.3 - 0x1803FFFF (GTA SA)
Содержимое DFF
- Clump
- Struct
- Frame List
- Geometry List
- Struct
- Geometry *
- Struct
- Material List
- Struct
- Material *
- Struct
- Texture - optional
- Extension
- Material Effects PLG - optional
- Reflection Material - optional
- Specular Material - optional
- UV Animation PLG - optional
- Extension
- Bin Mesh PLG
- Native Data PLG (on Xbox and PS2)
- Skin PLG
- Mesh Extension - optional
- Night Vertex Colors - optional (static objects only)
- Morph PLG
- 2dfx - optional
- Atomic *
- Struct
- Extension
- Right To Render - optional
- Particles PLG - optional
- Material Effects PLG - optional
- Pipeline Set - optional
- Extension
- Collision Model - vehicles only
* Эти разделы (и их дочерние разделы) могут повторятся несколько раз.
Секция: Clump
Clump - Data
|SECTION START|
4 bytes - int - Object Count
|SECTION END|
Секция: Frame List
Frame List - Data
|SECTION START|
4 bytes - int - Frame Count (Frame Information) {ARRAY OF SIZE: [Frame Count]} 36 bytes - float matrix (3 x 3) - Rotational Matrix 12 bytes - float - Coordinates Offset 4 bytes - int - Parent Frame 4 bytes - int - Unknown {END ARRAY}
|SECTION END|
Frame List - Frame
|SECTION START|
[Section Size] bytes - string - Frame Name
|SECTION END|
Секция: Geometry List
Geometry List - Data
|SECTION START|
4 bytes - int - Geometry Count
|SECTION END|
Geometry List - Material Split
|SECTION START|
(Header) 4 bytes - int - Triangle Strip 4 bytes - int - Split Count 4 bytes - int - Face Count (Split Information) {ARRAY OF SIZE: [Header - Split Count]} 4 bytes - int - Face Index 4 bytes - int - Material Index (Vertex Information) {ARRAY OF SIZE: [Face Index]} 4 bytes - int - Vertex 1 {END ARRAY}
|SECTION END|
Секция: Geometry
Geometry - Data
|SECTION START|
(Header) 2 bytes - int - Flags 2 bytes - int - Unknown 4 bytes - int - Triangle Count 4 bytes - int - Vertex Count 4 bytes - int - Morph Target Count (Lighting Header) {IF Version Number = 4099 THEN} 4 bytes - float - Ambient 4 bytes - float - Diffuse 4 bytes - float - Specular {END IF} (Colour Information) {IF rwOBJECT_VERTEX_COLOR in [Header - Flags] THEN} {ARRAY OF SIZE: [Header - Vertex Count]} 1 byte - byte - Red 1 byte - byte - Green 1 byte - byte - Blue 1 byte - byte - Alpha {END ARRAY} {END IF} (Texture Mapping Information) {IF rwOBJECT_VERTEX_UV in [Header - Flags] THEN} {ARRAY OF SIZE: [Header - Vertex Count]} 4 bytes - float - U 4 bytes - float - V {END ARRAY} {END IF} (Face Information) {ARRAY OF SIZE: [Header - Triangle Count]} 2 bytes - int - Vertex 2 2 bytes - int - Vertex 1 2 bytes - int - Flags 2 bytes - int - Vertex 3 {END ARRAY} (Unknown) 4 bytes - float - Bounding Sphere X 4 bytes - float - Bounding Sphere Y 4 bytes - float - Bounding Sphere Z 4 bytes - float - Bounding Sphere Radius 4 bytes - int - Has Position 4 bytes - int - Has Normals (Vertex Information) {ARRAY OF SIZE: [Header - Vertex Count]} 4 bytes - float - X 4 bytes - float - Y 4 bytes - float - Z {END ARRAY} (Normal Information) {IF rwOBJECT_VERTEX_NORMAL in [Header - Flags] THEN} {ARRAY OF SIZE: [Header - Vertex Count]} 4 bytes - float - X 4 bytes - float - Y 4 bytes - float - Z {END ARRAY} {END IF}
|SECTION END|
Section: Material List
Material List - Data
|SECTION START|
4 bytes - int - Material Count
|SECTION END|
Section: Material
Material - Data
|SECTION START|
4 bytes - int - Unknown 12 bytes - RGBA - Colour 4 bytes - int - Unknown 4 bytes - int - Texture Count 4 bytes - float - Unknown 4 bytes - float - Unknown 4 bytes - float - Unknown
|SECTION END|
Section: Texture
Texture - Data
|SECTION START|
2 bytes - int - Texture Filter Mode Flags 2 bytes - int - Unknown
|SECTION END|
Section: Atomic
Atomic - Data
|SECTION START|
4 bytes - int - Frame Number 4 bytes - int - Geometry Number 4 bytes - int - Unknown 4 bytes - int - Unknown
|SECTION END|