2016-12-01 5 views
0

Ich bin komplett neu bei Three.JS und kann mich nicht darum kümmern, dass eine Skybox in meiner Szene erscheint. Ich bekomme keine Fehler von meinem Code, was mich ratlos gemacht hat. Jede Hilfe würde sehr geschätzt werden.Three.js skybox wird nicht geladen

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' sollte das Ergebnis' CubeMapHDR0001.jpg' oder 'CubeMap/HDR0001.jpg' sein? – prisoner849

Antwort

0

Wo sehen Sie Ihr Protokoll für Warnungen/Fehler? Es scheint seltsam, dass Sie keine Rückmeldung erhalten, da THREE.ImageUtils.loadTexture veraltet ist, verwenden Sie stattdessen TextureLoader.load, sollte diese Warnung angezeigt werden, wenn Sie eine etwas spätere Version von drei js verwenden.

Und welchen Browser benutzen Sie? Ich finde, dass Firefox in der Regel etwas großzügiger ist, wenn es Texturen zeigt als Chrome. Dies hat mit der ursprungsübergreifenden Laden von Bildern zu tun und kann ein Problem sein, wenn Sie versuchen, Ihren Code lokal auszuführen.