美文网首页OpenGL
OpenGL 矩阵堆栈

OpenGL 矩阵堆栈

作者: 寻常_0 | 来源:发表于2019-05-20 11:19 被阅读0次

矩阵堆栈的使用

//类型
GLMatrixStack::GLMatrixStack(int iStackDepth = 64);

//在堆栈顶部载入一个单元矩阵
void GLMatrixStack::LoadIdentity(void);

//在堆栈顶部载⼊任何矩阵 //参数:4*4矩阵
void GLMatrixStack::LoadMatrix(const M3DMatrix44f m);

//矩阵乘以矩阵堆栈顶部矩阵,相乘结果存储到堆栈的顶部
void GLMatrixStack::MultMatrix(const M3DMatrix44f);

//获取矩阵堆栈顶部的值 GetMatrix 函数 
//为了适应GLShaderMananger的使⽤用,或者获取顶部矩阵的副本
const M3DMatrix44f & GLMatrixStack::GetMatrix(void);
void GLMatrixStack::GetMatrix(M3DMatrix44f mMatrix);

压栈、出栈

//将当前矩阵压入堆栈(栈顶矩阵copy 一份到栈顶)
 void GLMatrixStack::PushMatrix(void);

//将M3DMatrix44f 矩阵对象压入当前矩阵堆栈
void PushMatrix(const M3DMatrix44f mMatrix);

//将GLFame 对象压入矩阵对象
void PushMatrix(GLFame &frame);

//出栈(出栈指的是移除顶部的矩阵对象)
void GLMatrixStack::PopMatrix(void);

根据上述API的说明,可以根据一张图,清楚地查看堆栈信息的变化


矩阵入栈、相乘、出栈流程
  1. 当使用PushMatrix方法,会将栈顶信息复制一份,放入栈顶。
    2.使用MultMatrix方法做矩阵相乘时,将该矩阵与栈顶矩阵相乘,覆盖栈顶矩阵。
    3.使用PopMatrix做出栈操作时,移除栈顶矩阵对象。(根据栈的特点,只能pop栈顶)
    4.使用LoadMatrix加载矩阵到栈顶,若没有传参数矩阵,默认将单元矩阵压入栈顶

相关文章

  • OpenGL学习之路(5.3) 矩阵堆栈的了解和使用方法

    什么是矩阵堆栈? OpenGL的矩阵堆栈指的就是内存中专门用来存放矩阵数据的某块特殊区域。一般说来,矩阵堆栈常用于...

  • OpenGL矩阵堆栈

    OpenGL的矩阵堆栈指的就是内存中专门用来存放矩阵数据的某块特殊区域。一般说来,矩阵堆栈常用于构造具有继承性的模...

  • OpenGL 矩阵堆栈

    矩阵堆栈的使用 压栈、出栈 根据上述API的说明,可以根据一张图,清楚地查看堆栈信息的变化 当使用PushMatr...

  • OpenGL矩阵堆栈处理

    为什么要使用矩阵堆栈? OpenGL在进行渲染的时候是通过模型视图矩阵和投影矩阵运算得到最终显示的坐标。 模型矩阵...

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

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

  • 五:OpenGL矩阵与堆栈

    前言: 本节课为大家介绍非常重要,也是非常难以理解的“矩阵”属性,也许前期的新手小白可能(当然也包括我自己呀)理解...

  • OpenGL之变换、矩阵堆栈

    OpenGL中的变换 变换解释视图变换指定观察者的位置模型变换在场景中移动物体模型视图描述视图/模型变换的二元性(...

  • OpenGL -- 变化和矩阵堆栈

    视图变换 应用到场景中的第一种变换,用来确定场景中的有利位置,在默认情况下,透视投影中位于原点(0,0,0),并沿...

  • 十、OpenGL中的向量、矩阵、矩阵堆栈

    1. 向量 1.1 向量相关概念 向量:在 3D 笛卡尔坐标系中,一个由 x、y、z组成的顶点就是一个向量 单位向...

  • OpenGL渲染流程和矩阵堆栈

      想要更深入的学习OpenGL,就要先了解OpenGL渲染架构图(如下图)。客户端和OpenGL渲染服务严格遵循...

网友评论

    本文标题:OpenGL 矩阵堆栈

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