- 2021-05-18 发布 |
- 37.5 KB |
- 17页
申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
文档介绍
《3D游戏软件设计》复习资料
《3D游戏软件设计》课程第一版 期末复习资料 《3D游戏软件设计》课程第一版(PPT)讲稿章节目录: 第1章 OpenGL简介 1.1 OpenGL简介 1.2 OpenGL的功能及工作流程 1.3 OpenGL函数库 1.4 OpenGL开发环境 1.5 创建一个简单的OpenGL工程 第2章 基本图元绘制 2.1 点、线段的绘制 2.2 虚线、多边形的绘制 第3章 颜色 3.1 计算机颜色的概念 3.2 OpenGL的颜色模式 3.3 两种颜色模式的应用 3.4 颜色应用举例 3.5 明暗处理 第4章 变换 4.1 用相机模拟的思路来理解变换 4.2 OpenGL坐标系 4.3 三维图形显示流程 4.4 OpenGL几何变换 4.5 OpenGL视图变换 4.6 OpenGL投影变换 4.7 OpenGL裁剪变换 4.8 OpenGL视口变换 4.9 OpenGL矩阵堆栈 4.10 OpenGL变换实例 第5章 动画 5.1 计算机动画 5.2 双缓冲技术 5.3 GLUT窗口动画的实现 第6章 绘制三维图形 6.1 绘制立方体 6.2 在3D空间用OpenGL自带的库函数绘制 第7章 三维场景漫游 7.1 绘制一个简单的三维场景 7.2 第一人称视角行走的实现方法 7.3 键盘控制 7.4 鼠标控制 第8章 光照 8.1 基本概念 8.2 光源 8.3 材质 8.4 光照模型 第9章 纹理 9.1 纹理基本概念 9.2 OpenGL纹理实现过程(PPT02 ~ PPT04) 9.3 OpenGL纹理实例 第10章 显示列表 10.1 显示列表概念 10.2 使用显示列表的步骤 10.3 显示列表的应用 10.4 显示列表实例 第11章 混合 11.1 混合的概念 11.2 混合的过程 11.3 设置混合因子的函数 11.4 混合方程式函数 11.5 混合的应用 11.6 三维混合 第12章 建立非控制台的windows程序框架 12.1 windows应用程序基本框架 12.2 基于windows应用程序框架的OpenGL程序设计 第13章 纹理混合综合实例 一、 客观部分:(单项选择、多项选择、不定项选择、判断) 此类题目制作说明:请在此处增加考核知识点中涉及公式明示。请设置部分例题进行练习掌握,此例题可以为任课教师提供的题库题目,采纳题库题目需低于题库本项题目的30%。题目内容计算过程及答案请删除,不提供给学生。样例如下: ★考核知识点: OpenGL状态机 参见讲稿章节:1 OpenGL是一个状态机。可以通过glEnable来启用状态,glDisable来禁用状态。 例题: 单选题: 1、 若要启用光源,需要调用以下哪个函数?( ) A.glEnable(GL_LIGHTING) B. glEnable(GL_TEXTURE_2D) C. glEnable(GL_BLEND) D. glEnable(GL_CLIP_PLANE) ★考核知识点: OpenGL库函数的特点 参见讲稿章节:1 OpenGL库函数用后缀表示入口参数类型。i表示参数类型为整数型,f表示为float类型,v表示参数可用数组来替代一系列单个参数值。参数类型后缀前带有数字2、3、4,2代表二维,3代表三维,4代表alpha值。 如图所示: 例题: 单选题: 1、 OpenGL库函数中后缀字幕v表示函数参数可用类型为()。 A. 整型数据 B. 浮点型数据 C. 数组型数据 D. 三维坐标 ★考核知识点: 基本图元的绘制 参见讲稿章节:2 绘制点:glVertex*() 点大小设置函数:glPointSize(float size),注意,该函数需要放在绘制点函数之前。 绘制线段:线段连接方式GL_LINES GL_LINE_STRIP GL_LINE_LOOP 线宽度设置函数:glLineWidth(float width) 例题: 单选题: 1、要得到如右图示的效果,glBegin() 函数的类型参数可取为( )。 A. GL_POLYGON B. GL_LINES C. GL_LINE_STRIP D. GL_LINE_LOOP ★考核知识点: 颜色模式 参见讲稿章节:3 在OpenGL中颜色有两种模式:RGB模式和颜色索引模式。 明暗处理方式将会影响最终的颜色显示,明暗处理方式有两种:GL_FLAT平面模式和GL_SMOOTH光滑过渡模式。 例题: 单选题: 1、 在程序中绘制了一个带颜色的三角形,其中三个顶点分别绘制三种不同的颜色,若要实现三个顶点分别为三种颜色的彩色三角形,应调用下面哪个函数?() A. glColor3f() B. glShadeModel(GL_FLAT); C. glShadeMode(GL_SMOOTH); D. glHint() ★考核知识点: 多边形的绘制 参见讲稿章节:2 OpenGL中规定的多边形必须是凸多边形。 绘制多边形时,图元顶点的连接方式有: 程序格式为: 约定“顶点以逆时针顺序出现在屏幕上的面”为“正面”,另一个面即为“反面”。 多边形的绘制模式有:(1)填充式(默认) – GL_FILL(2)轮廓线式 – GL_LINE(3)顶点式 – GL_POINT(4)镂空图案填充式,使用函数glPolygonMode(GL_FRONT, GL_FILL); 来设置。 例题: 判断题: 1. OpenGL约定顶点以逆时针顺序出现在屏幕上的多边形为反面。( ) ★考核知识点: 复合变换的顺序 参见讲稿章节:4 在复合变换中,函数的调用顺序与实际变换顺序是相反的。“先移动后旋转”和“先旋转后移动”得到的结果不一样。 例题: 判断题: 1、OpenGL几何变换函数调用顺序和预想的操作顺序是一致的。( ) ★考核知识点: 动画 参见讲稿章节:5 出于效率考虑,OpenGL将绘制命令做了缓冲处理,单缓冲可通过调用glFlush()函数,双缓冲可通过glutSwapBuffer()函数,强制绘制器将结果立即输出。在OpenGL中要实现动画效果,需要采用双缓冲技术。在GLUT窗口模式中,可以通过函数glutInitDisplayMode(GLUT_DOUBLE)设置当前窗口模式为双缓冲模式。 例题: 选择题: 1、在OpenGL中要实现动画效果,需要采用( )技术 A. 单缓冲 B. 关键帧 C. 双缓冲 D. 深度缓冲 ★考核知识点: 纹理定义 参见讲稿章节:9 纹理有一维纹理、二维纹理、三维纹理。 例题: 判断题: 1. 在OpenGL中,纹理可以是一维、二维或三维。(√) ★考核知识点: 纹理实现过程 参见讲稿章节:9 纹理实现过程较为复杂,注意各个步骤的函数。 (1) 启用纹理 glEnable(GL_TEXTURE_2D); (2) 定义纹理 定义纹理的函数较为复杂,具体看PPT中举例。 glTexImage2D() (3) 创建纹理对象 glGenTextures(1,&texture_ID) (4) 纹理滤镜 纹理滤镜主要包含了放大、缩小、重复三种方式。 注意GL_REPEAT和GL_CLAMP两种不同的重复方式。 (1) 选择纹理 glBindTexture(GL_TEXTURE_2D,texture[0]); (2) 坐标映射 glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 1.0f); 例题: 多选题: 1、纹理滤镜函数glTexParameter可以实现对纹理的操作包括( ) A. 放大纹理 B. 缩小纹理 C. 重复纹理 D. 定义纹理 ★考核知识点: 显示列表 参见讲稿章节:10 在编写OpenGL程序时,遇到重复的工作,可以创建一个显示列表,把重复的工作装入其中,并在需要的地方调用这个显示列表。 显示列表的使用步骤: (1) 分配显示列表编号 glGenLists() (2) 创建显示列表 glNewList() (3) 调用显示列表 glCallList() 显示列表只能装入OpenGL函数,不能装入其它内容,并非所有的OpenGL函数都可以装入显示列表中。 例题: 单选题: 1、在编写OpenGL程序时,遇到重复的工作,可以通过创建( )的方法来优化程序。 A. 函数 B. 显示列表 C. 顶点数组 D. 双缓冲 判断题: 1、用于查询的函数可以被装入到显示列表中。() ★考核知识点: 深度&深度缓冲 参见讲稿章节:11 深度,就是在OpenGL坐标系中,像素点的z坐标距离摄像机的距离。摄像机可能放在坐标系的任何位置,那么就不能简单的说z数值越大或越小,就是越靠近摄像机。 深度缓冲区,是这样一段数据,它记录了每一个像素距离观察者有多近。在启用深度缓冲测试的情况下,如果将要绘制的像素比原来的像素更近,则像素将被绘制,否则,像素会被忽略掉,不进行绘制。 例题: 单选题: 1、在OpenGL坐标系中,像素点的Z坐标距离摄像机的距离被称之为( )。 A. 深度缓冲 B. 深度测试 C. 深度 D. 深度截取 2、启动深度缓存区的函数为?( ) A. glEnable(GL_DEPTH_CLAMP); B. glEnable(GL_DEPTH_TEST); C. glEnable(GL_CULL_FACE); D. glClear(GL_DEPTH_BUFFER_BIT); 3、清除深度缓存区的函数为?( ) A. glEnable(GL_DEPTH_CLAMP); B. glEnable(GL_DEPTH_TEST); C. glEnable(GL_CULL_FACE); D. glClear(GL_DEPTH_BUFFER_BIT); ★考核知识点: 绘制三维实体 参见讲稿章节:10 可以使用glut库和aux库函数绘制三维实体。如: glutWireSphere(GLdouble radius, GLint slices, GLint stacks); 线框球 glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); 实心球 glutWireCube(GLdouble size); 线框立方体 glutSolidCube(GLdouble size); 实心立方体 glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); 线框圆环 glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); 实心圆环 glutWireIcosahedron(void); 线框20面体 glutSolidIcosahedron(void); 实心20面体 glutWireOctahedron(void); 线框8面体 glutSolidOctahedron(void); 实心8面体 例题: 单选题: 1. 以下哪个函数可以绘制出一个实心球体?( ) A. glutWireSphere() B. glutSolidSphere() C. glutSolidCube() D. glutWireCone() 二、主观部分: 此类题目制作说明:请在此处增加考核知识点中涉及公式明示。请设置部分例题进行练习掌握,此例题可以为任课教师提供的题库题目,采纳题库题目需低于题库本项题目的30%。题目内容计算过程及答案请删除,不提供给学生。 ★考核知识点: OpenGL的正确认知 参见讲稿章节:1.1 能准确定位OpenGL。 OpenGL是一个开放的图形库;OpenGL是一套底层三维图形API;OpenGL是与硬件无关的软件接口。 例题: 填空 1、 OpenGL是一个 与图形的 接口,实际上就是一个三维图形和模型库,可以在任意平台和操作系统上运行。 ★考核知识点: OpenGL函数库 参见讲稿章节:1.3 了解OpenGL函数库及其区别。掌握库函数的特点,如前缀、后缀。 OpenGL核心库是GL;实用库是GLU;工具库是GLUT(该库函数主要提供基于窗口的工具,并且不依赖于运行环境,因此OpenGL的工具库可以在所有OpenGL平台上运行);辅助库AUX. 例题: 1、 OpenGL的辅助库函数前缀是 。 2、 OpenGL中的 和 可以在所有的OpenGL平台上运行。 ★考核知识点: GLUT窗口函数 参见讲稿章节:1.5 掌握Win32 Console Application工程框架中GLUT窗口函数的使用。 如程序: #include查看更多