2

我这里有个小问题。我有一个THREE.Line对象,具有材质和几何形状。init 方法将 2 个顶点推送到几何体,将 Line 添加到场景中,线条渲染得很好。

但是我有一个事件监听器......画布中的每次点击都会添加另一个顶点。但是在渲染场景时,只渲染了原来的 2 个顶点。我已经输出了一个转储,scene.children并且我确定 Line 在场景中,并且几何形状已经改变。

在文档中,它说了一些关于应用的内容:

geometry.dynamic = true
geometry.verticesNeedUpdate = true 

但这些也没有用。

4

1 回答 1

4

查看three.js Wiki:https ://github.com/mrdoob/three.js/wiki/Updates

您只能更新缓冲区的内容,不能调整缓冲区的大小(这非常昂贵,基本上相当于创建新几何体)。

您可以通过预先分配更大的缓冲区然后保持不需要的顶点折叠/隐藏来模拟调整大小。

几何图形是通过具有固定大小的顶点缓冲区对象指定的。您可以创建和删除缓冲区,但不能调整它们的大小。

作为一种解决方法,您可以创建一个带有额外顶点的几何图形,并将不需要的顶点折叠成一个点。

三.js r.52


编辑:在用三个动态绘制一条线中描述了一种更新的方法。

于 2012-11-07T15:37:36.140 回答