2012-07-12 137 views
7

目标是将鼠标悬停在网格上时将Three.Mesh名称显示为标签。我们如何在Three.js中做到这一点如何将标签添加到THREE.MESH?

有人可以给一个示例代码吗?

+0

你们是不是要实际呈现的文本场景的一部分?它需要是3D文字吗?或者将CSS渲染器的顶部叠加2D标记好吗?你也可能想要接受一些以前的答案,或不是很多人会倾向于帮助你。 – 2012-07-12 20:45:50

+0

我只需要标签就像一个工具提示。当鼠标悬停结束/停在网格上时,最好有标签。在带有CSS的渲染器之上叠加2D标记应该没问题。同时请让我知道我的问题/答案中哪些不被接受。我只是看着,希望没有人不接受。我在XTK.js API – 2012-07-13 04:54:17

回答

27

接受挑战!

工作的代码示例在: http://stemkoski.github.com/Three.js/Mouse-Tooltip.html

似乎有三个主要步骤实现这一目标,每一个我都分成较小的示例程序。

(1)确定鼠标指向哪个场景元素。 请参阅:http://stemkoski.github.com/Three.js/Mouse-Over.html

(2)渲染想要显示为图像的文本(我为此使用了一个画布元素)。 请参阅:http://stemkoski.github.com/Three.js/Texture-From-Canvas.html

(3)在第(2)部分的鼠标指针处绘制一个包含图像的精灵。 见:http://stemkoski.github.com/Three.js/Mouse-Sprite.html

所有这些例子(及以上)是我成长的入门实例集合的一部分(有详细注释)在http://stemkoski.github.com/Three.js/,在我试图向人们展示了一系列的最小three.js所的可能性例子。

此外,信贷,这是由于:部分(1)和(3)基于一些MrDoob的他GitHub的页面上的例子,特别是互动的立方体例如:http://mrdoob.github.com/three.js/examples/webgl_interactive_cubes.html

+1

中看到过这样的标签,非常感谢Lee Stemkoshi。你的例子很棒,真的很有帮助。 – 2012-07-16 05:02:20

+1

@lee是否有任何方式与最新版本...我警告和错误与当前版本...它是V71 – 2015-06-22 07:02:20

+2

它现在有一个更简单的解决方案呢?例如,如果您在场景中使用了skinnedmeshes并希望在每个网格的顶部显示名称?现在精灵的问题是根据变焦放大和缩小。我希望它保持不变。它应该跟随网格周围(留在头上)。 – majidarif 2016-11-25 15:20:27