对OpenGL中矩阵设置的初步认识:
在入门级的代码里面,通常在初始化OpenGL中可以看到这样的代码:

void init(){glMatrixMode(GL_PROJECTION);gluPerspective(50.0f,800.0f/600.0f,0.1f,1000.0f);glMatrixMode(GL_MODELVIEW);glLoadIdentity();
}

此处暂时只做初步认识,不做深入理解!

投影矩阵:
1.人的眼睛或者摄像机:看到的东西投影到摄像机上面(或者理解为视网膜上)就可以看到东西了;
2.投影:把3D空间里面的东西,变成2D的,显示到屏幕上的;
3.在视角里面,其实有近平面和远平面,也就是OpenGL里面,可以看到的,最近和最远的距离。在视野里面看到的东西都会投影到近平面里面;
4.在现实生活中视野都是像金字塔那种形状的,但在计算机中,他是正方体(但在OpenGL里面会有特定的算法,显示的时候和现实差不多的,用OpenGL就是以摄像机的形式来编程的)

暂时可以这样理解这些代码(非权威)
1.投影矩阵的作用就是为了把所描绘的物体投影到我们的视网膜上面;
2.模型视图矩阵就是为了放物体的!!!!

解释下上面的代码:
1.glMatrixMode(GL_PROJECTION)是设置当前的矩阵为投影矩阵;
2.gluPerspective是为当前的矩阵赋值,因为上一步设置当前矩阵为投影矩阵了,所以gluPerspective相当于为投影矩阵赋值;
3.设置模型视口矩阵模型视口矩阵的操作跟设置投影矩阵是一样的思路。glMatrixMode(GL_MODELVIEW)是设置当前的矩阵为模型视口矩;
4.glLoadIdentity是为当前的矩阵赋值,因为上一步设置当前矩阵为模型视口矩阵了,所以glLoadIdentity相当于为模型视口矩阵赋值。

因为新建一个OpenGL渲染RC后,里面的矩阵是未知的,所以要设置。绘制模型的时候,投影矩阵和模型视口矩阵是一定会参与运算的。

C++ opengl 对OpenGL中矩阵设置的初步认识相关推荐

  1. 【OpenGL】十、OpenGL 绘制点 ( 初始化 OpenGL 矩阵 | 设置投影矩阵 | 设置模型视图矩阵 | 绘制点 | 清除缓冲区 | 设置当前颜色值 | 设置点大小 | 绘制点 )

    文章目录 一.初始化 OpenGL 矩阵 1.设置投影矩阵 2.设置模型视图矩阵 二.绘制点 1.清除缓冲区 2.设置当前颜色值 3.设置绘制点的大小 4.绘制点 5.将缓冲区绘制到前台 三.部分代码 ...

  2. 如果将OpenGL的MVP矩阵设置为单位阵

    如果将OpenGL的MVP矩阵设置为单位阵,会发生什么? opengl的几个坐标空间: object space-> eye space-> clip space -> NDC -& ...

  3. OpenGL(一)——OpenGL入门

    1.概念 2D+透视 = 3D 3D术语: 光栅化:实际绘制或填充每个顶点之间的像素形成过程 着色:沿着顶点之间改变颜色值,能够轻松创建光照照射到一个立方体的效果 纹理贴图:将纹理图片附着到你绘图的图 ...

  4. opengl笔记——OpenGL好资料备忘

    Plane Equation 注:面可理解为:连接面上的点与原点,投影相同(为:a*x1+b*x2+c*x3) OpenGL Matrix Class (C++) Overview OpenGL fi ...

  5. android opengl ppt,Opengl example.ppt

    Opengl example.ppt * * 一个完整的例子 要求:在Visual C++ 6.0环境下,用OpenGL在屏幕上画点 步骤: (1)建立新项目 (2)添加头文件 #include #i ...

  6. 音视频开发(十四):OpenGL 与 OpenGL ES2区别

    什么是OpenGL ES? OpenGL(全写Open Graphics Library)是指定义了一个跨编程语言.跨平台的编程接口规格的专业的图形程序接口.它用于三维图像(二维的亦可),是一个功能强 ...

  7. 3D游戏引擎系统源码C++本科毕业设计,C++ 3D引擎源码,渲染系统使用的OpenGL 及 OpenGL ES

    Effective 3D Engine 渲染系统使用的OpenGL 及 OpenGL ES,Windows上OpenGL ES使用AMD的ES模拟器. 环境部署 完整代码下载地址:3D游戏引擎系统源码 ...

  8. linux opengl es,OpenGL ES之GLFW窗口搭建

    OpenGL窗口 能用于OpenGL的窗口库有很多,常见的有glut.freeglut.SDL.GLFW等.glut基本已经被废弃,其他几个再不同场合都有不同的应用. GLFW为opengl supe ...

  9. 【OpenGl】openGL 诸多库之间关系 及 环境配置

    [OpenGl]openGL 诸多库之间关系 及 环境配置 最近一直在学习OpenGL,但是看OpenGL编程指南不同版本之间使用一堆不同的库,概念名称全都混搅起来了,越看越糊涂,于是整理了一下Ope ...

最新文章

  1. 自我监督学习:AI技术的未来发展方向
  2. VS2010/MFC编程入门之十七(对话框:文件对话框)
  3. python爬虫应用实战-如何爬取表情进行斗图?丰富你的表情库
  4. python字典功能默写_Python 内存分配时的小秘密
  5. mkl_def.dll文件加载失败
  6. 用汇编写改进的冒泡排序
  7. C4C的导航菜单的问题,disable这个属性,就会变成正常的两级菜单
  8. C#里面SQLite读取数据的操作
  9. vue如何获取tree当前选中的节点_vue中element-ui 树形控件-树节点的选择(选中当前节点,获取当前id并且获取其父级id)...
  10. 读《编程之美》读后感3
  11. 如何查看 mysql 的视图?
  12. UTF-8, ASCII, Unicode的介绍与区分
  13. 唯品会回应“不正当竞争行为”:接受处罚 进行全面整改
  14. 马云:捐钱很容易 但当所有人行动才能有变化
  15. enityframework 已连接的当前状态为打开。_蓝牙连接有问题吗?尝试针对macOS的以下6个修复程序
  16. 迅捷pdf虚拟打印机怎么安装打印
  17. linux卸载apache服务器,centos 7 安装卸载apache(httpd)服务的详细步骤
  18. Matlab save colormap
  19. php 503解决办法,php设置页面返回503状态-php设置503http状态的方法-吾爱编程网
  20. RabbitMQ双节点集群搭建

热门文章

  1. 【转载】单片机应用系统断电时的数据保护方法
  2. 求之不得的 Java 文档教程大汇总!
  3. 做大厂程序员是一种怎样的体验?这四位“百度程序员”说出了自己的看法!
  4. Python附带了大量的库 - 初学者如何学起
  5. 飞鸽传书有多少用户?
  6. 编程必备:c/c++的编程经验技巧!
  7. gui 设计的简单计算器 java,编写Java GUI程序,实现一个简单计算器。要求如下: (1)......
  8. ios 支付宝支付 回调数据_iOS逆向支付宝
  9. GEO2R/GEOquery的结果可能是错的!!!
  10. scatter函数_散点图、箱线图、核密度函数……数据分析必备的9种可视化图表