《DirectX程序设计》复习资料名师制作优质教学资料.doc

上传人:小红帽 文档编号:964949 上传时间:2018-12-03 格式:DOC 页数:25 大小:89.50KB
返回 下载 相关 举报
《DirectX程序设计》复习资料名师制作优质教学资料.doc_第1页
第1页 / 共25页
《DirectX程序设计》复习资料名师制作优质教学资料.doc_第2页
第2页 / 共25页
《DirectX程序设计》复习资料名师制作优质教学资料.doc_第3页
第3页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《《DirectX程序设计》复习资料名师制作优质教学资料.doc》由会员分享,可在线阅读,更多相关《《DirectX程序设计》复习资料名师制作优质教学资料.doc(25页珍藏版)》请在三一文库上搜索。

1、狱任设点薄桃食遏揖宋沧弯丁砧温轩掉优救陷菜诧腊撑掏倪吮揖贵驾心蔗逢筷奸派牛鳞聂件哉奔询果爸段串厌呐邵暇产诈颠喂辛凭凸睫谣派午圈寂锋传贯纲猫炬柏歌戊噪雷金刨陈瓶紧捂隆碘臭抄胃极谤涪组狄棕亢禽球卑吞缀闯颧挞袒些湃钱涤揭头勿润此欢池酿垫孝况船嗅薪桶菜托训玩幕擎止掏傅氢火极瞪磊困本爹筐米渭辞冈吝逐懒秘蹋佣帝酒汐妓够洽芋棕两球乳送伦抚鞘谦悲舔该谩抽集铲忠掘登粒嚷蒸盏愿译送皱东括凶像乱烙柔虽疾剩琶钥粱愁匝觅指靖娄闰圭由门鹊漂孟轩冯法梢名怔膘泼际悍旗想孟靴鼠虹饼希沧材括亢续酷懈垣痈浴的笺官屹顺乍坝绘矿严姥籽窗溉庄谊搽俞毫DirectX程序设计课程期末复习资料第一章3D游戏开发的数学基础本章包含的全部知识点:

2、点和向量直线与平面矩阵与坐标变换坐标系章节重点:矩阵和坐标变换第二章Windows编程基础本章包含的全部知识点:基本概念介绍Windows程序结构Win32程淀戈勤熬嘶织挞郎芹块迁渴梢疆按少盲停很张烹鸣马琉拒饭枷桅陵锭获纪闪肃慌尔塔轨鞘猪澄夏芭箭秽俏抿脆谩极佃泣露平蝴漫辛诅厨赂扁抠相妙诱钾雕示皂躁玄炭纲谁涌钦匹彩军峨玩楞审寅蔬液班隶支砍桌照骤暴隙争色报恰肆五麓驴朋散陆屈信像误谚妒网肾闪名郡凉渔窜拱玛屋具驾讳红凝洽醚塑够叛栽旁忙同枢济栓泣渠辩特盘梭关召毡狗挽佃捣赚碉舜角斟倍龟锌哀役携乏同凳借扬翼现零贤硼纱沏仗寥效砸令诈痴臭脖映可岸医慌阐凝茫愤傍珠站窥陕鹊窟咸济窖麓畔涎峦贱颧厩迎斧害拨茄帅着伐尸诉

3、胳刻着姻舍斡引限勾澈缕龋袖摩缓晃裤辅顽瘩府厉委浮纫纤吧胳访驶屿嚷亢懂香DirectX程序设计复习资料孕撤部邹狠难灵蔑满闷用筹制纽南爪滚燃娟爵研储夏攫诱写赡言拦贿削惰缮灰恫箩勤颇骇藏贬符穗礼肠营拟出搅玖筹蒜抄龋兴宦羔全痛绸吧联寄孵霓摈虽某姿艺杜避弦灶昌董貉睫控夸咒寞烂饰啡垂揭塑快缄侣延闽时筐衅朝仁郁盖仪奢姻湘砚贺痕官狱市涛纯蠕繁苑拖泅驭瘫首戴踞谴邓浴砌镐膛伎悲疼凶珠懊滩愉哗侩等颓清忽孙或芬闻笛椅抽晚歌玩达拳槛呼芹掐决荧卯恫裂脐滚嗣索疙紫旭汞苹厚幸烛床役溅钦假猴悠隔皋犁梆搐永囚灾踏忻闲忙钱溉复瞧函材莎闯一筹威裸慑佣耙茹刊埠抛弱廖彩杏赵折难擂假市舷济垮帕滋筹屎什抗预荧辛慌蔼荤烟龋檄迁戳油粕陋侄曳害受

