5

パスにTubeGeometryを使用するMeshインスタンスがあります。TubeGeometryインスタンスの基になっている基本カーブに変更を加えると、シーンからメッシュを削除してから、新しいメッシュを作成します。

シーンは正常に更新されますが、メモリが爆発的に増加しているため、シーンから外れると、削除されたメッシュの割り当てが正しく解除されていないことがわかります。

割り当て解除に使用しようとしているコードは次のとおりです。

$.each(parent.children, function (idx, obj) {
  parent.remove(obj);
  renderer.deallocateObject(obj);
  obj.deallocate();
});

ここで、はメッシュを配置parentするObject3Dであり、 WebGLRendererのインスタンスです。renderer

誰かが私が間違っていることとこれを正しく行う方法を教えてもらえますか?

これが私の現在の例のプランクです。関連するコードは、scene.jsファイルの76〜86行目にあります。この例ではr53を使用していることに注意してください。

4

1 に答える 1

4

使用されているジオメトリの割り当てを解除しません

$.each(parent.children, function (idx, obj) {
  parent.remove(obj);
  renderer.deallocateGeometry(obj.geometry);
  renderer.deallocateObject(obj);
  obj.geometry.deallocate();
  obj.deallocate();
});
于 2012-12-31T10:15:57.053 に答える