资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,三维绘制环境设置,示例程序,DrawBox,glutInitDisplayMode,( GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGBA);,两个新的显示设置:,双缓存,GLUT_DOUBLE,深度缓存,GLUT_DEPTH,glEnable(GL_DEPTH_TEST,);,深度缓存见理论教学第九章内容。,双缓存系统,计算机动画初步,-,ref,第,13,章,电影,计算机,运动就是重绘与交换,SwapBuffer,();,计算机动画初步,双缓存系统,GPU,视频控制器,去显示器,前缓存,后缓存,帧写入,帧显示,双缓存系统,GPU,视频控制器,去显示器,后缓存,前缓存,帧显示,帧写入,动画类型,关键帧动画,变形动画,过程动画,物理动画,刚体运动,几何变换的结果,我们的“动画”,三维图形显示流程,建模变换,观察变换,投影及规,范化变换,视口变换,MC,WC,VC,NDC,DC,gluLookat,(),gluperspective,(),glViewPort,();,glPerspective,(), /or,glOrtho,(),glLookat,(),glTranslate,(),glRotate,(),glBegin,glVertex,*(),.,glEnd,glViewPort,();,glMatrixMode(GL_PROJECTION,);,glPerspective,(), /or,glOrtho,(),glMatrixMode(GL_MODELVIEW,);,glLookat,(),glTranslate,(),glRotate,(),glBegin,glVertex,*(),.,glEnd,为什么?,矩阵堆栈操作的便利,,变换的隔离,重置与变动,视口设置,全屏,,toggle,glutGet(GLUT_WINDOW_X,) /p257,glutGet(GLUT_WINDOW_Y,),glutGet(GLUT_WINDOW_WIDTH,),glutGet(GLUT_WINDOW_HEIGHT,);,glutFullScreen,(); /p255,glutReshapeWindow(old_width,old_height,);,glutPositionWindow(old_x,old_y,);,二次曲面实体,示例程序,Quadrics,gluSphere(quadratic,1.3f,32,32);,gluCylinder(quadratic,1.0f,1.0f,3.0f,32,32);,gluDisk(quadratic,0.5f,1.5f,32,32),gluCylinder(quadratic,1.0f,0.0f,3.0f,32,32);,gluPartialDisk(quadratic,0.5f,1.5f,32,32,part1,part2-part1);,/p339,线框显示,if (,wireframe,),glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);,/p448,else,glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);,实验内容,定义并绘制一个正,4,棱锥体,建议顶点取在,x,y,z,轴上,单位长度,1,;,x,z,轴正负轴向各取一个点,,y,轴正向取一个点;,用,triangle_fan,绘制,4,个侧面,用,quads,绘制底面,五个顶点用不同的饱和色(如,:,红绿蓝黄青的纯色,),实验内容,利用,OpenGL,二次曲面,定义并绘制一个圆台体,定义并绘制一个实心圆盘,定义并绘制一个空心园,toggle,显示线框图的背面剔除与不剔除,实验内容,将方体,正,4,棱锥体,圆台体,园锥体,圆柱体同时显示,每个形体采用不同贴图,toggle,方体,正,4,棱锥体,圆台体,园锥体,圆柱体的单独显示与同时显示。,在方体,正,4,棱锥体,圆台体,园锥体,圆柱体同时显示中,选择某一物体运动,其余保持静止不动,static void,printhelp(void,),glMatrixMode(GL_PROJECTION,);,glPushMatrix,();,glLoadIdentity,();,glOrtho(-0.5,639.5,-0.5,479.5,-1.0,1.0);,glMatrixMode(GL_MODELVIEW,);,glPushMatrix,();,glLoadIdentity,();,glDisable(GL_TEXTURE_2D);,glPushAttrib(GL_CURRENT_BIT,);,. .,glEnable(GL_TEXTURE_2D);,glPopAttrib,();,glMatrixMode(GL_PROJECTION,);,glPopMatrix,();,glMatrixMode(GL_MODELVIEW,);,glPopMatrix,();,
展开阅读全文