@@ -42,6 +42,7 @@ import { RectAreaLight } from '../lights/RectAreaLight.js';
4242import { OrthographicCamera } from '../cameras/OrthographicCamera.js' ;
4343import { PerspectiveCamera } from '../cameras/PerspectiveCamera.js' ;
4444import { Scene } from '../scenes/Scene.js' ;
45+ import { CubeTexture } from '../textures/CubeTexture.js' ;
4546import { Texture } from '../textures/Texture.js' ;
4647import { ImageLoader } from './ImageLoader.js' ;
4748import { LoadingManager , DefaultLoadingManager } from './LoadingManager.js' ;
@@ -534,12 +535,36 @@ Object.assign( ObjectLoader.prototype, {
534535 var loader = new ImageLoader ( manager ) ;
535536 loader . setCrossOrigin ( this . crossOrigin ) ;
536537
537- for ( var i = 0 , l = json . length ; i < l ; i ++ ) {
538+ for ( var i = 0 , il = json . length ; i < il ; i ++ ) {
538539
539540 var image = json [ i ] ;
540- var path = / ^ ( \/ \/ ) | ( [ a - z ] + : ( \/ \/ ) ? ) / i. test ( image . url ) ? image . url : scope . texturePath + image . url ;
541+ var url = image . url ;
542+
543+ if ( Array . isArray ( url ) ) {
544+
545+ // load array of images e.g CubeTexture
546+
547+ images [ image . uuid ] = [ ] ;
548+
549+ for ( var j = 0 , jl = url . length ; j < jl ; j ++ ) {
550+
551+ var currentUrl = url [ j ] ;
552+
553+ var path = / ^ ( \/ \/ ) | ( [ a - z ] + : ( \/ \/ ) ? ) / i. test ( currentUrl ) ? currentUrl : scope . texturePath + currentUrl ;
554+
555+ images [ image . uuid ] . push ( loadImage ( path ) ) ;
556+
557+ }
558+
559+ } else {
541560
542- images [ image . uuid ] = loadImage ( path ) ;
561+ // load single image
562+
563+ var path = / ^ ( \/ \/ ) | ( [ a - z ] + : ( \/ \/ ) ? ) / i. test ( image . url ) ? image . url : scope . texturePath + image . url ;
564+
565+ images [ image . uuid ] = loadImage ( path ) ;
566+
567+ }
543568
544569 }
545570
@@ -581,7 +606,18 @@ Object.assign( ObjectLoader.prototype, {
581606
582607 }
583608
584- var texture = new Texture ( images [ data . image ] ) ;
609+ var texture ;
610+
611+ if ( Array . isArray ( images [ data . image ] ) ) {
612+
613+ texture = new CubeTexture ( images [ data . image ] ) ;
614+
615+ } else {
616+
617+ texture = new Texture ( images [ data . image ] ) ;
618+
619+ }
620+
585621 texture . needsUpdate = true ;
586622
587623 texture . uuid = data . uuid ;
0 commit comments