みかづきブログ・カスタム

基本的にはちょちょいのほいです。

Three.jsでシーンからmeshをremoveするときは、ジオメトリとマテリアルをdisposeする 📦

threejs.org

最近、ドキュメント に、

シーンからメッシュを削除すると、そのジオメトリとマテリアルも破棄されますか?

いいえ、dispose()を使用してジオメトリとマテリアルを明示的に破棄する必要があります。ジオメトリとマテリアルはメッシュなどの3Dオブジェクト間で共有できることに注意してください。

と書いてあることに気づきました。

これまで、

scene.remove(mesh);

という感じでremoveしていたのですが、

scene.remove(mesh);
mesh.material.dispose();
mesh.geometry.dispose();

という感じで、disposeを叩いた方が良さそうです。