/* Rendering and Display */ void OnWillRenderObject() { // Create the textures and camera if they don't exist. if (!leftTexture) { Vector2 texSize = new Vector2(mainCamera.pixelWidth, mainCamera.pixelHeight); leftTexture = new RenderTexture((int)(texSize.x * renderQuality), (int)(texSize.y * renderQuality), 16); #if USES_STEAM_VR || USES_OPEN_VR rightTexture = new RenderTexture((int)(texSize.x * renderQuality), (int)(texSize.y * renderQuality), 16); #endif renderCam = new GameObject(gameObject.name + " render camera", typeof(Camera), typeof(Skybox)).GetComponent <Camera> (); #if USES_AR_KIT if (mainCamera.GetComponent <UnityARVideo> ()) { renderCam.clearFlags = CameraClearFlags.SolidColor; ARKitCameraRender component = renderCam.gameObject.AddComponent <ARKitCameraRender> (); component.m_ClearMaterial = mainCamera.GetComponent <UnityARVideo> ().m_ClearMaterial; } #endif renderCam.name = gameObject.name + " render camera"; renderCam.tag = "Untagged"; if (renderCam.GetComponent <Skybox> ()) { camSkybox = renderCam.GetComponent <Skybox> (); } else { renderCam.gameObject.AddComponent <Skybox> (); camSkybox = renderCam.GetComponent <Skybox> (); } CameraExtensions.ClearCameraComponents(renderCam.GetComponent <Camera>()); // remove child objects to better support VRTKKit /*foreach(Transform child in renderCam.transform) * { * Destroy(child.gameObject); * } */ renderCam.hideFlags = HideFlags.HideInHierarchy; renderCam.enabled = false; } if (ToDimension().customSkybox) { camSkybox.material = ToDimension().customSkybox; } meshRenderer.material.SetFloat("_RecursiveRender", (gameObject.layer != Camera.current.gameObject.layer) ? 1 : 0); RenderPortal(Camera.current); }
// --------------------------------- // Rendering and Display // --------------------------------- void OnWillRenderObject() { if (mainCamera == null) { return; } // Create the textures and camera if they don't exist. if (!leftTexture) { Vector2 texSize = new Vector2(mainCamera.pixelWidth, mainCamera.pixelHeight); leftTexture = new RenderTexture((int)(texSize.x * renderQuality), (int)(texSize.y * renderQuality), 16); #if USES_STEAM_VR || USES_OPEN_VR rightTexture = new RenderTexture((int)(texSize.x * renderQuality), (int)(texSize.y * renderQuality), 16); #endif renderCam = new GameObject(gameObject.name + " render camera", typeof(Camera), typeof(Skybox)).GetComponent <Camera>(); SetupRenderCameraForAR(); // this will get the camera ready to render for ARKit or ARCore renderCam.name = gameObject.name + " render camera"; renderCam.tag = "Untagged"; if (renderCam.GetComponent <Skybox>()) { camSkybox = renderCam.GetComponent <Skybox>(); } else { renderCam.gameObject.AddComponent <Skybox>(); camSkybox = renderCam.GetComponent <Skybox>(); } CameraExtensions.ClearCameraComponents(renderCam.GetComponent <Camera>()); renderCam.hideFlags = HideFlags.HideInHierarchy; renderCam.enabled = false; } if (ToDimension().customSkybox) { camSkybox.material = ToDimension().customSkybox; } meshRenderer.material.SetFloat("_RecursiveRender", (gameObject.layer != Camera.current.gameObject.layer) ? 1 : 0); RenderPortal(Camera.current); }