2012-07-12 241 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