3d-force-graph笔记(6):文本

3d-force-graph文本可以使用2D文本或精灵文本SpriteText,后者有3D透视效果,近大远小,性能会有折扣。

3D字体需要下载字体文件,各项开销较大,按需使用。

举例关系线对象用2D文本表达:

.linkThreeObjectExtend(true)
.linkThreeObject(link => {
   let text_div = document.createElement('div');
   text_div.id = node.id;
   text_div.textContent = node.name;
   let text = new THREE.CSS2DObject(text_div);   
   text.position.set(0, 0, 0);
   return text;
})

使用three-spritetext:

.linkThreeObjectExtend(true)
.linkThreeObject(link => {
	const sprite = new SpriteText(link.relation);
	sprite.color = '#5e89cd';
	sprite.textHeight = 1.5;
	return sprite;
})

three-spritetext

GitHub:https://github.com/vasturiano/three-spritetext

一个面向ThreeJS的基于精灵的文本组件。文本被绘制到画布上,转换成纹理,然后作为精灵的材质使用。因为使用的是精灵,所以文本将始终面向摄像机,并且它的方向相对于摄像机是固定的。