我试图复制这种效果: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中完成它...
欢迎任何帮助
答案 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