美文网首页
通俗解释glLoadIdentity(),glPushMatri

通俗解释glLoadIdentity(),glPushMatri

作者: 小_狐_狸 | 来源:发表于2017-08-26 17:08 被阅读0次

对于glLoadIdentity(),glPushMatrix(),glPopMatrix()的作用虽然网上有很多的帖子,而且都试图解释得很详细,但是效果总是越说越黑,模棱两可的。今天我就简单滴说几句,言简意赅,希望大家随便看看之余能把这些个问题搞清楚了。glLoadIdentity()的作用就是把矩阵堆栈中的在栈顶的那个矩阵置为单位矩阵,好让之前的任何变换都不影响后面的变化。打个比喻,glLoadIdentity()的作用就是把原来做好的橡皮泥模型重新又变成了橡皮泥,这样你前面做的模型的样子就不会影响后面的模型,后面你怎么捏它就怎么像,比如glLoadIdentity()之后你调用了平移函数glTranslatef(1.0, 0.0, 0.0),那么堆栈的栈顶首先是4×4的单位矩阵,然后因为glTranslatef便成了(1.0, 0.0, 0.0,1.0)(注意坐标在OpenGL中的存储都是四位数的),以后的变换就将基于这个坐标!

glPushMatrix(),glPopMatrix()这两个函数是搭配使用的,就用红宝书中的例子给大家解释一下glPushMatrix()的作用是把矩阵压入栈中保存起来,留着以后再用,就好象把子弹压入枪膛一样。但这个压子弹不是简单滴丫,它是把和弹夹的最顶的那颗子弹一模一样的子弹压入弹夹。假如说弹夹的子弹从下往上装的子弹各不相同(大家不必纠结于此,现实生活中是不是这样并不重要),依次为A1型子弹,B2型子弹,C3型子弹glPushMatrix()的作用就是现时打造一颗C3型子弹并把它压入弹夹,于是弹夹最顶端的两颗子弹是一样的,都是C3型的子弹,随后所作的平移变化旋转变换等都是在最上面那颗C3子弹上所作的,并不影响下面的那颗C3子弹,直到glPopMatrix()把最上面的那颗C3子弹发射出去,让下面的那颗C3子弹成为弹夹最顶上的那颗。

相关文章

  • 通俗解释glLoadIdentity(),glPushMatri

    对于glLoadIdentity(),glPushMatrix(),glPopMatrix()的作用虽然网上有很多...

  • Ajax通俗解释

    javascript 有个对象 XMLHttpRequest ,利用它可以打开站点一个页面,但这个页面不会显示在当...

  • ConcurrentHashMap的通俗解释

    【转载 http://www.bootdo.com/blog/open/post/130 】 相信每个JAVA程序...

  • 比特币通俗解释

    在这篇文章中我会给出一个虚拟的村庄叫“比特村”,整个文章会以讲故事的方式,逐步告诉大家比特币提出的动机、解决了什么...

  • 2018-11-11

    循环神经网络(RNN)原理通俗解释 循环神经网络(RNN)原理通俗解释 - 多元思考力 - CSDN博客 一文搞懂...

  • 【Java常识】6.0Eclipse的实用使用、==号和equa

    1.曾经写过很多自以为很通俗易懂的面向对象的解释。 如下是目前最通俗的一种解释: 2.Eclipse的补充解释。 ...

  • 抽象词语的通俗解释

    2018-05-28 喜欢:愿意和某个人,两个人在一起,度过一段时间,做一些事情。 爱:愿意无条件为某人做他需要的...

  • 通俗解释最优化问题

    最优化方法是一种数学方法,它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科...

  • 粒子滤波(CSDN通俗解释)

    关于卡尔曼滤波和粒子滤波最直白的解释 卡尔曼滤波本来是控制系统课上学的,当时就没学明白,也蒙混过关了,以为以后也不...

  • 基准利率(通俗解释)

    前言 有房贷的小伙伴,最近肯定接到了银行的通知,说是要改变计息方式,让我们这些韭菜选一个“坑”, 1号坑:LPR+...

网友评论

      本文标题:通俗解释glLoadIdentity(),glPushMatri

      本文链接:https://www.haomeiwen.com/subject/hmqvdxtx.html