0

我对 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 );    

}
4

1 回答 1

0

您在哪里查看日志中的警告/错误?似乎很奇怪,因为不推荐使用 THREE.ImageUtils.loadTexture ,所以您没有收到任何反馈,请改用 TextureLoader.load,如果您使用的是三个 js 的更高版本,则应该显示此警告。

另外,你用的是什么浏览器?例如,我发现 Firefox 在显示纹理方面通常比 Chrome 更慷慨一些。这与跨域图像加载有关,当您尝试在本地运行代码时可能会出现问题。

于 2016-12-03T07:07:11.587 回答