我是OpenGL ES的新手。我正在实现一些演示应用程序来在屏幕上加载多个纹理。为了演示目的,我使用glTranslatef()和glBindTextures()两次在屏幕上的2个不同位置加载了2个纹理。
现在我可以在屏幕上看到2个不同的图像。现在我想用鼠标在屏幕上移动一个特定的纹理。
我知道这可能是一个愚蠢的话题,但请帮助我...
提前致谢..
答案 0 :(得分:1)
如上所述,您需要翻译曲面的坐标。
如果使用orthagonal(2D)投影,通过将投影定义为与屏幕大小相同,可以轻松地将像素/坐标比设置为1:1。例如:
glOrthof(0.0f, screenWidth, -screenHeight, 0.0f, -1.0f, 1.0f);
应该在左上方定义一个带有(0,0)的投影,尺寸与屏幕相同。
如果您使用3D投影,您可能会发现此链接有用: http://www.mvps.org/directx/articles/rayproj.htm
答案 1 :(得分:0)
您实际上并不想移动纹理,但要么移动场景视点(gluortho2d / glulookat / gltranslatef - 或其他任何东西),要么移动要应用纹理的形状的顶点
这就是我在2D游戏中的表现:
gl.glTranslatef(-cameraPosX%32,-cameraPosY%32,0);