我正在创建一个带有THREE.Geometry实例的网格物体,然后动态填充几何体的vertices
和faces
数组。迭代地细化几何体,在每次迭代时添加额外的顶点和面。如果在将网格物体添加到场景之前优化几何体,则会正确渲染。但是,如果我将网格物体添加到场景并渲染它,然后修改它,只显示初始N面朝向第一个渲染所包含的几何体。对这些面使用的顶点位置的更改将受到尊重,但只会渲染那些N面。
几何实例标记为dynamic = true
,每次修改几何体后,我都会设置verticesNeedUpdate
,elementsNeedUpdate
和buffersNeedUpdate
。我也试过设置所有其他'脏'标志,虽然我只希望设置这三个(甚至那时,我不确定我应该需要buffersNeedUpdate)。
据我所见,几何体的geometryGroup
和geometryGroupList
属性正在构建并从首次渲染网格时存在的面填充,但未重建以包含面随后补充说。
我做错了什么?
答案 0 :(得分:9)
我假设您使用的是WebGLRenderer
。
正如three.js wiki文章How to Update Things中所述,您只能更新缓冲区的内容,而无法调整缓冲区的大小。
three.js r.59