`
WillisYang2012
  • 浏览: 7563 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

OpenGL中的坐标和手机坐标是有不同的

 
阅读更多

首先,参考以下这位网友关于OpenGL坐标系的说明:http://blog.chinaunix.net/space.php?uid=20622737&do=blog&id=1912946

 

此篇文章说的很明白,默认分两个坐标:

 

OPENGL坐标系可分为:世界坐标系和当前绘图坐标系。

世界坐标系以屏幕中心为原点(0, 0, 0)。你面对屏幕,你的右边是x正轴,上面是y正轴,屏幕指向你的为z正轴。长度单位这样来定: 窗口范围按此单位恰好是(-1,-1)到(1,1)。

当前绘图坐标系是 绘制物体时的坐标系。程序刚初始化时,世界坐标系和当前绘图坐标系是重合的

 

文中还说,参考坐标系是不动,我想纠正这一点,至少在Android应用中使用时,是可以改变的,比如在覆写onSurfaceChanged方法时,一般需要设置观察点:

GLU.gluLookAt(GL10 gl, float eyeX, float eyeY, float eyeZ,

            float centerX, float centerY, float centerZ, float upX, float upY,

            float upZ)

一般默认设置为:GLU.gluLookAt(gl, 0, 0, 2.8f, 1.5f,0, 0, 0, 1, 0);

改变中心位置,就可以把参照坐标系改变了,不过实际的意义可能不太大,毕竟大家都习惯了默认的。

另外,想补充说明下,顶点数组的顺序,正面一般是按左、下、右、上这个逆时针顺序来排布的,背面方向是反的,按顺时针,有些网上解释说是为了让人从各个面看起来都是正面,这个解释现在记下来,有待以后验证。

 

保留一个比较好的博客地址(主要是翻译英文原文档):http://www.opengpu.org/bbs/archiver/?tid-2164.html

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics