美文网首页
ThreeJS加载ldraw模型优化方案

ThreeJS加载ldraw模型优化方案

作者: 蒙双眼看世界 | 来源:发表于2021-10-08 17:48 被阅读0次

    ThreeJS官方加载Ldraw文件,实质就是通过循环加载.mpd文件里每一个dat模型,这样相同的dat就会出现重复加载,因此要提升加载速度,唯有将这个流程简化。
    说一下我的思路:

    1. 第一步先将ldraw模型文件先解析出来,记录下每一行dat数据的同时,也统计下本模型只需要加载哪些dat模型。
    2. 接下来,先加载出来本模型所需要的dat模型零件,存到一个列表里,这些模型作为基础模型不需要添加到场景中。
    3. 通过用ThreeJS.Object3D的clone()方法,从加载出来的模型列表里找出相同名字的dat模型,不需要做重复的加载工作。毕竟clone一个模型比load一个模型速度快太多了。
    4. 最后要将clone出来的模型矩阵信息传进来,还有材质附上就大功告成了。
      model.matrix.premultiply(_matrix);
      model.matrix.decompose(model.position, model.quaternion, model.scale);
      model.children[1].material = _material.clone();
      最后总结:加载型零件越多,相同dat越多的模型文件速度提升越快,加载的时间提升不止两三倍以上。项目代码复杂,无法提供源码参考,本方案仅作参考,有更好的解决方案欢迎大家指点。

    相关文章

      网友评论

          本文标题:ThreeJS加载ldraw模型优化方案

          本文链接:https://www.haomeiwen.com/subject/gkbxoltx.html