OpenGL超级宝典(第7版)笔记12 前三章回顾 OpenGL扩展简介

文章目录

  • OpenGL超级宝典(第7版)笔记12 前三章回顾 OpenGL扩展简介
    • 1.1 环境配置
    • 1.2 整体框架
    • 1.3 渲染管线
    • 1.4 程序流程
  • 2 OpenGL扩展
    • 2.1添加GLSL扩展
    • 2.2 自带的“扩展”
    • 2.3 添加全新功能的扩展
      • 遗留的问题:关于OpenGL如何添加全新功能的扩展
  • 3 总结

上一篇我们具体介绍了一下图形管线的最后一个阶段帧缓存运算,它包括四个部分:裁剪测试、模板测试、深度测试、混合和逻辑运算。其中我们重点介绍了深度测试的内容。然后我们介绍了一下计算着色器。在本篇中我们将对前三章进行一个大体的回顾,我们还介绍一下OpenGL的扩展内容(并不会很深入)。 # 1 前三章回顾 虽然是前三章的内容回顾,但是我们并不会再把知识重新叙述一遍,而是把它们汇集到一起做一个总览,当你看到一些提示(比如函数名、语句)时你能想起对应的知识就OK了,也看看你之前的内容是否掌握了。

回顾部分我会分为四个小部分:分别是环境配置、整体框架、渲染管线、程序流程

1.1 环境配置

1.2 整体框架

1.3 渲染管线

1.4 程序流程

2 OpenGL扩展

OpenGL扩展就是对OpenGL核心功能的一些增强。

在使用任何扩展之前要保证OpenGL实现能够支持扩展

GLuint a=0;
glGetIntegerv(GL_NUM_EXTENSIONS,&a);
//调用以获取可支持的扩展数量
const GLubyte* glGetStringi(GLenum name,GLuint index);
glGetStringi(GL_EXTENSION,0);
//name中输入GL_EXTENSION,后通过编号来查询支持的扩展名字
//(编号就是从0到glGetIntegerv返回的值之间的任意一个数)

好了我们现在找到了你需要的扩展(假设找到了),现在需要你添加扩展:

2.1添加GLSL扩展

#extension GL_AC_footbar_feature : enable
//在着色器的开头添加就是#version 450 core那里

这里我们添加了一个叫GL_AC_footbar_feature的扩展,但是要注意OpenGL知道有该扩展并不意味着底层硬件可以实现(就像老板知道这里需要一个搞计算机图形学的,这并不意味着员工就会计算机图形学)假如硬件可以实现那么在着色器中就有(自动会把它置1)

#define  GL_AC_footbar_feature 1

这样我们可以通过判断其是否为1来对着色器程序进行选择性的运行:

#define GL_AC_footbar_feature//如果能用扩展,就做一些事情
#else//如果不能用扩展,就做另一些事情
#endif

还有一种方法来添加扩展

#extension GL_AC_footbar_feature : require

这种方法要求OpenGL一定要使用扩展,如果底层不支持那么编译会强制报错。如果支持,那么将使用扩展。

2.2 自带的“扩展”

有些扩展是基于OpenGL的,他们使得一些本身不被允许的行为可以做,还可以用一些新的标记值,在使用这些扩展时,用就行了,不需要额外进行声明啥的,这就是所谓的自带的“扩展”

2.3 添加全新功能的扩展

详见:(没看懂 = =)
OpenGL版本与OpenGL扩展机制

遗留的问题:关于OpenGL如何添加全新功能的扩展

3 总结

这一篇我们对前三章做了一个知识的梳理(知识图),还提了一下OpenGL扩展的相关内容。

下一篇是对前三章内容的综合应用(五子棋小游戏),其中涉及了很多着色器的细节,还有一点点程序设计在其中,会非常精彩,但可能篇幅会比较长(我尽量把内容放在一篇说完),我们会尽量用更多之前学习的知识(有时候是不得已,有时候是更加方便快速)

