Spatial Mapping not considering MRTK 'Is Stationary Observer'

..Even though 'Is Stationary Observer' is turned off, the mapping is still constrained to the devices initial start position, and does not update outside these initial bounds.

Unity Editor version: 2022.2.0b7
ML2 OS version: Build: B3E.220818.12-R.085
MLSDK version: 53.5
Host OS: (Windows/MacOS) Windows 11

Error messages from logs (syntax-highlighting is supported via Markdown):

1 Like

Hi Daniel,

Pleases use the settings on the bottom of the Spatial Mesh profile:

1 Like

Hi, yes this is set as per the settings that you provided, and I extended the bounds there:

The mesh remain fixed and doesn't scan outside of small bounded area, around 2x2x2. I also see that the render mode does not change to Point Cloud when I set that.

This is the same as per the example build that you sent last week, the spatial observer does not move with the device outside the bounds.

1 Like

This is now solved. We were previously having problems the scaling of the mesh, as the BoundedExtentsSize is being passed using the transform.localScale, which was previously commented out. This resulting in the extents size not being set.

1 Like

Hi there - We have similar issue, however the bounds update works fine in the first scene, but in the subsequent scene it doesn't update outside the origin. I've added primitives in order to debug, and the "meshingSubsystemParent" is in fact moving around with the camera, while the "meshParent" stays still (as it's supposed to).
So it seems like something else in the subsystem is misbehaving.

Can confirm the transform being passed during "UpdateBounds" in MeshingSubsystemComponent.cs is correctly being updated by the main camera, however, it still doesn't update outside the origin bounds in the subsequent scene.

Update: Using "Is Bounded" doesn't help.

Update 2:

From further testing, the order of scene launching or whether the system was active in the first or second scene doesn't matter.

I found that our use of ARFoundation's "MakeContentAppearAt" - which moves the playarea including the camera in order to move our root origin for multiplayer - somehow breaks the meshing. The meshing subsystem component's position does in fact move with the camera, however it doesn't update outside the original pose's bounds.

Update 3:
It seems like moving the meshParent transform so it's not at 0.0.0 (when we move MixedRealityPlayspace.Transform) is what breaks it. Doesnt' matter whether we parent the meshParent transform or just set's the pos and rot, it just breaks meshing outside the original bounds.

Update 4:
What's the difference between the two API's;
com.magicleap.unitysdk


vs
com.unity.xr.magicleap

They both seem to have the same API but call different dll's.