2012-10-01 68 views
3

我正在嘗試使用Three.js創建一個簡單的Skybox,但遇到了我應用於僅在外部工作的多維數據集的紋理問題,並且未在多維數據集內部顯示。Three.js天空盒紋理問題。

這裏是我的天空盒代碼:

var path = assetPath + skyboxPrefix; 
var urls = [ path + 'alpine_front.jpg', 
      path + 'alpine_back.jpg', 
      path + 'alpine_left.jpg', 
      path + 'alpine_right.jpg', 
      path + 'alpine_top.jpg' ]; 

var cubeTexture = THREE.ImageUtils.loadTextureCube(urls); 

var shader = THREE.ShaderUtils.lib["cube"]; 
shader.uniforms["tCube"].texture = cubeTexture; 

var skyboxMaterial = new THREE.ShaderMaterial({ 
    uniforms  : shader.uniforms, 
    fragmentShader : shader.fragmentShader, 
    vertexShader : shader.vertexShader, 
    depthWrite  : false 
}); 

var skyboxGeom = new THREE.CubeGeometry(10000, 10000, 10000); 

skybox = new THREE.Mesh(skyboxGeom, skyboxMaterial); 
skybox.flipSided = true; 

scene.add(skybox); 

這裏有一個現場版http://projects.harrynorthover.com/landscape/src/

先進的感謝!

回答

1

我也看到了其他例子中的「flipSided」開關,並沒有得到它的工作(可能是過時的)。什麼工作對我來說(有球)樹立了一個負面規模:

skybox.scale.x = -1; 
+0

只是給了這個嘗試,所有我得到的是一個空白的屏幕,紋理仍然不顯示。 – harrynorthover