我一直在研究如何根据屏幕坐标而不是OpenGL基于Carthesian的坐标(正交)在OpenGL中放置图像。我设法部分解决了我的问题,但某些地方的计算结束了。顶部图像基于OpenGL,将图像置于0,0。底部是我的重新计算,但不是在左上角,图像的一部分是在屏幕外,左边有一个间隙。
正投影:
glm::ortho(-((float)WIDTH / (float)HEIGHT), (float)WIDTH / (float)HEIGHT, -1.0f, 1.0f, -1.0f, 1.0f)
转换:
// Convert OpenGL coords to screen coords
position.x = glLeft + (2.0f / (float)WIDTH * position.x);
position.y = glTop + (-2.0f / (float)HEIGHT * position.y);