Matrix libgdx将三维世界坐标转换为二维屏幕坐标

Matrix libgdx将三维世界坐标转换为二维屏幕坐标,matrix,3d,libgdx,Matrix,3d,Libgdx,我想从3D对象的3D世界坐标中获得2D屏幕坐标 假设一个三维对象有一个矩阵4,定义其质心变换。我有一个名为camera.combined的matrix4与libgdx camera相关 现在,我想在屏幕上画一个图像,它的坐标将与质心坐标相同,但在2D屏幕世界中 非常感谢您的帮助要获得模型的2D屏幕坐标(或任何3D位置),请在渲染循环中执行以下操作:- Vector3 tmp = new Vector3(); model_instance.transform.getTranslation(tmp)

我想从3D对象的3D世界坐标中获得2D屏幕坐标

假设一个三维对象有一个矩阵4,定义其质心变换。我有一个名为camera.combined的matrix4与libgdx camera相关

现在,我想在屏幕上画一个图像,它的坐标将与质心坐标相同,但在2D屏幕世界中


非常感谢您的帮助

要获得模型的2D屏幕坐标(或任何3D位置),请在渲染循环中执行以下操作:-

Vector3 tmp = new Vector3();
model_instance.transform.getTranslation(tmp);
camera.project(tmp);
// 'tmp' now stores the screen coords, so you can use it as follows (for example):-
font.draw(batch2d, "My text", tmp.x, tmp.y);

要获取模型(或任何三维位置)的二维屏幕坐标,请在渲染循环中执行以下操作:-

Vector3 tmp = new Vector3();
model_instance.transform.getTranslation(tmp);
camera.project(tmp);
// 'tmp' now stores the screen coords, so you can use it as follows (for example):-
font.draw(batch2d, "My text", tmp.x, tmp.y);

这里可能需要像camera.project(Vector3)这样的东西。但我不知道如何使用这个功能…你可以从你的模型中获取uv,并用你的Spritebatch绘制它谢谢。。。我是通过相机来管理的。项目方法:)@rayyan riaz,你能在这里回答你自己的Austin问题吗?如果其他人能理解你做了什么,那就太好了(谢谢)?对不起,我完全忘记了我当时做的事情:(可能是类似camera.project(Vector3)的事情)是这里必需的。但我不知道如何使用此功能…你可以从你的模型中获取uv并用你的Spritebatch绘制它谢谢…我通过相机进行管理。项目方法:)@rayyan riaz,你能在这里回答你自己的Austin问题吗?如果其他人能理解你所做的事情,那将非常好(谢谢)?对不起,我完全忘记了我当时做过什么:(