




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任课教师 张海翔任课教师 张海翔 DirectX 角色游戏编程角色游戏编程 2011 2012 学年第学年第 2 学期 学期 实实 验验 报报 告告 学号 学号 E10700206 姓名 吴慧峰姓名 吴慧峰 班级 班级 10 数媒 数媒 2 班 班 浙江理工大学信息学院 实验指导书 实验名称 DirectX 三维文字场及地形景实验 学时安排 3 实验类别 综合设计型实验 实验要求 1 人 1 组 一 实验目的 1 通过实验 运用 DirectX 三维图形编程的知识 原理和技术 2 掌握在综合三维场景的基础上 设计一个三维文字及地形的实现方法 3 通过使用 VC 编程环境实现三维场景中的三维文字及地形的设计 二 实验仪器 计算机 VC 2005 语言程序设计环境 和 DirectX 三维图形开发环境 三 实验原理 D3DX 库是使用 ID3DXFont 接口来在 Direct3D 应用程序中输出文字的 这个接口通过 GDI 图形 设备接口 来输出文字 因此用这个接口完成任务的时候会有些效率上的损失 但是 运用了 GDI ID3DXFont 可以处理复杂的文字和文字格式 在 DirectX 中通过 D3DXCreateFontIndirect 方法来创建一个 ID3DXFont 接口 HRESULT WINAPI D3DXCreateFontIndirect LPDIRECT3DDEVICE9 pDevice 当前所使用的设备 CONST D3DXFONT DESC pDesc 字体描述结构 LPD3DXFONT ppFont 返回的字体接口 当获得了一个 ID3DXFont 接口以后 可以方便地利用 ID3DXFont 接口的 DrawText 方法来输出文 字 INT ID3DXFont DrawText LPCSTR pString INT Count LPRECT pRect DWORD Format D3DCOLOR Color 范例代码如下 Font DrawText Hello World 待输出字符串 1 NULL 结尾 Null terminating 的字符串 用具有不同高度 不同颜色的三角形网格来创建高山和低谷 以此模拟一个真实的地形 高度图是 一个储存了地形各个顶点高度数据的数据集合 可以用硬盘上的图片来为地形加上纹理 也可以用 程序生成地形纹理 通过计算每个方格的阴影因子来标识这个方格究竟会有多亮 多暗 阴影因素由 光线向量与方格的法线向量之间的角度来计算 让摄像机在场景中移动时 需要寻找当前所处的三 角形 然后 计算三角形上的两个向量 这两个向量尾部相接 且与三角形的两边重合 通过一个 左上角在原点的单位化方位的 x 坐标与 z 坐标为参数 在这些向量上进行线性内插 从而求出高度 值 Terrain 类提供下面两个方法来访问和修改高度图中的元素 int Terrain getHeightmapEntry int row int col return heightmap row numVertsPerRow col void Terrain setHeightmapEntry int row int col int value heightmap row numVertsPerRow col value Terrain 类提供了两种方法来为地形加上纹理 较简单的方法是载入并使用一个先前做好的纹理图 Terrain 类中实现了下面的方法 把图片文件中的纹理数据载入到 IDirect3DTexture9 对象中 并使 用 tex 指针指向它 Terrain draw 方法在渲染地形之前将会设置 tex 的值 具体参见教材 P216 四 源程序 运行结果与测试分析 本程序在 Cube 程序上做修改 因为是旋转的立方体 所以截图时容易辨别是立方体 在 d3dUtility h 文件中加入 在 d3dUtility cpp 文件中加入 首先给立方体创建纹理 创建黄色材质的茶壶 建立点光源 最后释放内存 实验结果 制作好立方体与茶壶后添加到地形文件 terrainDriver cpp 中 修改世界坐标使它们能浮现在地形上 面 改变立方体旋转方式 使其绕 y 轴旋转 这里由于不会使物体绕其本身的的轴旋转 如果按照之前绕 x 和 y 轴旋转的话就是在做类似地球公转的运动 如下图 实验结果 在 terrainDriver cpp 中添加文字 定义两个文字接口 把定义的世界坐标Worlds改为有两个元素是数组 Worlds 0 表示茶壶的世界坐标 Worlds 1 表示文字Text的时间坐标 在 bool setup 里声明Worlds 1 的世界坐标位置 在Display 函数中画出文字 在Cleanup 中加入 实验结果 在地形文件中加入 pSystem h 和 pSystem cpp 文件 定义雪花和烟花 在 setup 中建立雪花和烟花 在 Display 中画出雪花和烟花 开始时把雪花画在了地形的前面出现了下面的结果 不知道出现了什么问题 后来才发现了 实验结果 五 心得体会 虽然这次实验做出了效果 也让我更深入地了解了 DirectX 关于世界坐标 纹理 例子系统及在 画物体时的先后顺序 但还是存在很多的问题需要解决 在绘制立方体的纹理时 不是很难 其他代 码书上也有例子可以参考 所以代码的问题不是很大 但在让这些出现在地形上碰到了很多问题 刚 开始的时候不知道 做好时一直没有出现立方体和茶壶等 改变了它们的世界坐标位置后发现之前 cube 里立方体是绕 x 和 y 轴旋转的 改变位置后台还是这样的 想把它改成绕自己的轴旋转 但不会 也找不到这样的资料 未来有效果就只好改成绕 y 轴旋转 在做三维文字的时候 也不会修改其字体 大小和朝向 制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大狗场养殖知识培训总结课件
- 大牌化妆品知识培训
- 大气相关知识职业培训课件
- 大气家具知识培训内容课件
- 室内外活动场地租赁协议
- 2024年济宁市嘉祥县事业单位招聘真题
- 照护团队成员测试与评估协议
- 干股投资者权益保护协议
- 文库发布:尿毒症课件
- 2025年5G网络建设项目信息技术服务外包合同范本
- 劳务派遣工作知识培训课件
- 无人机反制设备原理课件
- 北京市2025年普通高中学业水平等级性考试政治试题(解析版)
- GA 38-2021银行安全防范要求
- 第一章数字印刷概述课件
- 【医院管理】-科研创新助推学科建设课件
- 《卷烟原料配方设计》配套教学课件
- 介入诊疗质量安全计划与指标
- 新课标高考英语词汇表3500
- 99S203 消防水泵接合器安装图集
- 工资现金发放证明书
评论
0/150
提交评论