【问题标题】:Has anyone ported globe (the chrome experiment) to the latest threejs version?有没有人将globe(chrome实验)移植到最新的threejs版本?
【发布时间】:2013-03-18 09:39:40
【问题描述】:

短篇小说:
地球代码基于(并包含)threejs v40,而目前 github 中的最新版本是 threejs r55。我想知道是否有人(在这方面比我更了解)将 globe 移植到更新的threejs 版本?

说来话长:
我正在摆弄来自http://www.chromeexperiments.com/globe 的谷歌地球仪。 我注意到它基于旧的threejs(在github上)版本。使用最新版本(并获得相同的结果!)并不容易。另见this question

我更改了一些函数名称并摸索了一些参数,没什么大不了的。然后我转向着色器。事实证明,这更具挑战性。当您执行 Mesh.flipSided = true; 时,旧版本的threejs 似乎有一个错误:旧版本和新版本之间的着色器中的法线向量似乎不同。但是 globe 中的着色器代码是针对这个错误编写的,所以我不得不更正着色器代码。

我现在有一些看起来一样的东西,但是将大气和地球结合起来根本不起作用。我怀疑this threejs bug 参与其中,但我不确定。这又是一个 flipSided 错误,可能已被 globe 作者使用。

嗯,嗯,我有点卡在这里。我可以做我想做的事情坚持旧版本,但不知何故感觉很糟糕。

任何人都可以在这里解释一下吗?

【问题讨论】:

  • 您是否查看了Migration Wiki 以获得升级到当前版本的帮助?
  • 是的,我在那里看过。不幸的是,它错过了 r45 之前的任何内容(例如重命名 addObject->add)。那里没有关于着色器的信息。我也真的不希望在那里看到如何将某个版本中的误用错误修复为更高版本中的有效等价物(如果可能的话)的描述;-)。无论如何感谢您的指针。

标签: three.js


【解决方案1】:

根据https://code.google.com/p/webgl-globe/source/browse/globe/globe.js 的更新日志:

“2012 年 11 月 5 日。更新到 threejs r52 和 tweenjs r7。”

所以,从表面上看,它似乎已经更新了……代码的哪些部分特别给你带来了麻烦?

现在,在mesh的材质中,需要设置side:THREE.BackSide,而不是Mesh.flipSided = true

您能否发布或发送指向您的代码的链接以供进一步调查?全球项目的更新版本听起来像是一项最有价值的工作。

【讨论】:

  • 感谢您的提示!我现在意识到我指望下载包含最新版本,但事实并非如此。不太聪明。我现在检查了 hg repos 中的代码,它似乎可以与更高版本的 threejs 一起使用。这个项目已经超出了我的直接关注范围,所以我只是快速检查了一下。我会刷新我的记忆,然后再试一次我当时想做的事情,也许用 now-latest threejs 运行它。我会尽量记住在这里报告;)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-24
  • 1970-01-01
  • 2011-03-28
相关资源
最近更新 更多