ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:37.08KB ,
资源ID:4516266      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4516266.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(南开大学复习资料-DirectX程序设计0001.docx)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

南开大学复习资料-DirectX程序设计0001.docx

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

21、D创建的场景和对象都是由简单的“图元”按照一定的方式排列组合 而成的,Direct3D中的所有图元都是一维或二维对象,包括单个的点和直线 及复杂的多边形。(正确)在索引缓存中定位顶点也就是在顶点缓存中定位顶点。(正确)二、主观部分:(一)、填空部分1)像素着色器的输入仅有颜色和纹理坐标两种语义。2)像素着色器的工作是在顶点着色器之后,后者的输出将为前者提供输入。3) D3DFVF_DIFFUSE表示顶点数据中包含的是漫反射颜色值;D3DFVF_SPECULAR表示顶点数据中包含的是镜面反射下的颜色值;D3DFVF_XYZRHW表示顶点数据中包含的是经过坐标变换的顶点坐标Direct3DCrea

22、te9函数创建一个Direct3D对象并获得指向DirectsD对象接口的 指针,且参数必须设置为D3D_SDK_VERSI0NoDXUT (The DirectX Utility Library)是建立在 Direct3D9 和 Direct3D10 上的一个 程序框架,其目标是建立一个强大而容易使用的Direct3D游戏开发框架,它 简化了 Win32和Direct3D API的使用。4) 创建DirectX设备对象的函数为CreateDeviceoDirect3D 图形程序通过调用 IDirect3DDevice9:SetRenderState()函数来设置渲 染状态。5) g_pd3d

23、Device-SetRenderState(D3DRS_SHADEMODE,D3DSHADE_FLAT),这行代 码完成的功能是(设置着色模式为平面着色模式)。6) g_pd3dDevice-SetRenderState(D3DRS_SHADEMODE/D3DSHADE_GOURAUD),这行代码完成的功能是(设置着色模式为高洛德着色模式)。(二)、名词解释1、请你给出创建顶点声明,并获得IDirect3DVertexDeclaration9接口指针的方法。HRESULT IDirect3DDevice9:CreateVertexDeclaration(CONST D3DVERTEXELEME

24、NT9* pVertexElements,要创建的顶点声明IDirect3DVertexDeclaration9* ppDecI/ 返 回 创 建 的IDirect3DVertexDeclaration9 接口指针);2、请你给出环境光(ambient light)的概念,并说明如何设置渲染状态为整个场景 添加环境光。环境光(ambient light)由光源发出经环境多次散射而无法确定其方向的光,即好像是来自四面八方 的光;室内成分大,室外成分少,没有位置或方向上的特征,只有颜色亮度 值,不会衰减;通过设置渲染状态为整个场景添加环境光:g_device-SetRenderState(D3DR

25、S_AMBIENT,D3DCOLOR_X#);3、请你给出镜面反射光的概念,并说明如何设置渲染状态。镜面光来自特定方向并被反射到特定方向;在默认状态下,Direct3D不对物 体进行镜面反射计算,需设置相关的渲染状态:g_device-SetRenderState(D3DRS_SPECULARENABLEJRUE);如果需要进行漫反射或镜面反射运算,那么在顶点缓冲器中必须包含顶点的 法向量信息;4、请给出设置像素着色器的函数原型及调用示例代码。HRESULT IDirect3DDevice9:SetPixelShader(IDirect3DPixelShader9* pShader);这个方法

26、只接受一个参数,通过它传递一个我们要使用的指向像素着色器的 指针。示例代码如下:Device-SetPixelShader(MultiTexPS);5、销毁像素着色器接口函数原型d3d:Release(MultiTexPS);6、在Direct3D的一个场景中,最多可设置几个光源,设置函数形式。最多可设置8个光源HRESULT SetLight(DWORD Index,CONST D3DLight9 *pLight);7、光照程序一般步骤。创建光源、设置其位置及相关属tt; Set Light函数将光源设置到渲染管道 流水线中;LightEnable函数激活光源;(2) SetRenderSt

27、ate打开渲染管道流水线的光照开关;(3) 创建材质,设置物体的材质属性,SetMaterial设定材质;8、清给出点列表图元的含义,并说明其应用。点列表是一个对每点独立进行渲染的顶点集合。程序可以在3D场景中使用 它模拟星空视野,或作为多边形表面的点化线。9、请给出线段列表图元的含义,并说明其应用。线段列表是一系列的独立线段,用于为3D场景加入冰雹或大雨等效果,线段列表中顶点的数量必须是大于等于2的偶数。10、请给出线段条带图元的含义,并说明其应用。线段条带是一个由相互链接的线段组合成的造型,程序可以用它产生不封闭 的多边形;11、请给出三角形列表图元的含义,并说明其应用。三角形列表是一系列

28、独立的三角形,它们之间可能靠的很近,也可能不是, 顶点总数必须能被3整除;使用三角形列表建立一个由离散面片组成的物体; 如建立力场墙的一种方法是指定一个由互相不相连的小三角形组成的大型 列表;然后将一个可以发散光线的材质和纹理应用到这个三角形列表上12、请给出三角形条带图元的含义,并说明其应用。三角形条带是一连串相邻接的三角形。3D场景中大部分物体都是由三角条 带组成的。13、请给出三角形扇图元的含义,并说明其应用。三角形扇和三角形条带类似,但其所有三角形共享一个顶点。3D场景中曲 面的描述。14、请给出Direct3D中设置渲染状态的函数原型,并解释其参数含义。Direct3D 图形程序通过

29、调用 IDirect3DDevice9:SetRenderState()0数来设置渲 染状态。枚举类型D3DRENDERSTATETYPE列举出所有可能的渲染状态;使用 SetRenderStatef)设置:HRESULT IDirect3DDevice9:SetRenderState(D3DRENDERSTATETYPE State,/更改的渲染状态DWORD Value ); 新的状态值15、请你解释平面着色模式的含义。Direct3D绘制流水线使用多边形第一个顶点的材质颜色作为整个多边形的颜 色来渲染该多边形;如果多边形不共面,被平面着色方式渲染的三维物体在 多边形之间将具有可视的清晰边

