Exemple #1
0
    void RenderEye(SteamVR vr, Hmd_Eye eye, LayerMask mask)
    {
        int i = (int)eye;

        SteamVR_Render.eye = eye;

        if (cameraMask != null)
        {
            cameraMask.Set(vr, eye);
        }

        foreach (var c in cameras)
        {
            c.transform.localPosition = vr.eyes[i].pos;
            c.transform.localRotation = vr.eyes[i].rot;

            // Update position to keep from getting culled
            cameraMask.transform.position = c.transform.position;

            var camera = c.GetComponent <Camera>();
            camera.targetTexture = SteamVR_Camera.GetSceneTexture(camera.hdr);
            int cullingMask = camera.cullingMask;
            camera.cullingMask |= mask;
            camera.Render();
            camera.cullingMask = cullingMask;
        }
    }
    void RenderEye(SteamVR vr, EVREye eye)
    {
        try
        {
            int i = (int)eye;
            SteamVR_Render.eye = eye;

            if (cameraMask != null)
            {
                cameraMask.Set(vr, eye);
            }

            foreach (var c in cameras)
            {
                c.transform.localPosition = vr.eyes[i].pos;
                c.transform.localRotation = vr.eyes[i].rot;

                // Update position to keep from getting culled
                cameraMask.transform.position = c.transform.position;

                var camera = c.GetComponent <Camera>();
                camera.targetTexture = SteamVR_Camera.GetSceneTexture(camera.hdr);
                int cullingMask = camera.cullingMask;
                if (eye == EVREye.Eye_Left)
                {
                    camera.cullingMask &= ~rightMask;
                    camera.cullingMask |= leftMask;
                }
                else
                {
                    camera.cullingMask &= ~leftMask;
                    camera.cullingMask |= rightMask;
                }
                camera.Render();
                camera.cullingMask = cullingMask;
            }
        } catch (Exception e)
        {
            Console.WriteLine(e);
        }
    }