音视频学习笔记-OpenGL概念理解

顶点着色器Vertexshader相当于告诉opengl图形的顶点,由此得知形状,才能进一步进行填充颜色等等。相当于一个骨架顶点着色器的计算也是由GPU负责片元着色器Fragmentshader也称之为片段着色器,像素着色器,对每个像素的显示进行处理,即一张图片,有很多像素点,每个像素点都需要经过片元着色器才能进行显示,所以需要大量计算,故使用GPU进行计算,而CPU擅长判断(基于单片机原理),这...

顶点着色器 Vertex shader

相当于告诉opengl图形的顶点,由此得知形状,才能进一步进行填充颜色等等。相当于一个骨架

顶点着色器的计算也是由GPU负责

片元着色器 Fragment shader

也称之为片段着色器,像素着色器,对每个像素的显示进行处理,即一张图片,有很多像素点,每个像素点都需要经过片元着色器才能进行显示,所以需要大量计算,故使用GPU进行计算,而CPU擅长判断(基于单片机原理),这就是GPU的优势

另外GPU使用的是显存,内存是用于和CPU交互时使用

光栅化 Rasterization

即把顶点数据转换成片元的过程,即设置了顶点数据后,需要知道在这些顶点数据范围内,片元的分布。光栅化就做了这个处理,告诉你在这个范围内有多少像素,像素怎么分布的。其每个元素对应帧缓冲区中的一个像素

纹理

纹理即图片,即需要渲染图形时的填充

混合 Blending

在测试阶段之后,如果像素依然没有被剔除,那么像素的颜⾊色将会和帧缓 冲区中颜⾊色附着上的颜⾊色进⾏行行混合,混合的算法可以通过OpenGL的函数进 ⾏行行指定。但是OpenGL提供的混合算法是有限的,如果需要更更加复杂的混合 算法,一般可以通过像素着⾊色器器进⾏行行实现,当然性能会⽐比原⽣生的混合算法 差⼀些.

变换矩阵 Transformation

二维变换 三维变换 即 平移、缩放、旋转

投影矩阵 Projection

即将3D坐标转换为二维屏幕坐标显示的矩阵

离屏渲染/交换缓冲区 SwapBuffer

渲染缓冲区一般映射系统的资源,比如窗口。此时将图像直接渲染到窗口对应的缓冲区,就可以显示图像。
由于屏幕刷新是逐行扫描,当屏幕刷新的时候,改变缓冲区的数据,会导致显示不出完整的图像,所以需要至少2个缓冲区(双缓冲区机制)。所以缓冲区数据的替换都是在屏幕刷新的间隔中进行的。一般会等待显示器刷新完成的信号来,再进行缓冲区数据替换,这个技术也称之为垂直同步。
此时,双缓冲区,总是要等待缓冲区交换后,才会开始下一个离屏渲染(即窗口缓冲区A和离屏缓冲B数据交换后,才会开始B的数据渲染/写入),需要进入另一个离屏缓冲区C来解决这个问题,即三缓冲区技术。当垂直同步发生时,和最近渲染完成的离屏缓冲区进行交换,充分利用硬件性能

源文地址:https://www.guoxiongfei.cn/csdn/4648.html