Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Three.js skybox纹理问题。_Javascript_Webgl_Three.js - Fatal编程技术网

Javascript Three.js skybox纹理问题。

Javascript Three.js skybox纹理问题。,javascript,webgl,three.js,Javascript,Webgl,Three.js,我试图使用Three.js创建一个简单的Skybox,但是遇到了一个问题,我将纹理应用到立方体上,只是在外部工作,而不是在立方体内部显示 这是我的skybox代码: var path = assetPath + skyboxPrefix; var urls = [ path + 'alpine_front.jpg', path + 'alpine_back.jpg', path + 'alpine_left.jpg',

我试图使用Three.js创建一个简单的Skybox,但是遇到了一个问题,我将纹理应用到立方体上,只是在外部工作,而不是在立方体内部显示

这是我的skybox代码:

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);
这是一个现场版本

提前感谢

我在其他示例中也看到了“双面”开关,但它无法正常工作(可能已经过时)。对我来说(使用球体)最有效的方法是设置负比例:

skybox.scale.x = -1;

object.flipside
从r50开始就消失了。它被替换为
object.material=THREE.BackSide
。在这种情况下,检查和查看此页面应该很方便。

只要尝试一下,我得到的只是一个空白屏幕,纹理仍然无法显示。感谢您花时间帮助Doob先生,这真是太好了,干杯!