重命名Three.JS项目中的根文件夹会导致奇怪的别名错误

时间:2015-05-01 06:49:32

标签: javascript android google-chrome three.js

我讨厌成为一个堆栈溢出帐户的人只是问一个问题(我欠了很多堆栈流),但这确实让我彻底难倒。

几个月来,我一直困扰着一个神秘的错误,在Android上运行时,我的three.js VR项目会出现奇怪的渲染错误。 我总是能够通过基本上逐行重建所有东西来解决它,看看导致问题的原因。然而,我从未有过确定原因的运气。

Here's a side-by-side image of the problem (left is normal, right is an identical scene that's having the problem)

今天,我找到了一种方法来重现这个问题 - 我拿了google的Google Cardboard three.js示例(你可以在vr.chromeexperiments.com找到它(我得到10点声望之前我不允许超过两个链接) )),添加到某些领域(以便有关于别名的东西需要注意)并发现它运行正常。

Here's the original folder structure.

从'WTF'重命名根文件夹(你能说这令我感到沮丧吗?:P)到'WTFF'会导致渲染错误出现。复制文件夹,重命名原始“WTFF”并命名副本“WTF”将导致原始文件显示渲染错误,并且副本显示正确。也就是说,错误是由项目的根文件夹引起的,该根文件夹没有首次创建项目时的名称。我正在用记事本++编辑所有内容。

我在这里遗漏了什么吗?这里唯一的文件是纯文本.js和.html,还有一些图片。为什么根文件夹的名称对WebGL内容的呈现方式有任何影响?有没有办法绕过这个错误?有人知道是什么原因引起的吗?我对three.js非常熟悉,但我从来没有直接在WebGL中做过任何事情,所以可能会有一些我不知道的内容可能涉及文件夹结构?

我没有包含任何代码,因为问题似乎与文件中的实际代码没有任何关系(这个问题已经出现在我工作过的每个three.js项目中)。但是,如果您认为它可能有所帮助,请告诉我。

非常感谢! :)

更新:我离开了半个小时然后回来了 - 现在原始的WTF命名文件夹结构也显示错误。我正在用window.location.reload(true);强制重新加载,所以我完全不知道发生了什么。

1 个答案:

答案 0 :(得分:0)

所以我想我可能找到了解决方案:

虽然我不确定确切的根本原因,但似乎问题出在Chrome for Android中,而不是在WebGL或Three.js中。 似乎Chrome for Android正在缓存WebGL内容并对其执行某些操作,如果文件夹结构发生更改,则会导致出现此错误。

可以通过清除Chrome缓存(设置 - >应用管理器 - > Chrome - >清除缓存)来修复此问题。

我希望这有助于将来遇到此问题的任何人!