六、图形图像渲染架构及图元连接方式 - 图1

1. 着色器接收数据的通道有三个:

  • Attributes: 用于传递经常变化的数据,如顶点数据、变换矩阵(MVP)、纹理坐标(传递给片元着色器)等。只能传递给顶点着色器,不能传递给片元着色器。
  • Uniforms: 用于传递不经常改变的值,如不经常更改的变换矩阵(MVP)、颜色等。可以传递给顶点着色器和片元着色器。
  • Texture Data: 用于传递纹理数据。可以传递给顶点着色器和片元着色器,但是一般不会传递给顶点着色器,因为纹理数据是在片元着色器中处理的。

2. 图元连接方式

  • GL_POINTS: 每个顶点在屏幕上都是单独点
  • GL_LINES:每一对顶点定义⼀个线段
  • GL_LINE_STRIP:⼀个从第一个顶点依次经过每一个后续顶点⽽绘制的线条
  • GL_LINE_LOOP:和GL_LINE_STRIP相同,但是最后一个顶点和第⼀个顶点连接起来了, 形成闭环
  • GL_TRIANGLES:每3个顶点定义⼀个新的三角形
  • GL_TRIANGLE_STRIP:共⽤⼀个条带(strip)上的顶点的一组三角形,即新顶点与前面紧挨着的2个顶点相连,组成新的三角形。
    这样的连接方式,可以减少顶点数量,进而减少数据存储量、减少代码行数、减少顶点着色器被执行的次数、加快数据由内存传输至显存速度、提高运算性能
  • GL_TRIANGLE_FAN:以⼀个圆点为中心呈扇形排列,共⽤相邻顶点的⼀组三角形。即新顶点与上一个顶点和圆点相连,组成新的三角形。
    六、图形图像渲染架构及图元连接方式 - 图2