Javascript ';向量未定义';克隆三维几何体对象中的顶点时出现警告

Javascript ';向量未定义';克隆三维几何体对象中的顶点时出现警告,javascript,three.js,Javascript,Three.js,我想动态地向网格添加新面。我一直收到这样的警告: THREE.BufferAttribute.copyVector3sArray():向量未定义 这是最简单的例子,仍然导致它。这个例子正确地生成了一个三角形,它是几何体第一个面的克隆体,但我无法摆脱这个警告 var vertices = this.body.geometry.vertices; var faces = this.body.geometry.faces; var face = faces[0]; var a = face.a; v

我想动态地向网格添加新面。我一直收到这样的警告:

THREE.BufferAttribute.copyVector3sArray():向量未定义

这是最简单的例子,仍然导致它。这个例子正确地生成了一个三角形,它是几何体第一个面的克隆体,但我无法摆脱这个警告

var vertices = this.body.geometry.vertices;
var faces = this.body.geometry.faces;

var face = faces[0];
var a = face.a;
var b = face.b;
var c = face.c;

var va = vertices[a].clone();
var vb = vertices[b].clone();
var vc = vertices[c].clone();

vertices = [];
vertices.push(va);
vertices.push(vb);
vertices.push(vc);

this.body.geometry.vertices = vertices;
this.body.geometry.faces = faces;

它看起来很像,只是我没有意外地将向量指定给顶点的索引,所以我无法使用该解决方案。

似乎未定义的向量是顶点法线。运行

this.body.geometry.computeFlatVertexNormals();
解决了这个问题。(或者,可以通过运行
computeFaceNormals()
computeVertexNormals()
来计算法线)