如何从模型视图和投影矩阵计算屏幕坐标?

时间:2017-11-02 13:23:48

标签: android opengl-es

我有投影,模型视图和模型视图投影矩阵...我的opengl对象渲染也适用于值。

现在我想将其转换为屏幕坐标...如何从此矩阵中获取屏幕坐标?

float[] modelView = target.getViewMatrix();
float[] projection = target.getProjectionMatrix();
float[] modelViewprojection = target.getModelViewProjectionMatrix();
int[] view = {0,0,(int)screenWidth, (int)screenHeight};
float x = screenWidth/2, y = screenHeight/2, z = 0.01f;
float[] pos = new float[4];
GLU.gluProject(x, y, z,
        modelView, 0,
        projection, 0,view, 0,
        pos, 0);
float xpoint = convertPixelsToDp(pos[0],this);
float ypoint = convertPixelsToDp(pos[1],this);

我尝试了上面的代码,它给了我x和y点,但它们太多波动

还有其他方法可以在屏幕上获得稳定的x和y点吗?

1 个答案:

答案 0 :(得分:0)

您的API调用看起来不对。

GLU.gluProject(x, y, z, modelView, 0, projection, 0,view, 0, pos, 0);

参数顺序与以下内容不同:

https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/gluProject.xml

您使用的是哪个库?