基于性能的原因,改变几何体(Geometry)的某些属性不会引起浏览器对几何体(Geometry)的重新绘制。THREE.js会缓存一些
数据,例如几何体的顶点和面的信息,修改这些属性的时候需要通知THREE.js去更新几何体,这些几何体才能得到重新计算并更新。
需要通知THREE.js更新的几何体(Geometry)属性
下面这些属性的变动需要通知THREE.js更新
1. geometry.vertices
2. geometry.faces
3. geometry.morphTargets
4. geometry.faceVertexUvs
5. geometry.faces[i].normal and geometry.vertices[i].normal
6. geometry.faces[i].color and geometry.vertices[i].color
7. geometry.vertices[i].tangent
8. geometry.lineDistances
通知THREE.js更新
针对不同的属性变化,都可以设置该几何体实例的某个属性值为true来通知THREE.js重新计算这些几何体并更新,当THREE.js更新了这些几何体之后,这些属性值又会重新被
置为false。
//修改几何体各个面的颜色
this.changeColors = function