渲染后向three.js网格添加几何体



我正在创建一个带有THREE.Geometry实例的网格,然后动态填充几何体的verticesfaces数组。几何体经过迭代细化,在每次迭代时添加额外的顶点和面。如果在将网格添加到场景之前细化几何体,则它将正确渲染。但是,如果将网格添加到场景中并对其进行渲染,然后对其进行修改,则仅显示第一次渲染时包含的几何体的初始N面。将遵守对这些面使用的顶点位置的更改,但仅渲染这N个面。

几何体实例标记为dynamic = true,每次修改几何体后,我都会设置verticesNeedUpdateelementsNeedUpdatebuffersNeedUpdate。我也尝试过设置所有其他"脏"标志,尽管我只希望需要设置这三个(即使这样,我也不确定我是否需要buffersNeedUpdate)。

据我所见,几何体的geometryGroupgeometryGroupList属性是从第一次渲染网格时存在的面构建和填充的,但没有重建为包括随后添加的面。

我做错了什么?

我假设您使用的是WebGLRenderer

正如three.js wiki文章《如何更新事物》中所述,您只能更新缓冲区的内容,不能调整缓冲区的大小。

three.js r.59

最新更新