2016-12-01 79 views
0

我對Three.JS是全新的,並且似乎無法讓我的腦袋在我的場景中出現天空盒。我沒有從我的代碼中得到任何錯誤,這讓我難倒了。任何幫助將不勝感激。Three.js天空盒不加載

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顯示的紋理更慷慨一些。這與交叉源圖像加載有關,並且可能會在嘗試在本地運行代碼時出現問題。