OpenGL系:1-OpenGL术语

2020-07-04  本文已影响0人  长若执念

OpenGL 是⼀一种图形应⽤用程序编程接⼝口(Application Programming Interface, API).简单理理解就是开发的 图形库
OpenGL 本领高强,涉猎极广,使用略麻烦

那么一张图片显示出来,到底经过了什么一个过程?(这个过程就叫OPenGL的渲染管线:可以理解为流水线名称)

顶点数据 ------> 顶点着色器(vertex Shader) -----> 细分着色器 ----->

几何着色器 -----> 图元设置 -----> 剪切 ----->

光栅化 -----> 片元着色器 (Fragment Shader) -----> 显示效果

来看一下细节:

管线

-固定管线:
- 非固定管线/可编程管线/GLSL:

- 顶点数据:

顶点数组(VertexArray)、顶点缓冲区(VerTex Buffer)。

两者区别主要在于存储方式不同:

着⾊器分类:

-顶点着⾊器(必要):

-细分着⾊器(可选) :
-⼏何着⾊器 (可选):

-⽚元着⾊器 (必选):

- 目前OpenGL中可编程的仅有两个顶点:顶点着⾊器、⽚元着⾊器

-光栅化:

  • 顶点数据转换为片元
  • 几何图元转换为二维图像
  • 把物体的数学描述和相关颜色信息转换为屏幕上对应位置的像素和填充像素的颜色
  • 将模拟信号转换为离散信号
  • 这上一个不可编程的过程
作用:将图转化为一个个格栅组成的图像
特点:每个元素对应帧缓冲区中的一像素
执行的操作:

-纹理

-混合(Blending)

-变换矩阵(Transformation)

-投射矩阵(Projection)

-渲染上屏/交换缓冲区(Swap Buffer)

面试点:如果每个窗口只有一个缓冲区,在绘制过程中刷新了屏幕,窗口可能显示不出完成的图像

->屏幕缓冲区:用于显示在屏幕上。
->离屏缓冲区:没有显示在屏幕上。
触发离屏渲染:设置圆角 或设置图层蒙版、阴影 、光栅化

面试点:防止交换缓冲区时屏幕上下区域的图像分别属于两个不同的帧
面试点:使用了双缓冲区和垂直同步技术之后,由于总是要等缓冲区交换之后再进行下一帧的渲染,所以使得帧率无法完全达到硬件允许的最高水平

三区缓冲技术:

UI卡顿、掉帧图示.PNG
上一篇 下一篇

猜你喜欢

热点阅读