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(…)。