DirectX3D 笔记.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内容摘自《DirectX 9.0 3D游戏开发编程基础》 章节 一.1.必备数学知识 二.1.初始化Direct3D 2.(固定)绘制流水线 3.Direct3D中的绘制 4.颜色 5.光照 6.纹理映射 7.融合技术 8.模板 三.9.字体 10.网格(一) 11.网格(二) 12.自定义Camera类 13.地形绘制 14.粒子系统 15.拾取 四.16.着色语言HLSL 17.顶点着色器 18.像素着色器 19.效果框架 一.1.必备数学知识 1.1向量及坐标系选取,D3D中以LH/RH标记左手/右手坐标系。 1.2向量运算:数乘 点积-用于计算两个向量的夹角()及判断向量垂直。 叉积-计算与两个向量所在平面垂直的向量,可用于面片法向量的计算。 1.3矩阵:在3D图形应用中,常用4X4矩阵和1X4行向量进行运算。 由于多数变换无法用3阶矩阵表示3维变换,因此3D变换中的矩阵为4维矩阵。由于3维坐标空间中点和向量具有相同的表示形式,因此在进行运算时,将点和向量扩展至4D空间时,通过如下形式:表示点(保证能平移变换);以表示向量(防止平移变换)。 1.4 3维空间中的变换: 平移矩阵、旋转矩阵、比例变换矩阵 1.5平面D3DXPLANE在D3D中存储平面及相应操作。平面定义为满足的所有点的集合,因此可通过平面法向量n和平面上一点表示,在代码中存储n和表示平面;平面可被看做4D向量(n,d)进行变换;当平面被规范化(法向量为单位向量且重新计算d),则为p点到平面的最短有符号距离。 1.6射线定义为。射线与平面的相交判定用于拾取的实现。 二.1. 初始化Direct3D 1.1 Direct3D提供了操纵图形设备(通过HAL硬件抽象层)的API。由HAL提供的硬件支持的功能可被D3D接口操作;硬件不支持时由REF设备实现,由D3DDEVTYPE枚举类型成员指定。 1.2 D3D中使用COM技术实现编程语言无关及向下兼容特性。在C++编程环境下可将COM组件当做C++类来使用。使用前创建,使用后通过Release清除。在D3D中COM由前缀I标记。 1.3 a.表面是D3D存储2D图像数据的像素矩阵。 b.多重采样用枚举量D3DMULTISAMPLE_TYPE标志。 c.像素格式 D3DFORMAT d.内存池 D3DPOOL e.交换链(由多个表面构成),页面置换 f.深度缓存是只含有特定像素深度信息的表面。 g.顶点运算 software/hardware vertex processing 其中硬件运算需要图形卡支持,但可不占用CPU资源(使用GPU?) 1.4 设备性能 D3DCAPS9结构的各数据成员用于检测硬件支持。 1.5D3D初始化过程: 1.获取接口IDirect3D9指针。用于设备枚举及创建IDirect3DDevice9对象。 2.检查设备性能(D3DCAPS9) 3.填充D3DPRESENT_PARAMETERS,创建IDirect3DDevice9对象(该C++对象代表物理硬件设备)。 二.2.绘制流水线 2.1 固定绘制流水线(由CPU实现,区别于顶点/像素着色器)。 局部坐标系-世界坐标系-观察坐标系-背面消隐-光照-裁剪-投影-视口坐标系-光栅化 观察坐标系:D3DXMatrixLookAtLH/RH D3DTS_VIEW 投影:D3DXMatrixPerspectiveFovLH/RH D3DTS_PROJECTION 视口变换: D3DVIEWPORT9结构 SetViewport()自动实现变换 二.3. Direct3D中的绘制 3.1顶点缓存/索引缓存是用来存储描述图元(三角形)变量的结构。顶点格式包含各分量需自行定义,可包括顶点坐标、法向量、纹理坐标等。由FVF标记(D3DFVF)描述顶点的组织结构。 Create(Vertex/Index)Buffer创建。 Lock/Unlock用于访问缓存 3.2设置绘制状态,SetRenderState将某个绘制状态设为某状态值。 3.3绘制准备: a. SetStreamSource设置数据流入源。 b. SetFVF设置顶点格式 c. SetIndices设置索引缓存 3.4在BeginScene/EndScene方法对之间调用绘制准备及DrawPrimitive/DrawIndexedPrimitive 二.4.颜色 4.1 颜色由RGB三元组和融合因子Alpha组成,D3DCOLOR结构用于表示32bits颜色数据。 在顶点结构中增加颜色结构可用于对图元进行着色。

文档评论(0)

kakaxi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档