您的当前位置:首页正文

《DirectX游戏编程》考试样题二汇总

来源:意榕旅游网


《DirectX游戏编程》考试样题二

一、 选择题

1.我们通常通过两个向量( A ),来判断向量之间的夹角。 A.点积 B.相加 C.叉积 D.相减 2. 模拟类似玻璃的透明效果,我们采用的是( D )技术。 A.光照 B.模板 C.纹理映射 D.混合

3. 在进行纹理映射时,我们需要设置纹理的过滤方式,使用下面的哪个方法( B )。 A.SetRenderState B.SetSamplerState C.SetMaterial D.SetLight

4. 下面哪项不属于绘制状态的填充状态值( D )。 A.D3DFILL_WIREFRAME B.D3DFILL_POINT C.D3DFILL_SOLID D.D3DFILL_LINE

5. 在Direct3D的光照模型中,光源发出的光由下面哪几种光线类型组成 ( ABD )。 A.漫射光 B.镜面光 C.火焰光 D.环境光 6. 在使用Direct3D编程时,我们使用( B )矩阵表示一个变换。 A.3×3 B.4×4 C.2×2 D.1×4

7. 当需要对场景进行矩阵V的取景变换,选择下面的( D )。 A.Device->SetTransform(D3DTS_PROJECTION, &V); B.Device->SetTransform(D3DTS_WORLD, &V); C.Device->SetTransform(D3DTS_TEXTURE0, &V); D.Device->SetTransform(D3DTS_VIEW, &V);

8. Direct3D中我们使用左手坐标系来进行三维建模,左手坐标系的z轴正方向是( A )。 A. 穿过纸面向里 B. 在纸面上向左 C. 穿出纸面向外 D. 在纸面上向右

9. 下面哪项中的图像格式都是D3DXCreateTextureFromFile支持加载纹理图像的格式( AD )。

A.BMP、TGA、JPG B.DDS、PPT、DIB C.HDR、DOC、MAX D.PPM、PNG、PFM

10.在进行混合运算的时候,我们需要设置源混合因子和目标混合因子,他们的默认值分别为( C )。

1

A.D3DBLEND_ZERO,D3DBLEND_ONE

B.D3DBLEND_SRCCOLOR,D3DBLEND_INVSRCCOLOR C.D3DBLEND_ONE ,D3DBLEND_ZERO

D.D3DBLEND_SRCALPHA,D3DBLEND_INVSRCALPHA 11.点精灵的行为主要是通过控制渲染状态来完成。

device->SetRenderState(D3DRS_POINTSPRITEENABLE, true)表示: (D) A.表示点的大小将通过视图坐标系单位来指定。

B.表示通过纹理坐标来指定texel(假如顶点结构中有纹理坐标的话)的方法来让纹理应

用到点精灵上。

C.表示点的大小将通过屏幕坐标系单位来指定。

D.表示将当前纹理整个映射到点精灵上(不根据纹理坐标)。 12.纹理采样属性设置函数SetSamplerState()的参数有 ( C ) A.1个 B.2个 C.3个 D.4个 13.D3D9中粒子的表现图元是: (A)

A.点图元 B.三角形 C.公告板 D.方块面

14.为了检验3D设备的最大图元数和最大顶点索引数,一般通过D3DCAPS9结构中的: (B)

A.MaxPrimitiveCount和MultiSampleType B.MaxPrimitiveCount和MaxVertexIndex C.MaxVertexIndex和MaxPrimitiveCount D.MultiSampleType和MaxPrimitiveCount 14.关于逆矩阵的说法,哪个是不正确的 ( C)

A.只有正方形的矩阵(方阵)才能求逆,因此当我们说矩阵求逆,那么它就是方矩阵。 B.n×n矩阵M的逆矩阵是一个n×n矩阵表示为M–1 C.每个矩阵都有逆矩阵

D.矩阵和它的逆矩阵相乘得到一个单位矩阵:M M–1 = M–1M = I。注意当我们进行这样的操作时矩阵是可交换的

15.向量的点乘的方法是以下哪个 (B)

A.D3DXVec3Cross B.D3DXVec3Dot C.D3DXVec3Point D.D3DXVecMul 16.逆矩阵的特点是: (C)

2

A.和原矩阵相乘等于原矩阵 B.和原矩阵相乘等于逆矩阵 C.和原矩阵相乘等于单位矩阵 D.和原矩阵相乘等于全1矩阵

17.Windows SDK方式的开发中,响应菜单或按钮我们需要关注的消息是:(B)

A.WM_CREATE B.WM_COMMAND C.WM_MENU D.WM_BUTTON 18.以下列出哪个不是ID3DXPMesh接口的相关方法 (D)

