(1)OpenGL图元
点:void glPointSize()
线、条带、循环线:void glLineWidth()
三角形、条带、扇面:
将多边形渲染为点集、轮廓或者实体:
P68 正反面采用不同的方式绘制: glPolygonMode(GLenum face,GLenum mode )//face必须是GL_FRONT_AND_BACK
mode可以有GL_POINT、GL_LINE、GL_FILL
多边形的反转和裁剪:反转:void glFrontFace(GLenum mode) 裁剪:void glCullFace(GLenum mode)
(2)OpenGL缓存数据
创建与分配缓存:void glGenBuffers(GLSizei n,GLuint *buffers )
向缓存输入和输出数据 void glBufferData(GLenum target,GLsizeipter size,const GLvoid *data,GLenum usage)
缓存的部分初始化: void glBufferSubData(GLenum target,GLsizeipter offset,GLsizeipter size,const GLvoid *data)
访问缓存的内容:void glMapBuffer(GLenum target,GLenum access)
(3)顶点规范
顶点数组对象:包含数据的位置和布局信息
VertexAttribPointer(GLuint index,GLuint size,GLuint type,GLboolean normalized,GLsizei stride//偏移量,const GLvoid * pointer//第一个数据的地址)
延伸:整型顶点属性:VertexAttribIPointe
双精度顶点属性 VertexAttribLPointe
glEnableVertexAttributeArray()启用对应的顶点属性数组
(4)OpenGL的绘制命令:
大部分的绘制都是以Draw这个词开始的,分为索引方式和非索引方式
非索引方式:glDrawArrays(GLenum mode,GLint first,GLsizei count);
最基本的索引绘制命令就是glDrawElements(GLenum mode,GLsizei first,GLsizei count);