1.OpenGL是什么?
OpenGL是一组各个GPU厂家一起遵循的约定。
2.GLFW,GLAD分别是什么?
GLFW解决系统层面的不同,是我们与系统之间的隔离,如(创建窗口,定义上下文,处理用户输入)
GLAD使得代码可以用于不同的OpenGL驱动(OpenGL本身只是规范/标准,各厂家的具体实现方式可能不同)
3,OpenGL 的工作模式
也叫可编程管线(顶点数据---->顶点着色器---->形状装配----->几何着色器----->光栅化---->片段着色器---->测试与混合),GPU的渲染是一个流水线
4.OpenGL的核心
OpenGL自身是一个巨大的状态机,这个状态机描述着该如何操作所有变量的大集合,状态可以设置,也可以进行获取。
5 .OpenGL的对象
通常把OpenGL上下文比做一个大的结构体,包含很多的子集,一个对象是指一些选项的集合,代表OpenGL状态的一个子集。
例如:我们可以用一个对象来代表绘图窗口的设置,设置他的大小,设置颜色位数等等。可以把对象看成一个C风格的结构体。当前的状态只有一份,如果每次显示的是不同的效果,那么从新配置就会非常的麻烦,这时候我们就可以有一些对象来帮忙记录某些状态,以达到复用的效果。
使用时的大致流程为1.给对象一个编号,2.绑定对象至上下文,3.设置属性,4.将上下文的这个对象设回默认,这是的对象已经记录上了上面的内容,可以先解绑,等到需要的时候在进行使用,一旦我们重新绑定,这些选项就会立即重新生效.
下面的链接是我觉得写的非常好的博客
【图像】【OpenGL】VAO和VBO的关系_vao vbo_西西敏的博客-CSDN博客
初识OpenGL (4)链接着色器_opengl如何调用着色器_thefist11的博客-CSDN博客
QOpenGLWidget的使用https://www.baidu.com/link?url=RYlK562gMKcTF8sJuUutU3ivLByCDxCjiUhzFPRhwdJW3k_jhvRBd2nnTmNtGnNFpYHuS0L2oBx5CCAjYeffkPYVhPXk2xe0UQ8AAiLMtxq&wd=&eqid=e2cb2af70003ecb10000000264ad0e4b