Changes

366 bytes added ,  19:15, 15 September 2014
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 ==
35

edits