我使用了three.js文档页面中的示例代码来加载带有.mtl的.obj文件,并且它一直给我错误无法读取属性' vertexNormals'未定义的。
代码如下:
// instantiate a loader
var loader = new THREE.OBJMTLLoader();
// load an obj / mtl resource pair
loader.load(
// OBJ resource URL
'models/farmhouse.obj',
// MTL resource URL
'models/farmhouse.mtl',
// Function when both resources are loaded
function ( object ) {
scene.add( object );
},
// Function called when downloads progress
function ( xhr ) {
console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
},
// Function called when downloads error
function ( xhr ) {
console.log( 'An error happened' );
}
);
答案 0 :(得分:0)
这个错误显然是因为使用了旧版本的three.js构建的three.js mtl对象加载器。问题是我使用的软件包中的three.js源代码与我在文档中使用的较新的加载器不兼容。
解决方案是添加最新版本的three.js代替包的three.js构建。 (确实引入了其他回归来解决)。如果您在将模型加载到场景中时看到了这个确切的错误,那么three.js构建很可能已经过时了。