Three.js 中的 verticesNeedUpdate

Ph1*_*Ph1 4 javascript three.js

我想使用 dat.GUI 来操作网格顶点的坐标。

起初我以为我可以删除网格的每一帧来重新创建它们,但后来我发现不是一个好方法。

我应该使用 verticesNeedUpdate 吗?Three.js 文档中似乎没有

Wes*_*ley 6

如果您的几何图形是THREE.Geometry,那么您可以使用如下模式更新顶点:

geometry.vertices[ 0 ].set( x, y, z );

geometry.verticesNeedUpdate = true;
Run Code Online (Sandbox Code Playgroud)

如果您的几何形状是THREE.BufferGeometry,那么您可以使用此模式:

geometry.attributes.position.setXYZ( index, x, y, z );

geometry.attributes.position.needsUpdate = true;
Run Code Online (Sandbox Code Playgroud)

needsUpdate在任何一种情况下,如果几何体之前已渲染过,则只需设置该标志。

此外,您无法调整缓冲区的大小;您只能更改数据值。请参阅 Wiki 文章如何更新事物以获取更多信息。

三.js r.85