MicrosoftDocs / mixed-reality

Mixed Reality documentation
Creative Commons Attribution 4.0 International
175 stars 186 forks source link

RoverAssembly Disappears When I Move It #23

Closed LVEstela closed 4 years ago

LVEstela commented 4 years ago

FIrst up, the tutorials are great, really clear and easy to follow. Thank you for being so thorough with them.

I'm up to the point though, where I'm testing taptoplace in the Hololens2 and every time I tap to grab the RoverAssembly, I can pick it up and move it slightly, but then it just disappears without me having done the second tap. Testing in the game panel in Unity it works just as expected with the left click to pick up, right to move my gaze, left click to place, but in the headset I loose it everytime. I'm just in a small room, testing it on the floor in front of me.

I've doubled checked my steps and I have everything just as the tutorial says, so I'm a bit stumped. Any known trouble spots for the taptoplace movement?

Many Thanks!

[Enter feedback here]


Document Details

Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

hferrone commented 4 years ago

Hi @LVEstela, thanks for the kudos! Can you tell me what version of Unity you're using? I'm pinging @martinwilter to assist :)

martinwilter commented 4 years ago

Hi @LVEstela,

Glad to hear the tutorials are helpful :)

While debugging/trying to fix this issue, I recommend making the spatial mesh visible. You can follow the 5. Change the visibility of the spatial awareness mesh instructions, but set the Display Option to Visible (instead of Occlusion). This will let you see the Spatial Awareness mesh in your HL2 and because occlusion is now disabled, the Spatial Awareness mesh will not hide the RoverAssembly if it happens to be behind it.

If you now deploy the app and still don't see the RoverAssembly after you triggered the tap to place functionality, I think the issue might be related to the solver issue and that once you trigger the tap to place functionality that bug is causing the model to become so tiny that you can no longer see it.

A common way to work around the issue is to disable smoothing on the solver component, however, since this will need to be done on most or all solver components in the project, we usually use the ARM workaround:

If the ARM architecture is required, navigate to Edit > Project Settings, Player, and under the Other Settings menu disable Graphics Jobs.

Please give this a try and let us know how if using ARM as the build architecture solved the issue, thanks!

LVEstela commented 4 years ago

Hi Harrison and Martin,

Thanks for your very speedy response. I'm using Unity 2019.4.4f1 with the latest MRTK 2.4.0 and Visual Studio 2019 Version 16.7.2 and I have a Hololens2

I had already had the spatial mesh visible (I had gone back and switched that so I could see where it might be going), and I disabled the Graphics Jobs but it still disappeared. Because it's really early in the morning here and the room was really dark I could actually see today that the rover was there, but tiny like you said.

My settings in Visual Studio to deploy were,

Release -- ARM64 -- Device and then Start Without Debugging.

I changed this to

Release -- ARM -- Device and then Start Without Debugging.

And it worked! Can you see any potential problems with the switch from ARM64 to ARM? I'm pretty new to Unity and Hololens development (I somehow managed to stumble my way into a prototype with the Speech Pathology Department at a Uni in Sydney) so I'm still getting my head around the compile settings so I apologize if this is a stupid question.

Many thanks for your help, I really appreciate it! Lucy

On Sat, Aug 29, 2020 at 3:49 AM Martin Wilter notifications@github.com wrote:

Hi @LVEstela https://github.com/LVEstela,

Glad to hear the tutorials are helpful :)

While debugging/trying to fix this issue, I recommend making the spatial mesh visible. You can follow the 5. Change the visibility of the spatial awareness mesh https://docs.microsoft.com/en-us/windows/mixed-reality/mr-learning-base-03#5-change-the-visibility-of-the-spatial-awareness-mesh instructions, but set the Display Option to Visible (instead of Occlusion). This will let you see the Spatial Awareness mesh in your HL2 and because occlusion is now disabled, the Spatial Awareness mesh will not hide the RoverAssembly if it happens to be behind it.

If you now deploy the app and still don't see the RoverAssembly after you triggered the tap to place functionality, I think the issue might be related to the solver issue https://github.com/microsoft/MixedRealityToolkit-Unity/issues/7624 and that once you trigger the tap to place functionality that bug is causing the model to become so tiny that you can no longer see it.

A common way to work around the issue is to disable smoothing on the solver component, however, since this will need to be done on most or all solver components in the project, we usually use the ARM workaround https://microsoft.github.io/MixedRealityToolkit-Unity/version/releases/2.4.0/Documentation/BuildAndDeploy.html#unity-20193-and-hololens :

If the ARM architecture is required, navigate to Edit > Project Settings, Player, and under the Other Settings menu disable Graphics Jobs.

Please give this a try and let us know how if using ARM as the build architecture solved the issue, thanks!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/MicrosoftDocs/mixed-reality/issues/23#issuecomment-682988579, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQYZQ4GM4AQFJ2TAD2MCLHDSC7U3JANCNFSM4QNVWMRQ .

martinwilter commented 4 years ago

Hi @LVEstela,

Thanks for reporting back with details. Great to hear targeting ARM instead of ARM64 worked out.

Can you see any potential problems with the switch from ARM64 to ARM? I'm pretty new to Unity and Hololens development (I somehow managed to stumble my way into a prototype with the Speech Pathology Department at a Uni in Sydney) so I'm still getting my head around the compile settings so I apologize if this is a stupid question.

As far as I know, the only difference is that ARM64 has better performance than ARM (ARM32), and since you can easily re-deploy targeting ARM64, I don't see any potential problems with using ARM until this bug has been fixed. The solver issue has been around for a while so hopefully we will see a fix soon.

However, if you face performance issues that can't be address with optimization, you might want to consider testing your app with ARM64, in which case you will probably have to disable the smoothing on all the solvers in your project.

Congrats on your new adventure, should be a lot of fun 😀