A.DWORD GetMaxFaces(VOID); B.DWORD GetMaxVertices(VOID); C.DWORD GetMinFaces(VOID); D.DWORD GetNum(VOID Faces); 19.在ID3DXBaseMesh中,得到指向顶点缓冲区的指针的方法正确的是 (A)

A.HRESULT ID3DXMesh::GetVerterxBuffer(LPDIRECT3DVERTEXBUFFER9* ppVB); B.VOID ID3DXMesh::DWORD GetFVF(VOID);

C.HRESULT ID3DXMesh::OptimizeInplace (LPDIRECT3DVERTEXBUFFER9* ppVB); D.HRESULT ID3DXMesh::GetAttributeTable(LPDIRECT3DVERTEXBUFFER9* ppVB); 20.在

Direct3D

中,使用

D3DMATERIAL9

结构表示材质,代

码 Typedef struct_D3DMATERIAL9 {

D3DCOLORVALUE Diffuse,Ambient,Specular,Emissive; Float power; D3DMATERIAL9;

中,Specular指的是什么意思 (D)

A.指定散射光的反射率 B.指定环境光的反射率 C.指定物体发出的光 D.指定镜面高光的集中度 21.D3D纹理贴图的时候,贴图左下角的u,v坐标为: (A) A.(0,1) B.(1,0) C.(0,0) D.(1,1)

22.D3D中SetRenderState函数的用途非常大,那么如果打开雾效果需要调用语句:(B) A.(D3DRS_ZENABLE,TRUE) B.(D3DRS_FOGENABLE,TRUE) C.(D3DRS_LIGHT,TRUE) D.(D3DRS_RENDER,TRUE) 23.D3D导入”.X”模型文件的时候调用的函数是: (A) A.D3DXLoadMeshFromX B.D3DLoadMeshFromX C.D3DXLoadMeshFromFile D.D3DLoadMeshFromFile 24.D3D中代表移位的函数是: (C)

A.D3DXMatrixScaling() B.D3DXMatrixRotationX() C.D3DXMatrixTranslation() D.D3DXMatrixTranspose()

3

25.DirectX编程也可以说是一种COM编程,如果创建并释放接口对象A和B, 流程是:(C) A.Create A,Create B,Release A,Release B B.Create B,Create A,Release B,Release A C.Create A,Create B,Release B,Release A D.Create A,Release A,Create B,Release B 26.初始化Direct3D的第一步是要得到一个(B)接口。 A.IDirect3DSurface9 B.IDirect3D9 C.IDirect3DDevice9 D.COM

二、填空题(本题共20空,每空1分,共20分。)

1、DirectX 9.0的三个组成部分 DirectX Audio、DirectX Input、DirectX Graphics 。 2、在几何学中,向量用一个有向线段来表示,向量的两个重要属性是 长度 和 方向 。 3、为了求平面的法向量,我们通常的方法是找到平面上相互不平行的两个向量,求他们的 叉积。

4、通过 纹理映射技术,我们可以将2D图像数据映射到3D图元上,以增强场景的真实感。 5、Direct3D支持三种类型的光源,分别是: 点光源、方向光、聚光灯。

6、无论硬件的配置是否高端,开发人员都可以完整的体验和测试DirectX所提供的全部功能,是因为DirectX在体系机构上使用了HAL和 REF两层驱动的模式。

7、Direct3D的观察坐标系中,默认状态下,顶点的排列顺序为 逆时针 的三角形单元是背面朝向的,这些三角形将在背面消隐的时候被剔除。

8、Direct3D中有两种着色模式,分别是:平面着色、Gouraud着色(平滑着色)。 9、在Direct3D中,我们将3D场景投影到2D的屏幕上,投影的平面是 z=1 。 10、标记平面的朝向,与平面垂直的一个重要的量是平面的 法向量。

11、Direct3D中对物体进行的的三种基本变换类型是 平移变换、旋转变换、缩放变换(比例变换)。

四、 判断题

(F)1、若两个向量的长度和方向相同,但起点位置不同,则两向量是不相等的。 ( ) (T)2、在Direct3D的程序设计过程中,如果用到了一些新的、特别的或高级的特性,最好要先检查一下我们使用的图形设备的性能。 ( )

(F)3、在Direct3D中我们可以通过设置绘制状态来改变几何体的绘制方式,当指定了某种绘制状态绘制物体后,它会自动的恢复到默认状态。 ( ) (T) 4、在Direct3D中,我们可以自由的定义顶点的格式。 ( )

4

(T)5、由于矩阵相乘不具有交换性,所以我们在对物体进行世界变换时一定要考虑变换的先后,以达到我们想要的变换效果。

(T)6、必须在设备接口的BeginScene和EndScene构成的方法对之间调用绘制的方法。 ( ) (F)7、在光照计算中,我们需要知道每个顶点的法线方向来确定顶点所接收到的光照,顶点的法线方向与其所在的表面是相同的。 ( )

(T)8、访问缓存接口之前要对其进行锁定来获取指向缓存内容的指针,访问完毕之后,必须对其进行相应的解锁操作。 ( )

(F)9、左手坐标系和右手坐标系的区别就是他们的三个坐标轴的方向都是相反的。 ( )

(T)10、我们创建顶点缓存和索引缓存而非数组来存储数据,是因为顶点缓存和索引缓存可以被放置在显存中,能获得较快的绘制速度。

(T) 11 雪特效的实现原理是绘制面片,然后给面片贴上雪花的纹理,接着控件雪花的密度和运动轨迹等就形成了雪特效.( )

(T)12. 地形这些具备高度特征的效果都是通过调整地形来实现的。 ( )

(T)13. 高度图是用来描述地表高度信息的平面图像,一般可以分为彩色高度图和灰度图,另外也可以用等高线等方式来存储。 ( )

(F)14. 灰度图的图像看起来比较黑,那么它所描述的地形高度是偏高的( )

(T)15. 看似雾效的特殊效果如四散的浓烟、喷涌的气态物等并不是采用雾效来实现的,而是采用粒子系统来实现的。 ( )

(T)16 .D3D中的D3DXMATRIX表示4×4的矩阵。( )

(F)17 .通过使用索引缓冲区,我们可以不再使用顶点缓冲区。() (T)18 、高度图常用来保存地形高度数据( )

(T)19、粒子系统通常由粒子管理器和若干粒子组成。

(T)20.点精灵的行为主要是通过控制渲染状态来完成。 device-> SetRenderState(D3DRS_POINTSCALEENABLE, true)

(T)21.接口ID3DXMesh提供了DrawSubset(DWORD AttribID)方法,渲染参数AttribID指的是子集中的各个三角形。( )

(T)22.优化Mesh也就是可以重新组织其中的顶点和索引,以便更加有效地渲染Mesh。( ) (T)23.建立属性表后,渲染一个子集就很容易了,仅仅查一下属性表找出自己的几何信息即可。( )

5

(F)24.只可以使用D3DXCreateMeshFVF函数创建一个空的Mesh对象。( )

(F)25.一种图形化描述高度图方法是使用灰度图,灰度图中黑色对应着比较高的地方,白色对应着比较低的地方。( )

(T)29.深度缓冲(又称Z-buffer)的作用是确保多边形能够正确地显示在它们本来的深度(相对于摄像机)上。( )

(F)30.激活Direct3D的Alpha混合计算的方法是:g_pd3dDevice-> SetRenderState(D3DRS_ALPHATESTENABLE, TRUE)。( ) (T)31.Alpha测试在速度上要优于Alpha混合。( )

(F)32.Flat渲染计算多边形每一个顶点的光照颜色值,并对每一个多边形的面上的像素按照它的各个顶点颜色进行线性插值Direct3D默认的渲染方式。( ) (T)33.Direct3D支持最多8层的多层纹理映射。( )

(T)34.Direct3D采用了两种方法进行雾化处理:顶点雾化和像素雾化。( )

(T)35.雪特效的实现原理是绘制面片,然后给面片贴上雪花的纹理,接着控制雪花的密度和运动轨迹,就形成了雪特效。( )

T)36.我们通常将一张高度图当做是一个矩阵来处理,这样以便其中每项都与地形网格中的每一个顶点一一对应。

