Exemple #1
0
    /* 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);
    }
Exemple #2
0
    // ---------------------------------
    // 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);
    }