图形与多媒体-三维计算机图形学(openGL简介).ppt
图元的绘制(1/2)*点、线段、多边形、矩形图元的种类点:三维坐标(x,y,z)??齐次坐标(x,y,z,1)线段:两个端点多边形:顶点序列矩形:左下角点、右上角点图元的表示定义一个顶点voidglVertex{234}{sifd}[v](TYPEcoords);例:glVertex3f(1.0,1.0,1.0);绘制图元图元的绘制(2/2)*glBegin()与glEnd()允许在glBegin()与glEnd()之间调用的OpenGL命令voidglBegin(GLenummode); mode: GL_POINTS,GLLINES,GL_LINE_STRIP,GL_LINE_LOOP, GL_POLYGON,GL_TRIANGLE_STRIP,GL_TRIANGLE_FAN, GL_QUADS,GL_QUAD_STRIPvoidglEnd(void);glVertex*();glColor*();glIndex();glNormal();glEvalCoord*();glCallList(),glCallLists();glTexCoord();glEdgeFlag();glMaterial();图元的属性(1/5)*颜色点大小(缺省值为1)线段线宽voidglColor*();voidglIndex();voidglPointSize(GLfloatsize);voidglLineWidth(GLfloatwidth);图元的属性(2/5)*线型:连续线(缺省值)、点画线等多边形绘制方式:顶点、边界、填充voidglEnable(GL_LINE_STIPPLE);voidglLineStipple(GLintfactor,GLushortpattern);例: pattern factor 结果 0x00FF 1 0x00FF2 voidglPolygonMode(GLenumface,GLenummode); face: GL_FRONT_AND_BACK(缺省值) GL_FRONT GL_BACK mode: GL_POINT GL_LINE GL_FILL(缺省值)图元的属性(3/5)*前向面与后向面 背面剔除voidglFrontFace(GLenummode);mode: GL_CCW(缺省值) GL_CWvoidglCullFace(GLenummode); mode: GL_FRONT GL_BACK(缺省值) GL_FRONT_AND_BACK图元的属性(4/5)*多边形填充方式均匀填色方式位图不透明方式位图透明方式象素图方式voidglEnable(GL_POLYGON_STIPPLE);voidglPolygonStipple(constGlubyte*mask); mask: 位图图元的属性(5/5)*标记多边形边界多边形法向voidglEdgeFlag(GLbooleanflag);voidglNormal3*(TYPEnx,TYPEny,TYPEnz);voidglNormal3*v(constTYPE*v);三、辅助库*初始化一个窗口1处理输入事件2修改查色表3绘制简单的三维物体4管理后台进程5运行主程序6辅助库中定义的虚键值7为什么需要辅助库*使得OpenGL具有平台无关性壹贰窗口管理叁输入事件处理肆绘制简单的三维物体伍后台与主进程管理窗口管理(1/2)*设置窗口显示方式voidAPIENTRYauxInitDisplayMode(GLenummode);mode: (1)颜色方式: AUX_RGBA(直接颜色) AUX_INDEX(索引颜色)(2)缓存方式: AUX_SINGLE(单缓存) AUX_DOUBLE(双缓存)(3)深度缓存位数: AUX_DEPTH(16位) AUX_DEPTH24(32位)(4)模板缓存位数: AUX_STENCIL(4位)(5)Alpha缓存位数:AUX_ALPHA(8位)同一组中只能选一个,不同组之间用“|”相或窗口管理(2/2)*创建窗口设置窗口的位置和大小GLenumAPIENTRYauxInitWindow(LPCTSTRtitle);title