首先,参考以下这位网友关于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
分享到:
相关推荐
Qt + OpenGL 点云 通过Z-Buffer获取鼠标位置的深度值。然后转世界坐标。如果pointsize过大,精度会有一定损失。为1时精度在小数点后两位。当鼠标move到点上时,控制台输出原始点 x y z的坐标信息。窗口不要改动,...
OpenGL之坐标转换
在OpenGL中,一切事物都在3D空间中,但我们的屏幕坐标确实2D像素数组,OpenGL大部分工作就是把3D坐标转换成适应屏幕的2D像素。
1.OpenGL坐标系讲解 2.openGL几何变换与Windows屏幕坐标转换 3.OpenGL中关于坐标使用常见问题的分析
自制的基于MFC、OpenGL平台的三维坐标图程序,在vc2008编译通过
OpenGL通过相机模拟可以实现计算机图形学中最基本的三维变换,即几何变换、投影变换、裁剪变换、视口变换等,同时,OpenGL还实现了矩阵堆栈等。 为了使被显示的三维物体数字化,要在被显示的物体所在的空间中定义一...
利用OpenGL实现屏幕坐标与世界坐标的相互变换
OpenGL 坐标系定义
详解OpenGL的坐标系、投影和几何变换
基于OpenGL视点坐标系的平移旋转变换,杨艳英,王哲龙,本文基于OpenGL视点坐标系与世界坐标系的相互对应关系,利用视点变换原理实现对三维图形的平移和旋转。并提出一种新的三维图形旋转
C++用opengl绘制出的二维坐标,简单明了,很容易理解,并且各个部分均有注释
openGL 各种坐标矩阵变换
非常系统的讲解关于使用OpenGL进行编程中,关于坐标系的介绍,是做工业建模、三维建模等不可少的资料,欢迎大家使用。
详解OpenGL的坐标系、投影和几何变换,word文档,很详细
点击Android屏幕坐标,在相应的点击位置生成一个用OpenGL ES绘制的三角形,
通过强大的图形工具库opengl,可以求得坐标
OpenGL中关于坐标使用常见问题的分析
Android OpenGL ES (二) 绘制三维/空间坐标系 透明的立体图加三维向量和xyz坐标轴 源代码包,直接倒入eclips修改packadge便可用
ubuntu16.04 下在qt 5.9.0 下采用opengl 利用glut画3维坐标系
自己写的。本来对这个问题很不理解,写出这个程序才彻底理解的