2013-04-30 138 views
1

我想映射一個使用three.js一個四邊形的紋理,但似乎是錯誤的紋理座標,因爲我看到的只是圖像的左上角像素(紫外線= {0,0}到處都是我猜的)...紋理映射與three.js

這是我如何定義幾何:

var geom = new THREE.Geometry(); 
geom.vertices.push(new THREE.Vertex(new THREE.Vector3(-100, 50, 0))); 
geom.vertices.push(new THREE.Vertex(new THREE.Vector3(-100, -50, 0))); 
geom.vertices.push(new THREE.Vertex(new THREE.Vector3(0, -50, 0))); 
geom.vertices.push(new THREE.Vertex(new THREE.Vector3(0, 50, 0))); 
geom.faces.push(new THREE.Face3(0, 1, 2)); 
geom.faces.push(new THREE.Face3(0, 2, 3)); 
geom.faceVertexUvs[0].push([new THREE.Vector2(0, 0), 
          new THREE.Vector2(10, 0), 
          new THREE.Vector2(10, 10)]); 
geom.faceVertexUvs[0].push([new THREE.Vector2(0, 0), 
          new THREE.Vector2(10, 10), 
          new THREE.Vector2(0, 10)]); 
//I also tried: 
//geom.faceVertexUvs[0].push([new THREE.Vector2(0, 0), 
//       new THREE.Vector2(10, 0), 
//       new THREE.Vector2(10, 10), 
//       new THREE.Vector2(0, 0), 
//       new THREE.Vector2(10, 10), 
//       new THREE.Vector2(0, 10)]); 
geom.computeCentroids(); 
geom.computeFaceNormals(); 

有人能發現什麼,我做錯了什麼?

感謝

回答

1

找到了解決辦法2分鐘發佈問題後...我需要使用新THREE.UV代替THREE.Vector2。 我真的希望這個項目的文檔會變得更厚一些......現在每一件小事都需要數小時的試驗和錯誤(至少對我來說)!

+0

THREE.UV已棄用,您的確應該使用THREE.Vector2。 – 2013-05-20 15:02:14