Three.js 修改三维几何体对象中的顶点

Three.js 修改三维几何体对象中的顶点,three.js,Three.js,我需要有选择地显示/隐藏1000多条不同大小、位置和颜色的线 我第一次尝试做了一个三点的几何体,每个几何体都有一个名字。为了隐藏/显示,我在场景中迭代,并根据名称和我的启发对每个场景进行隐藏/显示。这看起来很慢,大约1000条线路的50Hz左右 我用一种类似的方法做了一个测试,但只使用了一个三点几何来容纳所有的线。这是快得多,但当然,但我只能应用一种材料,所有的线,这是不好的。当应用程序运行时,我能够设置正确的标志并更新线条的位置 最好的方法似乎是使用THREE.BufferGeometry。我

我需要有选择地显示/隐藏1000多条不同大小、位置和颜色的线

我第一次尝试做了一个三点的几何体,每个几何体都有一个名字。为了隐藏/显示,我在场景中迭代,并根据名称和我的启发对每个场景进行隐藏/显示。这看起来很慢,大约1000条线路的50Hz左右

我用一种类似的方法做了一个测试,但只使用了一个三点几何来容纳所有的线。这是快得多,但当然,但我只能应用一种材料,所有的线,这是不好的。当应用程序运行时,我能够设置正确的标志并更新线条的位置

最好的方法似乎是使用THREE.BufferGeometry。我做了一个测试,速度非常快,在初始设置时工作正常,但之后我无法更改每条线的位置/可见性和颜色。我制作了一个JS提琴来演示它——但是调用
buffer\u geometry.dynamic=true
buffer_geometry.verticesNeedUpdate=true似乎没有帮助。

您需要打电话

buffer_geometry.attributes.position.needsUpdate = true;
buffer_geometry.attributes.color.needsUpdate = true;
更新小提琴:


three.js r.76

接下去——我希望这些行从原点开始。当我改变起始位置时,我看不出我期望的是什么。可以在任意位置使用一组线的缓冲区几何体吗?这里的例子:请用你的新问题写一篇新文章。完成:API自上一篇文章以来略有变化。这把修改过的小提琴在写作时起作用:@AndrewE,谢谢。更新答案。