12-图元的其他选项
4.10 图元的其他选项
OpenGL支持许多图元类型——到目前为止我们已经看到了两个:GL_TRIANGLES和GL_POINTS。事实上,还有好几个其他的选择。OpenGL支持的所有可用图元类型都属于三角形、线、点或者补丁的类别。以下是一个完整的清单。
三角形图元:
| GL_TRIANGLES |
| 本书中常见的图元类型。管线中传递的每3个顶点数据组成一个三角形: | 顶点:
等 | 三角形: |
| :----- | :----- | :----- | :----- | :----- | :----- | :----- |
| GL_TRIANCLE_STRIP |
| 管线中传递的每个顶点实际上和之前的两个顶点组成一个三角形: | 顶点: | 三角形:
等 |
| GL_TRIANGLE_FAN |
| 管线中传递的每对顶点和最开始的第一个顶点组成一个三角形: | 顶点: 0 1 2 3 4 等 | 三角形:
|
| GL_TRIANGLES_ADJACENCY | 仅用于几何着色器。允许着色器访问当前三角形的顶点,以及额外的相邻顶点 |
| GL_TRIANGLE_STRIP_ADJACENCY | 仅用于几何着色器。类似 GL_TRIANGLES_ADJACENCY,除了三角形顶点像 GL_TRIANGLE_STRIP 中一样互相重叠 |
线图元:
| GL_LINES |
| 管线中传递的每两个顶点组成一条线: | 顶点: | 线:
等 |
| :----- | :----- | :----- | :----- | :----- | :----- | :----- |
| GL_LINE_STRIP |
| 管线中传递的每个顶点和前一个顶点组成一条线: | 顶点: | 线:
等 |
| GL_LINE_LOOP | 跟GL_LINE_STRIP一样,除了第一个顶点和最后一个顶点之间也会组成一条线 |
| GL_LINES_ADJACENCY | 仅用于几何着色器。允许着色器访问当前线的顶点,以及额外的相邻顶点 |
| GL_LINE_STRIP_ADJACENCY | 类似GL_LINES_ADJACENCY,除了线顶点像GL_LINE_STRISTRIP中一样互相重叠 |
点图元:
| GL_POINTS | 管线中传递的每个顶点是一个点 || :----- | :----- | :----- | :----- |
补丁图元:
| GL_PATCH | 仅用于细分着色器。指示一组顶点从顶点着色器传递到细分控制着色器,在这里它们通常用于将曲面细分网格成形为曲面 || :----- | :----- | :----- | :----- |