Beispiel #1
0
 private void SetAttachedCameraIndex()
 {
     if (CameraIndex == DualCameraIndex.LEFT)
     {
         if (IsForCalibration)
         {
             AttachedCameraIndex = DualCameraIndex.RIGHT;
         }
         else
         {
             AttachedCameraIndex = DualCameraIndex.LEFT;
         }
     }
     else
     {
         if (IsForCalibration)
         {
             AttachedCameraIndex = DualCameraIndex.LEFT;
         }
         else
         {
             AttachedCameraIndex = DualCameraIndex.RIGHT;
         }
     }
 }
Beispiel #2
0
        /// <summary>
        /// Mirror the uv because the origin point of images of Unity is different from the source image.
        /// </summary>
        /// <param name="eye"></param>
        private void SetUV(DualCameraIndex eye)
        {
            Vector2[] srcUV = planeMesh.uv;
            Vector2[] dstUV = new Vector2[srcUV.Length];
            for (int i = 0; i < srcUV.Length; i++)
            {
                dstUV[i] = new Vector2(srcUV[i].x, srcUV[srcUV.Length - i - 1].y);
            }
            planeMesh.uv = dstUV;

            GetComponent <MeshFilter>().sharedMesh = planeMesh;
        }
Beispiel #3
0
        private bool CheckLayers(DualCameraIndex cameraIndex)
        {
            if (ViveSR_DualCameraRig.Instance == null || ViveSR_DualCameraRig.Instance == null)
            {
                return(false);
            }
            string layername = cameraIndex == DualCameraIndex.LEFT ? LefteyeLayerName : RighteyeLayerName;
            int    mask      = LayerMask.GetMask(layername);
            int    layer     = LayerMask.NameToLayer(layername);
            Camera cam       = cameraIndex == DualCameraIndex.LEFT ?
                               ViveSR_DualCameraRig.Instance.DualCameraLeft :
                               ViveSR_DualCameraRig.Instance.DualCameraRight;
            ViveSR_TrackedCamera trackedCam = cameraIndex == DualCameraIndex.LEFT ?
                                              ViveSR_DualCameraRig.Instance.TrackedCameraLeft :
                                              ViveSR_DualCameraRig.Instance.TrackedCameraRight;
            ViveSR_TrackedCamera trackedCamAnother = cameraIndex == DualCameraIndex.LEFT ?
                                                     ViveSR_DualCameraRig.Instance.TrackedCameraRight :
                                                     ViveSR_DualCameraRig.Instance.TrackedCameraLeft;


            if (cam.cullingMask != mask)
            {
                return(false);
            }
            if (trackedCam.gameObject.layer != layer)
            {
                return(false);
            }
            if (trackedCam.Anchor.gameObject.layer != layer)
            {
                return(false);
            }
            if (trackedCam.DepthImageOccluder.gameObject.layer != layer)
            {
                return(false);
            }
            if (trackedCam.ImagePlane.gameObject.layer != layer)
            {
                return(false);
            }
            if (trackedCamAnother.ImagePlaneCalibration.gameObject.layer != layer)
            {
                return(false);
            }
            return(true);
        }
Beispiel #4
0
        private void UpdateSeeThroCamLayers(DualCameraIndex cameraIndex)
        {
            string layername = cameraIndex == DualCameraIndex.LEFT ? LefteyeLayerName : RighteyeLayerName;
            int    mask      = LayerMask.GetMask(layername);
            int    layer     = LayerMask.NameToLayer(layername);
            ViveSR_DualCameraRig prefabRig = PrefabUtility.GetCorrespondingObjectFromSource(ViveSR_DualCameraRig.Instance) as ViveSR_DualCameraRig;

            Camera cam = cameraIndex == DualCameraIndex.LEFT ?
                         prefabRig.DualCameraLeft :
                         prefabRig.DualCameraRight;
            ViveSR_TrackedCamera trackedCam = cameraIndex == DualCameraIndex.LEFT ?
                                              prefabRig.TrackedCameraLeft :
                                              prefabRig.TrackedCameraRight;
            ViveSR_TrackedCamera trackedCamAnother = cameraIndex == DualCameraIndex.LEFT ?
                                                     prefabRig.TrackedCameraRight :
                                                     prefabRig.TrackedCameraLeft;

            cam.cullingMask                        = mask;
            trackedCam.gameObject.layer            = layer;
            trackedCam.Anchor.gameObject.layer     = layer;
            trackedCam.ImagePlane.gameObject.layer = layer;
            trackedCamAnother.ImagePlaneCalibration.gameObject.layer = layer;
        }