three 基础库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
1.1 KiB

2 years ago
( function () {
//
// VRM is based on glTF 2.0 and VRM extension is defined
// in top-level json.extensions.VRM
class VRMLoader extends THREE.Loader {
constructor( manager ) {
if ( THREE.GLTFLoader === undefined ) {
throw new Error( 'THREE.VRMLoader: Import THREE.GLTFLoader.' );
}
super( manager );
this.gltfLoader = new THREE.GLTFLoader( manager );
}
load( url, onLoad, onProgress, onError ) {
const scope = this;
this.gltfLoader.load( url, function ( gltf ) {
try {
scope.parse( gltf, onLoad );
} catch ( e ) {
if ( onError ) {
onError( e );
} else {
console.error( e );
}
scope.manager.itemError( url );
}
}, onProgress, onError );
}
setDRACOLoader( dracoLoader ) {
this.gltfLoader.setDRACOLoader( dracoLoader );
return this;
}
parse( gltf, onLoad ) {
// const gltfParser = gltf.parser;
// const gltfExtensions = gltf.userData.gltfExtensions || {};
// const vrmExtension = gltfExtensions.VRM || {};
// handle VRM Extension here
onLoad( gltf );
}
}
THREE.VRMLoader = VRMLoader;
} )();