Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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-纹理未加载_Javascript_Three.js - Fatal编程技术网

Javascript three.js-纹理未加载

Javascript three.js-纹理未加载,javascript,three.js,Javascript,Three.js,上下文 我正在尝试重新创建使用所示的示例。我使用以下代码加载纹理数组: var r = "https://github.com/timoxley/threejs/tree/master/examples/textures/cube/Park3Med/"; var urls = [ r + "px.jpg", r + "nx.jpg", r + "py.jpg", r + "ny.jpg", r

上下文

我正在尝试重新创建使用所示的示例。我使用以下代码加载纹理数组:

        var r = "https://github.com/timoxley/threejs/tree/master/examples/textures/cube/Park3Med/";
        var urls = [
            r + "px.jpg", r + "nx.jpg",
            r + "py.jpg", r + "ny.jpg",
            r + "pz.jpg", r + "nz.jpg"
        ];

我只是想重现纹理,而不是帘布层。有没有任何原因可以解释为什么我已经设置好了它,但它不能正常工作?

这与安全性有关。您可以在apache或节点服务器上为您的项目提供服务。您将不再有这个问题。

公认的答案在说明错误时是正确的,但遗漏了一个简单的解决方案。可以使用Three.js加载跨原点图像数据。你只需要正确地设置它。下面是修补程序的示例:

代码更改:

    var loader = new THREE.CubeTextureLoader();

    loader.setCrossOrigin( 'anonymous' );

    var textureCube = loader.load( urls );

还请注意,您指向了错误的URL。你需要使用git原始URL来完成你的工作,尽管我不知道它是否符合git ToS。

谢谢你为我指明了正确的方向-有解决方法吗?你能详细说明一下吗?我看到的最接近的答案是,但不太清楚解决方案是什么:这是一个跨来源政策问题吗?所以,如果所有内容都在同一个域上,它应该可以正常工作?是的,它与安全性有关。不知道我为什么会被否决。您可以在apache或节点服务器上为您的项目提供服务。你不会再有这个问题了。编辑,我在我的手机上,这就是为什么我把答案缩短了。我自己的错…@修改他使用的URL是错误的,如果有任何问题,他会返回HTML。在使用URL时,无法确认跨源问题。即使他将代码放在自己的apache或节点服务器上,它仍然会失败。这些图像必须与原始javascript托管在同一台服务器上,您的答案才能正常工作,因此无法回答问题。我没有投你反对票,但我想这回答了你关于为什么有人可能投了反对票的问题。谢谢你在这方面的帮助-两种解决方案都有效,但这一种解决方案赢得了灵活性。跟进:有没有一个原因可以解释为什么相机的旋转不受移动设备的控制(我是说在一个单独的站点上,而不是在JSFIDLE上)?我在这里看到过这种方法的实现,但不是与鼠标移动一起实现的: