2016-09-30 118 views
1

我想在ThreeJs中添加一个纹理到一个框中。 我没看到我做错了什么,在铬和互联网exp它不工作。ThreeJs纹理不会出现

<script src="three.min.js"></script> 
    <script src="OrbitControls.js"></script> 
    <script> 
    //Scene aanmaken 
    var scene = new THREE.Scene(); 
    //Camera 
    var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000); 
    //Render instellen 
    var renderer = new THREE.WebGLRenderer(); 
    renderer.setSize(window.innerWidth, window.innerHeight); 
    renderer.setClearColor(0x000000); 
    document.body.appendChild(renderer.domElement) 
    //Camera positie 
    camera.position.z = 30; 
    camera.position.y = 10; 
    //Orbit control aanroepen, voor rond te kijken in de scene 
    var controls = new THREE.OrbitControls(camera, renderer.domElement); 


    var tafelGeometry = new THREE.BoxGeometry(20,1,40); 
    //Texture  
    var tableMaterials = new THREE.MeshBasicMaterial({map: THREE.ImageUtils.loadTexture("laken.jpg"),side: THREE.DoubleSide}); 

    var tafel = new THREE.Mesh(tafelGeometry,tableMaterials); 
    scene.add(tafel); 


    function render() 
    { 
    requestAnimationFrame(render); 
    renderer.render(scene,camera); 
    controls.update(); 
    } 
    render(); 

我希望有人能帮助我。 亲切的问候帕特里克

+0

我想你的代码从Web服务器提供服务和正常工作时。纹理加载和看起来不错,所以我怀疑,如上所述,它可能是一个交叉来源问题。 – PsymonR

回答

1

Chrome出于安全原因阻止加载纹理。 尝试使用打开Chrome浏览器(在Windows中):

.\chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security 

(但不访问其他网站与)

1

我觉得你有加载纹理的问题。可以肯定的纹理是完全加载,你没得到了以下错误:

XMLHttpRequest cannot load file:/Desktop/Three.js/abc.jpg. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

如果您在使用通过使网站的一些网站编辑(即视觉工作室)得到了上述问题的检查。