核心模式和立即渲染模式
早期的OpenGL使用立即渲染模式(Immediate mode,也就是固定渲染管线)。
OpenGL3.2开始,规范文档开始废弃立即渲染模式,鼓励开发者在OpenGL的核心模式(Core-profile)下进行开发。
扩展
OpenGL的一大特性就是对扩展(Extension)的支持,当一个显卡公司提出一个新特性或者渲染上的大优化,通常会以扩展的方式在驱动中实现。
if(GL_ARB_extension_name)
{
// 使用硬件支持的全新的现代特性
}
else
{
// 不支持此扩展: 用旧的方式去做
}
状态机
OpenGL自身是一个巨大的状态机(State Machine):一系列的变量描述OpenGL此刻应当如何运行。OpenGL的状态通常被称为OpenGL的上下文(Context)。
通常使用如下途径去更改OpenGL状态:设置选项,操作缓冲。最后,我们使用当前OpenGL上下文来渲染。
状态设置函数(State-changing Function),这类函数将会改变上下文。
状态使用函数(State-using Function),这类函数会根据当前OpenGL的状态执行一些操作。
对象
OpenGL库是用C语言写的,同时也支持多种语言的派生,但其内核仍是一个C库。
在OpenGL中一个对象是指一些选项的集合,它代表OpenGL状态的一个子集。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!