PATH (File Format): Difference between revisions

From Retro Modding Wiki
Jump to navigation Jump to search
imported>Jackoalan
(Initial PATH doc)
imported>Jackoalan
No edit summary
Line 1: Line 1:
{{research|2|The BSP tables at the end need research}}
{{research|2|The BSP tables at the end need research}}
The '''PATH format''' is used to store an area's [[wikipedia:Navigation Mesh]] in the ''Metroid Prime'' series.
The '''PATH format''' is used to store an area's [[wikipedia:Navigation Mesh|Navigation Mesh]] in the ''Metroid Prime'' series.
Like navigation meshes in many other game engines (Unity, Source, etc...), the PATH format represents an ''n-gon mesh''
Like navigation meshes in many other game engines (Unity, Source, etc...), the PATH format represents an ''n-gon mesh''
partitioned into a BSP tree for rapid queries.
partitioned into a BSP tree for rapid queries.
Line 19: Line 19:
|
|
|-
|-
|[[#Vertex Entry]]
|[[#Vertex Entry|Vertex Entry]]
|Vertex Table
|Vertex Table
|
|
Line 27: Line 27:
|
|
|-
|-
|[[#Edge Entry]]
|[[#Edge Entry|Edge Entry]]
|Edge Table
|Edge Table
|
|
Line 35: Line 35:
|
|
|-
|-
|[[#Polygon Entry]]
|[[#Polygon Entry|Polygon Entry]]
|Polygon Table
|Polygon Table
|
|
Line 80: Line 80:
|long
|long
|Polygon A index
|Polygon A index
|
|References into [[#Polygon Entry|Polygon Table]]
|-
|-
|0x4
|0x4
Line 86: Line 86:
|long
|long
|Polygon B index
|Polygon B index
|
|References into [[#Polygon Entry|Polygon Table]]
|-
|-
|0x8
|0x8
Line 120: Line 120:
|long
|long
|Vertex Start Index
|Vertex Start Index
|References into [[#Vertex Table]]
|References into [[#Vertex Entry|Vertex Table]]
|-
|-
|0x8
|0x8
Line 132: Line 132:
|long
|long
|Edge Start Index
|Edge Start Index
|References into [[#Edge Table]]
|References into [[#Edge Entry|Edge Table]]
|-
|-
|0x10
|0x10

Revision as of 20:07, 21 February 2015

This file format needs more research
The BSP tables at the end need research

The PATH format is used to store an area's Navigation Mesh in the Metroid Prime series. Like navigation meshes in many other game engines (Unity, Source, etc...), the PATH format represents an n-gon mesh partitioned into a BSP tree for rapid queries.

Format

Data Type Description Notes
long Version Always 0x4 in GM8E-0-00 and Trilogy release.
long Vertex count
Vertex Entry Vertex Table
long Edge count
Edge Entry Edge Table
long Polygon count
Polygon Entry Polygon Table
Unknown BSP Tables

Vertex Entry

Offset Length Data Type Description Notes
0x0 12 float3 Vertex Position
0xC 12 float3 Vertex Normal

Edge Entry

Offset Length Data Type Description Notes
0x0 4 long Polygon A index References into Polygon Table
0x4 4 long Polygon B index References into Polygon Table
0x8 4 float Edge Length
0xC 4 float Unknown Normalized [0,1] Value Speculation: Cost of edge traversal (i.e. edge steepness). Characters may have a set threshold when selecting edges to traverse.

Polygon Entry

Offset Length Data Type Description Notes
0x0 4 long Vertex Count Specifies range of vertices
0x4 4 long Vertex Start Index References into Vertex Table
0x8 4 long Edge Count Specifies range of edges
0xC 4 long Edge Start Index References into Edge Table
0x10 2 short Unknown Range [1,7]
0x12 2 short Unknown meta-data Possible Values (1,2,4)
0x14 4 float Polygon area
0x18 12 float3 Polygon normal
0x24 4 long Self-index References polygon's own index in table
0x28 12 float3 AABB-min
0x34 12 float3 AABB-max
0x40 12 float3 Polygon center position
0x4C 4 long Self-index A duplicate of the 0x24 value for some reason