我使用Three.js可視化圖形,並且爲圖形的每個節點添加一個使用TextGeometry的標籤。這是一個非常小的圖,但是當我添加文本時,我的應用程序變得非常慢。我應該怎麼做呢?在three.js中添加文本
3
A
回答
8
TextGeometry更適合您真正有興趣以3D渲染文本的情況。它會創建複雜的幾何圖形,當存在大量文本或使用CanvasRenderer時,它肯定會減慢您的應用程序的運行速度。
對於標籤,通常最好使用2D標籤,它的渲染速度更快。有很多不同的方法。這些可以在Three.js渲染畫布的頂部,在單獨的畫布上,甚至是使用CSS屬性定位的普通HTML節點上。或者,您可以動態創建標籤文本的小畫布,並將它們用作始終面向相機的精靈紋理 - 這可能是最簡單的方法,因爲標籤將與其他對象一樣成爲3D場景的一部分。對於單獨的圖層方法,您需要使用unprojectVector或其他來計算出屏幕XY座標以匹配您的3D場景位置。
例如見這些所謂的帖子: - Dynamically create 2D text in three.js - Canvas and SpriteMaterial - How do I add a tag/label to appear on top of several objects so that the tag always faces the camera when the user clicks the object?
+0
哪些情況下的性能最好?可能是單獨的圖層,那麼HTML節點和canvas之間的哪一個呢? – croraf
相關問題
- 1. three.js所:添加線多擠出文本
- 2. 如何在three.js中添加TextGeometry?
- 3. 在three.js中將着色添加到ShaderMaterial
- 4. 如何在three.js中添加邊對象?
- 5. 在Three.js中添加點到頂點
- 6. 如何在three.js中將點添加到obj文件中?
- 7. Three.js - 向SceneLoader添加JSON文件類型
- 8. 在TextView中添加文本
- 9. 在tinyxml2中添加文本
- 10. THREE.js用Promises添加紋理
- 11. 在three.js中加載OBJ文件
- 12. three.js中的添加劑混合
- 13. three.js:如何在FXAAShader(r58)後添加CopyShader
- 14. MATLAB - 在文本文件中添加數
- 15. 從javascript中添加標籤或添加文本框的文本
- 16. 在C#中添加行中的文本
- 17. 在Qt中添加GraphicsView中的文本
- 18. 添加文本
- 19. 添加文本
- 20. 在three.js中加載紋理
- 21. 將文字添加到three.js中的對象(白色圓圈)
- 22. 在CAShapeLayer上添加文本
- 23. 添加文本在CSS
- 24. 添加文本在JavaScript
- 25. 在PagerSlidingTab中添加圖標+文本
- 26. 在python模式中添加文本
- 27. 在兩行中添加文本項
- 28. 在HTML頭中添加文本信息
- 29. 如何在EditText中添加文本?
- 30. 如何在QGraphicsPolygonItem中添加QInputDialog.getText文本?
能爲您提供的jsfiddle,所以我們可以看看嗎? –