博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
glLoadIdentity
阅读量:7021 次
发布时间:2019-06-28

本文共 1075 字,大约阅读时间需要 3 分钟。

参考文章:百度百科

  OpenGL为我们提供了一个非常简单的恢复初始坐标系的手段,那就是调用glLoadIdentity()命令。该命令是一个无参的无值函数,其功能是用一个4×4的单位矩阵来替换当前矩阵,实际上就是对当前矩阵进行初始化。也就是说,无论以前进行了多少次矩阵变换,在该命令执行后,当前矩阵均恢复成一个单位矩阵,即相当于没有进行任何矩阵变换状态。

  当您调用glLoadIdentity()之后,您实际上将当前点移到了屏幕中心:类似于一个复位操作

      1.X坐标轴从左至右,Y坐标轴从下至上,Z坐标轴从里至外。
      2.OpenGL屏幕中心的坐标值是X和Y轴上的0.0f点。
      3.中心左面的坐标值是负值,右面是正值。移向屏幕顶端是正值,移向屏幕底端是负值。移入屏幕深处是负值,移出屏幕则是正值。

 

本质概念理解

1).加载glLoadIdentity(),等于是将之前矩阵变换导致变化过的栈顶矩阵重新归位,置为单位矩阵!等于是之前的矩阵变换带来的影响到此为止了!
2).产生顶点的语句,比如glutWireBox、glutSolidSphere等等,它们最终要与栈顶矩阵计算算出最终的顶点位置。但它们本身不会影响栈顶矩阵的值!
3).任何一个模型、视图变换,如translate、scale、lookAt等,计算后都会影响当前栈顶矩阵的值!若每次变换完毕后不去归位(glLoadIdentity),则下一次的顶点变换是建立在上一轮(一系列)变换的基础之上的!
4).根据矩阵变换本质的理解,glLoadIdentity并不是简单的理解为将坐标归为世界坐标的原点。而是每次建立顶点的时候,都是以当前物体的中心作为世界的原点的(换句话说,也就是上一轮物体变换之后,原点的位置作为新的物体的中心)。之后再进行各种变换而形成物体的移动、缩放、旋转等效果。从本质上讲,glLoadIdentity并不会改变世界坐标的原点位置,而仅仅是让“栈顶矩阵归位”。但它导致了下一轮顶点变换时,感觉上是以新的物体中心为世界原点的效果!
没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。
    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/7001710.html
,如需转载请自行联系原作者
你可能感兴趣的文章
HashMap的工作原理
查看>>
Linux下自动备份Oracle数据库
查看>>
[git] warning: LF will be replaced by CRLF
查看>>
部署VCAS 6.5时,卡在80%安装RPM的问题解决办法
查看>>
docker简洁用法
查看>>
Linux-其他命令--其它命令:mtools、man、unendcode、uudecode
查看>>
SCCM2012 安装主站点连接到管理中心报错“试图执行未经授权的操作”
查看>>
2012 新的征程开始
查看>>
我的友情链接
查看>>
使用Strongswan搭建IPSec/IKEv2 ***和window、android、ios、mac如何使用***
查看>>
DBVERIFY 工具的使用
查看>>
JQuery正则表达式
查看>>
keepalived+lvs
查看>>
给ZENCART加上类似wordpress弹性搜索框
查看>>
mysql 安装
查看>>
我的友情链接
查看>>
Xenserver HA功能配置文档
查看>>
centOS下memcached的安装
查看>>
和lock一起学beego 博客系统开发为例(七)
查看>>
嵌入式操作系统常识及分类
查看>>