The Mixed Reality Forums here are no longer being used or maintained.
There are a few other places we would like to direct you to for support, both from Microsoft and from the community.
The first way we want to connect with you is our mixed reality developer program, which you can sign up for at https://aka.ms/IWantMR.
For technical questions, please use Stack Overflow, and tag your questions using either hololens or windows-mixed-reality.
If you want to join in discussions, please do so in the HoloDevelopers Slack, which you can join by going to https://aka.ms/holodevelopers, or in our Microsoft Tech Communities forums at https://techcommunity.microsoft.com/t5/mixed-reality/ct-p/MicrosoftMixedReality.
And always feel free to hit us up on Twitter @MxdRealityDev.
Share hologram's real world position between HoloLens and Immersive Headset device?
Let's say that I have a HoloLens user in a room, and an Immersive Headset user in that same room. I understand that the HoloLens user can see everything in the room optically, but the Immersive Headset user cannot because the user is fully immersed in VR.
But, is it possible for the HoloLens user to place a hologram somewhere in the room, say on a table, and have the Immersive Headset user see the hologram at the same real world position? I understand the Immersive Headset user won't be able to see the table.
I was able to share a hologram's transform position and rotation between the two devices, following the sharing guidelines of the Holograms 240 tutorial. But I'm not seeing the hologram where I want it to be in the Immersive Headset.
Here is how I am packaging the bytes of the hologram's position and rotation:
public byte[] GetHologramPositionRotationInBytes() { var floatArray = new float[] { this.gameObject.transform.position.x, this.gameObject.transform.position.y, this.gameObject.transform.position.z, this.gameObject.transform.rotation.x, this.gameObject.transform.rotation.y, this.gameObject.transform.rotation.z, this.gameObject.transform.rotation.w }; var byteArray = new byte[floatArray.Length * 4]; Buffer.BlockCopy(floatArray, 0, byteArray, 0, byteArray.Length); return byteArray; }
The receiving device simply decodes the bytes above. However, I suspect that the transform data appears to be from the perspective of the HoloLens headset only, and not a world position. So my question is, is it even possible to share a real world point between the HoloLens and Immersive Headset devices? If so, how do I do this?
Thanks for reading,
Tam
Best Answer
-
Patrick mod
This is not currently supported. I have faked it by starting the app in both devices from the same physical location, going so far as to stream the spatial mapping from the HoloLens to the immersive device and confirm that I can 'see' the real world from the immersive device. However if I don't start in the exact right spot, everything is off.
There might be something that you could do with image tags, like putting a tag on the immersive headset and then have the HoloLens find the tag in space and localize to that.
===
This post provided as-is with no warranties and confers no rights. Using information provided is done at own risk.(Daddy, what does 'now formatting drive C:' mean?)
5
Answers
This is not currently supported. I have faked it by starting the app in both devices from the same physical location, going so far as to stream the spatial mapping from the HoloLens to the immersive device and confirm that I can 'see' the real world from the immersive device. However if I don't start in the exact right spot, everything is off.
There might be something that you could do with image tags, like putting a tag on the immersive headset and then have the HoloLens find the tag in space and localize to that.
===
This post provided as-is with no warranties and confers no rights. Using information provided is done at own risk.
(Daddy, what does 'now formatting drive C:' mean?)
@Patrick Thanks for the reply. I too have faked it using a similar strategy, but it's just not feasible or practical to have two people starting in the exact same world position, and facing in the exact same direction.
I'll do some more digging to see if it is possible using Windows.Perception.SpatialAnchor API's, but I'm not sure if those API's are exposed for Immersive Headsets. Will see.