我试图按照那本书中的例子来学习Three.js库和#34;学习Three.js:用于WebGL的JavaScript 3D库"我也有从github链接https://github.com/josdirksen/learning-threejs下载的示例集。大多数示例运行正常,但其中一些会引发错误,尤其是使用OBJLoader.js文件加载Wavefront对象的错误。它在运行时引发了以下错误
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 :(得分:0)
您已经下载了最新版本的three.js库(可能是r68),但是这些示例是针对版本r63编写的,所以有些事情已经改变了。
正如您在r67中的https://github.com/mrdoob/three.js/releases所见,方法computeCentroids
已从Geometry
中移除。