loadScene( sceneIndex ) {

    		const json = this.json;
    		const extensions = this.extensions;
    		const sceneDef = this.json.scenes[ sceneIndex ];
    		const parser = this;

    		// Loader returns Group, not Scene.
    		// See: https://github.com/mrdoob/three.js/issues/18342#issuecomment-578981172
    		const scene = new Group();
    		if ( sceneDef.name ) scene.name = parser.createUniqueName( sceneDef.name );

    		assignExtrasToUserData( scene, sceneDef );

    		if ( sceneDef.extensions ) addUnknownExtensionsToUserData( extensions, scene, sceneDef );

    		const nodeIds = sceneDef.nodes || [];

    		const pending = [];

    		for ( let i = 0, il = nodeIds.length; i < il; i ++ ) {

    			pending.push( buildNodeHierarchy( nodeIds[ i ], scene, json, parser ) );

    		}

    		return Promise.all( pending ).then( function () {

    			// Removes dangling associations, associations that reference a node that
    			// didn't make it into the scene.
    			const reduceAssociations = ( node ) => {

    				const reducedAssociations = new Map();

    				for ( const [ key, value ] of parser.associations ) {

    					if ( key instanceof Material || key instanceof Texture ) {

    						reducedAssociations.set( key, value );

    					}

    				}

    				node.traverse( ( node ) => {

    					const mappings = parser.associations.get( node );

    					if ( mappings != null ) {

    						reducedAssociations.set( node, mappings );

    					}

    				} );

    				return reducedAssociations;

    			};

    			parser.associations = reduceAssociations( scene );

    			return scene;

    		} );

    	}
Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#scenes
@param {number} sceneIndex
@return {Promise<Group>}