mirror of
https://github.com/tengge1/ShadowEditor.git
synced 2026-01-25 15:08:11 +00:00
66 lines
1.2 KiB
JavaScript
66 lines
1.2 KiB
JavaScript
/**
|
|
* @author Takahiro / https://github.com/takahirox
|
|
*/
|
|
|
|
// VRM Specification: https://dwango.github.io/vrm/vrm_spec/
|
|
//
|
|
// VRM is based on glTF 2.0 and VRM extension is defined
|
|
// in top-level json.extensions.VRM
|
|
|
|
THREE.VRMLoader = ( function () {
|
|
|
|
function VRMLoader( manager ) {
|
|
|
|
if ( THREE.GLTFLoader === undefined ) {
|
|
|
|
throw new Error( 'THREE.VRMLoader: Import THREE.GLTFLoader.' );
|
|
|
|
}
|
|
|
|
THREE.Loader.call( this, manager );
|
|
|
|
this.gltfLoader = new THREE.GLTFLoader( this.manager );
|
|
|
|
}
|
|
|
|
VRMLoader.prototype = Object.assign( Object.create( THREE.Loader.prototype ), {
|
|
|
|
constructor: VRMLoader,
|
|
|
|
load: function ( url, onLoad, onProgress, onError ) {
|
|
|
|
var scope = this;
|
|
|
|
this.gltfLoader.load( url, function ( gltf ) {
|
|
|
|
scope.parse( gltf, onLoad );
|
|
|
|
}, onProgress, onError );
|
|
|
|
},
|
|
|
|
setDRACOLoader: function ( dracoLoader ) {
|
|
|
|
this.glTFLoader.setDRACOLoader( dracoLoader );
|
|
return this;
|
|
|
|
},
|
|
|
|
parse: function ( gltf, onLoad ) {
|
|
|
|
// var gltfParser = gltf.parser;
|
|
// var gltfExtensions = gltf.userData.gltfExtensions || {};
|
|
// var vrmExtension = gltfExtensions.VRM || {};
|
|
|
|
// handle VRM Extension here
|
|
|
|
onLoad( gltf );
|
|
|
|
}
|
|
|
|
} );
|
|
|
|
return VRMLoader;
|
|
|
|
} )();
|