我可以导出三个吗?分组到 JSON 以缩短复杂 SVG 拉伸的加载/渲染时间



我目前正在使用 josdirkson 的 SVG 拉伸脚本来形成 20-30 个复杂形状的组。我的目标是在整个用户交互过程中单独操作每个对象以及整个组。到目前为止,我已经能够做到这一点,但是,在各种设备上,我的加载时间可以从 7 到 20 秒不等。我想知道其中很多是否只是将所有 SVG 路径转换为贝塞尔曲线等的脚本所固有的。如果是这种情况,我想知道是否可行的解决方案可能是以某种方式从 Three.js 导出到 JSON 或其他文件类型,然后是用户从中加载的后续数据源。我简要地查看了这个线程,但在众包解决方案之前不想走得太远!任何建议或意见将不胜感激!谢谢!

我能给你的最好的建议是看看加载过程的概况。要在 chrome 中对此进行测试,您可以向要分析的区域的代码添加成对的console.profile('something');console.profileEnd('something');调用。然后在开发工具中打开配置文件面板并重新加载页面/重新运行 javascript。

这可能能够告诉你你的假设是否正确。至少它会帮助你找到在JS中花费的时间

如果真的是这种情况,您可以对几何进行一些缓存,使用 geometry.toJSON()new THREE.JSONLoader().parse(json) 来保存和恢复几何图形。在大多数情况下,这应该比以某种方式计算几何形状要快得多。(注意:还有其他更节省空间甚至性能更高的方法来执行缓存,但 JSON 格式是一个很好的起点)

最新更新