一、图形渲染管线 简介
下图是 图形渲染管线的每个阶段的抽象展示。
![图形渲染管线](https://i-blog.csdnimg.cn/blog_migrate/e6ead7adac09dddad05898e62805daaa.png)
其中,蓝色部分代表的是我们可以注入自定义的着色器的部分。
顶点着色器(Vertex Shader),几何着色器(Geometry Shader),片段着色器(Fragment Shader)。
在现代OpenGL中,我们必须定义至少一个顶点着色器和一个片段着色器。
顶点着色器(Vertex Shader):处理3维顶点;
片段着色器(Fragment Shader):光栅化后处理每个像素的颜色,很多特效在这里完成。
下面是一个大段从别的文章引用的,我感觉写的很好,如果知道的人完全没有必要看。
但是,我经常会忘记,而且这点写的清晰明了,我希望以后自己看笔记的时候,再看一遍,所以记录下载。
转为文章的链接地址:https://learnopengl-cn.github.io/01%20Getting%20started/04%20Hello%20Triangle/
有需要的人可以去查看。真是写的很清晰明确的。我也都是学习后,理解提炼了自己有用的来做的笔记。
详细说明引用原文如下:
我们会概括性地解释一下渲染管线的每个部分,让你对图形渲染管线的工作方式有个大概了解。
首先,我们以数组的形式传递3个3D坐标作为图形渲染管线的输入,用来表示一个三角形,这个数组叫做顶点数据(Vertex Data);顶点数据是一系列顶点的集合。一个顶点(Vertex)是一个3D坐标的数据的集合。而顶点数据是用顶点属性(Vertex Attribute)表示的,它可以包含任何我们想用的数据,但是简单起见,我们还是假定每个顶点只由一个3D位置(译注1)和一些颜色值组成的吧。
为了让OpenGL知道我们的坐标和颜色值构成的到底是什么,OpenGL需要你去指定这些数据所表示的渲染类型。我们是希望把这些数据渲染成一系列的点?一系列的三角形?还是仅仅是一个长长的线?做出的这些提示叫做图元(Primitive),任何一个绘制指令的调用都将把图元传递给OpenGL。这是其中的几个:GL_POINTS、GL_TRIANGLES、GL_LINE_STRIP。
图形渲染管线的第一个部分是顶点着色器(Vertex Shader),它把一个单独的顶点作为输入。顶点着色器主要的目的是把3D坐标转为另一种3