我正在尝试自己构建一些几何体,而不是使用three.js原语。我添加了顶点和面,我检查了没有任何面部索引超过顶点数。
所以geo.vertices填充了一个THREE.Vector3数组。
然后尝试添加UV:
geo.faceVertexUVs = [];
for( i = 0; i < numVertex; i++ ) {
// (calc u, v here)
geo.faceVertexUVs.push(new THREE.Vector2(u,v));
}
geo.verticesNeedUpdate = true;
geo.uvsNeedUpdate = true;
然后我正在构建每个面孔和像这样正常:
geo.faces.push( new THREE.Face3(
i0, i1, i2,
new THREE.Vector3(nx,ny,nz),
clr, 0
));
// then create a mesh
mesh = new THREE.Mesh( geo, new THREE.MeshLambertMaterial({
shading:THREE.FlatShading, color:0xFFFFFF, map:tex
}));
geo.buffersNeedUpdate = true;
geo.uvsNeedUpdate = true;
scene.add(mesh);
然后,当我尝试渲染时,我收到错误“尝试访问属性2中的范围顶点”。哪个属性是#2?