我们下篇见~~

关于书籍的问题
如果你手中没有该书,我还是建议你购买一本,毕竟书本毕竟更加严谨专业,我这里难免遗漏一些细节,主要是提供实例,并做一个消化,将很混乱的流程为大家理清,但这笔记一定是通俗的,是对新手友好的(当然有时候你需要在某些方面自己努努力,比如后面出现的基本线性代数的内容,还有C语言或是c++的基础知识,虽然我可能也不太懂O(∩_∩)O,慢慢来吧)。

别被吓住
刚开始的时候很容易被OpenGL的巨长的函数和超级复杂的流程吓到,其实并没有那么可怕,只要对这样或那样的流程熟悉之后,一切都变得相当简单(当然如果你能提出一个更好的流程那就更好了,当我们把很多基础的工作做完,我们会不断的提出新问题新点子,用新的技术来实现它,最终完成OpenGL的学习)

虽然我也不知道后面将是怎样的道路,但至少努力学习是没错的。

我看过的相关内容
以下并不是全看完了,大部分看了15%就看不下去了,实在是没看懂。(本人没什么计算机编程基础,算是野生程序员吧,很多内容都不能标准表述,望见谅)
如果你对opengl的工作有了一定的了解,我一开始也是从这里开始的,但是仍然有很多的不懂的,最后至今为止,我杂糅了很多的网站内容包括LearnOpenGL、极客学院、哔哩哔哩的闫令琪计算机图形学、哔哩哔哩的傅老师的OpenGL课程、OpenGL编程指南"也称为红宝书"、OpenGL超级宝典"也称为蓝宝书"、当然还有很多的csdn文章O(∩_∩)O这就不介绍了,等用到是时候我在放链接吧O(∩_∩)O

这里面图形学比较易懂也很基础推荐可以作为开始(如果你是学OpenGL需要马上用,应该可以跳过,但是其中的内容很是很重要,这会让后面涉及变换透视的章节更加易懂,推荐大家看看),之后是蓝宝书或是极客学院翻译的教程比较推荐,这两个还是比较适合你我这样的新手的。
这里不推荐看的是红宝书,这本书我看了有点类似于字典那样的工具书,不太适合新手上手学,而且讲的也并不是很通俗易懂(可能是我的书版本比较老吧…)

加油
当然如果你对我有信心,我也会持续更新(虽然前路漫漫),跟大家一同进步(虽然很可能没人看(╥╯^╰╥),无所谓了,当然如有错误还请大家指正∠(°ゝ°),哪里不懂我会尽力解决,哪里说的不好也可以指出我会及时修改~)

我们下篇见~~

