/// <summary> /// Updates the low Persistence mode. /// </summary> void UpdateLowPersistenceMode() { if (Input.GetKeyDown(KeyCode.F1)) { if (LowPersistenceMode == false) { LowPersistenceMode = true; #if SHOW_DK2_VARIABLES strLPM = "Low Persistence Mode: ON"; #endif OVRDevice.SetLowPersistenceMode(LowPersistenceMode); } else { LowPersistenceMode = false; #if SHOW_DK2_VARIABLES strLPM = "Low Persistence Mode: OFF"; #endif OVRDevice.SetLowPersistenceMode(LowPersistenceMode); } } }
void Start() { if (camera == null) { gameObject.AddComponent <Camera>(); } // In the event of an unsupported platform, remove our cameras and replace with a dummy if (!OVRDevice.SupportedPlatform) { OVRCamera[] ovrCameras = gameObject.GetComponentsInChildren <OVRCamera>(); for (int i = 0; i < ovrCameras.Length; i++) { ovrCameras[i].enabled = false; } } else { //HACK: Use the camera to force rendering of the left and right eyes. camera.cullingMask = 0; camera.clearFlags = CameraClearFlags.Nothing; camera.renderingPath = RenderingPath.Forward; camera.orthographic = true; } // Get the required Rift infromation needed to set cameras InitCameraControllerVariables(); // Initialize the cameras UpdateCamerasDirtyFlag = true; UpdateDistortionDirtyFlag = true; SetScaleRenderTarget(); if (Application.isEditor) { OVRDevice.SetLowPersistenceMode(false); } }
void Start() { AlphaFadeValue = 1.0f; CurrentLevel = 0; PrevStartDown = false; PrevHatDown = false; PrevHatUp = false; ShowVRVars = false; OldOpenMenu = false; strFPS = "FPS: 0"; LoadingLevel = false; ScenesVisible = false; // Ensure that camera controller variables have been properly // initialized before we start reading them if (CameraController != null) { CameraController.InitCameraControllerVariables(); } // Set the GUI target GUIRenderObject = GameObject.Instantiate(Resources.Load("OVRGUIObjectMain")) as GameObject; if (GUIRenderObject != null) { // Chnge the layer GUIRenderObject.layer = LayerMask.NameToLayer(LayerName); if (GUIRenderTexture == null) { int w = Screen.width; int h = Screen.height; // We don't need a depth buffer on this texture GUIRenderTexture = new RenderTexture(w, h, 0); GuiHelper.SetPixelResolution(w, h); // NOTE: All GUI elements are being written with pixel values based // from DK1 (1280x800). These should change to normalized locations so // that we can scale more cleanly with varying resolutions //GuiHelper.SetDisplayResolution(OVRDevice.HResolution, // OVRDevice.VResolution); GuiHelper.SetDisplayResolution(1280.0f, 800.0f); } } // Attach GUI texture to GUI object and GUI object to Camera if (GUIRenderTexture != null && GUIRenderObject != null) { GUIRenderObject.renderer.material.mainTexture = GUIRenderTexture; if (CameraController != null) { // Grab transform of GUI object Vector3 ls = GUIRenderObject.transform.localScale; Vector3 lp = GUIRenderObject.transform.localPosition; Quaternion lr = GUIRenderObject.transform.localRotation; // Attach the GUI object to the camera CameraController.AttachGameObjectToCamera(ref GUIRenderObject); // Reset the transform values (we will be maintaining state of the GUI object // in local state) GUIRenderObject.transform.localScale = ls; GUIRenderObject.transform.localRotation = lr; // Deactivate object until we have completed the fade-in // Also, we may want to deactive the render object if there is nothing being rendered // into the UI // we will move the position of everything over to account for the IPD camera offset. float ipdOffsetDirection = 1.0f; Transform guiParent = GUIRenderObject.transform.parent; if (guiParent != null) { OVRCamera ovrCamera = guiParent.GetComponent <OVRCamera>(); if (ovrCamera != null && ovrCamera.RightEye) { ipdOffsetDirection = -1.0f; } } float ipd = 0.0f; CameraController.GetIPD(ref ipd); lp.x += ipd * 0.5f * ipdOffsetDirection; GUIRenderObject.transform.localPosition = lp; GUIRenderObject.SetActive(false); } } // Save default values initially //StoreSnapshot("DEFAULT"); // Make sure to hide cursor if (Application.isEditor == false) { Screen.showCursor = false; Screen.lockCursor = true; } // CameraController updates if (CameraController != null) { // Set LPM on by default OVRDevice.SetLowPersistenceMode(LowPersistenceMode); // Add a GridCube component to this object GridCube = gameObject.AddComponent <OVRGridCube>(); GridCube.SetOVRCameraController(ref CameraController); // Add a VisionGuide component to this object VisionGuide = gameObject.AddComponent <OVRVisionGuide>(); VisionGuide.SetOVRCameraController(ref CameraController); VisionGuide.SetFadeTexture(ref FadeInTexture); VisionGuide.SetVisionGuideLayer(ref LayerName); } // Crosshair functionality Crosshair.Init(); Crosshair.SetCrosshairTexture(ref CrosshairImage); Crosshair.SetOVRCameraController(ref CameraController); Crosshair.SetOVRPlayerController(ref PlayerController); // Check for HMD and sensor CheckIfRiftPresent(); }
/// <summary> /// Start this instance. /// </summary> void Start() { AlphaFadeValue = 1.0f; CurrentLevel = 0; PrevStartDown = false; PrevHatDown = false; PrevHatUp = false; ShowVRVars = false; OldSpaceHit = false; strFPS = "FPS: 0"; LoadingLevel = false; ScenesVisible = false; // Ensure that camera controller variables have been properly // initialized before we start reading them if (CameraController != null) { CameraController.InitCameraControllerVariables(); } // Set the GUI target GUIRenderObject = GameObject.Instantiate(Resources.Load("OVRGUIObjectMain")) as GameObject; if (GUIRenderObject != null) { // Chnge the layer GUIRenderObject.layer = LayerMask.NameToLayer(LayerName); if (GUIRenderTexture == null) { int w = Screen.width; int h = Screen.height; // We don't need a depth buffer on this texture GUIRenderTexture = new RenderTexture(w, h, 0); GuiHelper.SetPixelResolution(w, h); // NOTE: All GUI elements are being written with pixel values based // from DK1 (1280x800). These should change to normalized locations so // that we can scale more cleanly with varying resolutions //GuiHelper.SetDisplayResolution(OVRDevice.HResolution, // OVRDevice.VResolution); GuiHelper.SetDisplayResolution(1280.0f, 800.0f); } } // Attach GUI texture to GUI object and GUI object to Camera if (GUIRenderTexture != null && GUIRenderObject != null) { GUIRenderObject.renderer.material.mainTexture = GUIRenderTexture; if (CameraController != null) { // Grab transform of GUI object Vector3 ls = GUIRenderObject.transform.localScale; Vector3 lp = GUIRenderObject.transform.localPosition; Quaternion lr = GUIRenderObject.transform.localRotation; // Attach the GUI object to the camera CameraController.AttachGameObjectToCamera(ref GUIRenderObject); // Reset the transform values (we will be maintaining state of the GUI object // in local state) GUIRenderObject.transform.localScale = ls; GUIRenderObject.transform.localRotation = lr; // Deactivate object until we have completed the fade-in // Also, we may want to deactive the render object if there is nothing being rendered // into the UI // we will move the position of everything over to the left, so get // IPD / 2 and position camera towards negative X float ipd = 0.0f; CameraController.GetIPD(ref ipd); lp.x -= ipd * 0.5f; GUIRenderObject.transform.localPosition = lp; GUIRenderObject.SetActive(false); } } // Save default values initially StoreSnapshot("DEFAULT"); // Make sure to hide cursor if (Application.isEditor == false) { Screen.showCursor = false; Screen.lockCursor = true; } // Add delegates to update; useful for ordering menu tasks, if required UpdateFunctions += UpdateFPS; // CameraController updates if (CameraController != null) { UpdateFunctions += UpdateIPD; UpdateFunctions += UpdatePrediction; // Set LPM on by default UpdateFunctions += UpdateLowPersistenceMode; OVRDevice.SetLowPersistenceMode(LowPersistenceMode); UpdateFunctions += UpdateVisionMode; UpdateFunctions += UpdateFOV; UpdateFunctions += UpdateEyeHeightOffset; // Add a GridCube component to this object GridCube = gameObject.AddComponent <OVRGridCube>(); GridCube.SetOVRCameraController(ref CameraController); // Add a VisionGuide component to this object /*VisionGuide = gameObject.AddComponent<OVRVisionGuide>(); * VisionGuide.SetOVRCameraController(ref CameraController); * VisionGuide.SetFadeTexture(ref FadeInTexture); * VisionGuide.SetVisionGuideLayer(ref LayerName);*/ } // PlayerController updates if (PlayerController != null) { UpdateFunctions += UpdateSpeedAndRotationScaleMultiplier; UpdateFunctions += UpdatePlayerControllerMovement; } // MainMenu updates UpdateFunctions += UpdateSelectCurrentLevel; UpdateFunctions += UpdateHandleSnapshots; // Device updates UpdateFunctions += UpdateDeviceDetection; // Add a callback to detect device detection OVRMessenger.AddListener <Device, bool>("Sensor_Attached", UpdateDeviceDetectionMsgCallback); // Mag Yaw-Drift correction // We will test to see if we are already calibrated by the // Calibration tool MagCal.SetInitialCalibarationState(); UpdateFunctions += MagCal.UpdateMagYawDriftCorrection; MagCal.SetOVRCameraController(ref CameraController); // Crosshair functionality Crosshair.Init(); Crosshair.SetCrosshairTexture(ref CrosshairImage); Crosshair.SetOVRCameraController(ref CameraController); Crosshair.SetOVRPlayerController(ref PlayerController); UpdateFunctions += Crosshair.UpdateCrosshair; // Check for HMD and sensor CheckIfRiftPresent(); // Reset tracker position. // We assume that the CameraController is at the desired neck location Vector3 eyeOffset = Vector3.zero; if (CameraController != null) { CameraController.GetEyeCenterPosition(ref eyeOffset); } OVRCamera.ResetCameraPositionOrientation(ref eyeOffset, true, false, false); }