Hello everyone.

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?

TamBuiTamBui
edited September 2017 in Q&A and Discussions

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

Answers

  • TamBuiTamBui
    edited September 2017

    @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.

Sign In or Register to comment.