Javascript 使用BufferGeometry更改ThreeJs中的顶点数组

Javascript 使用BufferGeometry更改ThreeJs中的顶点数组,javascript,three.js,buffer-geometry,Javascript,Three.js,Buffer Geometry,所以,我有一种情况,我用计算出的多边形填充屏幕。多边形的形状在不断变化,即每帧的顶点数也在变化。如果我在每一帧创建一个新的几何体-突然我的机器有效地停止,我显然在吸取大量内存-似乎我必须更改几何体中的缓冲区 所以我尝试使用bufferGeometry,基本上做了: var position = asBuffer.attributes.position; position.array[0] = changedValue; position.needsUpdate = true; 在我的渲染循环中

所以,我有一种情况,我用计算出的多边形填充屏幕。多边形的形状在不断变化,即每帧的顶点数也在变化。如果我在每一帧创建一个新的几何体-突然我的机器有效地停止,我显然在吸取大量内存-似乎我必须更改几何体中的缓冲区

所以我尝试使用bufferGeometry,基本上做了:

var position = asBuffer.attributes.position;
position.array[0] = changedValue;
position.needsUpdate = true;
在我的渲染循环中-但它似乎根本不起作用。如果我只使用一个普通的几何体,它将动态地改变参数-如果我设置了needsUpdate-但只有当我改变原始向量中的值时。如果我自己改变阵列,它似乎不会出现

这里我举了一个例子:-如果你交换创建“立方体”的行-它从工作变为不工作


我更喜欢使用bufferGeometry—它更快、更接近我生成数据的方式—我做错了什么?或者threejs不支持动态缓冲几何体?

您的代码可以正常工作。Try position.array[10]=oldValue;谢谢你!很明显,缓冲区的形状并不像我预期的那样。感谢您的关注也许您可以回答这个问题并标记它已解决。否则我建议你删除它。