Hi all !
Please help me to understand the reason for the following error:
Uncaught Error: MeshBVHUniformStruct: Multi-root BVHs not supported.
It arised when I switched from geometry, produced by OBJLoader, to BoxGeometry in custom ShaderMaterial. Simplified code that use this geometry is following:
const makeGem = (scene, env, camera, res, geo, {
color = new THREE.Color(0.1, 0.2, 0.01),
ior = 1.8
} = {}) => {
const mergedGeometry = geo;
mergedGeometry.boundsTree = new MeshBVH(mergedGeometry, { lazyGeneration: false, strategy: SAH });
const collider = new THREE.Mesh(mergedGeometry);
collider.material.wireframe = true;
collider.material.opacity = 0.5;
collider.material.transparent = true;
collider.visible = false;
collider.boundsTree = mergedGeometry.boundsTree;
scene.add(collider);
const gem = new THREE.Mesh(geo, new THREE.ShaderMaterial({ ...
});
gem.material.uniforms.bvh.value.updateFrom(collider.boundsTree); // Error here !
...
);
Online test is here.
I understand, that question is very specific and maybe provided information is insufficient,
but I am a new BVH, so any suggestion at least where to look will be a great help !