【发布时间】:2015-03-14 09:05:03
【问题描述】:
我有一个场景充满了〜数百个长方形小行星形状的物体。我想在每个标签下放置一个文本标签,以便从任何相机角度都可以看到标签。我将文字放在广告牌上,使其始终面向相机。
首先,使用.translateY 将文本放置在 3d 对象下方,一切看起来都很棒。但是,当您开始在场景中移动时,标签不再位于对象“下方”,具体取决于您的相机位置。当您使用 trackballControls 进行定向时尤其如此。
无论方向如何,如何将文本放置在对象的“下方”。也许如果我在每个对象周围创建一个与每帧上的相机相关的 2d 边界框 - 然后我可以将文本标签放在该 2d 框的正下方。
我还担心每帧计算一百个 3d 对象上的 2d 边界框可能会很昂贵。想法?
截图:
首先,文本标签在对象下方出现正确翻译 -y
但是当您旋转相机时,标签会偏向一边
完全翻转相机会显示标签倒置
我的目标是无论相机方向如何,都将标签放在对象下方。
【问题讨论】:
-
考虑为您的文本使用 CSS。例如,请参阅threejs.org/examples/webgl_loader_pdb.html。
标签: three.js 2d bounding-box