【问题标题】:Android calculate object 2D position if having projection model-view matrix in OpenGL如果在 OpenGL 中有投影模型视图矩阵,Android 会计算对象 2D 位置
【发布时间】:2016-07-31 18:36:44
【问题描述】:

我只有投影和模型视图矩阵,而我想要的是获取屏幕中对象的 2D 位置。 投影矩阵是 float[16] 的数组。 例如:

float[] projectionMatrix = new float[16] {
    2.6077228, 0.0, 0.0, 0.0,
    0.0, 1.9605954, 0.0, 0.0,
    -0.010504603, -0.01849866, -1.004008, -1.0,
    0.0, 0.0, -20.040081, 0.0
};

模型-视图矩阵是相同的。 例如:

float[] modelViewMatrix = new float[16] {
    0.78095937, -0.05827314, -0.6218487, 0.0,
    0.04460156, 0.9982925, -0.037790783, 0.0,
    0.6229988, 0.001786924, 0.78222054, 0.0,
    25.339212, -41.582745, -197.50203, 1.0
}

如何找到对象 [x, y] 的最终位置? 有人有这方面的经验吗?

更新更多细节: 在我的项目中,一切都是在 .so lib 中计算的。我只能得到投影和模型视图矩阵。该库通过相机检测到一个对象,现在我想知道它在屏幕上的 2d 位置以添加一些触摸事件。

【问题讨论】:

  • 先将向量乘以modelViewMatrix,然后乘以projectionMatrix。如果这不起作用,您将必须更详细地说明您遇到问题的确切位置。
  • 嗨 Reto,在我的项目中,所有内容都是在 .so lib 中计算的。我只能得到投影和模型视图矩阵。该库通过相机检测到一个对象,现在我想知道它在屏幕上的 2d 位置以添加一些触摸事件。

标签: android matrix opengl-es


【解决方案1】:

我在这方面有经验。

您正在做的是以其他方式乘以矢量对象,(即)您正在关联两个图像数据。它不过是基于相关性的对象检测。Open GL E.S 2.0 将不允许读取着色器变量。

RGB数据(LCD界面)的输出将包含ROW计数(Hsync)和COLUMN计数(像素计数),如果您在关联成功时分配像素,则为您提供对象位置

你获得了多少 FPS?

一切顺利。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多