所以 - 我有一种情况,我用计算出的多边形填充屏幕。多边形的形状不断变化——即顶点的数量在每一帧都在变化。如果我每帧创建一个新的几何图形——突然我的机器有效地停止了,而且我显然正在消耗大量内存——似乎我必须更改几何图形中的缓冲区。
所以我尝试使用bufferGeometry,基本上是在做:
var position = asBuffer.attributes.position;
position.array[0] = changedValue;
position.needsUpdate = true;
在我的渲染循环中 - 但它似乎根本不起作用。如果我只使用一个普通的几何图形,它会动态地改变——如果我设置了 needsUpdate——但前提是我改变了原始向量中的值。如果我自己更改数组 - 它似乎没有出现。
我在这里有一个例子:http: //jsbin.com/fanebah/edit ?js,console,output - 如果你交换创建“立方体”的行 - 它会从工作变为不工作。
我更喜欢使用 bufferGeometry - 它更快,更接近我生成数据的方式 - 我做错了什么?还是threejs只是不支持动态缓冲几何?