【问题标题】:libgdx translate 3D world co-ordinates to 2D screen co-ordinateslibgdx 将 3D 世界坐标转换为 2D 屏幕坐标
【发布时间】:2013-09-16 08:31:20
【问题描述】:

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

假设一个 3d 对象有一个矩阵 4,定义了它的质心变换。我有一个与 libgdx 相机相关的名为 camera.combined 的 matrix4。

现在,我想在屏幕上绘制一个图像,其坐标将与质心坐标相同,但在 2D 屏幕世界中...

任何帮助将不胜感激

【问题讨论】:

  • 这里可能需要类似 camera.project(Vector3) 的东西。但是我不知道这个功能怎么用……
  • 你可以从你的模型中获取 uv 并用你的 spritebatch 绘制它
  • 谢谢...我通过camera.project方法管理它:)
  • @rayyan-riaz,请您在这里回答您自己的 Austin,如果其他人了解您所做的事情会很棒(谢谢)?
  • 对不起,我完全忘记了我当时做了什么:(

标签: matrix 3d libgdx


【解决方案1】:

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

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    相关资源
    最近更新 更多