CGFX: Difference between revisions

SOBJ: mesh offsets
Line 427: Line 427:
|}
|}


Vertex groups come in a number of different formats. Typically the first vertex group entry is of format 0x40000002 and contains the actual vertex array.


Vertex group objects come in one of several formats, specified by the flags field.
Vertex group format 0x40000002:
 
Vertex group format 0x40000001: (?)


{| class="wikitable"
{| class="wikitable"
Line 440: Line 439:
| 0x0
| 0x0
| 0x4
| 0x4
| Flags (0x40000001)
| Flags (0x40000002)
|-
|-
| 0x4
| 0x4
| 0x4
| 0x4
| Type ?
| ?
|-
|-
| 0x8
| 0x8
Line 475: Line 474:
|-
|-
| 0x24
| 0x24
| 0x1
| 0x4
| ?
| Vertex stride/size in bytes (see below)
|-
| 0x25
| 0x1
| ?
|-
| 0x26
| 0x1
| ?
|-
| 0x27
| 0x1
| ?
|-
|-
| 0x28
| 0x28
| 0x4
| 0x4
| ?
| Unknown3 count
|-
|-
| 0x2C
| 0x2C
| 0x4
| 0x4
| ? (float)
| Offset (self-relative) to component declaration offset array
|-
| 0x30
| 0x4
| ?
|}
|}


Vertex group format 0x40000002:
Each mesh's primary vertex group contains an array of vertex component declaration objects, defining the parameters for each of a vertex's components.
 
Vertex component declaration:


{| class="wikitable"
{| class="wikitable"
Line 513: Line 498:
| 0x0
| 0x0
| 0x4
| 0x4
| Flags (0x40000002)
| Flags (0x40000001)
|-
|-
| 0x4
| 0x4
| 0x4
| 0x4
| ?
| Vertex component type (see below)
|-
|-
| 0x8
| 0x8
Line 533: Line 518:
| 0x14
| 0x14
| 0x4
| 0x4
| Vertex array size (in bytes)
| ?
|-
|-
| 0x18
| 0x18
| 0x4
| 0x4
| Offset (self-relative) to vertex array
| ?
|-
|-
| 0x1C
| 0x1C
Line 548: Line 533:
|-
|-
| 0x24
| 0x24
| 0x4
| 0x1
| Vertex stride/size in bytes (see below)
| Component data type (see below)
|-
| 0x25
| 0x1
| ?
|-
| 0x26
| 0x1
| ?
|-
| 0x27
| 0x1
| ?
|-
|-
| 0x28
| 0x28
| 0x4
| 0x4
| Unknown3 count
| Number of values in this component (e.g. XYZ->3, UV->2)
|-
|-
| 0x2C
| 0x2C
| 0x4
| 0x4
| Offset (self-relative) to 0x40000001 offset array
| Multiplier for this component's values (float)
|-
| 0x30
| 0x4
| Position of this component within vertex stride
|}
|}


Vertex formats:
Observed sample vertex format sizes:


{| class="wikitable"
{| class="wikitable"
Line 592: Line 593:
|}
|}


Vertex format 0x28 (and possibly others) supports multiple bone assignment. In this case, the sum of all bone weights is 0x64.
Vertex formats with bone data support multiple bone assignment. In this case, the sum of all bone weights is 0x64.


== TXOB ==
== TXOB ==