2014-10-12 52 views
0

我想要按照該書中的例子來學習Three.js庫「學習Three.js:用於WebGL的JavaScript 3D庫」,我也有例子從那個github鏈接下載的套件https://github.com/josdirksen/learning-threejs。大多數示例運行良好,但其中一些會產生錯誤,特別是使用OBJLoader.js文件加載Wavefront對象的錯誤。它提出了在運行時出現以下錯誤錯誤在OBJLoader THREE.JS lilbrary

Uncaught TypeError: undefined is not a function VM12649 OBJLoader.js:66

OBJLoader.js的相應部分是

function meshN(meshName, materialName) { 

     if (geometry.vertices.length > 0) { 

      geometry.mergeVertices(); 
      geometry.computeCentroids(); //EXCEPTION RASED HERE !!!!! 
      geometry.computeFaceNormals(); 
      geometry.computeBoundingSphere(); 

      object.add(mesh); 

      geometry = new THREE.Geometry(); 
      mesh = new THREE.Mesh(geometry, material); 

      verticesCount = 0; 

     } 

回答

0

您已經下載了最新版本的three.js所圖書館(可能R68),但實例是針對版本r63寫的,所以有些東西已經改變。

正如您在r67中的https://github.com/mrdoob/three.js/releases中所見,方法computeCentroids已從Geometry中刪除。

+0

感謝您的澄清,我沒有注意到。這是否意味着我們必須等到Jos Dirksen更新learning-threejs以符合當前版本(r68)? – 2014-10-12 13:18:43

+0

你有兩種選擇。下載你想要的示例並將其轉換爲r68,或者如果你想看到運行示例,請從https://github.com/mrdoob/three.js/releases/tag/r63下載r63版本的three.js這一頁) – gaitat 2014-10-12 13:45:43