threejs的日常(一)

把工作里遇到的一些有意思的例子记录一下吧~
这次的示例是,用多种材质加载模型,并且同步模型动画,先放示例图


horse.png

这是使用官方示例中的horse模型,在原有模型材质上,加了一层wireframe:true的meshBasicMaterial,材质渲染其实很简单,难点在于新的材质渲染的mesh的动画,做的时候设想了几种方法:

  1. 对材质进行调整:模型重新输出 或者 使用联合材质(createMultiMaterialObject)
  2. 对mesh进行设置:想办法使两个mesh重合并且动画一致
  3. 对动画进行设置

最终采用的方案是第3种,采用了AnimationObjectGroup,一组对象接收共享的动画状态,参考链接https://blog.csdn.net/u013270347/article/details/81178737

核心代码如下:

           // animationobjectgroup
           var animation1 = new THREE.AnimationObjectGroup()
            animation1.add(mesh)

            var animation2 = new THREE.AnimationObjectGroup()
            animation2.add(lineMesh)

            animationObj.push(animation1,animation2)

            //mixer
            mixer = new THREE.AnimationMixer(group)

具体代码详见:https://github.com/ysrdear/threejs-demos/tree/master/multi-model

小伙伴们有更好的方案一起来讨论呀~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容