【问题标题】:Shift texture on sphere Three.js在球体 Three.js 上移动纹理
【发布时间】:2014-02-27 05:23:33
【问题描述】:

我有一个球体,上面有一张使用 Three.js 的地图,图像尺寸为 1024*2048。

这是问题所在:我的球体上有 CircleGeometries 指示一些感兴趣的地方,但是当我将图像加载到球体上时,它的位置并不合适,而且我的兴趣点不在正确的国家/地区上方。

我的想法是稍微旋转一下我的地图,使其适合兴趣点,但我无法让它工作。

我尝试使用texture.offset.x = 0.5;

Math.PI / (2 * Math.PI) = 0.5 因为我想旋转半个地球

但我最终只用图像覆盖了半个地球。

所以我用texture.wrapS = THREE.RepeatWrapping; 但现在我在地球上得到了 2 张图像,结果很丑。

我查看了有关rotate sphere texture 的帖子以寻求帮助,但这并没有解决我的问题。 顺便说一句,有两个图像的幂是强制性的吗?

有什么想法吗?

【问题讨论】:

    标签: javascript three.js webgl


    【解决方案1】:

    最后我使用了球体的 phiStart 属性:

    phiStart — 指定水平起始角度。默认为 0。

    并将其设置为

    3/2 * Math.PI(而不是 0)- (Math.PI/200) 与国家边界框完全匹配,如:

    图像距离正确位置大约 100 公里,那么简单的数学可以解决这个问题:

    2*PI = 40.000 公里,我想要 100 公里,所以 2*PI*100 / 40.000 = PI/200

    【讨论】:

      【解决方案2】:

      使用纹理映射而不是纹理偏移

      【讨论】:

      • 感谢您的回答,我想这是一个很好的建议,但我对此一无所知,您有相关链接我可以看看吗?
      猜你喜欢
      • 2012-04-29
      • 2013-06-22
      • 2013-12-19
      • 2011-10-18
      • 2015-09-22
      • 1970-01-01
      • 2013-12-23
      • 2019-02-11
      • 2013-10-21
      相关资源
      最近更新 更多