美文网首页
8. OpenGL中如何使用矩阵堆栈

8. OpenGL中如何使用矩阵堆栈

作者: 吃土豆的Panda | 来源:发表于2019-10-25 15:51 被阅读0次

     我们在使用矩阵对所渲染的视图做图形变换时(如平移,旋转,缩放),需要对矩阵进行点乘或叉乘计算,我们计算后的结果往往使用GLMatrixStack来存储,它具体是个什么东西呢?我们一起学习下.

       首先初始化一个矩阵堆栈

        GLMatrixStack::GLMatrixStack(int iStackDepth = 64)

         通过看他具体实现我们可以看到,它会创建一个栈结构的存储控件,iStackDepth表示该栈空间的深度为64,就是说我们可以对它进行64次的push操作,同时会在栈顶添加一个单元矩阵.

        在堆栈顶部载⼊一个单元矩阵    

        void GLMatrixStack::LoadIdentity(void) 在堆栈顶部创建一个 单位矩阵

        在堆栈顶部载入任何矩阵 //参数:4*4矩阵

      void GLMatrixStack::LoadMatrix(const M3DMatrix44f m);    

        矩阵乘以矩阵堆栈顶部矩阵,相乘结果存储到堆栈的顶部

        void GLMatrixStack::MultMatrix(const M3DMatrix44f);

        获取矩阵堆栈顶部的值 GetMatrix 函数 

          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);

具体我们可以总结为下图

相关文章

  • 8. OpenGL中如何使用矩阵堆栈

    我们在使用矩阵对所渲染的视图做图形变换时(如平移,旋转,缩放),需要对矩阵进行点乘或叉乘计算,我们计算后的结果往往...

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

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

  • OpenGL矩阵堆栈处理

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

  • OpenGL矩阵堆栈

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

  • OpenGL 矩阵堆栈

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

  • OpenGL绘制地板

    1:GLMatrixStack (矩阵)堆栈的使用 GLMatrixStack,初始化时已经在堆栈中包含了单位矩阵...

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

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

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

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

  • 矩阵堆栈管理

    矩阵堆栈管理 我们在使用OpenGL渲染时,通常需要展现出一些动画效果,每种动画都离不开基本的形变方式:平移、旋转...

  • 五:OpenGL矩阵与堆栈

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

网友评论

      本文标题:8. OpenGL中如何使用矩阵堆栈

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