three.js最新版本'75'相较以前使用的'71'版本obj模型加载的方法发生了变化。
会产生如下错误:
loader.setCrossOrigin is not a function
转自:http://blog.youkuaiyun.com/u014658748/article/details/51074057
移除了OBJMTLLoader.js,并将原来OBJLoader.js和MTLLoader.js加载方法loader.setCrossOrigin更改为loader.setPath。
所以再使用原来的加载方式:
var onProgress = function(xhr) {
if (xhr.lengthComputable) {
var percentComplete = xhr.loaded / xhr.total * 100;
}
};
var onError = function(xhr) {};
var loader = new THREE.OBJMTLLoader();
loader.load('obj/test.obj', 'obj/test.mtl', function(object) {
scene.add(object);
}, onProgress, onError);
loader.setCrossOrigin is not a function
需要将加载方式改为:
var onProgress = function ( xhr ) {
if ( xhr.lengthComputable ) {
var percentComplete = xhr.loaded / xhr.total * 100;
}
};
var onError = function ( xhr ) { };
var mtlLoader = new THREE.MTLLoader();
mtlLoader.setBaseUrl( 'obj/' );
mtlLoader.setPath( 'obj/' );
mtlLoader.load( 'test.mtl', function( materials ) {
materials.preload();
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials( materials );
objLoader.setPath( 'obj/' );
objLoader.load( 'test.obj', function ( object ) {
scene.add( object );
}, onProgress, onError );
});
转自:http://blog.youkuaiyun.com/u014658748/article/details/51074057