threejs如何使点有方向

时间:2018-10-25 08:05:55

标签: three.js 3d

我想在地球上实现一个指向地球中心的点的点系统,现在我正在使用circleGeometry,它在可视化方面很不错。但是如果我想大规模生成和删除点。所有circleGeometries将重新计算。性能不是很好。在我尝试使用bufferGeometry和点来实现之前。然后,当所有点都没有方向时,所有点将始终面向相机。

那我现在该怎么办?我还有其他方法可以尝试吗?非常感谢您的帮助。

对应的代码(使用circleGeometry):

constructor(
    private data: DataService,
    private router: Router,
    private gls: GeoLocationService
  ) { }

  ngOnInit() {
    this.data.getList(list => {
      this.list = list;
    });
  }

我尝试使用的积分系统:

for (var city in Data) {
var result = returnSphericalCoordinates(
      Data[city].y,
      Data[city].x
);

sizes[city] = 3* Math.pow(Data[city].numPoints,1/2);
var geometry = new THREE.CircleGeometry( sizes[city]/2, 32 );
var texture = new THREE.TextureLoader().load('./disc.png')
texture.wrapS = THREE.RepeatWrapping;
texture.wrapT = THREE.RepeatWrapping;
var material = new THREE.MeshBasicMaterial({
map: texture,
transparent:true,
alphaTest: 0.2,
side: THREE.DoubleSide,
depthWrite: false
// antialias: true 
});
this.mesh = new THREE.Mesh(geometry, material);
this.mesh.position.set(result.x, result.y, result.z );
this.mesh.lookAt(new THREE.Vector3(0, 0, 0));

enter image description here

0 个答案:

没有答案