在THREE.js中反向顶点顺序

时间:2015-11-03 09:55:32

标签: javascript three.js

我需要在几何体的面上反转顶点顺序。 例如:

// create geometry
var geometry = new THREE.Geometry();
// create vertices
geometry.vertices.push( new THREE.Vector3( 0,   0,   0 ) );
geometry.vertices.push( new THREE.Vector3( 0,   100, 0 ) );
geometry.vertices.push( new THREE.Vector3( 100, 0,   0 ) );
// create face
var face = new THREE.Face3( 0, 1, 2 );
geometry.faces.push ( face );
// compute normals
geometry.computeFaceNormals();
geometry.computeVertexNormals();
// add to scene
var mesh = new THREE.Mesh(
    geometry,
    new THREE.MeshBasicMaterial({color: 0x00ffff})
);
scene.add( mesh );

现在我需要改变面上从0,1,2到2,1,0的顶点顺序。但是当我手动执行此操作时,无论我将哪个更新标志设置为true,它都无法正常工作。

问题 - 是否可以动态反转顶点顺序,如果是,那么如何?

重要 - 在这种情况下,最好避免对几何体使用负标度。并且最好避免重新创建对象。

THREE.js:r73

1 个答案:

答案 0 :(得分:2)

delete mesh.geometry.__directGeometry;

这应该适用于您的更改。由于某些原因,在r72和r73中__directGeometry没有自动更新。