如何将元素放在相机前面,无论它在哪里?

时间:2017-09-04 21:26:55

标签: three.js aframe

我有一个"工具提示"这个简单的场景。由一些数据组成的实体,我想知道如何将它放在相机前面。工具提示必须面向几米远的某些点,以便用户可以看到它。它必须服从摄像机方向(它可以通过从相机移动的previousPoint到nextPoint计算它来收集),但只能是y轴(不能倾斜或类似的东西)。我试过挖掘数学但是没有&# 39;理解得足够好,可以为这个小项目使用解决方案;我感谢所有的帮助!

1.0
0.333333333333
1.2
0.47619047619
1.31111111111
0.5670995671
1.38803418803
0.633766233766
1.44685771745
0.686397812714
1.49447676507
0.729876073583
1.53447676507
0.76691311062
1.56895952369
0.799171175136
1.59926255399
0.827742603708
1.62628958102
0.853383629349
9.91869284146

JSFiddle

修改

我制作了一张图片,展示了我之后的所作内容:http://imgur.com/a/eDhqE 我有A点和B点;相机将播放从前一个点移动到下一个点的动画,一旦到达那里,工具提示将显示在距离点(框)几米处,以便我们可以看到它。必须考虑相机方向,但必须垂直于地面(不能倾斜)。

1 个答案:

答案 0 :(得分:2)

有一个命令THREE.Object.lookAt(THREE.Vector3);这将旋转一个对象(假设(0.0,1.0,0.0)向上)面向一个向量。您可以使用此功能让它面向您的相机。

如果你只想要Y旋转,你可以复制当前旋转,然后查看,然后从上一帧旋转副本中复制rotation.x和rotation.z - 这样它只会纠正y与.lookAt因为你重置了x和z。