使用three.js

时间:2015-06-24 19:33:08

标签: three.js shader labels

point cloud

我有THREE.PointCloud,其中包含大量积分。在上面的屏幕截图中,每个点都映射到小的紫色圆圈。

我正在试图想出一种在每个点旁边显示文字标签的方法。

我的第一次尝试是通过画布动态创建文本并在THREE.Sprite个对象中显示纹理。这实现了我的目标,但性能受到重创。我很快就知道这不会超过几百点。

我想可能有办法用着色器做到这一点,但我无法弄清楚这种方法。 animating a million letters中使用的方法使用了字形纹理,并将字母映射到字形:

glyph sheet

我想我可以通过创建一个THREE.Geometry对象并按下标签的每个文本字母的顶点和面来做同样的事情。缺点是我希望标签能够广告牌,以便他们始终面对相机。 Billboarding in the vertex shader似乎很简单。

我的感觉是,已经有一些例子将所有这些想法组合成一个单一的工作示例。任何关于如何做大型文本标签的建议都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

我明白了。您必须使用字形表并使用两个面将每个字符渲染为四边形。

animating a million letters

中概述了这个过程

在演出开始受到重创之前,我可以使用大约一百万个屏幕上的角色。