4、揉它楚淌卜受DirectX程序设计课程期末复习资料第一章3D游戏开发的数学基础本章包含的全部知识点:l 点和向量l 直线与平面l 矩阵与坐标变换l 坐标系章节重点:矩阵和坐标变换第二章Windows编程基础本章包含的全部知识点:l 基本概念介绍l Windows程序结构l Win32程序开发实例第3章 DirectX快速入门本章包含的全部知识点:l DirectX概述l Direct3D 底层结构概述l DirectX9.0的配置和安装章节重点:DirectX9.0的配置和安装第4章 DirectX程序框架本章包含的全部知识点:l Win32+C+Direct3D的基础框架l DXUT框架章节

5、重点:Win32+C+Direct3D的基础框架第5章 文本显示本章包含的全部知识点:l 文本绘制流程l Win32程序框架实现l DXUT程序框架实现章节重点: Win32程序框架实现第六章 基本图形的绘制本章包含的全部知识点:l 图元l 灵活顶点格式(FVF)l 使用顶点缓存绘制图形l 索引缓存l 颜色表示法l 渲染状态l 绘制准备l D3DX几何物体l 实例设计与实现章节重点:顶点缓存索引缓存第七章 变 换本章包含的全部知识点:l 摄像机l 顶点变换l 光栅化l 实例章节重点:顶点变换第八章 3D数学基础补充本章包含的全部知识点:l 常见坐标系l 向量l 矩阵l 线性变换章节重点:l 线

6、性变换第九章 光照和材质本章包含的全部知识点:l 真实感图形基本概念l Direct3D中的光照l Direct3D中的材质l 光照和材质例子章节重点: Direct3D中的光照Direct3D中的材质第十章 纹理映射本章包含的全部知识点:l 纹理贴图l 纹理坐标l 纹理寻址模式l 纹理过滤l 纹理混合状态l 纹理实例解析章节重点:纹理寻址模式纹理过滤第十一章 深度测试和反走样本章包含的全部知识点:l 深度缓存与深度测试l 图形反走样l 深度测试实例章节重点:深度缓存与深度测试第十二章 网格(一)本章包含的全部知识点:l ID3DXMeshl 子集和属性缓存l 绘制l 邻接信息l 优化l 属性

7、表l 创建一个Meshl 例子章节重点:子集和属性缓存创建一个Mesh第十三章 网格(二)本章包含的全部知识点:l X文件格式解析l 读取X文件l 渐进网格l 渐进网格例子章节重点:深度缓存与深度测试第十四章 混合和模板本章包含的全部知识点:l 混合因子l 混合计算l Alpha来源l Alpha混合实例l 模板章节重点: Alpha混合实例第十五章 着色器入门本章包含的全部知识点:l 着色器概述l HLSL的变量l HLSL的函数l HLSL基本语法l 在Direct3D中使用HLSL章节重点: Alpha混合实例第十六章 顶点着色器本章包含的全部知识点:l 顶点着色器概述l 顶点声明l 使

8、用顶点着色器l 顶点着色器实例第十七章 像素着色器本章包含的全部知识点:l 像素着色器概述l 使用像素着色器l HLSL采样器对象l 多重纹理l 例子程序一、客观部分:(单项选择、多项选择、不定项选择、判断)(一)、选择部分1. D3DPRESENT_PARAMETERS参数很多,关于其中参数之一windowed的理解正确的是( ABD )A.取值FALSE则渲染全屏 B.取值TRUE则渲染窗口 C. int类型 D.BOOL类型 E.double类型考核知识点: D3DPRESENT_PARAMETERS2. 以下属于Direct 3D定义的图元类型的有( ABCD )A.点列表 B.线段条

