Non-orthogonal rotation matrices are unsupported by collision shape generation

This morning a user reported in the Starwind discord that the cell Kashyyk, Kinrath Lair appeared to lack collision entirely. Screenshots of the team discussing with them, since most of the OpenMW devs aren't over there:

Screenshot_20250113_194019 Screenshot_20250113_194037

This same report also made it into OpenMW's troubleshooting channel: https://discord.com/channels/260439894298460160/260443579908882434/1328466581780435095

It only goes downhill from here.

I traced this particular user's problem to the meshes kashwebdung1.nif and kashwebdoor.nif, and tried:

  1. Moving the RootCollisionNode in the nif to be a child of the root node, which it currently is not. No change
  2. Removing the RootCollisionNode entirely, no change
  3. Removing and regenerating the navmesh db, no change (is 117 million tiles a reasonable amount for a setup like this, or?)

Visual output of TCB in this cell, first in 0.49 and then 0.48: screenshot158 screenshot311

However, this is just what is most obviously affecting users.

boylewookv.nif: screenshot151

walkrail4.nif: (yes, really, these are the rope bridges) screenshot150 screenshot149

boyletree.nif: screenshot148 This one's a bit hard to see the problem with, but it's as though the actual tcb output is offset about six or eight feet to the right of the actual rendered geometry of the tree mesh. You can actually collide with the lines themselves, but the in-between bits you can walk through fine. Maybe my explanation was bad, can provide a video if needed.

badcollision.zip

Edited by Dave Corley