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)); }