在入门级代码里面,当在painter(Qt里的)或者自己写一个draw函数时。

发现总是要压一个矩阵或者调用glLoadIdentity。

下面本人将会结合操作系统来讲解这个为什么!主要目的是给以后的自己做的笔记,能够自己查阅。

当在调用年时候,没有压矩阵或调用glLoadIdentity,程序运行截图如下:

,当有了glLoadIdentity,程序运行截图如下:

这里给出源码:

void Init() {glMatrixMode(GL_PROJECTION);gluPerspective(50.0f, 800.0f / 600.0f, 0.1f, 1000.0f);glMatrixMode(GL_MODELVIEW);glLoadIdentity();
}void Draw() {glClearColor(30.0f / 255.0f, 30.0f / 255.0f, 30.0f / 255.0f, 1.0f);glClear(GL_COLOR_BUFFER_BIT);glLoadIdentity();glTranslatef(0.0f, 0.0f, -2.5f);glBegin(GL_TRIANGLES);glColor4ub(255, 0, 0, 255); glVertex3f(-0.5f, -0.25f, 0.0f);glColor4ub(0, 0, 255, 255); glVertex3f(0.5f, -0.25f, 0.0f);glColor4ub(0, 255, 0, 255); glVertex3f(0.0f, 0.5f, 0.0f);glEnd();
}

这里面因为是界面显示,所以程序会不停的调用Draw(),这里面如果不每次加入glLoadIdentity或者压入一个矩阵,那边他就会不停的改变模型视口矩阵。

这就是原因。如果没有压入矩阵或者glLoadIdentity,glTranslatef会不停的修改模型视图矩阵,所有,才会出现图一的那种形式。

C++ opengl 学习笔记-在OpenGL入门级代码里面glLoadIdentity的理解相关推荐

  1. OpenGL学习笔记(一):环境搭建、三维空间坐标系理解以及OpenGL的基本使用

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7866 ...

  2. 【OpenGL学习笔记①】——openGL flew flgw flut 环境配置 + 绘制出Hello World

      该文章旨在帮助 计算机图形学 openGL 初学者快速安装和配置 openGL的环境(包括glew和glfw,还有glut[进阶]),并手把手指导如何绘制出第一句 "Hello Worl ...

  3. OpenGL学习笔记之三 OpenGL开发环境之GLFW与GLAD配置

    内容来源:LearnOpenGL CN 前言 在我们画出出色的效果之前,首先要做的就是创建一个OpenGL上下文(Context)和一个用于显示的窗口.然而,这些操作在每个系统上都是不一样的,Open ...

  4. 【OpenGL学习笔记②】——OpenGL基础【渲染管线 顶点着色器 片元着色器 VAO VBO 万字总结】

  5. OpenGL学习笔记:矩阵变换

    文章目录 缩放 glm矩阵表示 glm缩放矩阵实现 位移 齐次坐标 glm位移矩阵实现 旋转 沿x轴旋转 沿y轴旋转 沿z轴旋转 沿任意轴旋转 glm旋转矩阵实现 矩阵的组合 glm矩阵组合使用 接上 ...

  6. 【OpenGL学习笔记⑧】——键盘控制正方体+光源【冯氏光照模型 光照原理 环境光照+漫反射光照+镜面光照】

    ✅ 重点参考了 LearnOpenGL CN 的内容,但大部分知识内容,小编已作改写,以方便读者理解. 文章目录 零. 成果预览图 一. 光照原理与投光物的配置 1.1 光照原理 1.2 投光物 二. ...

  7. OPENGL学习笔记之八

    OPENGL学习笔记之八 2017/11/15 阅读材料来自learnopengl.com以及learnopengl-cn.github.io 我们通常会自己设定一个坐标的范围,之后再在顶点着色器中将 ...

  8. 【OpenGL学习笔记】地月系

    OpenGL学习笔记2-地月系 文章目录 OpenGL学习笔记2-地月系 前言 运行结果 纹理图片 一.TexturePool 1.**TexturePool.h** 2.**TexturePool. ...

  9. 【OpenGL学习笔记⑥】——3D变换【旋转的正方体 实现地月系统 旋转+平移+缩放】

    ✈️ 文章目录 零. 成果预览图 一.3D立方体的顶点数组 二.纹理旋转 三.纹理缩放 四.画n个3D图形 五.轨道的数学公式 六.深度缓冲(Z 缓冲) 七.完整代码 八.参考附录: 神器的正方体 ☁ ...

最新文章

  1. 分享一个expect的脚本
  2. jQuery基础之(一)jQuery概述
  3. mysql 过程和函数 变量的值_MySQL数据库提升篇-----存储过程和函数
  4. python performance measure 01
  5. 20140417--Linux课程讲解目录索引
  6. POJ - 3415 Common Substrings(后缀数组+单调栈)
  7. SAP UI5 Extension getCustomProperties
  8. CF1313D:Happy New Year(状压dp)
  9. IP SLA的路径控制
  10. 深入理解simhash原理
  11. javascript基础系列:DOM相关的技术知识点
  12. vba 指定列后插入列_Vba代码插入指定数量的空白行
  13. 怒肝三个月啃完这110道面试题,跳槽薪资翻倍
  14. 模板使用自定义类型_自定义虚幻图表_拓展蓝图功能
  15. html图书馆占座系统,图书馆选座系统,再也不用担心有人占座啦!
  16. js对象写入键值对_js对象添加键值对
  17. C# WinForm程序 PDF文档分割代码实现
  18. css保持图片原始比例
  19. vsc 代码另起一行_VSCode 快捷键大全
  20. 用HTML5实现手机摇一摇的功能并配上声音

热门文章

  1. IT外包 OpenEIM 强调CMMI等级
  2. 飞鸽传书2007程序语言的面向对象最后会成自然语言吗?
  3. 百度SEO优化技术点总结
  4. 隐身专家 FreeEIM 合作版
  5. C++ 程序员自信心曲线图
  6. html中添加背景音乐的标签,添加背景音乐的html标签是什么
  7. JAVA题目 写一个收费站类_Java综合题目
  8. mysql映射mapper_Mybatis中Mapper映射文件使用详解
  9. Mac隔空投送功能在哪? macbook隔空投送更方便的使用方法
  10. qaxobject控制word到某一行_太简单了!Excel信息导出为每页打印一行,且批量添加同一表头...