Example #1
0
    private void InitializeEyes()
    {
        eyes.Clear();
        if (monoCamera != null && monoCamera.gameObject.activeSelf)
        {
            AddEyes(monoCamera, SvrEye.eSide.Both);
        }
        if (leftCamera != null && leftCamera.gameObject.activeSelf)
        {
            AddEyes(leftCamera, SvrEye.eSide.Left);
        }
        if (rightCamera != null && rightCamera.gameObject.activeSelf)
        {
            AddEyes(rightCamera, SvrEye.eSide.Right);
        }
        for (int i = 0; i < SvrEye.Instances.Count; i++)
        {
            var eye = SvrEye.Instances[i];
            if (!eyes.Contains(eye))
            {
                eyes.Add(eye); // Add eyes found outside of svr camera hierarchy
            }
        }

        SvrPlugin.DeviceInfo info = plugin.deviceInfo;

        foreach (SvrEye eye in eyes)
        {
            if (eye == null)
            {
                continue;
            }

            eye.FovMargin             = settings.eyeFovMargin;
            eye.Format                = RenderTextureFormat.Default;
            eye.Resolution            = new Vector2(info.targetEyeWidthPixels, info.targetEyeHeightPixels);
            eye.ResolutionScaleFactor = settings.eyeResolutionScaleFactor;
            eye.Depth                = (int)settings.eyeDepth;
            eye.AntiAliasing         = (int)settings.eyeAntiAliasing;                                   // hdr not supported with antialiasing
            eye.FrustumType          = (int)settings.frustumType;
            eye.OnPreRenderListener  = OnPreRenderListener;
            eye.OnPostRenderListener = OnPostRenderListener;

            eye.Initialize();
        }
    }
Example #2
0
    private void InitializeOverlays()
    {
        overlays.Clear();
        if (leftOverlay != null && leftOverlay.gameObject.activeSelf)
        {
            AddOverlays(leftOverlay, SvrOverlay.eSide.Left);
        }
        if (rightOverlay != null && rightOverlay.gameObject.activeSelf)
        {
            AddOverlays(rightOverlay, SvrOverlay.eSide.Right);
        }
        if (monoOverlay != null && monoOverlay.gameObject.activeSelf)
        {
            AddOverlays(monoOverlay, SvrOverlay.eSide.Both);
        }
        for (int i = 0; i < SvrOverlay.Instances.Count; i++)
        {
            var overlay = SvrOverlay.Instances[i];
            if (!overlays.Contains(overlay))
            {
                overlays.Add(overlay); // Add overlays found outside of svr camera hierarchy
            }
        }

        SvrPlugin.DeviceInfo info = plugin.deviceInfo;

        foreach (SvrOverlay overlay in overlays)
        {
            if (overlay == null)
            {
                continue;
            }

            overlay.Format                = RenderTextureFormat.Default;
            overlay.Resolution            = new Vector2(info.targetEyeWidthPixels, info.targetEyeHeightPixels);
            overlay.ResolutionScaleFactor = settings.overlayResolutionScaleFactor;
            overlay.Depth                = (int)settings.overlayDepth;
            overlay.AntiAliasing         = (int)settings.overlayAntiAliasing;     // hdr not supported with antialiasing
            overlay.FrustumType          = (int)settings.frustumType;
            overlay.OnPreRenderListener  = OnPreRenderListener;
            overlay.OnPostRenderListener = OnPostRenderListener;

            overlay.Initialize();
        }
    }
Example #3
0
    private void InitializeEyes()
    {
        eyes [0]      = leftCamera.gameObject.AddComponent <SvrEye> ();
        eyes [0].side = SvrEye.Side.Left;
        eyes [1]      = rightCamera.gameObject.AddComponent <SvrEye> ();
        eyes [1].side = SvrEye.Side.Right;

        leftCamera.hdr  = hdr;
        rightCamera.hdr = hdr;

        leftCamera.enabled  = true;
        rightCamera.enabled = true;

        if (hdr && renderTextureAntiAliasing != eRenderTextureAntiAliasing.k1)
        {
            Debug.LogWarning("Antialiasing not supported when HDR is enabled. Disabling antiAliasing...");
            renderTextureAntiAliasing = eRenderTextureAntiAliasing.k1;
        }

        SvrPlugin.DeviceInfo info = plugin.GetDeviceInfo();

        foreach (SvrEye eye in eyes)
        {
            Vector3 eyePos;
            eyePos.x = (eye.side == SvrEye.Side.Left ? -0.5f : 0.5f) * interPupilDistance + head.transform.localPosition.x;
            eyePos.y = (!trackPosition ? headHeight : 0) + head.transform.localPosition.y;
            eyePos.z = (!trackPosition ? -headDepth : 0) + head.transform.localPosition.z;

            eye.transform.localPosition = eyePos;
            eye.format               = hdr ? RenderTextureFormat.DefaultHDR : RenderTextureFormat.Default;
            eye.textureSize          = new Vector2(info.targetEyeWidthPixels, info.targetEyeHeightPixels);
            eye.fov                  = new Vector2(info.targetFovXRad * Mathf.Rad2Deg, info.targetFovYRad * Mathf.Rad2Deg);
            eye.depth                = (int)renderTextureDepth;
            eye.antiAliasing         = (int)renderTextureAntiAliasing;                                  // hdr not supported with antialiasing
            eye.OnPostRenderListener = OnPostRenderListener;
        }
    }