《DirectX游戏编程》考试样题二一、选择题1.我们通常通过两个向量( A ),来判断向量之间的夹角。
A.点积 B.相加 C.叉积 D.相减2. 模拟类似玻璃的透明效果,我们采用的是( D )技术。
A.光照 B.模板 C.纹理映射 D.混合3. 在进行纹理映射时,我们需要设置纹理的过滤方式,使用下面的哪个方法( B )。
A.SetRenderState B.SetSamplerStateC.SetMaterial D.SetLight4. 下面哪项不属于绘制状态的填充状态值( D)。
A.D3DFILL_WIREFRAME B.D3DFILL_POINTC.D3DFILL_SOLID D.D3DFILL_LINE5. 在Direct3D的光照模型中,光源发出的光由下面哪几种光线类型组成 ( ABD )。
A.漫射光 B.镜面光C.火焰光 D.环境光6. 在使用Direct3D编程时,我们使用( B )矩阵表示一个变换。
A.3×3 B.4×4 C.2×2 D.1×47. 当需要对场景进行矩阵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、DIBC.HDR、DOC、MAX D.PPM、PNG、PFM10.在进行混合运算的时候,我们需要设置源混合因子和目标混合因子,他们的默认值分别为( C )。
A.D3DBLEND_ZERO,D3DBLEND_ONEB.D3DBLEND_SRCCOLOR,D3DBLEND_INVSRCCOLORC.D3DBLEND_ONE ,D3DBLEND_ZEROD.D3DBLEND_SRCALPHA,D3DBLEND_INVSRCALPHA11.点精灵的行为主要是通过控制渲染状态来完成。
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和MultiSampleTypeB.MaxPrimitiveCount和MaxVertexIndexC.MaxVertexIndex和MaxPrimitiveCountD.MultiSampleType和MaxPrimitiveCount14.关于逆矩阵的说法,哪个是不正确的 ( C)A.只有正方形的矩阵(方阵)才能求逆,因此当我们说矩阵求逆,那么它就是方矩阵。
B.n×n矩阵M的逆矩阵是一个n×n矩阵表示为M–1C.每个矩阵都有逆矩阵D.矩阵和它的逆矩阵相乘得到一个单位矩阵:M M–1 = M–1M = I。
注意当我们进行这样的操作时矩阵是可交换的15.向量的点乘的方法是以下哪个(B)A.D3DXVec3Cross B.D3DXVec3Dot C.D3DXVec3Point D.D3DXVecMul16.逆矩阵的特点是:(C)A.和原矩阵相乘等于原矩阵 B.和原矩阵相乘等于逆矩阵C.和原矩阵相乘等于单位矩阵 D.和原矩阵相乘等于全1矩阵17.Windows SDK方式的开发中,响应菜单或按钮我们需要关注的消息是:(B)A.WM_CREATE B.WM_COMMAND C.WM_MENU D.WM_BUTTON18.以下列出哪个不是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 I D3DXMesh::DWORD GetFVF(VOID);C.HRESULT ID3DXMesh::OptimizeInplace (LPDIRECT3DVERTEXBUFFER9* ppVB); D.HRESU LT ID3DXMesh::GetAttributeTable(LPDIRECT3DVERTEXBUFFER9* ppVB); 20.在Direct3D中,使用D3DMA TERIAL9结构表示材质,代码 Typedef struct_D3DMATERIAL9 {D3DCOLORV ALUE Diffuse,Ambient,Specular,Emissive; Float power; }D3DMA TERIAL9;中,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.D3DLoadMeshFromXC.D3DXLoadMeshFromFile D.D3DLoadMeshFromFile24.D3D中代表移位的函数是:(C)A.D3DXMatrixScaling() B.D3DXMatrixRotationX()C.D3DXMatrixTranslation() D.D3DXMatrixTranspose()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 B26.初始化Direct3D的第一步是要得到一个(B)接口。
A.IDirect3DSurface9 B.IDirect3D9C.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中,我们可以自由的定义顶点的格式。
()(T)5、由于矩阵相乘不具有交换性,所以我们在对物体进行世界变换时一定要考虑变换的先后,以达到我们想要的变换效果。
(T)6、必须在设备接口的BeginScene和EndScene构成的方法对之间调用绘制的方法。
()(F)7、在光照计算中,我们需要知道每个顶点的法线方向来确定顶点所接收到的光照,顶点的法线方向与其所在的表面是相同的。
()(T)8、访问缓存接口之前要对其进行锁定来获取指向缓存内容的指针,访问完毕之后,必须对其进行相应的解锁操作。
()(F)9、左手坐标系和右手坐标系的区别就是他们的三个坐标轴的方向都是相反的。
()(T)10、我们创建顶点缓存和索引缓存而非数组来存储数据,是因为顶点缓存和索引缓存可以被放置在显存中,能获得较快的绘制速度。