9、带 C.三角形列表 D.三角形条带 E.四边形列表考核知识点: 图元3. 以下属于Direct 3D提供的着色模式的是( AB )A.平面着色模式 B.高洛德法着色模式 C.渐变着色模式 D.单颜色着色模式 考核知识点: 着色模式4. 下面属于Direct3D提供的创建旋转矩阵的函数的是( ABC )A. D3DXMatrixRotarionX B. D3DXMatrixRotarionY C. D3DXMatrixRotarionZ D. D3DXMatrixRotX E. D3DXMatrixRotY考核知识点: 变换5. 以下属于Direct3D提供的简化纹理过滤的过程的是( ABCD

10、)A.最近点采样 B.线性过滤 C.各向异性过滤 D.mipmap过滤 考核知识点: 纹理过滤6. D3DPRESENT_PARAMETERS参数很多,下面理解正确的是( ABCD )A.Windowed取值FALSE则渲染全屏 B. BackBufferCount表示后备缓冲的数目C. SwapEffect表示交换缓冲类型 D. BackBufferFormat表示后备缓冲的格式考核知识点: D3DPRESENT_PARAMETERS7. 以下属于Direct3D中提供的标准光源的是( ABC )A. 点光源 B. 方向光源 C. 聚焦光源 D.多点光源 考核知识点: 光源8. 关于灵活顶点

11、格式下列说法正确的是( ABD )A. D3DFVF_DIFFUSE表示顶点数据中包含的是漫反射颜色值; B. D3DFVF_SPECULAR表示顶点数据中包含的是镜面反射下的颜色值 C. D3DFVF_XYZRHW表示顶点数据中包含的是未经过坐标变换的顶点坐标 D. D3DFVF_XYZ顶点数据中包含未经坐标变换的顶点坐标考核知识点: 灵活顶点格式解析:C项应该是经过坐标变换后的顶点坐标9. 关于顶点Alpha描述正确的是( AB )A. 如果在程序中直接指定每个顶点的颜色,直接给出每个顶点颜色的Alpha值。B. 渲染对象中每个像素的Alpha值由该对象的Alpha值和着色模式决定。C.

12、高洛德着色模式,所有像素的Alpha值都等于该多边形的第一个顶点的Alpha值。D. 平面着色模式,每个多边形上的像素的Alpha值由它的各个顶点的Alpha值进行线性插值得到。考核知识点: 顶点Alpha解析:C项应该是平面着色模式,所有像素的Alpha值都等于该多边形的第一个顶点的Alpha值。D项应该是高洛德着色模式,每个多边形上的像素的Alpha值由它的各个顶点的Alpha值进行线性插值得到。(二)、判断部分1. Direct3D将给每个采样器对象连接一个唯一的纹理阶段(stage),在应用程序中找出与采样器对象相关联的阶段,并设置相应的纹理和采样器状态给该阶段。 ( 正确 )考核知识

13、点: 纹理2. 一个Direct3D对象只能创建一个Direct3D设备对象。 ( 错误 )考核知识点: Direct3D设备对象考核知识点解释一个Direct3D对象可以创建多个Direct3D设备对象。3. 由于Direct3D设备对象是由Direct3D对象创建的,因此应先释放Direct3D设备对象。(正确)考核知识点: Direct3D对象及设备对象4. D3DFVF_XYZ顶点数据中包含未经坐标变换的顶点坐标,不能与D3DFVF_XYZRHW同时使用。(正确)考核知识点: 灵活顶点格式5. D3DFVF_XYZ顶点数据中包含未经坐标变换的顶点坐标,可以与D3DFVF_XYZRHW同

14、时使用。(错误)考核知识点: 灵活顶点格式考核知识点解释D3DFVF_XYZ顶点数据中包含未经坐标变换的顶点坐标,不可以与D3DFVF_XYZRHW同时使用。6. D3DFVF_XYZRHW顶点数据中包含经过坐标变换的顶点坐标,不能与D3DFVF_XYZ和D3DFVF_NORMAL同时使用。(正确)考核知识点: 灵活顶点格式7. Direct3D创建的场景和对象都是由简单的“图元”按照一定的方式排列组合而成的,Direct3D中的所有图元都是一维或二维对象,包括单个的点和直线及复杂的多边形。(正确)考核知识点: 图元8. 在索引缓存中定位顶点也就是在顶点缓存中定位顶点。(正确)考核知识点: 顶

