Javascript 制作一个3d地球,由带有3.js的粒子组成

Javascript 制作一个3d地球,由带有3.js的粒子组成,javascript,three.js,Javascript,Three.js,我试图复制这种效果:唯一的区别是我希望粒子的定位方式与地球相似——如果你愿意的话,就是“纹理面” 浏览他们的代码,这是他们用来设置“粒子”组的内容: var map = THREE.ImageUtils.loadTexture('/admin/wp-content/themes/hys/assets/img/particle.png'); var m = new THREE.ParticleSystemMaterial({ color: 0x000000, si

我试图复制这种效果:唯一的区别是我希望粒子的定位方式与地球相似——如果你愿意的话,就是“纹理面”

浏览他们的代码,这是他们用来设置“粒子”组的内容:

var map = THREE.ImageUtils.loadTexture('/admin/wp-content/themes/hys/assets/img/particle.png');

    var m = new THREE.ParticleSystemMaterial({
      color: 0x000000,
      size: 1.5,
      map: map,
      //blending: THREE.AdditiveBlending,
      depthTest: false,
      transparent: true
    });

    var p = new THREE.ParticleSystem(g, m);
    scene.add(p);
这一切都很好,但我如何将它们放置在一个球体上,使其与行星相似呢?我知道如何在2d渲染环境中进行,使用图片和像素扫描来获得粒子位置的正确坐标,但我不知道如何在3d中进行


如果您有一个表示颜色值的像素网格,将地球表面显示为二维粒子,则将其投影到三维需要球体投影方法,欢迎提供任何帮助。关于墨卡托投影的实现,您可以看看这个问题


实现这一点的方法有很多,但变化很大。立体摄影是另一种常见的方法:

你到底在问什么?“如何在球体表面上定位粒子?”或“如何从图像中读取像素值,以便使用该数据定位对象?”或其他内容?事实上,这个问题相当广泛。为我们缩小范围。然后可以使用2d xy坐标作为UV查找。在着色器(或画布)中使用此值对在世界地图图像中查找,以查看粒子是否位于陆地或海洋中,然后可以基于此信息更改粒子大小或颜色。