《3D游戏软件设计》复习资料Word文件下载.docx
《《3D游戏软件设计》复习资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《《3D游戏软件设计》复习资料Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
4.3三维图形显示流程
4.4OpenGL几何变换
4.5OpenGL视图变换
4.6OpenGL投影变换
4.7OpenGL裁剪变换
4.8OpenGL视口变换
4.9OpenGL矩阵堆栈
4.10OpenGL变换实例
第5章动画
5.1计算机动画
5.2双缓冲技术
5.3GLUT窗口动画的实现
第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.2OpenGL纹理实现过程(PPT02~PPT04)
9.3OpenGL纹理实例
第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.1windows应用程序基本框架
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库函数的特点
OpenGL库函数用后缀表示入口参数类型。
i表示参数类型为整数型,f表示为float类型,v表示参数可用数组来替代一系列单个参数值。
参数类型后缀前带有数字2、3、4,2代表二维,3代表三维,4代表alpha值。
如图所示:
例题:
单选题:
1、OpenGL库函数中后缀字幕v表示函数参数可用类型为()。
A.整型数据
B.浮点型数据
C.数组型数据
D.三维坐标
基本图元的绘制
2
绘制点:
glVertex*()
点大小设置函数:
glPointSize(floatsize),注意,该函数需要放在绘制点函数之前。
绘制线段:
线段连接方式GL_LINESGL_LINE_STRIPGL_LINE_LOOP
线宽度设置函数:
glLineWidth(floatwidth)
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()
多边形的绘制
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中,纹理可以是一维、二维或三维。
(√)
纹理实现过程
纹理实现过程较为复杂,注意各个步骤的函数。
(1)启用纹理
glEnable(GL_TEXTURE_2D);
(2)定义纹理
定义纹理的函数较为复杂,具体看PPT中举例。
glTexImage2D()
(3)创建纹理对象
glGenTextures(1,&
texture_ID)
(4)纹理滤镜
纹理滤镜主要包含了放大、缩小、重复三种方式。
注意GL_REPEAT和GL_CLAMP两种不同的重复方式。
(5)选择纹理
glBindTexture(GL_TEXTURE_2D,texture[0]);
(6)坐标映射
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、清除深度缓存区的函数为?
绘制三维实体
可以使用glut库和aux库函数绘制三维实体。
如:
glutWireSphere(GLdoubleradius,GLintslices,GLintstacks);
线框球
glutSolidSphere(GLdoubleradius,GLintslices,GLintstacks);
实心球
glutWireCube(GLdoublesize);
线框立方体
glutSolidCube(GLdoublesize);
实心立方体
glutWireTorus(GLdoubleinnerRadius,GLdoubleouterRadius,GLintnsides,GLintrings);
线框圆环
glutSolidTorus(GLdoubleinnerRadius,GLdoubleouterRadius,GLintnsides,GLintrings);
实心圆环
glutWireIcosahedron(void);
线框20面体
glutSolidIcosahedron(void);
实心20面体
glutWireOctahedron(void);
线框8面体
glutSolidOctahedron(void);
实心8面体
1.以下哪个函数可以绘制出一个实心球体?
A.glutWireSphere()
B.glutSolidSphere