【问题标题】:Loading OBJ model from local machine with Three.js?使用 Three.js 从本地机器加载 OBJ 模型?
【发布时间】:2013-11-08 05:29:33
【问题描述】:

我正在尝试使用 Three.js 加载 OBJ 模型。

一开始我试过这个:

var loader = new THREE.OBJLoader( );
loader.load( 'chair.obj', function ( object )
{
   scene.add( object );
});

但我收到一条错误消息,说只有 HTTP 支持跨源请求。

我在网上寻求帮助,找到了这个页面:https://github.com/mrdoob/three.js/wiki/How-to-run-things-locally

并尝试从 cmd 行运行 Chrome:chrome --allow-file-access-from-files

还是什么都没有。

最后我尝试使用 Python 的内置 Http 服务器。 并尝试像这样加载:

var loader = new THREE.OBJLoader( );
loader.load( 'http://localhost:8000/chair.obj', function ( object )            
{
   scene.add( object );

});

现在场景加载了,但我尝试加载的模型没有显示出来。在 Chrome 开发工具中,我看到以下错误:

XMLHTTPRequest 无法加载。Access-Control-Allow-Origin 不允许Origin null。

我在桌面上具有 3D 图形方面的专业知识,但我对 JavaScript 和互联网技术完全陌生。 Three.js 让我非常兴奋,并且非常有动力去探索它,但我遇到了这些问题。

我尝试在互联网上查找此内容,但没有成功。 我真的需要帮助。我会很感激任何人可能对如何克服这一点提出任何建议。

谢谢

【问题讨论】:

  • 嗯,好吧,不用加载 obj ,而是将您的页面导航到适当的目录。例如 localhost:8000/index.html 在您的浏览器中。在 OBJ-Loader 中,如果文件与 index.html 位于同一目录中,则只需使用“/chair.obj”作为路径。这应该工作:)
  • 非常感谢!这有效!

标签: javascript google-chrome model 3d three.js


【解决方案1】:

这听起来像是在本地运行 three.js 的 Chrome 安全问题。 Firefox 可能无需任何额外步骤即可显示模型。

要使其正常工作,您需要将此行添加到 Chrome 快捷方式目标

--allow-file-access-from-files

所以它在 Windows 上看起来像这样

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files

有更多关于这个主题的信息here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 2017-01-28
    • 2016-05-19
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多