美文网首页
OPenGL 中的矩阵压栈/出栈

OPenGL 中的矩阵压栈/出栈

作者: zhongxiaoyue | 来源:发表于2019-05-20 17:54 被阅读0次
  • 我们知道OPenGL 中的图形变化是用矩阵来记录保存的.OpenGL 矩阵基础变化

  • 简单来讲,当你做了一些移动或旋转等变换后,使用PushMatrix(),OpenGL 会把这个变换后的位置和角度的矩阵,保存起来。然后你再随便做第二次移动或旋转变换,再调用PopMatrix(),将堆栈栈顶的状态矩阵弹出,OpenGL 就把刚刚保存的那个位置和角度进行恢复。那么后面进行的操作均是基于恢复之后的这个位置和角度进行变换的。这样就有一个非常大的好处,就是当你后面绘制的对象与之前的对象相关联时,相当于可以抛弃掉现在的状态,而回到之前的状态,减少变换的计算复杂度。

举个例子:
假设在场景中,绘制了一个汽车。在绘制汽车的时候需要同时绘制四个轮子。假如现在画笔位于车身的中心,那么绘制的基本过程就是:
1.记住车身中心的位置;
2.将画笔移动到左前轮的位置并绘制轮子;
3.回到车身的中心;
4.将画笔移动到右前轮的位置并绘制轮子;
... ...
PushMatrix其实就相当于“记住车身中心的位置”;
PopMatrix其实就相当于“回到车身的中心”;

  • 流程图如下:


    矩阵的压栈/出栈

相关文章

  • OpenGL 出栈压栈理解分析

    1.OpenGL压栈出栈作用概念 1.压栈出栈操作的是矩阵,一般分为模型视图矩阵和投影矩阵 2.出栈压栈是针对顶点...

  • OpenGL_矩阵压栈和出栈

    1. 压栈和出栈的理解 压栈出栈操作的是矩阵 用来记录矩阵的状态 压栈PushMatrix和出栈PopMatrix...

  • OPenGL 中的矩阵压栈/出栈

    我们知道OPenGL 中的图形变化是用矩阵来记录保存的.OpenGL 矩阵基础变化 简单来讲,当你做了一些移动或旋...

  • OpenGL笔记六:纹理常用API(一)

    前言 期待您移步上篇:OpenGL笔记五:综合实例理解-压栈、出栈、堆栈矩阵相乘、矩阵相乘、向量相乘 纹理 纹理只...

  • OpenGL-矩阵与向量

    OpenGL的矩阵操作 旋转 平移 缩放 压栈/出栈 单位向量-X轴-(1,0,0) 单位矩阵-X,Y,Z 三轴...

  • OpenGL向量/矩阵、压栈/出栈

    我们大家可能对矩阵的乘法有点模糊了,不用担心!我们在这里只需要先明白向量、矩阵的含义,以及在OpenGL中的作用,...

  • OpenGL学习笔记五

    使⽤矩阵堆栈 压栈.出栈 压栈: 存储一个状态出栈: 恢复⼀个状态 仿射变换

  • OpenGL的矩阵压栈与出栈

    初学时,我们通常会对矩阵压栈和出栈这对“难兄难弟”感到疑惑,为什么它们是成对出现的?它们做的又是什么操作呢?那,今...

  • OpenGL-矩阵压栈出栈浅析

    OpenGL绘制图形需要经过变化才能达到用户目的,而变换是通过矩阵进行操作的。 OpenGL一般通过视图变换、模型...

  • OpenGL中矩阵堆栈的压栈和出栈操作理解

    OpenGL中矩阵堆栈的频繁压栈和出栈操作往往是入门时最大的门槛,也是最容易造成困惑的地方,今天我们来详细理解一下...

网友评论

      本文标题:OPenGL 中的矩阵压栈/出栈

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