Three.js 无法从场景中删除Object3D对象

Three.js 无法从场景中删除Object3D对象,three.js,augmented-reality,Three.js,Augmented Reality,我正在开发一个增强现实应用程序 我正在这个开源软件的基础上开发这个应用程序。() 在上面的开源软件中,当向相机显示任意数量的标记时,不管标记是什么,只有一个图像会被放大到上面。在我的场景中,我想使一个标记特定于一个图像,即,每次显示一个标记时,该标记特定的图像应该被放大 我编写了以下代码以满足场景需求 var markerObjects = []; var images = ['images/cadbury.png','images/kitkat.png','images/gems.

我正在开发一个增强现实应用程序

我正在这个开源软件的基础上开发这个应用程序。()

在上面的开源软件中,当向相机显示任意数量的标记时,不管标记是什么,只有一个图像会被放大到上面。在我的场景中,我想使一个标记特定于一个图像,即,每次显示一个标记时,该标记特定的图像应该被放大

我编写了以下代码以满足场景需求

   var markerObjects = [];
   var images = ['images/cadbury.png','images/kitkat.png','images/gems.png']
   for ( i=265,j=0;i<268,j<images.length;i++,j++ ) {
    markerObjects.push({id:i,image:images[j],Object3D: new     THREE.Object3D()})
  }

   markerObjects.forEach(function(objects) {
    objects.Object3D.visible = false ;
  })

    detectMarkersStats.begin();
    var markers = jsArucoMarker.detectMarkers(domElement)
    detectMarkersStats.end();

    markers.forEach(function(marker) {
        markerObjects.forEach(function(markerObject) {
            if( marker.id == markerObject.id ) {
                var material = new THREE.SpriteMaterial({
                map: THREE.ImageUtils.loadTexture( markerObject.image ),
                });
                var object3d = new THREE.Sprite(material);
                object3d.scale.set( 2, 2, 1 );
                markerObject.Object3D.add(object3d);
                jsArucoMarker.markerToObject3D(marker, markerObject.Object3D)
                scene.add( markerObject.Object3D );
                markerObject.Object3D.visible = true;
            } 
        });
    });
var-markerObjects=[];
var images=['images/cadbury.png'、'images/kitkat.png'、'images/gems.png']

对于(i=265,j=0;如果从代码中很明显没有从场景中删除增强媒体。您添加了它(scene.add(markerObject.Object3D);),但从未删除它。必须有一种方法来验证何时从摄影机视图中删除标记,然后删除相应的对象(我假设类似于scene.remove(…)。从您的代码中很明显,增强媒体没有从场景中删除。您添加了它(scene.add(markerObject.Object3D);),但从未删除它。必须有一种方法来验证标记何时从摄影机视图中删除,然后删除相应的对象(我假设类似于scene.remove(…)。