3

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

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

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

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

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

任何人都可以在这里阐明一下吗?

4

1 回答 1

2

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

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

所以,从表面上看,它听起来像是更新了……代码的哪些部分特别给你带来了麻烦?

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

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

于 2013-03-18T01:39:40.437 回答