Three.js는 메모리에서scene에서remove의 모델 데이터를 삭제하고 메모리를 방출합니다

5718 단어 Three.js
동적 업데이트가 필요하면 서로 다른 모델을 표시합니다.scene에서remove의 모델은 메모리에 있습니다. 여러 번 업데이트 작업을 하면 메모리 자원을 대량으로 차지하고 브라우저를 붕괴시킬 수 있습니다. 다음 코드 기능은 메모리에서 모델 데이터를 제거하는 것입니다.
코드
/**
 *     ,     group   scene,      
 * @param scene
 * @returns
 */
function clearScene(){
	//  scene          
	if(myObjects.length > 0){		
		for(var i = 0; i< myObjects.length; i++){
			var currObj = myObjects[i];
			
			//     
			if(currObj instanceof THREE.Scene){
				var children = currObj.children;
				for(var i = 0; i< children.length; i++){
					deleteGroup(children[i]);
				}	
			}else{				
				deleteGroup(currObj);
			}
			scene.remove(currObj);
		}
	}
}

//   group,    
function deleteGroup(group) {
	//console.log(group);
    if (!group) return;
    //            mesh
    group.traverse(function (item) {
        if (item instanceof THREE.Mesh) {
            item.geometry.dispose(); //      
            item.material.dispose(); //     
        }
    });
}


도움이 될 것 같으면 좋아요를 눌러라!블로거 공식 번호: 세 갈래 나무

좋은 웹페이지 즐겨찾기