【发布时间】:2017-11-02 13:23:47
【问题描述】:
我有投影、模型视图和模型视图投影矩阵...我的 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 点?
【问题讨论】:
-
> "我想把这个转换成屏幕坐标" 你说的这个是什么意思,你到底想做什么?
-
嗨@rotoglup 这意味着我有模型视图、投影和模型视图投影矩阵和顶点...我想从中获取屏幕点(屏幕上的 x、y 位置)
-
只是为了确保:您的意思是在模型坐标系中转换点,使用您的 MVP 矩阵 to 以像素为单位的屏幕坐标?不确定,因为您似乎将“像素坐标”作为输入传递给
gluProject。