microsoft / MixedReality-WorldLockingTools-Unity

Unity tools to provide a stable coordinate system anchored to the physical world.
https://microsoft.github.io/MixedReality-WorldLockingTools-Unity/README.html
MIT License
188 stars 45 forks source link

The Meaning of FrozenWorld PlugIn "Support" and "Relevance" #309

Open laultman opened 1 year ago

laultman commented 1 year ago

There are several methods calling the PlugIn that talk about "Supports" and "Relevance". These are mentioned in the documentation with no definition of what they are or what they mean. They are used together and must then have some value. They are related to alignment. These are used in the WLT code so must have some value and purpose.

From the code it is clear that FW generates some sort of float value of relevance. What that value means is unknown. It seems to have some meaning because it is used in the code for visualizations. I expect is must be used elsewhere.

Could you provide some clarity around these rather undocumented values and methods?

fieldsJacksonG commented 1 year ago

Supports are the attachment points that are closest to the player. These are found in the underlying frozen world DLL with FrozenWorld_Step_GatherSupports, and used to compute the player's pose.

Relevance is used to determine which attachment points are most important to use when calculating poses. The closer the attachment point is to the player, the closer it will be to 1.

laultman commented 1 year ago

Thank you, Jackson I appreciate the answer. I am porting the plugin to .NET to use in a native render engine. My goal in the port is to first just get it working basically as it does in Unity. Once I understand what it is really doing, I expect to create a C++ API that is friendly with .NET and the Windows (HoloLens 2) world. I don't have any need for cross platform compatibility, so I want to optimize to the fullest extent possible in a .NET world. I am developing for USMC and that is a closed network. We can't use ARR because it is not deployed in Azure Gov/DOD. We have a standalone requirement (think edge compute). As you seem familiar with the plugin, do you know where I might find documentation on its internals?