Three.JSL:加载Blender模型需要本地服务器吗?

时间:2013-06-24 09:32:31

标签: three.js

我正在使用Three.js开发基于Web的3D WebGL应用程序。我正在尝试使用以下代码加载“Blender”模型JS文件:

var loader = new THREE.JSONLoader();
    var jsonLoader = new THREE.JSONLoader();
    jsonLoader.load( "../build/MySampleModel.js", addModelToScene );
    // addModelToScene function is called back after model has loaded

    var ambientLight = new THREE.AmbientLight(0x111111);
    scene.add(ambientLight);

    function addModelToScene( geometry, materials ) 
    {
        var material = new THREE.MeshFaceMaterial( materials );
        meshObj = new THREE.Mesh( geometry, material );
        meshObj.scale.set(10,10,10);
        meshObj.add( android );
    }      

当我在Chrome浏览器中对此进行测试时,它不会加载模型,并且会出现以下错误:

THREE.WebGLRenderer 59dev three.min.js:417
XMLHttpRequest cannot load file:///Users/xxxx/Desktop//THREE_JS_3DWEB/Dev/three.js-dev/build/MySampleModel.js. Cross origin requests are only supported for HTTP. three.min.js:211
THREE.JSONLoader: [../build/HouseModel.js] seems to be unreachable or file there is empty three.min.js:210
Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101 three.min.js:211

我没有在我的机器上运行任何本地服务器。 是否有必要运行本地服务器以在基于Three.js的项目中加载Blender模型JS文件?

(当我尝试运行名为“webgl_loader_json_blender.html”的Three.js示例文件时,它使用了blender模型的加载,在运行本地apache服务器的Eclipse中,它能够在我运行时正确加载blender文件“ webgl_loader_json_blender.html“在Chrome浏览器中。”

1 个答案:

答案 0 :(得分:2)

我不是专家,但你的浏览器“同源策略”安全限制似乎是个问题。从three.js存储库中检查此链接:https://github.com/mrdoob/three.js/wiki/How-to-run-things-locally

我经历过使用Mozilla Firefox而不是Chrome加载本地模型更容易。

所以答案是没有,服务器不需要加载模型。

祝你好运!