学习地址1:https://pan.baidu.com/s/1HsM5p56DosQgAgYDC9G26g 提取码: rkeh 学习地址2:https://share.weiyun.com/I2HekLPO 密码:b36r5s
OpenGL(Open Graphics Library)是一个跨编程语言、跨平台的编程图形程序接口,它将计算机的资源抽象称为一个个OpenGL的对象,对这些资源的操作抽象为一个个的OpenGL指令。
OpenGL ES(OpenGL for Embedded Systems)是 OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计,去除了许多不必要和性能较低的API接口。
Vulkan学习难度过高,个人做项目太耗时间,所以OpenGL依旧是很好的选择。很多大神都认为,先学OpenGL打基础,在学习Vulkan的时候再将原先的知识进行分解转化,是个很好的方法。因为学习Vulkan时,想让屏幕上显示点东西需要做的工作太多了,非常容易放弃。
OpenGL:跨平台编程语言,跨平台的编程图像程序接口,将计算机的资源抽象成一个OpenGL对象,这些资源的操作重新为一个个的OpenGL指令。 OpenGL ES:是OpenGL三维图像API的子集,针对手机,pad和游戏主机等嵌入式设备而设计,去除许多不必要和性能较低的API接口。 DirectX:由许多API组成,DirectX并不是一个单纯的图像API,最重要的是DirectX是属于Windows上一个多媒体处理框架,并不支持Windows以外的平台,不是跨平台的框架,可以分为,显示部分、声音部分、输入部分、网络部分。 Metal:Apple为游戏开发者推出的新的平台技术,该技术能够为3图像提高10倍的渲染性能,是Apple为了解决渲染而推出的框架
在OpenGL下渲染图形,就会由经历一个一个节点,而这样的操作可以理解管线,可以抽象成流水线,每个人格类似流水线般执行,管线是个抽象的概念,之所以称之管线,是因为显卡在处理数据的时候是按照一个固定的顺序来的,而且严格按照这个顺序,就像水充一根管子流到另一端,这个顺序不能被打破。
工具库 OpenGL 函数库相关的 API 有核心库(gl),实用库(glu),辅助库(aux)、实用工具库(glut),窗口库(glx、agl、wgl)和扩展函数库等。gl 是核心,glu 是对 gl 的部分封装。glx、agl、wgl 是针对不同窗口系统的函数。glut 是为跨平台的 OpenGL 程序的工具包,比aux 功能强大(aux 很大程度上已经被 glut 库取代)。扩展函数库是硬件厂商为实现硬件更新利用 OpenGL 的扩展机制开发的函数。
窗口管理 窗口操作在每个系统上都是不一样的,OpenGL 有目的地将这些操作抽象(Abstract)出去。这意味着我们不得不自己处理创建窗口,定义 OpenGL 上下文以及处理用户输入。幸运的是,有一些库已经提供了我们所需的功能。这些库节省了我们书写操作系统相关代码的时间,提供给我们一个窗口和上下文用来渲染。
GLFW OpenGL是一个图形库,而要画图,就需要先创建一个窗口。不幸的是,OpenGL并没有提供创建窗口的功能,必须自己创建窗口。而创建窗口在每一个操作系统上都不同的(在Windows上代码量也不少),为了方便,我们会使用一个窗口库来简化这一过程。常用的OpenGL窗口库有GLUT、GLFW和SDL,此处为我们选择使用得比较多的GLFW。
1、openGL 用什么语言写的,是否支持多种语言派生? 答: openGL 内核是C语言实现, 为了兼容其他语言,引用了抽象层。//具体如何实现?
2、什么是GLFW? 答:它是一个针对openGl的c语言库,提供窗口显示功能,openGl 渲染好的buffer可通过GLFW来显示。
3、什么是GLAD? 答:显卡厂商提供都是lib形式,每个厂商都不一样,GLAD它使用一个在线服务,将定义版本对应所有opengl得函数下载下来。
4、什么是图形渲染管线,它有经历哪些流程? 答:一大堆原始数据途径一个管道期间经过各种变化处理最终显示到屏幕上