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(); } }
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(); } }
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; } }