问答

three.js场景中不断更换模型的材质贴图,内存一直在增加,最终浏

作者:admin 2021-04-09 我要评论

项目使用THREE.js构建 简单的结构如下: var geometry = new THREE.SphereGeometry(500, 60, 40);var texture = new THREE.TextureLoader().load(img);var mater...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

项目使用THREE.js构建
简单的结构如下:

var geometry = new THREE.SphereGeometry(500, 60, 40);
var texture = new THREE.TextureLoader().load(img);
var material = new THREE.MeshBasicMaterial({
        map: texture
});
var mesh = new THREE.Mesh(geometry, material);
scene.add(mesh)

然后场景中有不同的点击按钮,每次点击就是更换mesh模型的材质贴图:

var loader = new THREE.TextureLoader().load(new_img);
material.map = loader

(在真机上运行)点击切换多次之后,浏览器的内存会越占越大,最后导致浏览器崩溃刷新,请问有什么好的解决方法?

###

参考 https://threejs.org/docs/#man...,需要自己手动调用dispose方法执行释放处理

###

我现在的做法是每次切换贴图的时候,调用一次loader.dispose()释放内存,但还是不能解决内存导致浏览器崩溃的问题,请问切换的还需要其他什么操作呢?

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • nginx响应速度很慢

    nginx响应速度很慢

  • 点击选中的多选框,会在已选那一栏显示

    点击选中的多选框,会在已选那一栏显示

  • PHP 多态的理解

    PHP 多态的理解

  • 关于C语言中static的问题

    关于C语言中static的问题

腾讯云代理商
海外云服务器