5
私はメッシュインスタンスを持っています。TubeGeometryのパスです。 TubeGeometryインスタンスの基になる曲線を変更すると、シーンからメッシュが削除され、新しいメッシュが作成されます。動的に追加されたメッシュのメモリ割り当て解除が機能しない
シーンは正常に更新されますが、メモリが爆発的になり、削除されたメッシュがシーンの外に出た後に正しく割り当て解除されないことがわかります。
$.each(parent.children, function (idx, obj) {
parent.remove(obj);
renderer.deallocateObject(obj);
obj.deallocate();
});
parent
私は
がでメッシュ配置
Object3Dで
、そしてrenderer
はWebGLRendererのインスタンスである:
は、ここで私は割り当てを解除するために使用しようとしているコードです。
私が間違ってやっていることと、これを正しく行う方法を教えてもらえますか?
Here's a Plunk with my currently example.関連するコードは、scene.jsファイル、行76から86です。この例ではr53を使用しています。
は 'deallocateGeometry'は(私の例では、バージョン)** R53 **のメソッドではなく、新しくリリースされた** R54で使用するジオメトリの割り当てを解除しないでください'WebGLRenderer.deallocate *'メソッドはprivateです。それにもかかわらず、ジオメトリの割り当て解除の欠如を指摘するための+1は、問題と思われる。 – merv
うまくいけば、r54は物事を簡単にします。 'geometry.dispose()'/'' texture.dispose() '/' material.dispose() 'を呼び出すだけです。 – mrdoob