microsoft / MixedRealityToolkit-Unity

This repository is for the legacy Mixed Reality Toolkit (MRTK) v2. For the latest version of the MRTK please visit https://github.com/MixedRealityToolkit/MixedRealityToolkit-Unity
https://aka.ms/mrtkdocs
MIT License
6.01k stars 2.12k forks source link

Room scanning progress and mesh volumes #3205

Closed farstarss closed 5 years ago

farstarss commented 5 years ago

Does this affect the legacy HoloToolkit (master) or the Mixed Reality Toolkit (mrtk_release)? HoloToolkit

Is your feature request related to a problem? Please describe. I've got 2 related questions:

  1. Using SpatialUnderstanding I am able to scan a room and request the final 'water tight' mesh, but how do I indicate which parts of a room still needs scanning / has 'holes' in the mesh?
  2. How do I remove the volume borders / get a mesh with all volumes merged without finalizing the scan?

If there is a solution to question 1, question 2 can gracefully be omitted.

Describe the solution you'd like I'd like to show the user of my app where to scan / which parts of a room are unscanned before finalizing the scan.

Describe alternatives you've considered So far I couldn't find any easy solution for question 1 and the process is as follows:

The issue with this approach is: The room is separated into multiple volumes by the size of (2.5 m)³ and thus the above algorithm not only gives me the holes in the mesh but also the borders of a volume where it intersects with the environment.

Additional context The hololens will only be used to create a 3D model of a room which will then be stored and used with other VR headsets. The usual 'just look around until we have enough spatial understanding information' is not satisfactory.

farstarss commented 5 years ago

Scanning a room with the Hololens using the HoloToolKit for the whole purpose of getting a 3D scan seems to be something that's not intended to be done.

However, there is a solution to the described issue with the approach above, that I would like to share in case anyone else is facing this:

As mentioned in the original message, scanning a room divides it into multiple overlapping volumes of (2.5 m)³. Each of these volumes has its local (0,0,0) point in the center of that volume. Thus one can check if both vertices of a solitary edge have an absolute value for x, y or z that is larger than 1.25 (= 2.5/2). If that's the case, one can assume that this edge is in fact a volume border and simply ignore it in the further process.

Yoyozilla commented 5 years ago

Closing older HTK issue as we are no longer actively working on HTK.

Please upgrade to MRTK V2 for the latest fixes.