0

我的问题似乎类似于无法可视化加载的数据,但我没有控制台错误,并且我已经在我的 Chrome 浏览器中添加了“-allow-file-access-from-files”标志。这是我的Java编码,

window.onload = function() {

var r = new X.renderer3D();
  r.init();

  pros = new X.mesh();
  pros.file = 'file:///C:/Users/Nathan/Downloads/JB Farmer STL ACII.stl';
  pros.caption = 'Prosthetic';

  r.add(pros);

  r.render();

};

我是否应该“玩弄”相机位置,我知道我必须在 Three.js 中这样做。也许模型需要法线?我不确定它是否。除了 Three.js,我还没有使用过 3D 建模。

更新:嗯,我不确定这是怎么回事,但我意识到 XTK 生成了 2 canvases 。我看了前两节课,他们有一节。^ 现在去掉了多余的画布,一定是复制了一块,就在里面。

4

2 回答 2

0

如果您修改没有空格的文件名会发生什么?

JB Farmer_STL_ACII.stl 而不是 JB Farmer STL ACII.stl

于 2012-06-27T14:48:33.180 回答
0

目前,xtk 的加载器似乎并没有为本地完成。我的意思是:它使用 XMLHttpRequest (XHR) 通过 GET 请求获取文件。首先,必须将请求发送到可以处理它的东西(由 Wamp 模拟的服务器或本地主机或等效设备)。然后让我们想象一下,如果一个浏览器,无论是哪一个,通过他的 url 在客户端的文件上允许 XHR,并想象我是一个海盗,而你来到我的网站。我很了解 Windows,我知道在 C:/Windows/System32 中总是有一个文件可以找到您的个人数据。我该怎么办 ?一个XHR!你被黑了。这是一个故事,但你看到了这个想法。

这就是为什么浏览器允许访问本地文件的唯一方法是 HTML5 File API 和 HTML5 Drag&Drop API(不幸的是......)。实际上,克服该限制的一种方法是在客户端使用二进制代码(flash、java applet)。客户端是唯一可以要求打开文件或删除文件的人,因此浏览器肯定不会因为他而出现任何安全故障。

因此,您应该使用 Wamp 之类的东西对其进行测试,并使用“http://localhost/.../myfile.stl”之类的 url 或相对 url“/.../myfile.stl”之类的 url 访问您的文件,或者执行如果您真的想要本地文件,请跟随。

几周前,我为 xtk 和本地文件的私有格式编写了自己的解析器,它运行良好,我只是使用 HTML5 API 读取文件并从中获取 String 或 BinaryArray,然后编写了一个解析器,将其转换为X.mesh。所以我认为最好的办法是为 HTML5 文件 API 扩展 X.loader,或者像我一样手动加载文件。

以下来自 Haehn 的 jsFiddle 有帮助这里

于 2012-06-28T10:48:28.587 回答