Three.js 无法读取属性';顶点法线';未定义的
我使用three.js文档页面中的示例代码加载了一个带有.mtl的.obj文件,它不断给我错误,无法读取未定义的属性“vertexNormals” 代码如下:Three.js 无法读取属性';顶点法线';未定义的,three.js,Three.js,我使用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 r
// 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' );
}
);
此错误显然是由于将three.js mtl对象加载器与较早版本的three.js build一起使用而导致的。问题是我使用的包中的three.js源代码与我在文档中使用的较新加载程序不兼容
解决方案是添加最新版本的three.js来代替包的three.js版本。(这确实引入了其他的回归)。如果您在将模型加载到场景中时看到这一错误,则three.js版本很可能已过时。使用调试器跟踪它并确定错误的位置。您没有为任何人提供足够的信息来帮助您。我花了很多时间跟踪调试器。最终找到了解决方案,但我试图找到引入错误的最小代码量,以便发布。实际上,这段产生错误的代码意味着存在一个较旧的three.js构建,需要升级,这有望对将来的人有所帮助。