Javascript 在THREE.r84中从场景中添加和删除三个点
我最近从three.js版本71切换到版本84。 使用THREE.PointCloud时,很容易从场景中更新(添加和删除)点,如下所示:Javascript 在THREE.r84中从场景中添加和删除三个点,javascript,three.js,Javascript,Three.js,我最近从three.js版本71切换到版本84。 使用THREE.PointCloud时,很容易从场景中更新(添加和删除)点,如下所示: function updatePoints(newData) { geometry.dispose(); geometry.vertices = []; geometry.vertices.push(...); scene.add(newPoints); render(); } 现在在修订版84中,三点云被三点云
function updatePoints(newData) {
geometry.dispose();
geometry.vertices = [];
geometry.vertices.push(...);
scene.add(newPoints);
render();
}
现在在修订版84中,三点云被三点云所取代,这种模式不再有效,我不知道为什么会这样。
我的实际代码在r71中运行得非常好,但在r84中只有一些点被删除。光线投射器不处理应移除的点,也不能对它们设置动画,但它们不会从场景中消失
我通过添加scene.remove(oldPoints)尝试了多种方法代码>和geometry.verticesNeedUpdate=true在渲染和向场景添加点之前,向函数添加代码>以及添加不同的设置超时。所有这些都不起作用
任何帮助都将不胜感激
谢谢,
k由于您已经需要重新创建顶点,因此重新创建整个云不需要太多工作:
geometry.dispose();
geometry = new THREE.Geometry();
geometry.vertices.push(...);
scene.remove(pointCloud);
pointCloud = new THREE.Points(geometry, material);
scene.add(pointCloud);
谢谢斯芬XXX!这太棒了。你是对的,这工作很完美,不需要太多的努力。我仍然不清楚为什么这不再有效,但我完全可以这样做。