microsoft / mixed-reality-extension-sdk

The Mixed Reality Extension SDK enables developers to build 3D world extensions for AltspaceVR, using Node.JS.
MIT License
142 stars 61 forks source link

Disable or fix physics axis locking, as current architecture won't work #263

Open sorenhan opened 5 years ago

sorenhan commented 5 years ago

The Plinko board in the physics functional test takes advantage of axis locking to run in 2d. This doesn't work if MRE is not world-aligned.

Suggested solution

  1. remove the ability to do axis locking on X/Y/Z individually, and only support rotation lock (all axes) or position lock (all axes)
  2. implement system that enforces y=up on MRE placement, and we can then lock vertical and Horizontal position and rotation.
  3. Offer real constraints (which may be expensive, and a lot of work).

Solution 1 is the quickest, 2 would add functionality, but would apply global assumptions about unity physics axes. 3 adds a perf cost

Implementing Solution 1 or 2 would require replacing Plinko with another test, 3 is the only one that would enable Plinko to work

I'd recommend implementing solution 1

eanders-ms commented 4 years ago

Thought: In Unity we may be able to implement these constraints as a configurable joint.