public override void Cleanup()
 {
     if (m_PrecomputedData != null)
     {
         s_PrecomputaionCache.Release(m_LastPrecomputationParamHash);
         m_LastPrecomputationParamHash = 0;
         m_PrecomputedData             = null;
     }
     CoreUtils.Destroy(m_PbrSkyMaterial);
 }
        protected override bool Update(BuiltinSkyParameters builtinParams)
        {
            UpdateGlobalConstantBuffer(builtinParams.commandBuffer, builtinParams);
            var pbrSky = builtinParams.skySettings as PhysicallyBasedSky;

            int currPrecomputationParamHash = pbrSky.GetPrecomputationHashCode();

            if (currPrecomputationParamHash != m_LastPrecomputationParamHash)
            {
                if (m_LastPrecomputationParamHash != 0)
                {
                    s_PrecomputaionCache.Release(m_LastPrecomputationParamHash);
                }
                m_PrecomputedData             = s_PrecomputaionCache.Get(currPrecomputationParamHash);
                m_LastPrecomputationParamHash = currPrecomputationParamHash;
            }

            return(m_PrecomputedData.Update(builtinParams, pbrSky));
        }