30、缘;平面着色是最快的着色方式。16、请你解释高洛德着模式的含义。它使用顶点法线和光照参数为每个顶点计算颜色,然后穿越多边形的表面进 行插值,插值以线性方式完成,高洛德着色使物体的表面看上去弯曲而平滑。17、可编程管线渲染一个球体的步骤。1)找到用于渲染该球体的VertexShader和PixelShader;2 )将参数传递给VertexShader , VertexShader的输出再传递给PixelShader;3) 绘制该球体;18、请说明怎样对多级渐进纹理过滤器进行设置,并具体解释Filter的取值。Device-SetSamplerState(0, D3DSAMP_MIPFILTER

31、, Filter);D3DTEXF_NONE:禁用多级渐进纹理过滤;D3DTEXF_POINT:就会只使用与图元大小最匹配的一级纹理;D3DTEXF LINEAR: Direct3D就将与图元大小最匹配的两级纹理以线性方式混 合。19、请你给出物体表面材质的定义方式,并解释每个参数的概念。typedef strcut D3DMATERIAL9(D3DC0L0RVALUE Diffuse;慢射光的反射属性D3DC0L0RVALUE Ambient;环境光的反射属性D3DC0L0RVALUE Specular; 镜面光的反射属性D3DC0L0RVALUE Emissive; /自发光的反射属性fl

32、oat Power;/镜面光的高光强度1D3DMATERIAL9, *LPD3DMATERIAL9;、简答1、着色器代码编译后,获得一个IDirect3DVertexShader9接口的指针,它代 表一个顶点着色器,具体方法,及其调用过程。HRESULT IDirect3DDevice9:CreateVertexShader(const DWORD* pFunction,IDirect3DVertexShader9*ppShader);其中,输入参数pFunction指向编译成功的着色器代码段,输出参数ppShader 指向最终生成的顶点着色器。假设变量shader是一个包含己编译的着色器代码

33、的ID3DXBuffer指针,如果要获得一个 IDirect3DVertexShader9 接口,可以这样写:IDirect3DVertexShader9* NewShader = 0;hr=Device-CreateVertexShader( (DWORD*)shader-GetBufferPointer(),&NewShader);2、如何测定像素着色器的支持。可用对SetDeviceCaps的调用来测定像素着色器的支持。Caps结构包括一个叫做PixelShaderVersion的DWORD成员,其值对主版本号和子版本号进行编码,解释这个值的含义的最佳方法是用D3DPS_VERSION宏

34、:D3DCAPS8 Caps;M_pD3D-GetDeviceCaps(D3DADAPTER_DEFAULTzD3DDEVTYPE_HAL,&Caps);IffCaps.PixelShaderVersion = D3DPS_VERSION(1,1)lf(Failed(EasyCreateWindowed(m_hWnd,D3DDEVTYPE_HAL,D3DCREATE_HARDWARE_VERTEXPROCESSING)Return FALSE;并解释 BackBufferFormat,并解释 BackBufferFormat,并解释 BackBufferFormat,并解释 BackBuffe

35、rFormat,并解释 BackBufferFormat,并解释 BackBufferFormat,全屏幕式后备缓冲的宽度全屏幕式后备缓冲的后备缓冲的格式后备缓冲的数目3、请给出 D3DPRESENT_PARAMETERS 的定义,Swap Effect, Windowed三个参数的含义。typedef struct _D3DPRESENT_ PARAMETERS,UINTBackBufferWidth;UINTBackBufferHeight;高度D3DFORMATUINTD3DFORMATUINTD3DFORMATUINTD3DFORMATUINTD3DFORMATUINTBackBuff

36、erFormat;BackBufferCount;D3DMULTISAMPLE_TYPE MultiSampleType; 全屏抗锯齿类型 D3DPRESENT_PARAMETERS;BackBufferFormat-一后备缓冲的格式,DX9只支持16位和32位的后备缓 冲格式,如D3DFMT_R5G6B5表示后备缓冲的格式为每个像素16位,红 色5位、绿色6位、蓝色5位,也可设置为D3DFMTJJNKN0WN,这时使 用桌面的格式。DWORDMultiSampleQuality;全屏抗锯齿质量等级D3DSWAPEFFECTSwap Effect;交换缓冲类型HWNDhDeviceWindow

37、;BOOLWindowed;全屏或窗口BOOLEnableAutoDepthStencil;激活深度缓冲D3DFORMATAutoDepthStencilFormat; /深度缓冲格式DWORDFlags;UINTFullScreen_RefreshRatelnHz;显示器刷新率UINTPresentation Interval; 图像最大刷新速度Swap Effect-一交换缓冲支持的效果类型,它是D3DSWAPEFFECT枚举类型, 此处设定为D3DSWAPEFFECT_DISCARD,即后备缓存的内容被复制到屏幕 上后,后备缓存的内容失效,可以丢弃。 Windowed一一如果为FALSE

38、,表示渲染全屏,若为TRUE,则渲染窗口。4、基于Win32基本框架,绘制文本的函数原型及调用。在Render函数中通过DrawText函数控制文本显示,该函数是LPD3DXFONT类的 成员函数,其函数原型如下:INT DrawText ( LPD3DXSPRITE pSprite,LPctstr pStringJNT Count,LPRECT pRect,DWORD Format,D3DCOLOR Color);此处的调用为:g_pFont-DrawText(NULL/ strText,-lz &clientRect,DT_SINGLELINE | DT_NOCLIP | DT_CENTE

39、R | DT_VCENTER, Oxffffffff );5、顶点缓存中的顶点可以包含顶点坐标、颜色、法线方向、纹理坐标等属性, 具体包含哪些属性,可以使用灵活顶点格式(Flexible Vertex Format, FVF)进行 描述;请解释下面部分FVF描述符:D3DFVF_DIFFUSE,D3DFVF_NORMAL, D3DFVF_XYZ, D3DFVF_XYZRHW, D3DFVF_SPECULAR.D3DFVF_DIFFUSE:顶点数据中包含漫反射颜色值;D3DFVF_NORMAL:顶点数据中包含法线向量,不能和D3DFVF_XYZRHW同时使用;D3DFVF_XYZ:顶点数据中包含

40、未经坐标变换的顶点坐标,不能与D3DFVF_XYZRHW 同时使用;D3DFVF.XYZRHW:顶点数据中包含经过坐标变换的顶点坐标,不能与D3DFVF_XYZ 和 D3DFVF_N0RMAL 同时使用;D3DFVF_PSIZE:顶点信息指明绘制点的大小;D3DFVF_SPECULAR:顶点数据中镜面反射效果下的颜色值;6、请给出创建顶点缓存的函数原型,并解释其参数含义。创建顶点缓存的函数IDirect3DDevice9:CreateVertexBuffer()声明如下:HRESULT IDirect3DDevice9:CreateVertexBuffer (UINT Length, 分配给缓

41、存的字节大小;DWORD Usage,指定关于怎样使用缓存的额外信息;DWORD FVF,存储在缓存中的灵活顶点格式;D3DPOOLPool, 缓存放置在哪一个内存池中;IDirect3DVertexBuffer9 * * ppVertexBuffer,返回创建好的顶点缓存的指 针;HANDLE* pSharedHandle ); 没有使用;设置为 0;7、访问顶点缓存数据时需要对其访问区域加锁,清给出加锁函数原型并解释其 参数含义。HRESULT IDirect3DVertexBuffer9:Lock(UINT OffsetToLock,/偏移量,以字节为单位,从缓存开始位置到锁定开始位 置的距离UINT SizeToLock,/锁定的字节数BYTE* ppbDate,/返回的指向锁定内存开始位置的指针DWORD Flags ); 标记描述如何锁定内存8、请给出创建索引缓存的函数原型,并解释其参数含义。创建索引缓存的函数如下:HRESULT IDirect3DDevice9:CreatelndexBuffer(UINT Length, 分配给缓存的字节大小;DWORD Usage,指定关于怎样使用缓存的额外信息;

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服