Less computation for using Scenekit environment map?

In Scenekit, you can set SCNScene's lightingEnvironment to be a hdr image. to provide environment based lighting for physical based rendering model. https://developer.apple.com/documentation/scenekit/scnscene/1639532-lightingenvironment?language=objc

However, we notice a performance hit when the scene first initialized. After looking into the metal debugger, it is the function compute_specularPreIntegratedLD_texturecube, it takes 1519.12 ms.

In the PBR rendering, we know there is a need to calculate the environment convolution map. Most of the renderer avoid this by pre-computing the result and store in image files so they do not need to redo the computation every time.

However, I suppose by directly setting lightingEnvironment.contents to the hdr file, we cannot avoid this costly computation.

Is there any recommend way or different way to enable environment map based lighting?

Or can we make this environment lighting more efficient like running on a different thread?

Thank you
Less computation for using Scenekit environment map?
 
 
Q