with w3schools tag solucionar from div content como javascript memory-management three.js

javascript - w3schools - js get text from element



Desasignando Object3D (3)

Cargué un modelo de un archivo obj usando además el archivo mtl. ¿Cómo elimino o desasigno adecuadamente toda la geometría / materiales / texturas del Object3D devuelto en r55?


Prueba esto:

object.traverse( function ( child ) { if ( child.geometry !== undefined ) { child.geometry.dispose(); child.material.dispose(); } } );


Yo uso esto:

function removeReferences(removeme){ try{ removeme.traverse(function(ob){ try{ renderer.deallocateObject(ob); }catch(e){} try{ ob.geometry.deallocate(); }catch(e){} try{ ob.material.deallocate(); }catch(e){} try{ ob.deallocate() }catch(e){} }); }catch(e){} }


Gracias al ejemplo de mrdoob , creé una función que descarta recursivamente un objeto three.js. Lo agregué a mi biblioteca personal de utilidades de three.js: https://github.com/MarcoSulla/my3

function dispose3(obj) { /** * @author Marco Sulla ([email protected]) * @date Mar 12, 2016 */ "use strict"; var children = obj.children; var child; if (children) { for (var i=0; i<children.length; i+=1) { child = children[i]; dispose3(child); } } var geometry = obj.geometry; var material = obj.material; if (geometry) { geometry.dispose(); } if (material) { var texture = material.map; if (texture) { texture.dispose(); } material.dispose(); } },

Espero que esta función se agregue en el código three.js, en el método Scene.remove (tal vez solo se llame si estableces un flag opcional).