多くの Mesh と MorphAnimMesh を含む大きなシーンがあります。メッシュが削除されたときにメモリを解放したい。私が正しいことを知っていれば、これが最善の方法です:
for ( var i = scene.children.length - 1; i >= 0 ; i -- ) {
var obj = scene.children[i];
scene.remove(obj);
obj.deallocate();
obj.geometry.deallocate();
obj.material.deallocate();
obj.material.map.deallocate();
}
この後、タスクマネージャーでメモリ使用量を確認しても何も変わりません。(GC を数分待ってみましたが、何もありませんでした。) Google Chrome のメモリ スナップショットは、オブジェクトがまだそこにあることを示しています。THREE.Geometry @1862203 の morphTargets など
obj を null に設定しようとしましたが、それでもメモリは減少しません。
私は何が間違っているのですか?
レベルのあるゲームで、プレーヤーはある人から別の人に変わることができます。いくつかの変更の後、メモリ使用量が非常に高くなります。そのため、レベルを変更する前にすべてのオブジェクトをメモリから削除したいと考えています。