OpenGL学习2:状态管理和绘制几何物体
清除窗口
clearColor(R,G,B,A);//1
clear(GL_COLOR_BUFFER_BIT) //2
GL_COLOR_BUFFER_BIT //颜色缓冲区
GL_DEPTH_BUFFER_BIT //深度缓冲区
GL_ACCUM_BUFFER_BIT //累计缓冲区
GL_STENCIL_BUFFER_BIT //模板缓冲区
2处清除窗口并且以1处的颜色进行填充
glcolor | 指定颜色 |
glFlush | 强制执行OPENGL指令,相当于refresh |
glFinish | 强制执行OPENGL指令,相当于Update |
图元绘制
glBegin(mode)
XXXX
glEnd()
GL_POINT
GL_LINE
GL_LINE_STRIP 多点连成的线
GL_LINE_LOOP 多点连成的线并形成了回路
GL_TRIANGLES
GL_TRIANGLES_STRIP 绘制连续三角形
GL_TRIANGLES_FAN GL_TRIANGLES_STRIP相同,只是点的顺序不同
GL_QUADS
GL_QUAD_STRIP 绘制连续四边形
GL_POLYGON 绘制多边形
glBegin与glEnd之间的合法函数
glVertex*()
glColor*()
glIndex*() //颜色索引
glSecondaryColor*()//纹理应用后的辅助颜色
glNormal*()//法线
glMaterial*()//材质
glFogCoord*()//雾坐标
glTexCoord*()//纹理坐标
glMultiTexCoord*()//多重纹理坐标
glVertexAttrib*()//通用顶点属性
glEdgeFlag*()//控制边界绘制
glArratElement()//地区顶点数组数据
glEvalCoord*()//生成坐标
glCallList()//执行显示列表
基本状态管理
glEnable
glDisable
glIsEnabled
法线的说明
如果模型只是旋转或者移动,那么法线不会有变化,如果是缩放或者乘以了剪切矩阵,法线就需要重新计算,采用归一化的办法可以便面此问题glEnable(GL_Normalize) 但是启用规范化会消耗一部分性能,对于缩放的变化 可采用glEnable(GL_RESCALE_NORMAL)可减低性能的消耗
glPointSize | 设置渲染点大小 | |
glLineWidth | 设置线宽度 | |
glLineStipple | 创建点划线 | |
glPolygonMode | 多边形填充形式 | |
GL_FRONT GL_BACK |
||
GL_FILL GL_LINE |
||
glPolygonStipple | 设置多边形点划线 | |
glEdgeFlag*() | 表示一个顶点是否该被认为是多边形的一条边界的起点 |