public void BeforeFrameRendering()
        {
            Transform camTrans = cam.transform;

            perspCam.forward       = camTrans.forward;
            perspCam.up            = camTrans.up;
            perspCam.right         = camTrans.right;
            perspCam.position      = camTrans.position;
            perspCam.nearClipPlane = cam.nearClipPlane;
            perspCam.farClipPlane  = cam.farClipPlane;
            perspCam.aspect        = cam.aspect;
            perspCam.fov           = cam.fieldOfView;
            float3 *corners = stackalloc float3[8];

            PipelineFunctions.GetFrustumCorner(ref perspCam, corners);
            frustumMinPoint = corners[0];
            frustumMaxPoint = corners[0];
            for (int i = 1; i < 8; ++i)
            {
                frustumMinPoint = min(frustumMinPoint, corners[i]);
                frustumMaxPoint = max(frustumMaxPoint, corners[i]);
            }
            PipelineFunctions.GetPerspFrustumPlanesWithCorner(ref perspCam, frustumArray.unsafePtr, corners + 4);
        }