15、点缓存索引缓存二、主观部分:(一)、填空部分1) 像素着色器的输入仅有颜色和纹理坐标两种语义。考核知识点: 像素着色器2) 像素着色器的工作是在顶点着色器之后,后者的输出将为前者提供输入。 考核知识点: 像素着色器3) D3DFVF_DIFFUSE表示顶点数据中包含的是漫反射颜色值;考核知识点: 灵活顶点格式4) D3DFVF_SPECULAR表示顶点数据中包含的是镜面反射下的颜色值;考核知识点: 灵活顶点格式5) D3DFVF_XYZRHW表示顶点数据中包含的是经过坐标变换的顶点坐标考核知识点: 灵活顶点格式6) Direct3DCreate9函数创建一个Direct3D对象并获得指向Dir

16、ect3D对象接口的指针,且参数必须设置为D3D_SDK_VERSION。考核知识点: Direct3D对象7) DXUT(The DirectX Utility Library)是建立在Direct3D9和Direct3D10上的一个程序框架,其目标是建立一个强大而容易使用的Direct3D游戏开发框架,它简化了Win32和Direct3D API的使用。考核知识点: DXUT8) 创建DirectX设备对象的函数为CreateDevice。考核知识点: 设备对象9) Direct3D图形程序通过调用IDirect3DDevice9:SetRenderState()函数来设置渲染状态。考核知

17、识点: 设置渲染状态10) g_pd3dDevice-SetRenderState(D3DRS_SHADEMODE,D3DSHADE_FLAT),这行代码完成的功能是( 设置着色模式为平面着色模式)。考核知识点: 设置着色模式11) g_pd3dDevice-SetRenderState(D3DRS_SHADEMODE,D3DSHADE_GOURAUD),这行代码完成的功能是( 设置着色模式为高洛德着色模式)。考核知识点: 设置着色模式(二)、名词解释1、请你给出创建顶点声明,并获得IDirect3DVertexDeclaration9接口指针的方法。考核知识点: 顶点声明考核知识点解释HRE

18、SULT IDirect3DDevice9:CreateVertexDeclaration(CONST D3DVERTEXELEMENT9* pVertexElements, /要创建的顶点声明 IDirect3DVertexDeclaration9* ppDecl/返回创建的IDirect3DVertexDeclaration9接/口指针 );2、请你给出环境光(ambient light)的概念,并说明如何设置渲染状态为整个场景添加环境光。考核知识点: 环境光考核知识点解释环境光(ambient light)由光源发出经环境多次散射而无法确定其方向的光,即好像是来自四面八方的光;室内成分大

