如何在THREE.js中绘制从3D到2D的线段?

时间:2019-01-09 20:56:58

标签: three.js

我正在尝试从3D场景的点到HUD UI上的点绘制一条线段。线段的一端在3D中指定,例如(1.232,-34.12、4.21),但我想在2D像素坐标中指定其他值,例如(320,200)。

当摄像机(透视)移动时,如何将2D坐标转换为3D点并使它保持在那些像素坐标上?最初,我考虑过将2D位置投影到近景视锥上也许可行,但是不确定如何做或是否有更好的方法?

1 个答案:

答案 0 :(得分:1)

var vector = new THREE.Vector3(320, 200, 0.5);
vector.unproject(camera);

将在vector中返回一个3D点,您可以使用该3D点进行绘制。 如果您在透视相机移动时保持不投影,则可以确保2D点似乎不会在HUD中移动。