您的位置:首页 > 财经 > 产业 > threejs

threejs

2024/10/6 20:28:18 来源:https://blog.csdn.net/xing3037/article/details/140274512  浏览:    关键词:threejs

1.场景清空,释放内容

// 假设你已经有一个Three.js的场景对象scene// 函数:清空场景中的所有对象
function clearScene(scene) {while(scene.children.length > 0){const object = scene.children[0];if(object.isMesh) {// 如果有几何体和材质,也进行清理object.geometry.dispose();if(object.material.isMaterial) {cleanMaterial(object.material);} else {// 材质组是数组,所以我们需要遍历它for(const material of object.material) cleanMaterial(material);}}scene.remove(object);  // 从场景中移除对象}
}// 辅助函数:清理材质资源
function cleanMaterial(material){material.dispose(); // 清理材质if(material.map) material.map.dispose(); // 清理贴图if(material.lightMap) material.lightMap.dispose();if(material.bumpMap) material.bumpMap.dispose();if(material.normalMap) material.normalMap.dispose();if(material.specularMap) material.specularMap.dispose();if(material.envMap) material.envMap.dispose();// ... 清理其他你使用的材质资源
}// 使用方法:
clearScene(scene);

2.选中物体

        如果放在像若依这种前端框架中,会有菜单栏导致计算坐标的位置发生偏移

使用clientX配合getBoundingClientRect函数计算坐标即可

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com