openGL中的坐标变换

原创 2018年04月17日 13:03:46

我们要将一个物品显示到屏幕上来,我们就得通过计算它与我们摄像机的坐标,通过一系列的坐标变换,而达到我们的要求- -可以想象一下拍照的过程。
这篇文章可能不会列出openGL的函数接口,具体接口可以查看相关书籍,或者搜索相关关键字去查看相关的接口函数。
坐标变换大都与矩阵运算相关,需要具备一定的线性代数知识,和了解齐次坐标。
模型视图变换(MODEL VIEW)
:将顶点坐标(我理解为齐次坐标。所以在这之前,会将笛卡尔坐标变为齐次坐标)从世界坐标变换为视觉坐标。
世界坐标是全局坐标,可以理解为不变的坐标,而视觉坐标是局部坐标。
比如,我们看到一个girl或者boy,本来他们是在你的侧面,他们的世界坐标是没有变化的,我们会被他们吸引,然后把头转过去,因此他们的视觉坐标就变化了,可能会变成你的视觉的正中间。
而这里面会涉及平移、旋转、缩放等矩阵操作,在openGL·中都是有相关的函数接口。
这里介绍几个接口:

void glMatrixMode(Glenum mode);//指定当前操作的矩阵类型

其中Glenum mode可以为:

GL_MODELVIEW:指定当前操作的矩阵为模型视图矩阵
GL_PROJECTION:指定当前矩阵为投影矩阵
GL_TEXTURE:指定当前操作矩阵为纹理矩阵

没有指定时默认为:模型视图矩阵
(1)模型变换
而我们的模型变换可以用下面一个接口来操作:

void glTranslate * (TYPE x,TYPE Y,TYPE z);//平移

xyz是我们自己定义的向xyz轴平移的数据量

void glRotate * (TYPE angle,TYPE x,TYPE Y,TYPE z);//旋转

angle为角度,xyz是一个向量的坐标,其实是一个bool值,如果设置的旋转值(x,y,z的值)为正数,那么旋转的方向是逆时针的,如果旋转值是负数,那么旋转的方向是顺时针的。因为openGL是右手原则。

void glScale * (TYPE x,TYPE Y,TYPE z);//缩放

同理xyz为缩放的比例因子,应该是以1为标准,缩小就小于1。

想了解更多详细内容可以查看
进入后可在标签处选择不同函数进行详细学习。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31828929/article/details/79973284

OpenGL学习脚印: 坐标变换过程(vertex transformation)

写在前面 前面几节分别介绍了模型变换,视变换,以及给出了投影矩阵和视口变换矩阵的推导,本节从全局把握一遍OpenGL坐标转换的过程,从整体上认识坐标变换过程。相关矩阵的数学推导过程请参考前面几...
  • ziyuanxiazai123
  • ziyuanxiazai123
  • 2016-06-06 15:27:59
  • 10266

OpenGL学习:坐标变换(3)-坐标变换总结

前面几节分别介绍了模型变换,视变换,本节从全局把握一遍OpenGL坐标转换的过程,从整体上认识坐标变换过程。 坐标变换的全局图 OpenGL中的坐标处理过程包括模型变换、视变换、投影变换、视口变换...
  • arag2009
  • arag2009
  • 2017-09-20 17:01:49
  • 250

OpenGL中的坐标变换、矩阵变换

OpenGL中存在六种坐标系: 1. Object or model coordinates(模型坐标系) 2. World coordinates(世界坐标系) 3. Eye (or Came...
  • sunqunsunqun
  • sunqunsunqun
  • 2014-06-01 16:12:33
  • 6669

OPENGL场景坐标变换

我们生活在一个三维的世界——如果要观察一个物体,我们可以: 1、从不同的位置去观察它。(视图变换) 2、移动或者旋转它,当然了,如果它只是计算机里面的物体,我们还可以放大或缩小它。(模型变换) 3、如...
  • a49688448
  • a49688448
  • 2014-01-08 14:38:29
  • 2188

OpenGL矩阵和坐标变换

第三课:矩阵 齐次坐标(Homogeneous coordinates)变换矩阵(Transformation matrices) 矩阵简介平移矩阵(Translation m...
  • jeffasd
  • jeffasd
  • 2017-09-12 17:02:09
  • 267

opengl视图概念,固定管线渲染下的实例演示——物体坐标到屏幕坐标,屏幕坐标到物体坐标

参考了一下两篇博客: http://blog.csdn.net/zhongjling/article/details/8488844 http://blog.csdn.net/lyx2007825...
  • u011248694
  • u011248694
  • 2015-05-21 11:15:10
  • 1409

OpenGL 坐标变换详解

模型(Model)、视图(View)和投影(Projection)矩阵 1。模型矩阵(在Object Coordinates内) 这个三维模型,和我们心爱的红色三角形一样,是由一组顶点定义...
  • u014538198
  • u014538198
  • 2015-11-13 14:23:43
  • 3360

OpenGL学习脚印: 坐标和变换的数学基础(math-coordinates and transformations)

写在前面 上一节介绍了向量和矩阵,本节将熟悉坐标、线性变换、仿射变换以及坐标转换等概念和计算方法,这些内容对后续的学习将会有很大帮助。部分内容不是OpenGL编程初学者所必须掌握的,...
  • ziyuanxiazai123
  • ziyuanxiazai123
  • 2016-05-18 20:35:48
  • 8180

opengl es坐标变换理解1

下面这篇文章详细讲述了OpenGL里的坐标转换,清晰,明了。但是其所谓的渲染管线只包括modelview 转换 和 投影变换,我觉得不是这样的。这只是从坐标角度吧。比如什么顶点着色、光栅化、送至帧缓存...
  • yywan1314520
  • yywan1314520
  • 2016-08-09 10:42:35
  • 1418

OpenGL.坐标系统的介绍与坐标变换的实现

坐标变换其实一直是一个比较让人着迷的内容,嘿嘿嘿 从中也可以看到矩阵的魅力 记得一篇文章讲,矩阵就是记录一个向量到另一个向量的运动,一个点可以用一个向量来表示,乘上一个矩阵就变成了另一个向量,对应着另...
  • stringNewName
  • stringNewName
  • 2016-06-06 19:02:36
  • 5805
收藏助手
不良信息举报
您举报文章:openGL中的坐标变换
举报原因:
原因补充:

(最多只允许输入30个字)