制作一个三维地球,由具有Three.js的粒子组成

时间:2015-02-02 19:48:34

标签: javascript three.js

我试图复制这种效果:http://www.hys-inc.jp/唯一的区别是我希望粒子以这样的方式定位,它们就像地球一样 - 如果你愿意,那就是'纹理面'。

浏览他们的代码,这是他们用来设置粒子组的原因:

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中完成它...

欢迎任何帮助

1 个答案:

答案 0 :(得分:0)

如果您有一个像素网格表示颜色值,将2维地球表面显示为粒子,则将其投影到3维需要球投影方法。您可以看一下这个问题,以实现墨卡托投影。

how map 2d grid points (x,y) onto sphere as 3d points (x,y,z)

有许多方法可以通过大量变化来实现这一目标。立体摄影是另一种常见方法:http://en.wikipedia.org/wiki/List_of_map_projections