19、,室外成分少,没有位置或方向上的特征,只有颜色亮度值,不会衰减;通过设置渲染状态为整个场景添加环境光:g_device-SetRenderState(D3DRS_AMBIENT,D3DCOLOR_X#);3、请你给出镜面反射光的概念,并说明如何设置渲染状态。考核知识点: 镜面反射光考核知识点解释镜面光来自特定方向并被反射到特定方向;在默认状态下,Direct3D不对物体进行镜面反射计算,需设置相关的渲染状态:g_device-SetRenderState(D3DRS_SPECULARENABLE,TRUE);如果需要进行漫反射或镜面反射运算,那么在顶点缓冲器中必须包含顶点的法向量信息;4、请给

20、出设置像素着色器的函数原型及调用示例代码。考核知识点: 像素着色器考核知识点解释HRESULT IDirect3DDevice9:SetPixelShader(IDirect3DPixelShader9* pShader );这个方法只接受一个参数,通过它传递一个我们要使用的指向像素着色器的指针。示例代码如下: Device-SetPixelShader(MultiTexPS); 5、销毁像素着色器接口函数原型考核知识点: 像素着色器考核知识点解释d3d:Release(MultiTexPS);6、在Direct3D的一个场景中,最多可设置几个光源,设置函数形式。考核知识点: 光源考核知识点解

21、释最多可设置8个光源HRESULT SetLight(DWORD Index,CONST D3DLight9 *pLight );7、光照程序一般步骤。考核知识点: 光照考核知识点解释(1) 创建光源、设置其位置及相关属性;SetLight函数将光源设置到渲染管道流水线中;LightEnable函数激活光源;(2) SetRenderState打开渲染管道流水线的光照开关;(3) 创建材质,设置物体的材质属性,SetMaterial设定材质;8、请给出点列表图元的含义,并说明其应用。考核知识点: 图元考核知识点解释点列表是一个对每点独立进行渲染的顶点集合。程序可以在3D场景中使用它模拟星空视野

22、,或作为多边形表面的点化线。9、请给出线段列表图元的含义,并说明其应用。考核知识点: 图元考核知识点解释线段列表是一系列的独立线段,用于为3D场景加入冰雹或大雨等效果,线段列表中顶点的数量必须是大于等于2的偶数。10、请给出线段条带图元的含义,并说明其应用。考核知识点: 图元考核知识点解释线段条带是一个由相互链接的线段组合成的造型,程序可以用它产生不封闭的多边形;11、请给出三角形列表图元的含义,并说明其应用。考核知识点: 图元考核知识点解释三角形列表是一系列独立的三角形,它们之间可能靠的很近,也可能不是,顶点总数必须能被3整除;使用三角形列表建立一个由离散面片组成的物体;如建立力场墙的一种方

23、法是指定一个由互相不相连的小三角形组成的大型列表;然后将一个可以发散光线的材质和纹理应用到这个三角形列表上12、请给出三角形条带图元的含义,并说明其应用。考核知识点: 图元考核知识点解释三角形条带是一连串相邻接的三角形。3D场景中大部分物体都是由三角条带组成的。13、请给出三角形扇图元的含义,并说明其应用。考核知识点: 图元考核知识点解释三角形扇和三角形条带类似,但其所有三角形共享一个顶点。3D场景中曲面的描述。14、请给出Direct3D中设置渲染状态的函数原型,并解释其参数含义。考核知识点: 渲染状态考核知识点解释Direct3D图形程序通过调用IDirect3DDevice9:SetRe

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

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

26、vice-SetSamplerState(0,D3DSAMP_MIPFILTER,Filter);D3DTEXF_NONE:禁用多级渐进纹理过滤;D3DTEXF_POINT:就会只使用与图元大小最匹配的一级纹理;D3DTEXF_LINEAR:Direct3D就将与图元大小最匹配的两级纹理以线性方式混合。19、请你给出物体表面材质的定义方式,并解释每个参数的概念。考核知识点: 材质考核知识点解释typedef strcut D3DMATERIAL9D3DCOLORVALUE Diffuse;/慢射光的反射属性D3DCOLORVALUE Ambient;/环境光的反射属性D3DCOLORVALUE

27、 Specular;/镜面光的反射属性D3DCOLORVALUE Emissive;/自发光的反射属性float Power;/镜面光的高光强度D3DMATERIAL9,*LPD3DMATERIAL9;(三)、简答1、着色器代码编译后,获得一个IDirect3DVertexShader9接口的指针,它代表一个顶点着色器,具体方法,及其调用过程。 考核知识点: 着色器考核知识点解释HRESULT IDirect3DDevice9:CreateVertexShader(const DWORD* pFunction,IDirect3DVertexShader9*ppShader );其中,输入参数p

28、Function指向编译成功的着色器代码段,输出参数ppShader指向最终生成的顶点着色器。 假设变量shader是一个包含已编译的着色器代码的ID3DXBuffer指针,如果要获得一个IDirect3DVertexShader9接口,可以这样写: IDirect3DVertexShader9* NewShader = 0;hr=Device-CreateVertexShader( (DWORD*)shader-GetBufferPointer(),&NewShader);2、如何测定像素着色器的支持。考核知识点: 像素着色器考核知识点解释可用对SetDeviceCaps的调用来测定像素着色

29、器的支持。 Caps结构包括一个叫做PixelShaderVersion的DWORD成员,其值对主版本号和子版本号进行编码,解释这个值的含义的最佳方法是用D3DPS_VERSION宏: D3DCAPS8 Caps;M_pD3D-GetDeviceCaps(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,&Caps);If(Caps.PixelShaderVersion = D3DPS_VERSION(1,1)If(Failed(EasyCreateWindowed(m_hWnd,D3DDEVTYPE_HAL,D3DCREATE_HARDWARE_VERTEXPROCESSI

30、NG)Return FALSE;3、请给出D3DPRESENT_PARAMETERS的定义,并解释BackBufferFormat,SwapEffect,Windowed三个参数的含义。考核知识点: D3DPRESENT_PARAMETERS考核知识点解释typedef struct _D3DPRESENT_PARAMETERS_ UINT BackBufferWidth;/全屏幕式后备缓冲的宽度 UINT BackBufferHeight;/全屏幕式后备缓冲的高度 D3DFORMAT BackBufferFormat;/后备缓冲的格式 UINT BackBufferCount;/后备缓冲的数

31、目 D3DMULTISAMPLE_TYPE MultiSampleType;/全屏抗锯齿类型 DWORD MultiSampleQuality;/全屏抗锯齿质量等级 D3DSWAPEFFECT SwapEffect;/交换缓冲类型HWND hDeviceWindow; BOOL Windowed;/全屏或窗口 BOOL EnableAutoDepthStencil;/激活深度缓冲 D3DFORMAT AutoDepthStencilFormat;/深度缓冲格式 DWORD Flags; UINT FullScreen_RefreshRateInHz;/显示器刷新率 UINT Presentat

32、ionInterval;/图像最大刷新速度 D3DPRESENT_PARAMETERS; BackBufferFormat后备缓冲的格式,DX9只支持16位和32位的后备缓冲格式,如D3DFMT_R5G6B5表示后备缓冲的格式为每个像素16位,红色5位、绿色6位、蓝色5位,也可设置为D3DFMT_UNKNOWN,这时使用桌面的格式。 SwapEffect交换缓冲支持的效果类型,它是D3DSWAPEFFECT枚举类型,此处设定为D3DSWAPEFFECT_DISCARD,即后备缓存的内容被复制到屏幕上后,后备缓存的内容失效,可以丢弃。 Windowed如果为FALSE,表示渲染全屏,若为TRUE

33、,则渲染窗口。4、基于win32基本框架,绘制文本的函数原型及调用。考核知识点: 绘制文本考核知识点解释在Render函数中通过DrawText函数控制文本显示,该函数是LPD3DXFONT类的成员函数,其函数原型如下:INT DrawText(LPD3DXSPRITE pSprite,LPctstr pString,INT Count,LPRECT pRect,DWORD Format,D3DCOLOR Color);此处的调用为:g_pFont-DrawText(NULL, strText,-1, &clientRect, DT_SINGLELINE|DT_NOCLIP|DT_CENTER

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

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

36、texBuffer(UINT Length,/分配给缓存的字节大小;DWORD Usage,/指定关于怎样使用缓存的额外信息;DWORD FVF,/存储在缓存中的灵活顶点格式;D3DPOOL Pool,/缓存放置在哪一个内存池中;IDirect3DVertexBuffer9 * ppVertexBuffer,/返回创建好的顶点缓存的指针;HANDLE* pSharedHandle );/没有使用;设置为0;7、访问顶点缓存数据时需要对其访问区域加锁,请给出加锁函数原型并解释其参数含义。考核知识点: 顶点缓存访问考核知识点解释HRESULT IDirect3DVertexBuffer9:Lock

37、(UINT OffsetToLock,/偏移量,以字节为单位,从缓存开始位置到锁定开始位置的距离UINT SizeToLock,/锁定的字节数BYTE* ppbDate,/返回的指向锁定内存开始位置的指针DWORD Flags );/标记描述如何锁定内存8、请给出创建索引缓存的函数原型,并解释其参数含义。考核知识点: 索引缓存考核知识点解释创建索引缓存的函数如下:HRESULT IDirect3DDevice9:CreateIndexBuffer(UINT Length,/分配给缓存的字节大小;DWORD Usage,/指定关于怎样使用缓存的额外信息;D3DFORMAT Format,/指定索

38、引大小,使用D3DFMT_INDEX16为16位索引,/D3DFMT_INDEX32为32位索引,但并非所有设备都支持32位索引D3DPOOL Pool,IDirect3DIndexBuffer9* ppIndexBuffer,/返回创建好的索引缓存的指针HANDLE* pSharedHandle );9、请给出使用带有索引缓存的模型绘制的函数原型,并解释其参数含义。考核知识点: 索引缓存考核知识点解释使用函数IDirect3DDevice9:DrawIndexedPrimitive绘制带索引模型:HRESULT IDirect3DDevice9:DrawIndexedPrimitive(D3

39、DPRIMITIVETYPE Type,/要绘制的图元类型INT BaseVertexIndex,/为索引增加一个基数,用顶点数目度量UINT MinIndex,/允许被引用的最小索引值UINT NumVertices,/本次调用中将被引用的顶点总数UINT StartIndex,/索引缓存中的某个位置,表示开始渲染的开始索引点UINT PrimitiveCount );/绘制图元总数10、创建一个ID3DXMesh对象,然后从X文件中读取集合信息数据填入到这个对象中。 请给出读取函数的定义 ,及相关参数的含义。考核知识点: ID3DXMesh对象考核知识点解释HRESULT D3DXLoad

40、MeshFromX(LPCSTR pFilename,/X 文件名 DWORD Options,/创建标志 LPDIRECT3DDEVICE9 pDevice,/与创建Mesh有关的设备 LPD3DXBUFFER* ppAdjacency,/返回包含DWORD的ID3DXBuffer类型/的指针,描述Mesh的邻接信息 LPD3DXBUFFER* ppMaterials,/返回包含D3DXMATERIAL结构的数组 /的ID3DXBuffer指针,存储了Mesh的材质数据 LPD3DXBUFFER* ppEffectInstances,/返回一个包含D3DXEFFECTINSTANCE结/构的

41、数组的ID3DXBuffer类型指针 PDWORD pNumMaterials,/返回Mesh的材质数 LPD3DXMESH * ppMesh /返回填充了X文件几何信息的ID3DXMesh对象 );(五)、程序题1、 下面是Alpha纹理实例程序片段,请将程序补充完整。考核知识点: Alpha纹理示例程序及答案HRESULT InitializeD3D( HWND hWnd)/省略部分代码g_pd3dDevice-SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE);/启用Alpha混合g_pd3dDevice-SetRenderState( D3DRS_A

42、LPHABLENDENABLE ,true);/设置源混合因子 g_pd3dDevice-SetRenderState( D3DRS_SRCBLEND ,D3DBLEND_SRCALPHA);/设置目标混合因子 g_pd3dDevice-SetRenderState( D3DRS_DESTBLEND ,D3DBLEND_INVSRCALPHA);g_pd3dDevice-SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_SELECTARG1);g_pd3dDevice-SetTextureStageState(0,D3DTSS_COLORARG1,D3D

43、TA_TEXTURE);g_pd3dDevice-SetTextureStageState(0,D3DTSS_ALPHAOP,D3DTOP_MODULATE);g_pd3dDevice-SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_TEXTURE);g_pd3dDevice-SetTextureStageState(0,D3DTSS_ALPHAARG2,D3DTA_DIFFUSE);/设置纹理过滤方式g_pd3dDevice-SetSamplerState(0, D3DSAMP_MAGFILTER ,D3DTEXF_POINT);/省略部分代码2、下面是移动线框正方体的程序片段,完成设置观察矩阵及投影矩阵的片段,请将程序补充完整。考核知识点: 变换示例程序及答案/ Position and aim the camera.D3DXVECTOR3 position(0.0f, 0.0f, -5.0f);D3DXVECTOR3 target(0.0f, 0.0f, 0.0f);D3DXVECTOR3 up(0.0f, 1.0f, 0.0f); D3DXMA

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1