deepkolos / three-platformize

一个让 THREE 平台化的项目,目前已适配微信,淘宝,头条小程序,微信小游戏
533 stars 82 forks source link

canvas渲染成功后,卸载,会出现残留,没办法释放干净 #13

Closed pxim closed 3 years ago

pxim commented 3 years ago

首次渲染结果: image

react组件卸载,删除canvas后,再次添加canvas组件后结果; image

我把微信调试工具里元素都设置 display=none了,渲染的mesh还在界面上,请问是内部哪个元素呈现画面的,怎么清理释放掉;我把我的canvas也隐藏了,也没用 image

image image

deepkolos commented 3 years ago

还没使用过taro来编写小程序

关于模拟器上面是有问题的,模拟器上的canvas不能被裁剪,总是在最上面,可以真机上试试,关于清除webgl画面可以使用一下API

renderer.clear( true, true, true );

关于内存释放的测试可以参考这个仓库

https://github.com/deepkolos/three-platformize-demo

https://github.com/deepkolos/three-platformize-demo-wechat

demo

pxim commented 3 years ago
renderer.clear( true, true, true );

卸载的时候用下 renderer.clear( true, true, true ); 就没问题了,谢谢了