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).