2015-11-03 144 views
1

我需要在我的幾何圖形中反轉頂點順序。 在例如:
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

+0

你需要操作的是索引,而不是頂點。查看'geometry.attributes.index.array'獲取三角形組合的順序。 – mlkn

+0

「屬性」是「BufferGeometry」的一部分,但我使用通常的幾何。我認爲沒有指數。 – kaigorodov

回答

2
delete mesh.geometry.__directGeometry; 

這應該適用於你的變化。由於某些原因,在r72和r73中__directGeometry沒有自動更新。

+0

它的工作原理,謝謝! – kaigorodov