2016-12-01 2 views
0

Я совершенно не знаком с Three.JS и, похоже, не хочу, чтобы моя звезда появлялась в моей сцене. Я не получаю никаких ошибок из своего кода, который оставил меня в тупике. Любая помощь будет принята с благодарностью.Three.js skybox не загружается

function createSky(){ 

    var imageList = "CubeMap" 

    THREE.ImageUtils.crossOrigin = ''; 
    var faces = ["HDR0001", 
        "HDR0002", 
        "HDR0003", 
        "HDR0004", 
        "HDR0005"]; 

    var imgType = ".jpg"; 
    var skyGeo = new THREE.CubeGeometry (500, 500, 500); 
    var matFacesArray = []; 

    for (var i = 0; i < 6; i++) { 
     matFacesArray.push(new THREE.MeshBasicMaterial({ 
      map: THREE.ImageUtils.loadTexture(imageList + faces[i] + imgType),   
      side: THREE.BackSide 
     })); 

    }  

    var sky = new THREE.MeshFaceMaterial (matFacesArray); 
    var skyBox = new THREE.Mesh (skyGeo, sky); 
    scene.add (skyBox);  

} 
+0

'imageList + faces [i] + imgType' должен ли его результат быть' CubeMapHDR0001.jpg' или 'CubeMap/HDR0001.jpg'? – prisoner849

ответ

0

Где вы смотрите свой журнал для предупреждений/ошибок? Похоже, вы не получите никакой обратной связи с THREE.ImageUtils.loadTexture устарели, вместо этого используйте TextureLoader.load вместо, это предупреждение должно появиться, если вы используете несколько более позднюю версию из трех js.

Кроме того, какой браузер вы используете? Я считаю, что Firefox, как правило, немного щедрее, показывая текстуры, например, Chrome. Это связано с загрузкой изображения с использованием кросс-оригинала и может быть проблемой при попытке запустить код локально.

Смежные вопросы