public void Bake(string saveDir) { if (HDR_Image == null) { return; } if (m_BakeMat == null) { Shader sh = Shader.Find("Hidden/HDRIBaker"); m_BakeMat = new Material(sh); } //m_BakeMat.SetFloat("_RgbmMaxValue", RGBM_MaxValue); Shader.SetGlobalFloat("_RgbmMaxValue", RGBM_MaxValue); if (SkyMat != null) { for (int i = 0; i < (int)EMethod.Max; i += 2) { EMethod e = (EMethod)i; SkyMat.DisableKeyword(e.ToString()); } string keyword = Method.ToString(); SkyMat.EnableKeyword(keyword); } RenderTexture tempRT = RenderTexture.GetTemporary(HDR_Image.width, HDR_Image.height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear); Graphics.Blit(HDR_Image, tempRT, m_BakeMat, (int)Method); SaveRenderTextureToPNG(tempRT, saveDir, HDR_Image.name + "_Encoded"); m_RT = tempRT; //RenderTexture.ReleaseTemporary(tempRT); if (SeperateColorAndAlpha) { RenderTexture tempRT2 = RenderTexture.GetTemporary(HDR_Image.width, HDR_Image.height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear); Graphics.Blit(HDR_Image, tempRT2, m_BakeMat, (int)(Method + 1)); SaveRenderTextureToPNG(tempRT2, saveDir, HDR_Image.name + "_Encoded_Alpha"); m_RT2 = tempRT2; } }