无法从场景

时间:2016-11-11 05:15:30

标签: three.js augmented-reality

我正在使用增强现实应用。

我在这个开源的基础上开发应用程序。 (https://github.com/jeromeetienne/threex.webar/blob/master/examples/basic.html

在上述开源中,当向相机显示任意数量的标记时,无论标记如何,只有一个图像在其上方增强。在我的场景中,我想让一个标记特定于一个图像,即,每次显示标记时,应该增加特定于该标记的图像。

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

   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;
            } 
        });
    });

我面临的问题是,无论何时向相机显示标记,图像都会增强,但当标记从相机中取出时,图像仍保留在场景中。如果显示多个标记,则所有图像都会增强,但所有图像都保留在场景中。我想在从相机上取下标记后从场景中删除这些图像。

你能帮我解决一下吗?

0 个答案:

没有答案