核心模式和立即渲染模式

早期的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状态的一个子集。

来源:https://learnopengl-cn.github.io/


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

3D数学基础 上一篇
javaScript语法 下一篇