我在这里有一个小问题。我有一个THREE.Line
对象,具有材质和几何形状。 init方法将2个顶点推入几何体,将“线”添加到场景中,线呈现得很好。
但是我有一个事件侦听器...在画布上的每次单击都会添加另一个顶点。但是,当渲染场景时,仅渲染原始2个顶点。我已经输出了scene.children
的转储文件,并且确定Line在场景中,并且几何形状已经更改。
在文档中,它说明了有关应用的内容:
geometry.dynamic = true
geometry.verticesNeedUpdate = true
但是这些也不起作用。
最佳答案
请参阅three.js Wiki:https://github.com/mrdoob/three.js/wiki/Updates
您只能更新缓冲区的内容,不能调整缓冲区的大小
(这是非常昂贵的,基本上等同于创建新的几何体)。
您可以通过预先分配更大的缓冲区来模拟调整大小,然后
保持不需要的顶点折叠/隐藏。
通过具有固定大小的顶点缓冲区对象指定几何形状。您可以创建和删除缓冲区,但不能调整它们的大小。
解决方法是,创建具有额外顶点的几何并将不想要的顶点折叠到单个点中。
three.js r.52
编辑:Drawing a line with three.js dynamically中描述了一种更新的方法。