![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
threejs
luxiaopengyou
这个作者很懒,什么都没留下…
展开
-
threejs顶层管理交互
背景threejs做业务,存在多个按钮时,为了管理各个按钮不同时触发,就不能在各个按钮做container.addEventListener,应该在顶层统一管理。解决方案(以click事件为例,mousemove等其他事件同理)1、顶层建立容器统一储存事件、统一监听事件顶层类的内部:所有事件都在handleClickEvent里,实际container.addEventListener执行的事件,会去找当前且被激活的事件去执行。也节省损耗,不需要一有事件需要监听就新造一个addEventListen原创 2021-06-02 19:52:04 · 273 阅读 · 0 评论 -
threejs绘制大量线条 优化内存
用BufferGeometry的setAttribute方式设置顶点position 代码如下let geometry = new THREE.BufferGeometry() let positions = [] BrickData.Brick.forEach(({ Outer, BrickId }) => { //画砖的轮廓线 positions.push(...Outer[0], 0) positions.push(...Outer[1],原创 2021-06-02 09:59:09 · 1288 阅读 · 0 评论 -
vue或reac使用threejs做图形交互的经验总结
背景如题,vue(或react)使用threejs做图形交互,总结了些技巧分享一下,有兴趣欢迎交流。为threejs新建class,单例模式使用该类1、vue或react组件中实例化threejs的class,不储存成响应式数据,减少性能损耗;组件销毁的时候若不再需要用到该实例,则释放threejs实例占用的相关内存之外,将该实例置为null;2、组件中涉及到与threejs交互,可以直接调用实例的方法(涉及到需要threejs交互后引起其他组件数据的更新,可以调用实例方法时传入回调函数);3、基原创 2021-01-26 17:00:59 · 895 阅读 · 0 评论 -
threejs清空内存
啊我来送福利了 折腾了一个早上和中午终于整出来试验就是同一个canvas scene根据tab切换内容 切换前需要清空物体 再加载新的物体打开任务管理器查看浏览器占用内存 一开始不断切换tab 内存不断增加一番探索后 切换tab内存不再增加了 贡献一下代码removeScene = () => { this.clearScene(); }; clearCache = item => { item.geometry.dispose(); item.mate原创 2021-01-22 13:43:11 · 4434 阅读 · 15 评论