OpenGL到底是什么?
一般它被认为是一个API,包含一系列操作图形,图像的函数。然而,它并不是一个API,而是Khronos组织制定并维护的规范。
OpenGL规定了每个函数如何执行,以及它们的输出值。由于OpenGL的大多数实现都是由显卡厂商编写的,当产生一个bug时通常可以通过升级显卡驱动来解决。
核心模式和立即渲染模式?
早期的OpenGL使用立即渲染模式(Immediate mode,也就是固定渲染管线),OpenGL的大多数功能都被库隐藏起来,开发者很少能控制OpenGL如何进行计算的自由。
当使用OpenGL的核心模式时,OpenGL迫使我们使用现代的函数。现代函数要求使用者真正理解OpenGL和图形编程,它有一些难度,然而提供了更多的灵活性,更高的效率,更重要的是可以更深入的理解图形编程。所有的OpenGL都是在3.3的基础上,引入了额外功能,并没有改动核心架构。所以学习OpenGL3.3;
什么是状态机?(本质)
OpenGL自身是一个巨大的状态机(State Machine):一系列的变量描述OpenGL此刻应当如何运行。OpenGL的状态通常被称为OpenGL上下文(Context)。我们通常使用如下途径去更改OpenGL状态:设置选项,操作缓冲。最后,我们使用当前OpenGL上下文来渲染。