计算机图形学】【笔记】7、第4章 输出图元(三)

OpenGL多边形填充区函数

描述填充多边形的OpenGL过程与描述点和折线类似,但是除了可以在glBegin和glEnd之间描述之外,还可以使用一个函数直接描述,以矩形为例:
glRectiv(x1, y1, x2, y2)
其中i为数据类型,v为是否使用向量表示,与glVertex相同。

另外需要知道,假如一个多边形内部有另一个多边形,不能使用一个顶点集来描述。

glBegin参数

GL_POLYGON:多边形,传统意义的多边形
GL_TRIANGLES:三角形,按顺序每三个顶点连成一个三角形
GL_TRIANGLE_STRIP:三角形带,前三个顶点连成一个三角形,后续每个顶点与前两个顶点连成一个三角形
GL_TRIANGLE_FAN:共享顶点的三角形,共享第一个顶点,每两个顶点与第一个顶点连成一个三角形
GL_QUADS:四边形,每四个顶点连成一个四边形
GL_QUAD_STRIP:四边形带,前四个顶点连成一个四边形,后续每两个顶点与前面两个顶点连成一个四边形

绘制立方体

	glEnableClientState(GL_VERTEX_ARRAY); // 启用顶点数组
	glVertexPointer(3, GL_INT, 0, pt); // 3维坐标, 数据类型为GL_INT, 坐标之间的间隔为0, 坐标数组为pt
	
	GLubyte vertIndex [] = (6, 2, 3, 7, 5, 1, 0, 4, 7, 3, 1, 5, 4, 0, 2, 6, 2, 0, 1, 3, 7, 5, 4, 6); // 其中的数字为坐标数组pt的索引
	glDrawElements(GL_QUADS, 24, GL_UNSIGNED_BYTE, vertIndex); // 调用GL_QUADS四边形函数, 共24个坐标, 坐标索引类型为GL_UNSIGNED_BYTE, 索引数组vertIndex
	
	glDisableClientState(GL_VERTEX_ARRAY);

你可能感兴趣的:(学习笔记,计算机图形学)