短篇小说:
globe代码基于(并包含) threejs v40 ,而github中的最新版本目前为 threejs r55 。我想知道是否有人(在这方面比我更了解)将 globe 移植到更新的threejs版本?
长篇故事:
我正在摆弄来自http://www.chromeexperiments.com/globe的googles globe。
我注意到它基于一个旧的threejs(在github上)版本。使用最新版本(得到相同的结果!)并不容易。另请参阅this question。
我改变了一些函数名称并摸索了一些参数,没什么大不了的。然后我转向着色器。事实证明这更具挑战性。当您执行 Mesh.flipSided = true; 时,旧版本的threejs似乎有一个错误:旧版本和新版本之间的着色器中的法线向量似乎不同。但 globe 中的着色器代码是针对此错误编写的,因此我必须更正着色器代码。
我现在有一些看起来相同的东西,但结合大气和地球根本不起作用。我怀疑this threejs bug参与其中,但我不确定。同样,这是一个 flipSided 错误,可能已被 globe 作者使用。
嗯,嗯,我有点被困在这里。我可以做我想做的事情坚持旧版本,但不知何故感觉很糟糕。有人能在这里说清楚吗?
答案 0 :(得分: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
。
您可以发布或发送代码链接以进行进一步调查吗?全球项目的更新版本听起来是最有价值的努力。