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
6k stars 2.12k forks source link

FloorQuad not on Spatial Mapping layer #3235

Closed jbienzms closed 5 years ago

jbienzms commented 5 years ago

Overview

In HTK, BoundaryManager spawns an instance of FloorQuad to represent the floor of the Playspace. I've noticed that the FloorQuad prefab is set to the Default layer instead of the Spatial Mapping layer and I'm wanting to know if this is intentional.

Having the playspace visible is very helpful for rapidly prototyping HoloLens apps. I know I can set a virtual room via ObjectSurfaceObserver.RoomModel. However, many times just being able to place something on "the floor" is all that's needed for testing.

Would it be a bad idea to update the FloorQuad prefab to instantiate on the SpatialMapping layer (31)? I copied the prefab and did this for my own project and everything seemed to be working well. However, I don't know if that would have a negative impact in another system.

Expected Behavior

The floor of the BoundaryManager would be on the SpatialMapping layer.

Actual Behavior

The floor of the BoundaryManager is on the Default layer.

Mixed Reality Toolkit Release Version

Pull from Master branch on 12/4.

david-c-kline commented 5 years ago

I'm wanting to know if this is intentional.

It was intentional as the boundary floor visualization is not related at all to spatial mapping data. In fact, the boundary system is largely targeted at VR scenarios.

Would it be a bad idea to update the FloorQuad prefab to instantiate on the SpatialMapping layer (31)? I copied the prefab and did this for my own project and everything seemed to be working well. However, I don't know if that would have a negative impact in another system.

Interesting thought. There shouldn't be any negative effects to changing the layer.

@jbienzms , mind if I contact you offline to understand your scenario more fully?

StephenHodgson commented 5 years ago

I don't see why we couldn't add an optional configuration option in the profile to specify the physics layer to put the floor quad on.

jbienzms commented 5 years ago

I do understand that the floor quad is really there for VR. And I do understand that I'm trying to use it as a simulation / prototyping tool in this case. What I like about @StephenHodgson suggestion for allowing the layer to be configurable is that it doesn't explicitly force the floor quad to be reported as a "spatial mesh", but could be setup that way if desired.

@davidkline-ms Sure David, happy to chat. You can ping me on teams whenever.

david-c-kline commented 5 years ago

This is now confirgurable in the boundary system profile. the default layer is current "Default" and can be changed by the app dev.

jbienzms commented 5 years ago

Awesome @davidkline-ms. Thank you!