南开大学复习资料-DirectX程序设计.docx
《南开大学复习资料-DirectX程序设计.docx》由会员分享,可在线阅读,更多相关《南开大学复习资料-DirectX程序设计.docx(13页珍藏版)》请在咨信网上搜索。
1、DirectX程序设计课程期末复习资料一、客观部分:(单项选择、多项选择、不定项选择、判断)(一)、选择部分1. D3DPRESENT_PARAMETERS参数很多,关于其中参数之一 windowed的理解正确 的是( ABD )A.取值FALSE则渲染全屏A.取值FALSE则渲染全屏A.取值FALSE则渲染全屏A.取值FALSE则渲染全屏A.取值FALSE则渲染全屏B.取值TRUE则渲染窗口C. int 类D. BOOL类型E. double 类型2,以下属于Direct 3D定义的图元类型的有(ABCDA.点列表A.点列表A.点列表A.点列表A.点列表A.点列表B.线段条带C.三角形列表D
2、.三角形条带E.四边形列表3.以下属于Direct 3D提供的着色模式的是( ABA.平面着色模式A.平面着色模式A.平面着色模式A.平面着色模式A.平面着色模式B.高洛德法着色模式C.渐变着色模式D.单颜色着色模式D.单颜色着色模式D.单颜色着色模式D.单颜色着色模式D.单颜色着色模式D.单颜色着色模式4.下面属于Dircct3D提供的创建旋转矩阵的函数的是(ABCA. D3DXMatrixRotarionXA. D3DXMatrixRotarionXA. D3DXMatrixRotarionXA. D3DXMatrixRotarionXA. D3DXMatrixRotarionXA. D3
3、DXMatrixRotarionXB. D3DXMatrixRotarionYC.D3DXMatrixRotarionZD. D3DXMatrixRotXE. D3DXMatrixRotY5.以下属于Direct3D提供的简化纹理过滤的过程的是(ABCD )A.最近点采样 B.线性过滤 C.各向异性过滤 D. mipmap过滤D3DPRESENT PARAMETERS参数很多,下面理解正确的是( ABCD )A. Windowed取值FALSE则渲染全屏 B. BackBufferCount表示后备缓冲的 数目C. Swap Effect表示交换缓冲类型D. BackBufferFormat表
4、示后备缓冲的格式以下属于Direct3D +提供的标准光源的是( ABC )A.点光源 B.方向光源C.聚焦光源D.多点光源关于灵活顶点格式下列说法正确的是( ABD )A. D3DFVF_DIFFUSE表示顶点数据中包含的是漫反射颜色值;B. D3DFVF_SPECULAR表示顶点数据中包含的是镜面反射下的颜色值C. D3DFVF_XYZRHW表示顶点数据中包含的是未经过坐标变换的顶点坐标D3DF0RMAT Format,/指定索引大小,使用 D3DFMTJNDEX16 为 16 位索 引,D3DFMT_INDEX32为32位索引,但并非所有设备都支持32位索引D3DPOOLPool,IDi
5、rect3DlndexBuffer9* ppIndexBuffer, 返回创建好的索引缓存的指 针HANDLE* pSharedHandle );9、请给出使用带有索引缓存的模型绘制的函数原型,并解释其参数含义。使用函数 IDirect3DDevice9:DrawlndexedPrimitive 绘制带索引模型:HRESULT IDirect3DDevice9:DrawlndexedPrimitive(D3DPRIMITIVETYPE Type,要绘制的图元类型INT BaseVertexindex,/为索引增加一个基数,用顶点数目度量UINTMinlndex,允许被引用的最小索引值UINT
6、NumVertices,本次调用中将被引用的顶点总数UINT Startindex,索引缓存中的某个位置,表示开始渲染的开始索引点UINT PrimitiveCount);绘制图元总数10、创建一个ID3DXMesh对象,然后从X文件中读取集合信息数据填入到这个对象 中。请给出读取函数的定义,及相关参数的含义。HRESULT D3DXLoadMeshFromX(LPCSTR pFil ename, /X 文件名DWORD Options, 创建标志LPDIRECT3DDEVICE9 pDevice, /与创建Mesh有关的设备LPD3DXBUFFER* ppAdjaccncy, /返回包含DW
7、ORD的ID3DXBuffer类型/的指针,描述Mesh的邻接信息LPD3DXBUFFER* ppMaterials,返回包含D3DXMATERIAL结构的数组/的ID3DXBuffer指针,存储了Mesh的材质数据LPD3DXBUFFER* ppEffectlnstances,/返PI一个包含D3DXEFFECTINSTANCE结D3DXEFFECTINSTANCE结D3DXEFFECTINSTANCE结D3DXEFFECTINSTANCE结D3DXEFFECTINSTANCE结D3DXEFFECTINSTANCE结/构的数组的ID3DXBuffer类型指针PDWORD pNumMateri
8、als,LPD3DXMESH * ppMesh/返llMesh的材质数/返回填充了 X文件几何信息的TD3DXMesh对象);(五)、程序题1、下面是Alpha纹理实例程序片段,请将程序补充完整。HRESULT lnitializeD3D( HWND hWnd)/省略部分代码g_pd3dDcvicc-SctRcndcrState(D3DRS_CCLLM0DE, D3DCULL_NONE);启用Alpha混合g_pd3dDevice-SetRenderState(_D3DRS_ALPHABLENDENABLE, true);设置源混合因子g_pd3dDevice-SetRenderState(_
9、D3DRS_SRCBLEND , D3DBLEND_SRCALP11A);/设置目标混合因子g Pd3dDevice-SetRenderState(D3DRS DESTBLEND, D3DBLEND TNVSRCALPHA);g_pd3dDcvice-SetTextureStageState(0, D3DTSS_C0L0R0P, D3DT0P SELECTARG1);g_pd3dDevice-SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);g pd3dDeviceSetTextureStageState(0, D3DTSS AL
10、PHAOP, D3DT0P MODULATE);g_pd3dDcvicc-SctTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA TEXTURE);g_pd3dDevice-SetTextureStageState(0, D3DTSS_ALP11AARG2, D3DTA_D1FFUSE);设置纹理过滤方式g pd3dDevice-SetSamplerState(0,D3DSAMP MAGFTLTER _, D3DTEXF POINT);/省略部分代码)2、下面是移动线框正方体的程序片段,完成设置观察矩阵及投影矩阵的片段, 请将程序补充完整。/ Posit
11、ion and aim the camera.D3DXVECT0R3 position(0. Of, 0. Of, 5. Of);D3DXVECTOR3 target (0. Of, 0. Of, 0. Of);D3DXVECT0R3 up(0.0f, 1. Of, 0. Of);D3DXMATRIX V;D3DXMatrixLookAtLH(&V,_&position, &target,&up );Device-SetTransform(D3DTS_VIEW,&V );/ Set the projection matrix.D3DXMATRIX proj;D3DXMatrixPerspcct
12、ivcFovLH(&proj,D3DX_PI * 0. 5f,(float)Width / (float)Height,l.Of,1000. Of);Device-SetTransform(D3DTS_PRO JECTI ON,&proj);3、下面是模拟箱子挡住茶壶,进行深度测试的程序片段,请将程序补充完整。 bool Setup ()/此处省略部分代码/ 设置 Texture Filter States.Device-SetSamplerState(O, D3DSAMP MAGFILTER, D3DTEXF LINEAR):Device-SetSamplerState(O, D3DSAMP
13、 MTNFTLTER, D3DTEXF LINEAR);Device-SetSamplerState(0, D3DSAMP MTPFTLTER, D3DTEXF LINEAR):/激活深度测试、设置深度测试函数Dcvice-SetRcnderState(D3DRS_ZENABLE, TRUE);DeviceSetRenderState(D3DRS_ZFUNC, D3DCMP LESS);此处省略部分代码LRESULT WINAPI MsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM 1Param)(switch ( msg )(case WM_
14、KEYUP:switch (wParam)此处省略部分代码case VK ESCAPE:(Cleanup ();PostQuitMessage(0);)break;case 49:/开启深度测试g pd3dDevice-SetRenderState(D3DRS ZENABLE, TRUE);break;case 50:/关闭深度测试g_pd3dDevice-SetRenderState(D3DRS_ZENABLE, _FALSE_);break;break;return DefWi ndowProc(hWnd, msg, wParam, 1 Param);4、下面是一程序片段,实现从” Tig
15、er, x”文件中读取Mesh相关信息。请将程序 补充完整。HRESULT InitGeometry()(LPD3DXBUFFER pD3DXMtrlBuffer;if( FAILED( D3DXLoadMeshFromX( Tiger, x”,D3DXMESH SYSTEMMEM,g_pd3dDev ice,NULL,&pD3DXMtrlBuffer,NULL,&g dwNumMaterials,&g_pMesh )(if( FAILED( D3DXLoadMeshFromX(.Tigcr. x,D3DXMES1I_SYSTEMMEM,g_pd3dDevice, NULL,&pD3DXMtr
16、lBuffer, NULL,&g dwNumMaterials,&g_pMesh )(MessageBox(NULL, z,Could not find tiger. x,Meshes.exe”,MB_OK);return E_FAIL;D3DXMATERTAL* d3dxMaterials 二(D3DXMATERIAL*)pD3DXMtrlBuffer-GetBufferPoi nter();g pMeshMaterials = newD3DMATERIAL9 g_dwNumMat erials;if( g_pMeshMaterials = NULL )return E_OUTOFMEMOR
17、Y;g_pMeshTextures = new LPDIRECT3DTEXTURE9g_dwNumMaterials;if( g_pMeshTextures = NULL )return E OUTOFMEMORY;for ( DWORD i=0; i 0 )(if( FAILED( D3DXCreateTextureFromFile( g_pd3dDevice, d3dxMaterialsi. pTextureFilename,&g_pMeshTexturesi )const TCHAR* strPrefix = TEXT(. );TCHAR strTextureMAX_PATH:Strin
18、gCchCopy( strTexture, MAX_PATH, strPrefix );StringCchCat( strTexture, MAX_PATH,d3dxMaterialsi. pTextureFilename );i f ( FAILED( D3DXCreateTextureFromFi1e( g pd3dDevice,strTexture,&g_pMeshTexturesi)MessageBox (NULL, z,Could not find texture map,Meshes. exe,z, MB_0K);pD3DXMtrlBuffcr-Rclcasc();return S
19、 OK;D. D3DFVF_XYZ顶点数据中包含未经坐标变换的顶点坐标9.关于顶点Alpha描述正确的是( AB )A. 如果在程序中直接指定每个顶点的颜色,直接给出每个顶点颜色的Alpha 值。B. 渲染对象中每个像素的Alpha值由该对象的Alpha值和着色模式决定。C. 高洛德着色模式,所有像素的Alpha值都等于该多边形的第一个顶点的 Alpha 值。D. 平面着色模式,每个多边形上的像素的Alpha值由它的各个顶点的Alpha 值进行线性插值得到。(二)、判断部分Direct3D将给每个采样器对象连接一个唯一的纹理阶段(stage),在应用程序 中找出与采样器对象相关联的阶段,并设置
20、相应的纹理和采样器状态给该阶 段。 (正确)一个Direct3D对象只能创建一个Direct3D设备对象。(错误)由于Direct3D设备对象是由Direct3D对象创建的,因此应先释放Direct3D设 备对象。(正确)D3DFVF_XYZ顶点数据中包含未经坐标变换的顶点坐标,不能与 D3DFVF_XYZRHW同时使用。(正确)D3DFVF_XYZ顶点数据中包含未经坐标变换的顶点坐标,可以与 D3DFVF_XYZRHW同时使用。(错误)D3DFVF_XYZRHW顶点数据中包含经过坐标变换的顶点坐标,不能与 D3DFVF_XYZ 和 D3DFVF_N0RMAL 同时使用。(正确)Direct3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南开大学 复习资料 DirectX 程序设计
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。