OpenGL超级宝典(第7版)笔记12 前三章回顾 OpenGL扩展简介相关推荐

  1. OpenGL超级宝典(第7版)笔记13 前三章实例 下个五子棋 (上)

    OpenGL超级宝典(第7版)笔记13 前三章实例 下个五子棋 (上) 文章目录 OpenGL超级宝典(第7版)笔记13 前三章实例 下个五子棋 (上) 前言 1 初构建 2 构建数据结构 3 绘制 ...

  2. 《OpenGL超级宝典第5版》学习笔记(一)—— 第一个OpenGL程序

    // GLTools库包含了一个用于操作矩阵和向量的3D数学库,并依靠GLEW获得OpenGL3.3中用来产生和渲染一些简单3D对象的函数, // 以及对视觉平截头体.相机类和变换矩阵进行管理的函数的 ...

  3. OpenGL超级宝典第7版环境配置

    1.下载源码 地址:http://www.openglsuperbible.com/ 2.运行Cmake,编译glfw库 打开项目后,编译工程(Debug和Release下都编译). 把E:\open ...

  4. OpenGL超级宝典(第7版)笔记4 渲染管线介绍 清单2.3-2.7

    OpenGL超级宝典(第7版)笔记4 渲染管线介绍 清单2.3-2.7 文章目录 OpenGL超级宝典(第7版)笔记4 渲染管线介绍 清单2.3-2.7 1 OpenGL简介 2 OpenGL渲染管线 ...

  5. OpenGL超级宝典学习笔记——操作矩阵

    为了更强大的功能和灵活性,我们有时需要直接操作矩阵.在OpenGL中4x4的矩阵用包含16个浮点数值的一维数组来表示,而不是用二维的4x4的数组来表示.OpenGL之所以这么做,因为使用一维数组更高效 ...

  6. OpenGL超级宝典(第五版)环境配置

    本文转自:http://blog.csdn.net/sunny_unix/article/details/8056807,感谢作者分享. OpenGL超级宝典(第五版)环境配置 Vs2008+winX ...

  7. OpenGL超级宝典(第五版)环境配置【转】

    OpenGL超级宝典(第五版)环境配置 Vs2008+winXP  后续会整理Ubuntu 12.04LTS下的配置作者:sunny_unix 1.各种库的配置 (1)glew 下载:https:// ...

  8. OpenGL超级宝典(第五版) 环境配置

    特别提醒:有些在word中或者其他中的代码复制到vs中会报错,原因是word中有些隐含的字符,复制到vs中就会报错:重新输一遍就可以解决问题,这里只是提醒下! 可以参阅我前面转载的一篇文章,进行比较然 ...

  9. OpenGL超级宝典(第五版) 环境配置(WinXp+VS2008)

    转自:http://blog.csdn.net/sunny_unix/article/details/8056807 OpenGL超级宝典(第五版)环境配置 1.各种库的配置 (1)glew 下载:h ...

  10. [转]OpenGL超级宝典 5e 环境配置

    OpenGL超级宝典(第五版)环境配置 1.各种库的配置 (1)glew 下载:https://sourceforge.net/projects/glew/files/glew/1.7.0/glew- ...

最新文章

  1. Python基础学习!容器:列表,元组,字典与集合!(2)
  2. IAR for msp430 MDK中 warning: #223-D: function xxx declared implicitly 解决方法
  3. java统计 pv uv_统计PV、UV的新武器——Aviator
  4. Python-dataframe合并(merge函数)
  5. 大四学生对于晚睡的思考
  6. hdu-1166敌兵布阵(树状数组)
  7. Android 简单实现订单模块类APP的物流详情页
  8. app开发学习需要经历哪些流程
  9. GAN-代码实现资料整合(1)
  10. Mysql-MVCC
  11. oracle联合分组查询,Oracle分组查询
  12. 【matlab图像处理】图像处理工具箱(2)
  13. 初级的数据分析师,主要需要做哪些工作?
  14. 第四届高教杯计算机绘图教程,第十一届高教杯全国大学生先进成图技术与产品信息建模.PDF...
  15. Android面试题解答(结尾有彩蛋)
  16. 《第七堂棒球课》:MLB棒球创造营·棒球名人堂
  17. C语言笔记——题目“股神”
  18. 超级计算机大赛要学什么,超级计算机竞赛“七步成诗”仅三队完赛
  19. 南加州大学林禹臣:教机器学习常识,是种什么体验?
  20. 竞选班长的演讲稿_1500字

热门文章

  1. USB接口ID卡读卡器oem软件(vb源代码)
  2. android 包名工具,查看包名(安卓应用包名查看工具)
  3. Android PDF阅读
  4. 收藏夹吃灰系列(五):解决Win10插入U盘不显示磁盘可用容量且打不开卡死问题 | 超级详细,建议收藏
  5. ulipad双击无反应
  6. e-HR推动知识型企业人力资源管理提升
  7. Linux是实时系统还是分时操作系统?
  8. 计算机放样在钢结构应用,计算机放样应用于钢结构工程
  9. Java并发编程实战-学习总结-第一篇(概括)
  10. 极客时间《Java并发编程实战》----Java线程