private void onHeadsetUpdate(
            Matrix4x4 leftProjectionMatrix,
            Matrix4x4 rightProjectionMatrix,
            Matrix4x4 leftViewMatrix,
            Matrix4x4 rightViewMatrix,
            Matrix4x4 sitStandMatrix)
        {
            if (xrState == WebXRState.VR)
            {
                WebXRMatrixUtil.SetTransformFromViewMatrix(cameraL.transform, leftViewMatrix * sitStandMatrix.inverse);

                cameraL.projectionMatrix = leftProjectionMatrix;

                WebXRMatrixUtil.SetTransformFromViewMatrix(cameraR.transform, rightViewMatrix * sitStandMatrix.inverse);

                cameraR.projectionMatrix = rightProjectionMatrix;
            }
            else if (xrState == WebXRState.AR)
            {
                WebXRMatrixUtil.SetTransformFromViewMatrix(cameraARL.transform, leftViewMatrix * sitStandMatrix.inverse);

                cameraARL.projectionMatrix = leftProjectionMatrix;

                WebXRMatrixUtil.SetTransformFromViewMatrix(cameraARR.transform, rightViewMatrix * sitStandMatrix.inverse);

                cameraARR.projectionMatrix = rightProjectionMatrix;
            }
        }
Example #2
0
 private void OnHMDUpdate(
     Matrix4x4 leftProjectionMatrix,
     Matrix4x4 rightProjectionMatrix,
     Matrix4x4 leftViewMatrix,
     Matrix4x4 rightViewMatrix,
     Matrix4x4 sitStandMatrix)
 {
     WebXRMatrixUtil.SetTransformFromViewMatrix(_leftEye.transform, leftViewMatrix * sitStandMatrix.inverse);
     WebXRMatrixUtil.SetTransformFromViewMatrix(_rightEye.transform, rightViewMatrix * sitStandMatrix.inverse);
 }
Example #3
0
    private void onHeadsetUpdate(Matrix4x4 leftProjectionMatrix,
                                 Matrix4x4 rightProjectionMatrix,
                                 Matrix4x4 leftViewMatrix,
                                 Matrix4x4 rightViewMatrix,
                                 Matrix4x4 sitStandMatrix)
    {
        Matrix4x4 trs = WebXRMatrixUtil.TransformViewMatrixToTRS(leftViewMatrix);

        this.headRotation = WebXRMatrixUtil.GetRotationFromMatrix(trs);
        this.headPosition = WebXRMatrixUtil.GetTranslationFromMatrix(trs);
        this.sitStand     = sitStandMatrix;
    }
Example #4
0
 protected void onHeadsetUpdate(
     Matrix4x4 leftProjectionMatrix,
     Matrix4x4 rightProjectionMatrix,
     Matrix4x4 leftViewMatrix,
     Matrix4x4 rightViewMatrix,
     Matrix4x4 sitStandMatrix)
 {
     if (_wxrManager.xrState == WebXRState.ENABLED)
     {
         WebXRMatrixUtil.SetTransformFromViewMatrix(_cameraLeft.transform, leftViewMatrix * sitStandMatrix.inverse);
         _cameraLeft.projectionMatrix = leftProjectionMatrix;
         WebXRMatrixUtil.SetTransformFromViewMatrix(_cameraRight.transform, rightViewMatrix * sitStandMatrix.inverse);
         _cameraRight.projectionMatrix = rightProjectionMatrix;
     }
 }
Example #5
0
    void LateUpdate()
    {
        if (OnHeadsetUpdate != null && this.xrState == WebXRState.ENABLED)
        {
            Matrix4x4 leftProjectionMatrix  = WebXRMatrixUtil.NumbersToMatrix(GetFromSharedArray(0));
            Matrix4x4 rightProjectionMatrix = WebXRMatrixUtil.NumbersToMatrix(GetFromSharedArray(1));
            Matrix4x4 leftViewMatrix        = WebXRMatrixUtil.NumbersToMatrix(GetFromSharedArray(2));
            Matrix4x4 rightViewMatrix       = WebXRMatrixUtil.NumbersToMatrix(GetFromSharedArray(3));
            Matrix4x4 sitStandMatrix        = WebXRMatrixUtil.NumbersToMatrix(GetFromSharedArray(4));
            if (!this.capabilities.hasPosition)
            {
                sitStandMatrix = Matrix4x4.Translate(new Vector3(0, this.DefaultHeight, 0));
            }

            OnHeadsetUpdate(
                leftProjectionMatrix,
                rightProjectionMatrix,
                leftViewMatrix,
                rightViewMatrix,
                sitStandMatrix);
        }
    }