3D游戏软件设计文档格式.docx
《3D游戏软件设计文档格式.docx》由会员分享,可在线阅读,更多相关《3D游戏软件设计文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
状态管理和绘制几何物体
(7)glBegin()函数的意义是()
A标志着程序的执行的开始
B标志着一个顶点数据列表的开始
C标志着OpenGL的绘制操作的开始
D标志着当前函数的开始
(8)在win32程序中,主函数是从哪里进入执行的()
AGLMainBWinMainCBeginDmain
(9)OpenGL中在颜色索引模式下使用的用于选择单值索引的函数是()。
AglIndexBglClampColorCglClearDglColor3f
颜色渲染和纹理贴图
(10)下列哪个颜色不属于三原色()
A红B蓝C绿D白
(11)OpenGL的光照模型根据材料反射的红、绿和蓝光的比例来模拟它的颜色。
当一个纯红的球体,如果给球体仅仅投上绿色的光线,那么看起来球的颜色会是黑色()
★考核知识点:
(12)用函数glColor3i()函数设置的黑色的颜色值为()
A(0,0,0)B(255,0,255)C(255,255,255)D(1,1,1)
(13)OpenGL中光照模型,被物体表面均匀的反射。
即使光是被均匀的反射回去的,它直射的物体表面比从某个角度照射过来时要亮()
A环境光B散射光C镜面光D发射光
环境光、散射光、镜面光、发射光
(14)OpenGL中如何判断一个点接收了光源的多少光线()
A通过距离光源的距离进行计算
B通过法线相对光源的方向进行计算
C通过物体的颜色值进行计算
D通过物体和光源的颜色值的综合考虑进行计算
光照
(15)OpenGL提供了最大数目为N的单场景内光照光源模型,N为()
A1B8C16D不限制,只要为2的幂就可以了
(16)OpenGL光照模型中,有一种会将光源强烈的反射到了另外一个特定的方向。
高亮度的光柱往往能在被照射的物体上产生称之为亮斑的亮点()
A镜面光B聚光灯光C环境光D发射光
(17)OpenGL光照模型中,表面的发射颜色可以增加物体的强度,但是他们不受任何光源的影响,在整个场景中,并没有作为一种额外的光照()
(18)设置光源位置时,当我们的光源坐标位置(x,y,z,w)中的w为0时代表我们的光为平行光源()
(19)OpenGL一个场景中至多可以在包含16个光源()
(20)用函数glColor3i()函数设置的黑色的颜色值为()
绘制像素、位图字体和图像
(21)像素数据从可以开始从缓冲区读取到内存然后把像素数据从内存写入到帧缓冲最后在帧缓冲内部复制像素数据()
(22)以下哪个函数可以设置当前的光栅位置()
AglTranslatef()BglRasterPos()CglRotatef()DglDrawPos()
(23)在绘制几何图形之时,我们可以使用glColor*()函数去设置当前颜色或者当前颜色索引()
(24)在设置了光栅位置之后,我们可以使用glBitmap函数来绘制数据()
(25)voidglRasterPos2*(typex,typey);
用于设置位图的绘制位置。
()
(26)glCopyPixels的像素路径包括()
A像素传输操作B基于片断的操作C在帧缓冲区暂存D光栅化操作
(27)当我们的源和目标的alpha值都为0.35时,当使用函数glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)进行像素混合,得出的结果描述正确的是?
()
A源和目标混合效果相同
B混合色更接近源
C混合色更接近目标
D无法判断
混合抗锯齿雾多边形偏移
(28)启动混合后,如果绿色物体和一个红色物体用glBlendFunc(GL_ONE,GL_ONE)方式混合后,结果的混合部分的颜色为(D)
A红色B绿色C白色D黄色
(29)图形学中称由于采样频率不足而造成的失真为走样,反走样通过多重采样改善图形锯齿效果()
(30)如果不进行混和操作,每个新的片元都被OpenGL当成是不透明的,覆盖掉帧缓存已存在的颜色值。
(31)颜色定义中RGBA的A是alpha值,alpha值的作用是将已处理过的片元颜色值与存储在帧缓存中的像素颜色结合起来()
(32)当前属于颜色索引模式时,我们可以进行的操作有()。
A实现颜色混和操作B实现透明效果C实现颜色叠加D实现颜色渐变效果
(33)voidglBlendFunc(Glenumafactor,Glenumbfactor)
其中参数afactor和参数bfactor分别用于指定源和目标的混合因子()
(34)颜色混合方程中,GL_FUNC_ADD实现的功能是()
ACsS+CdDBCsS-CcDCmin(CsS,CdD)Dmax(CsS,CdD)
(35)开启颜色混合的函数方式为()
AGL_BLENDBGL_BLENDINGCGL_RENDERDGL_ENABLEBLEND
(36)一个矢量加上一个矢量结果为()
A一个矢量
B一个标量
C如果为零则不是矢量,其它情况下皆为矢量
D以上说法都不对
图形变换的数学基础
(37)两个矢量之间的点乘结果为()
(38)glLoadIdentity()函数对于4×
4矩阵操作结果为()
A[0,0,0,0;
0,0,0,0;
0,0,0,0]
B1,1,1,1;
1,1,1,1;
1,1,1,1]
C[1,0,0,1;
0,1,0,1;
0,0,1,1;
0,0,0,1]
D[1,0,0,0;
0,1,0,0;
0,0,1,0;
(39)我们在使用定义视口函数glViewport中,第三个参数有什么作用()
A描述视口的距离屏幕最左位置
B描述视口的距离屏幕最上位置
C描述视口的高度
D描述视口的宽度
(40)通过矩阵[sx,0;
0,sy]对二维的不经过原点的图元进行缩放变换,有可能得到的结果为()
A图元相对原点的位置变化了
B图元自身尺寸变化了
C图元可以只发生旋转,相对原点位置没有移动
D图元自身发生了旋转
(41)从物体坐标到屏幕坐标的显示流程中我们必须要经过的经典的变换流水包()
A世界坐标系内地变换
B对窗口的裁剪操作
C窗口到视口的变换
D对模型进行坐标进行变换
OpenGL的视图变换
(42)函数voidgluPerspective(Param1,Param2,Param3,Param4)中,标示近裁剪面的是哪个参数()
AParam1BParam2CParam3DParam4
(43)哪些变换分别用于设定物体在世界坐标系中的位置、方向以及模型大小。
A平移变换B旋转变换C缩放变换D投影变换
(44)()变换后的的几何体位于观察坐标系中。
A局部变换B取景变换C世界变换D空间变换
(45)投影变换包括哪几种投影方式。
A平面投影B透视投影C正射投影D缩放投影
(46)下对函数gluLookAt(0,0,0,0,0,-3,1,0,0)描述正确的是
A观察点在原点(AD)
B正方向为z轴负方向
C观察方向指向z轴正方向
D正方向为x轴正方向
(47)glRotatef(fRot,1,1,0)描述先按照X轴旋转fRot,接着绕Y轴旋转fRot()
(48)在OpenGL中如果要实现运动模糊效果,需要借助以下哪个缓冲区()
A深度缓冲区B帧缓冲区C模版缓冲区D积累缓冲区
帧缓冲区
(49)当前程序的状态处于常规的绘图模式,那么接下来使用下列哪些函数可以退出当前绘图模式()
AglRender(GL_FEEDBACK);
BglRender(GL_SELECT);
CglEnd();
DglBegin(GL_TRIANGLES)
(50)雾化效果在颜色索引模式下是不可用的()
(51)如果我们需要使用OpenGL进行3维点选操作,那么可以通过函数glRenderMode()指定()进入选择模式
AGL_FEEDBACKBGL_SELECTCGL_PEEKDGL_MODEVIEW
(52)OpenGL中如果锁住了深度缓冲区,那么所有的物体的深度就无法测试了,物体只是根据绘制的先后相互覆盖了()
(53)绘制球体,我们使用函数:
voidgluSphere(GLUquadricObj*obj,Gldoubleradius,Glintslices,Glintstacks);
下面,我们对参数描述正确的选项有()
Aslice代表的就是经线的数目
Bstacks参数代表的就是纬线的数目
Cslice参数代表的就是纬线的数目
Dstacks代表的就是经线的数目
分割化和二次方程表面
(54)OpenGL中我们需要完成对NURBS对象的销毁,调用的函数是gluDeleteNurbsRenderer()
(55)常见的纹理寻址模式有()
A重叠纹理寻址模式B镜像纹理寻址模式
C钳位纹理寻址模式D边界颜色纹理寻址模式
(56)gluQuadricDrawStyle函数选择用于绘制几何形状的图元类型。
系统默认的类型是使用三角条状图元来填充所要绘制的几何形状,填充模式默认为
AGLU_LINEBGL_FILLCGLU_SILHOUETTEDGLU_POINT
(57)绘制球体,我们使用函数:
Aslice代表的就是经线的数目Bstacks参数代表的就是纬线的数目
Cslice参数代表的就是纬线的数目Dstacks代表的就是经线的数目
求值器和NURBS
(58)我们的B样条曲线(三次)和与贝塞尔曲线很相似,不同之处是此曲线会分解成很多的小段。
每个给定段的形状都仅受到最近4个控制点的影响()
(59)我们的B样条曲线(三次)和与贝塞尔曲线很相似,不同之处是此曲线会分解成很多的小段。
(60)()是Direct3D用来存储绘制到屏幕上的每个像素点深度信息的一块内存缓冲区
A广度缓存B深度缓存C深度测试D广度测试
(61)OpenGL中我们需要完成对NURBS对象的销毁,调用的函数是gluDeleteNurbsRenderer()
(62)纹理阶段混合状态用于指定当前纹理颜色值和Alpha值的混合方法()
(63)通常情况下,深度缓存用于判断三维空间中物体的遮挡情况()
(64)设置深度缓存是指设置深度测试成功时对深度缓存如何操作()
(65)图形学中称由于采样频率不足而造成的失真为走样,反走样通过多重采样改善图形锯齿效果()
(66)渲染后物体模型通常是由三角形图元组成的,我们称它为一个Mesh结构()
(67)若要从缓存中只读不写数据,就不需要锁定缓存,用完后解锁()
(68)如果我们需要使用OpenGL进行3维点选操作,那么可以通过函数glRenderMode()指定GL_SELECT,进入选择模式()
(69)在执行用于操纵名字堆栈的函数或调用glRenderMode()函数之后,如果出现了一次点击,OpenGL就会在选择数组中写入一个点击记录,所以,如果共享相同的名称对象,不会产生多条点击记录。
(70)在点击发生时,名字堆栈的内容从()的元素开始。
A最顶部B上一个操作的位置C最底部D任意
(71)如果我们需要使用OpenGL进行3维点选操作,那么可以通过函数glRenderMode()指定GL_SELECT,进入选择模式()
(72)进行点选操作后,假设当前的选择缓冲区为pSelectBuff,那么其中的pSelectBuff[0]的值得含义是()
A自上一个点击记录之后,与视景体相交的图元的所有顶点的最小窗口坐标的z值
B自上一个点击记录之后,与视景体相交的图元的所有顶点的最大窗口坐标的z值
C点击发生时名字堆栈的内容
D名字堆栈中压入的名字数
(73)OpenGL中如果锁住了深度缓冲区,那么所有的物体的深度就无法测试了,物体只是根据绘制的先后相互覆盖了()
选择和反馈
(74)名字堆栈形成了返回选择信息的基础,如果此时我们需要使用某个名称来替换名字堆栈顶部的元素,可以使用函数为()
AvoidglInitNames(void);
BvoidglPushName(GLuintname);
CvoidglPopName(void);
DvoidglLoadName(Gluintname);
(75)选择返回功能函数:
voidglSelectBuffer(Glsizeisize,Gluint*buffer)对函数描述正确的是()
Abuffer参数指向的数组用于存放选择数据
Bbuffer参数指向的数组仅仅用于存放选择的物体ID
Csize表示这个数组可以存储单个数据的大小
Dsize表示这个数组可以存储的最大值
(76)用glSelectBuffer()函数指定用于返回点击记录的数组()
(77)使用函数
voidgluPickMatrix(Gldoublex,Gldoubley,Gldoublewidth,Gldoubleheight,Glintviewport[4]);
选择的挑选区域的中心是()
A世界坐标B窗口坐标C物体坐标D可以任意指定
(78)由于粒子之间的碰撞计算量很大并且对于大多数模拟来说没有必要,所以我们很少使用粒子之间的碰撞。
粒子系统
(79)粒子(Particle)是一种微小的物体,在数学上通常用点来表示其模型,所以显示和表示粒子时,我们通常使用点结构来描述。
(80)以下可以通过常见的粒子系统实现的是()
A雪花B下雨C喷泉喷水D金属车漆效果
(81)如果有两束光进入人眼,他们的成分为(R1,G1,B1)和(R2,G2,B2)那么叠加在一起的时候,如果蓝色分量超出1了,那么最后的叠加结果为()
A(R1,R2,1)B(R1+R2,R1+R2,1-R1-R2)C(R1+R2,R1+R2,1)D(R1,R2,1-R1-R2)
混合效果
(82)Alpha分量主要是用来指定像素的混合计算比例的()
(83)D3DCOLORVALUE结构体中包含r、g、b和a4个分量,表示物体表面对各种反射光的各种成分的反射比率。
r=0.0g=b=a=1.0;
r=g=0.0。
此时红光和蓝光照射过来,只有蓝光被反射,即材质看上去为蓝色()
(84)OpenGL的光照模型根据材料反射的红、绿和蓝光的比例来模拟它的颜色。
当一个纯红的球体,如果给球体仅仅投上绿色的光线,那么看起来球的颜色会是()
A红色B绿色C白色D黑色
(85)平面着色模式,所有像素的Alpha值都大于等于该多边形的第一个顶点的Alpha值()
(86)像素的Alpha值就是用来做纹理Alpha混合时进行加权计算的的权值()
(87)Alpha测试并不把当前像素的颜色与颜色缓冲中像素的颜色混合,像素要么完全不透明,要么完全透明()
(88)OpenGL中指定源混和因子和目标混和因子的函数:
voidglBlendFunc(Glenumafactor,Glenumbfactor)描述正确的是()
A其中参数afactor和参数用于指定源混合因子
B其中参数bfactor用于指定目标的混合因子
C其中参数afactor用于指定目标的混合因子
D其中参数bfactorb用于指定源的混合因子
(89)常见的纹理寻址模式有()
A重叠纹理寻址模式B镜像纹理寻址模式C钳位纹理寻址模式D边界颜色纹理寻址模式
纹理的高级技巧
(90)通过矩阵[sx,0;
0,sy]对二维的不经过原点的图元进行缩放变换,有可能得到的结果为
A图元相对原点的位置变化了()
(91)创建一个矩形图元255*255,它的大小恰好与纹理图中纹理的大小一样,要映射整个图元面积,分配给图元纹理坐标为().
A(0.0,0.0)(1.0,0.0)(1.0,1.0)(0.0,1.0)
B(0.0,0.0)(255.0,0.0)(255.0,255.0)(0.0,255.0)C
(0.0,0.0)(0.0,1.0)(1.0,0.0)(1.0,1.0)
D(0.0,0.0)(0.0,255.0)(255.0,0.0)(255.0,255.0)
(92)三维纹理图像可以看成是由一层一层的二维子图像矩阵构成的,在内存中,这些矩形按顺序排列在一起。
(93)对函数voidglTexImage3D(Glenumtarget,Glintlevel,GlintinternalFormat,Glsizeiwidth,Glsizeiheight,Glsizeidepth,Glintborder,Glenumformat,Glenumtype,constGlvoid*texels);
参数描述正确的是()
Alevel是纹理目标在内存中的优先级
Blevel是mipmap细节层的序号
Clevel描述了纹理的强度程度
D描述了纹理的有效值取值范围
(94)glCopyPixels()函数,但是并不把像素读到缓冲区,而是放在纹理内存中()
(95)对OpenGL实现的Mipmap描述正确的是()
A它必须根据被贴图的物体的大小手动的确定应该使用哪个纹理
B它会根据被贴图的物体的大小自动确定应该使用哪个纹理
CMipmap不需要一些额外的计算
DMipmap并不需要额外的一些纹理存储区域
(96)glPixelStore*()函数可以用于设置像素存储模式,使用诸如*ROW_LENGTH、*ALIGNMENT、*SKIP_PIXELS和*SKIP_ROWS这样的参数。
这个函数用于控制对一个完整的像素或纹理单元矩形的一个子矩形的引用()
(97)一个带有纹理图像的物体迅速的远离观察点而去时,纹