(F)37.顶点结构可以包含很多属性,比如材质属性

(T)38.投影变换的实质就是定义可视体并将可视体内的几何图形投影到投影窗口上去。 (T)39.顶点列表包含所有不重复的顶点,索引列表中则用顶点列表中定义的值来表示每一个三角形的构造方式。

(T)40.一个mesh由一个或数个子集组成。一个子集是在mesh中的使用相通属性渲染的一组三角形

(F)41.在D3D9.0b和D3D9.0c中,对效果框架使用的接口都是一致的 (T)42.高度图可以用程序生成或者是用图片编辑工具(PS)来制作 (F)43.通过使用索引缓冲区,我们可以不再使用顶点缓冲区。 (F)44.D3D中的D3DXMATRIX表示3×3的矩阵。 (T)45.纹理包装在u和v方向上可以同时使用。 (F)46.纹理包装和纹理寻址可以同时使用。 (T)47.点光源没有方向,有衰减。 (F)48.方向光有发光位置,没有衰减。

6

(T)49.光源类型试图模拟自然界各种真实的光源。 (F)50.Direct3D中的光照模型就是光源类型。 (T)51. Alpha测试在速度上要优于Alpha混合。

(F)52.Flat渲染计算多边形每一个顶点的光照颜色值,并对每一个多边形的面上的像素按照它的各个顶点颜色进行线性插值Direct3D默认的渲染方式。

