LightProbes.CalculateInterpolatedLightAndOcclusionProbes results not ready in Start()


I am implementing custom rendering via the new Batch Renderer Group API and I come across weird/undocumented (at least could not find nothing about it) behavior when using LightProbes.CalculateInterpolatedLightAndOcclusionProbes for accessing the LightProbe data. The scene I am working on doesn’t have any placed LightProbes but it seems like it doesn’t account for ambient light.

Simply put, when I open up scene in editor, basic MeshRenderers are “black/dark” for a frame or two before the lighting works correctly. I think this is the issue with my implementation, because I am trying to avoid uploading updates of the instance buffer to the GPU (I know the object transforms will be static during the gameplay) so I read the LightProbes in Start() or in OnEnable(). But When I do this, the objects stays black.

What I am asking is, if there is a way to know, that the LightProbe data is available for query. I am also using HDRP which could potentially cause this problem (Skybox update? something related to HDRP in general?..).

Thank you in advance for any suggestions.

For anyone interested, I’ve currently used hack to just deffer the loading of the spherical harmonics for 25 frames. Works, but it’s kinda hacky.

The internal function LightProbes.GetCount() seems to return 0 when they aren’t ready.