Skip to content

Havok MOPP Data format

Candoran2 edited this page Aug 19, 2021 · 19 revisions

The MOPP data in a havok block is difficult to capture in the xml format. The reason why should be apparent after reading this article. What follows is a best attempt at describing the data tree and how it is likely used.

The data setup and parsing

The main function of the MOPP data is to form a bounding box of sorts. It can take in a position and return all the triangles that position can collide with. It does this through a tree, set up from up to 256 different node types. These different types can be broken down into three subcategories:

  1. Nodes with only 1 child (filter/alteration nodes).
  2. Nodes with 2 children (decision nodes).
  3. Nodes with no children (triangle/leaf nodes).

These nodes form a decision tree. These decisions are made based on the input position, and the parser can go down both children of a decision node if they both qualify.

The scale/input

Parsing

The node types

Clone this wiki locally