当前位置:  开发笔记 > 编程语言 > 正文

在OpenGL ES中,如何将屏幕坐标转换为世界坐标?

如何解决《在OpenGLES中,如何将屏幕坐标转换为世界坐标?》经验,为你挑选了1个好方法。

这适用于2D游戏,因此只有x和y轴.iPhone上的游戏采用横向模式.我希望能够设置渲染纹理的位置的屏幕x和y坐标.



1> Adam Rosenfi..:

如果您正在进行2D游戏,您可以设置投影和模型视图矩阵,这样您根本不需要进行转换:

// This goes in your init code somewhere
// Set up 480x320 orthographic projection
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(-240.0f, 240.0f, -160.0f, 160.0f, -1.0f, 1.0f);

// Rotate into landscape mode
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glRotatef(-90.0f, 0.0f, 1.0f, 0.0f);

这使得世界坐标(-240,-160)映射到屏幕的左上角(横向模式中的左下角),(240,160)映射到右下角(横向右上角)因为iPhone的屏幕是480x320,所以你不需要在你设置的矩阵之间转换世界和屏幕坐标.

当然,如果你想移动相机,那么你需要偏移相机的位置.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有