(T)53.深度缓冲(又称Z-buffer)的作用是确保多边形能够正确地显示在它们本来的深度(相对于摄像机)上。

(T)54.下面的程序片断设置了像素雾化效果为线性: g_pd3dDevice->SetRenderState( D3DRS_FOGTABLEMODE , D3DFOG_LINEAR);

(T)55.Direct3D采用了2种方法进行雾化处理:顶点雾化和像素雾化。

(F)56. 参数D3DTSS_COLORARG1和D3DTSS_COLORARG2用来指定混合方程式。 (T)57.Direct3D支持最多8层的多层纹理映射。 (F)58.X文件中的材质数组的元素只包括物体材质。

(T)59.D3DXCreateMesh和D3DXCreateMeshFVF两个函数都可以用来生成网格对象。 (T)60.模板缓冲区和深度缓冲区共享相同的表面,并同时被创建。 (F)61.在定义灵活顶点格式(FVF)时,可以不设定顶点的位置坐标。

(T)62.Direct3D通过为每个物体都定义一个材质属性来模拟自然界中反射的现象( ) (T)65.调用IDirect3DDevice9::SetStreamSource方法,把顶点缓冲和数据流挂接在一起。 (F)64.Direct3D中的顶点只具有空间位置属性。( )

(T)65.世界变换完成世界空间中所有物体位置、大小、以及与相互之间关系的设置。( ) (F)66.Direct3D只能实现硬件所支持的功能和特性,而无法通过软件模拟的方法来实现Direct3D提供的所有特性。( )

多选题

(AB)1 、D3D中点精灵需要设置渲染状态有 ( )

A、SetRenderState(D3DRS_POINTSPRITEENABLE, TRUE); B、SetRenderState(D3DRS_POINTSCALEENABLE, TRUE); C、SetRenderState(D3DRS_LIGHTING,FALSE); D、SetRenderState(D3DRS_ZENABLE , FALSE); (ABCD)2. D3D

DirectX

7

( ) A. JPG B. BMP C. DDS D. TGA (BCD)3.

( ) A. Vertex B. Ambient C. Specular D. Emissive ****(BC)4.平行光的特性包括:( ) A. 位置 B. 方向 C. 颜色 D. 衰减

(ABC) 5.游戏中虚拟摄影机的属性包含有( ) A.位置 B. 正方向 C. 视点 D. 大小

(ABC)6.纹理过滤的类型有( )

A.缩小过滤 B.放大过滤 C.多纹理过滤 D.双线性过滤 (ABCD)7.纹理采样方式有( )

A.最近点采样 B.线性纹理过滤 C.各向异性过滤 D.多级渐进纹理过滤 (BCD)8.漫反射的特性包括( )

A.位置 B.方向 C.颜色 D.观察者位置 (ABC)9.下面有哪些函数表示物体的基本变换是( ) A.D3DXMatrixTranslation B.D3DXMatrixScaling C.D3DXMatrixRotationAxis D.D3DXMatrixMultiply (ABCD)10.实现光照所要用的函数有:( )

A.SetRenderState() B.SetMaterial() C.SetLight() D.LightEnable()

(ABC)11.漫反射的特性包括:( )

A.位置 B.方向 C.颜色 D.观察者位置 (ABC)12.D3D中的光照模型有:( )

A.环境光 B.漫反射 C.镜面反射 D.全反射 ***(ABCD)13.材质结构有如下那几个属性著称:( ) A.Diffuse B.Ambient C.Specular D.Emissive (ABCD)14.D3D中能够绘制的基本几何体有:( )

A.点列和线列 B.线带和三角形扇型 C.三角形列 D.三角形带 (ABCD)15.设置雾效的时候可以设置的参数有:( )

A.雾的初始范围 B.雾的终止范围 C.雾的衰减模式 D.雾的颜色 (ABC)16.D3D采用材质过滤技术有那些:( )

8

A.最近点取样 B.线性过滤 C.mipmap过滤 D.曲线过滤 (ABCD)17.D3D中的常见的矩阵变化( )

A.旋转 B.缩放 C.平移 D.组合变换 (ABC)18.D3D支持的灯光类型有:( )

A.点光源 B.平行光 C.聚光灯 D.环境光

(CD)19.Windows程序设计如果用MFC的App wizard开发,可选择的框架有:( ) A. win32 application B.win32 console application C.Appwizard(exe) D.appwizard(dll)

(AB)20.为拦截按键被按下的消息,SDK方式的开发可以实现以下消息:( ) A.WM_KEYDOWN B.WM_CHAR C.WM_KEY D.WM_PRESS

9

因篇幅问题不能全部显示,请点此查看更多更全内容