I’m not able to bake the Adaptive Probe Volume for my scene. I get the following error after I “finish” the backing process. I have everything turned on to support it.
While writing this post I fixed the issue by checking the type before the cast…
AccelStrcutAdapater.cs
public void AddInstance(int objectHandle, Component meshRendererOrTerrain, Span<uint> perSubMeshMask, Span<uint> perSubMeshMaterialIDs, uint renderingLayerMask)
{
if (meshRendererOrTerrain is Terrain terrain)
{
Debug.Assert(terrain.enabled, "Terrains are expected to be enabled.");
var terrainDesc = new TerrainDesc();
terrainDesc.terrain = terrain;
terrainDesc.mask = perSubMeshMask[0];
terrainDesc.materialID = perSubMeshMaterialIDs[0];
AddInstance(objectHandle, terrainDesc);
}
else if (meshRendererOrTerrain is MeshRenderer rendere)
{
var meshRenderer = (MeshRenderer)meshRendererOrTerrain;
Debug.Assert(meshRenderer.enabled, "Mesh renderers are expected to be enabled.");
Debug.Assert(!meshRenderer.isPartOfStaticBatch, "Mesh renderers are expected to not be part of static batch.");
var mesh = meshRenderer.GetComponent<MeshFilter>().sharedMesh;
AddInstance(objectHandle, mesh, meshRenderer.transform.localToWorldMatrix, perSubMeshMask, perSubMeshMaterialIDs, renderingLayerMask);
}
else if (meshRendererOrTerrain is SkinnedMeshRenderer skinnedMeshRenderer)
{
Debug.Assert(skinnedMeshRenderer.enabled, "Mesh renderers are expected to be enabled.");
Debug.Assert(!skinnedMeshRenderer.isPartOfStaticBatch, "Mesh renderers are expected to not be part of static batch.");
var mesh = skinnedMeshRenderer.GetComponent<MeshFilter>().sharedMesh;
AddInstance(objectHandle, mesh, skinnedMeshRenderer.transform.localToWorldMatrix, perSubMeshMask, perSubMeshMaterialIDs, renderingLayerMask);
}
}
In my case, I was using also using a skinned mesh renderer also.