初识OpenGL中专业名词之解析

2020-07-05  本文已影响0人  徐徐图之哈哈

刚接触OpenGL中的专业名词还是很费解的,目前为止也是一知半解

OpenGL是什么?

严格的讲:OpenGL被定义为“图形硬件的一种软件接口”
本质上讲:它是一个3D图形和模型库,具有高度的可移植性,且具有非常快的速度

什么是状态机?

状态机是一个抽象的模型,表示一组状态变量的集合

特点:

上下文Context

在调用指令之前创建且保存了OpenGL中的各种形态的非常庞大的状态机,是OpenGL指令执行的基础

OpenGL函数与上下文的关系

同一个OpenGL上下文反复切换或操作渲染,可能会产生较大的开销,造成资源的过度消耗与浪费

渲染

顶点

顶点数据

顶点数组(VertexArray)

顶点缓冲区(VertexBuffer)

管线

着色器程序Shader

  1. 顶点着色器(VertexShader)
  2. 片段着色器(FragmentShader)
  3. 像素着色器(PixelShader)
  4. 几何着色器(GeometryShader)
  5. 曲面细分着色器(VertexShader)


OpenGL在处理shader流程:

注:OpenGLES 3.0,依然只支持顶点着色器和片段着色器

固定管线/存储着色器

顶点着色器(VertexShader)

片段着色器(FragmentShader)

GLSL(OpenGL Shading Language)

光删化(Rasterization)

纹理(Texture Mapping)

混合(Blending)

变换矩阵(Transformtion)

投影矩阵(Projection)

渲染上屏/交换缓冲区(SwapBuffer)

注意1.如果每个窗⼝只有⼀个缓冲区,那么在绘制过程中屏幕进行了刷新,窗⼝可能显示出不完整的图像

垂直同步技术 :显示器的刷新一般是逐⾏进⾏的,因此为了防⽌交换缓冲区的时候屏幕上下区域的图像分属于两个不同的帧,因此交换一般会等待显示器刷新完成的信号,在显示器两次刷新的间隔中进行交换,这个信号就被称为垂直同步信号

注意2.使用了双缓冲区和垂直同步技术之后,由于总是要等待缓冲区交换之后再进⾏下一帧的渲染,使得帧率⽆无法完全达到硬件允许的最⾼⽔水平

窗口

裁剪区域

视口

上一篇下一篇

猜你喜欢

热点阅读