Difference between revisions of "Breakable (RW Section)"
Jump to navigation
Jump to search
m |
(reworked, fixed) |
||
Line 1: | Line 1: | ||
{{RW Section|Mesh Extension|0x0253F2FD}} | {{RW Section|Mesh Extension|0x0253F2FD}} | ||
− | '''Mesh Extension''' is one of Rockstar's [[List of RW section IDs#Rockstar.27s_Custom_Sections|custom sections]] used in [[:Category:GTA SA|GTA San Andreas]] | + | '''Mesh Extension''' is one of Rockstar's [[List of RW section IDs#Rockstar.27s_Custom_Sections|custom sections]] used in [[:Category:GTA SA|GTA San Andreas]]. It contains information on how to split breakable objects when they are hit. An object including this section has to be defined in [[object.dat]]. |
The typical location in a SA [[model file|dff]] section hierarchy is ''[[Clump (RW Section)|Clump]] > [[Geometry List (RW Section)|Geometry List]] > [[Geometry (RW Section)|Geometry]] > [[Extension (RW Section)|Extension]] > Mesh Extension. | The typical location in a SA [[model file|dff]] section hierarchy is ''[[Clump (RW Section)|Clump]] > [[Geometry List (RW Section)|Geometry List]] > [[Geometry (RW Section)|Geometry]] > [[Extension (RW Section)|Extension]] > Mesh Extension. | ||
− | |||
− | |||
==Header== | ==Header== | ||
− | + | There is a ''56 byte'' header which holds information about the amount of data arrays that follow. | |
− | |||
− | |||
− | |||
− | |||
− | + | 4b - BYTE[4] - unknown, same as in the [[Night Vertex Colors (RW Section)|Night Vertex Colors]] section | |
− | + | 4b - UINT32 - Always 1 | |
− | 4b - UINT32 - | + | 4b - UINT32 - Vertex Count |
− | 4b - UINT32 - | ||
4b - UINT32 - Unknown (usually 0) | 4b - UINT32 - Unknown (usually 0) | ||
4b - UINT32 - Unknown (usually 0) | 4b - UINT32 - Unknown (usually 0) | ||
4b - UINT32 - Unknown (usually 0) | 4b - UINT32 - Unknown (usually 0) | ||
− | 4b - UINT32 - | + | 4b - UINT32 - Face Count |
4b - UINT32 - Unknown (usually 0) | 4b - UINT32 - Unknown (usually 0) | ||
4b - UINT32 - Unknown (usually 0) | 4b - UINT32 - Unknown (usually 0) | ||
4b - UINT32 - Unknown (usually 0) | 4b - UINT32 - Unknown (usually 0) | ||
− | 4b - UINT32 - | + | 4b - UINT32 - Material Count (= Fragment Count) |
4b - UINT32 - Unknown (usually 0) | 4b - UINT32 - Unknown (usually 0) | ||
4b - UINT32 - Unknown (usually 0) | 4b - UINT32 - Unknown (usually 0) | ||
4b - UINT32 - Unknown (usually 0) | 4b - UINT32 - Unknown (usually 0) | ||
− | + | ==Geometry Data== | |
− | |||
− | == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Vertices: array of <nowiki>[Vertex Count]</nowiki> elements | |
− | + | 12b - FLOAT[3] - XYZ | |
− | + | ||
+ | UV Coords: array of <nowiki>[Vertex Count]</nowiki> elements | ||
+ | 8b - FLOAT[2] - UV | ||
+ | |||
+ | Vertex Colors: array of <nowiki>[Vertex Count]</nowiki> elements | ||
+ | 4b - BYTE[4] - RGBA | ||
+ | |||
+ | Faces: array of <nowiki>[Face Count]</nowiki> elements | ||
+ | 6b - UINT16[3] - 3 indices into vertex array | ||
+ | |||
+ | Material Assignments: array of <nowiki>[Face Count]</nowiki> elements | ||
+ | 2b - UINT16 - Material ID | ||
− | = | + | ==Material Data== |
− | + | Each polygon group sharing the same material is treated as a separate fragment when the object is split up. | |
− | + | Texture Names: array of <nowiki>[Material Count]</nowiki> elements | |
+ | 32b - CHAR[32] - Texture Name | ||
+ | |||
+ | Alpha Names: array of <nowiki>[Material Count]</nowiki> elements | ||
+ | 32b - CHAR[32] - Alpha Texture Name | ||
+ | |||
+ | Material Properties: array of <nowiki>[Material Count]</nowiki> elements | ||
+ | 4b - FLOAT[3] - Unknown, possibly ambient/diffuse/specular, often 1.0 | ||
+ | ==Tools and Scripts== | ||
* [http://www.gtaforums.com/index.php?showtopic=269717 Breakable Objects Export Script] by [[User:Deniska|Deniska]]. A script for 3dsMax which allows to export MeshExtension information to seperate files. | * [http://www.gtaforums.com/index.php?showtopic=269717 Breakable Objects Export Script] by [[User:Deniska|Deniska]]. A script for 3dsMax which allows to export MeshExtension information to seperate files. |
Revision as of 20:59, 1 October 2007
{{{NAME}}} | |
---|---|
RenderWare Stream Section | |
Vendor | {{{VENDORNAME}}} |
Module | {{{MODULENAME}}} |
Module ID | 0x{{{MODULEID}}}
|
Identifier | 0x{{{IDENTIFIER}}}
|
Chunk ID | 0x{{{MODULEID}}}{{{IDENTIFIER}}}
|
Versions | All |
Hierarchy | |
Parents: None | |
Children: None | |
Extensions: None | |
File Format |
Mesh Extension is one of Rockstar's custom sections used in GTA San Andreas. It contains information on how to split breakable objects when they are hit. An object including this section has to be defined in object.dat.
The typical location in a SA dff section hierarchy is Clump > Geometry List > Geometry > Extension > Mesh Extension.
Header
There is a 56 byte header which holds information about the amount of data arrays that follow.
4b - BYTE[4] - unknown, same as in the Night Vertex Colors section 4b - UINT32 - Always 1 4b - UINT32 - Vertex Count 4b - UINT32 - Unknown (usually 0) 4b - UINT32 - Unknown (usually 0) 4b - UINT32 - Unknown (usually 0) 4b - UINT32 - Face Count 4b - UINT32 - Unknown (usually 0) 4b - UINT32 - Unknown (usually 0) 4b - UINT32 - Unknown (usually 0) 4b - UINT32 - Material Count (= Fragment Count) 4b - UINT32 - Unknown (usually 0) 4b - UINT32 - Unknown (usually 0) 4b - UINT32 - Unknown (usually 0)
Geometry Data
Vertices: array of [Vertex Count] elements 12b - FLOAT[3] - XYZ UV Coords: array of [Vertex Count] elements 8b - FLOAT[2] - UV Vertex Colors: array of [Vertex Count] elements 4b - BYTE[4] - RGBA Faces: array of [Face Count] elements 6b - UINT16[3] - 3 indices into vertex array Material Assignments: array of [Face Count] elements 2b - UINT16 - Material ID
Material Data
Each polygon group sharing the same material is treated as a separate fragment when the object is split up.
Texture Names: array of [Material Count] elements 32b - CHAR[32] - Texture Name Alpha Names: array of [Material Count] elements 32b - CHAR[32] - Alpha Texture Name Material Properties: array of [Material Count] elements 4b - FLOAT[3] - Unknown, possibly ambient/diffuse/specular, often 1.0
Tools and Scripts
- Breakable Objects Export Script by Deniska. A script for 3dsMax which allows to export MeshExtension information to seperate files.