0
说我有100件不同形状的几何形状,这是我使用合并:如何在three.js中合并几何后访问单个几何形状?
THREE.GeometryUtils.merge(geometry1, geometry2)
将我仍然能够更新单个形状的几何形状,而不是所有的人?如果是这样,我该怎么做?
说我有100件不同形状的几何形状,这是我使用合并:如何在three.js中合并几何后访问单个几何形状?
THREE.GeometryUtils.merge(geometry1, geometry2)
将我仍然能够更新单个形状的几何形状,而不是所有的人?如果是这样,我该怎么做?
您可以a)记下每个几何图形的顶点偏移量(即在合并最新的几何图形之前合并几何图形中已有多少顶点),然后使用它仅循环并修改某个几何图形或b)如果每个人都有一个杰出的材料,则可以遍历所有面并将修改限制为使用正确材质附加到面的顶点。
但是,由于它仍然是一个大的几何图形,无论您编辑它有多少,您都会将所有内容都推送到GPU。如果你只是偶尔修改它,这可能没什么关系,但在这种情况下,你应该检查你是否可以通过重新整合整个事物来获得足够的性能,而不用担心更复杂的事情。
如果您确实需要将已修改的数据只推送到GPU,则存在一个void bufferSubData(GLenum target, GLintptr offset, ArrayBufferView data)
函数。然而,这是原始的WebGL,你需要深入到three.js的内部以便修补它。