3D Geometry & Models
At the heart of the Odyssey Engine’s visual presentation is a proprietary structural design for interpreting and rendering 3D geometry. Modern formats like .glTF or .fbx bundle all visual and physical data into a single asset. KotOR however, splits this data across several distinct files. The engine strictly decouples the node hierarchy tree, the raw vertex buffers, and the mathematical collision boundaries.
Note
If you are looking for the exact underlying raw Ghidra decompilation notes detailing the K1 Engine’s
InputBinary::Readpipeline and structural layout bytes, please refer to the preserved Raw MDL Decompilation Archive.
Implementation Blueprints
This section documents the primary pillars of KOTOR geometry and their mathematical foundations, backed by swkotor.exe clean-room reverse engineering.
| Format | Name | Layout & Purpose |
|---|---|---|
| MDL | Model Hierarchy | The architectural scaffold holding the model together. It defines the scene bounding volumes, spatial rotations, embedded animations, engine rendering parameters, and a deep recursive tree of typed Nodes (e.g., Lights, Bones, Emitters, Trimeshes). |
| MDX | Vertex Data | The abstract mathematical arrays defining the actual rendering payload. It directly encodes interleaved array blocks mapping exact spatial coordinates (X, Y, Z), texture UV layouts, and Lighting Normals. |
| BWM | Walkmeshes | The raw mathematical graph of AABB bounds and face intersections that serve as physics collision boxes for area environments (.wok), placeables (.pwk), and interactive doors (.dwk). |
| Math | TriMesh Derivations | Documentation explaining exactly how variables like coordinate bounds and face offsets are mathematically derived across both visual Trimeshes and collision Walkmeshes. |